From 5a49d2355b884bf3012abe31106495d1003f1726 Mon Sep 17 00:00:00 2001
From: llaffont <llaffont@git-test.afi-sa.fr>
Date: Thu, 13 Sep 2012 08:10:47 +0000
Subject: [PATCH] Ajout d'OSM Player
 http://mediafront.org/osmplayer/index.html#.UFB0Q3lOpw4

---
 .gitattributes                                |  498 ++
 doc/extern_libs.txt                           |    3 +-
 public/admin/js/osmplayer/LICENSE.TXT         |   25 +
 public/admin/js/osmplayer/README.md           |   11 +
 .../js/osmplayer/bin/osmplayer.compressed.js  |  187 +
 public/admin/js/osmplayer/bin/osmplayer.js    | 7082 +++++++++++++++++
 public/admin/js/osmplayer/doc/files.html      |  542 ++
 public/admin/js/osmplayer/doc/index.html      |  369 +
 .../js/osmplayer/doc/symbols/_global_.html    |  626 ++
 .../doc/symbols/jQuery.fn.minplayer.html      |  355 +
 .../doc/symbols/jQuery.fn.osmplayer.html      |  355 +
 .../doc/symbols/minplayer.async.html          |  545 ++
 .../doc/symbols/minplayer.compatibility.html  |  582 ++
 .../doc/symbols/minplayer.display.html        |  921 +++
 .../osmplayer/doc/symbols/minplayer.file.html |  621 ++
 .../doc/symbols/minplayer.flags.html          |  560 ++
 .../doc/symbols/minplayer.image.html          |  687 ++
 .../doc/symbols/minplayer.players.base.html   | 2102 +++++
 .../doc/symbols/minplayer.players.flash.html  |  696 ++
 .../doc/symbols/minplayer.players.html5.html  | 1454 ++++
 .../symbols/minplayer.players.minplayer.html  | 1304 +++
 .../doc/symbols/minplayer.players.vimeo.html  | 1398 ++++
 .../symbols/minplayer.players.youtube.html    | 1732 ++++
 .../doc/symbols/minplayer.plugin.html         | 1264 +++
 .../js/osmplayer/doc/symbols/osmplayer.html   |  854 ++
 .../doc/symbols/osmplayer.pager.html          |  483 ++
 .../doc/symbols/osmplayer.playlist.html       |  981 +++
 .../doc/symbols/osmplayer.scroll.html         |  743 ++
 .../doc/symbols/osmplayer.teaser.html         |  564 ++
 .../src/minplayer_src_minplayer.async.js.html |   69 +
 ...player_src_minplayer.compatibility.js.html |  124 +
 ...minplayer_src_minplayer.controller.js.html |  355 +
 .../minplayer_src_minplayer.display.js.html   |  400 +
 .../src/minplayer_src_minplayer.file.js.html  |  186 +
 .../src/minplayer_src_minplayer.flags.js.html |   79 +
 .../src/minplayer_src_minplayer.image.js.html |  153 +
 .../src/minplayer_src_minplayer.js.html       |  425 +
 ...minplayer_src_minplayer.playLoader.js.html |  228 +
 ...nplayer_src_minplayer.players.base.js.html |  661 ++
 ...player_src_minplayer.players.flash.js.html |  132 +
 ...player_src_minplayer.players.html5.js.html |  429 +
 ...er_src_minplayer.players.minplayer.js.html |  313 +
 ...player_src_minplayer.players.vimeo.js.html |  355 +
 ...ayer_src_minplayer.players.youtube.js.html |  384 +
 .../minplayer_src_minplayer.plugin.js.html    |  639 ++
 .../doc/symbols/src/src_osmplayer.js.html     |  276 +
 .../symbols/src/src_osmplayer.pager.js.html   |   59 +
 .../src/src_osmplayer.parser.asx.js.html      |   52 +
 .../src/src_osmplayer.parser.default.js.html  |   47 +
 .../src/src_osmplayer.parser.rss.js.html      |   73 +
 .../src/src_osmplayer.parser.xspf.js.html     |   52 +
 .../src/src_osmplayer.parser.youtube.js.html  |   81 +
 .../src/src_osmplayer.playlist.js.html        |  558 ++
 .../symbols/src/src_osmplayer.scroll.js.html  |  291 +
 .../symbols/src/src_osmplayer.teaser.js.html  |   76 +
 public/admin/js/osmplayer/index.html          |   66 +
 .../js/osmplayer/jquery-ui/Aristo/Aristo.css  |  735 ++
 .../jquery-ui/Aristo/images/bg_fallback.png   |  Bin 0 -> 3721 bytes
 .../jquery-ui/Aristo/images/icon_sprite.png   |  Bin 0 -> 3217 bytes
 .../jquery-ui/Aristo/images/progress_bar.gif  |  Bin 0 -> 502 bytes
 .../Aristo/images/slider_handles.png          |  Bin 0 -> 4453 bytes
 .../Aristo/images/ui-icons_222222_256x240.png |  Bin 0 -> 4369 bytes
 .../Aristo/images/ui-icons_454545_256x240.png |  Bin 0 -> 4369 bytes
 public/admin/js/osmplayer/jquery-ui/README.md |    4 +
 .../osmplayer/jquery-ui/absolution/README.md  |   42 +
 .../jquery-ui/absolution/absolution.blue.css  |  819 ++
 .../jquery-ui/absolution/images/selector.png  |  Bin 0 -> 2907 bytes
 .../images/ui-icons_222222_256x240.png        |  Bin 0 -> 4369 bytes
 .../images/ui-icons_eeeeee_256x240.png        |  Bin 0 -> 4369 bytes
 .../images/ui-icons_ffffff_256x240.png        |  Bin 0 -> 4369 bytes
 .../ui-bg_diagonals-thick_8_333333_40x40.png  |  Bin 0 -> 252 bytes
 .../images/ui-bg_flat_65_ffffff_40x100.png    |  Bin 0 -> 178 bytes
 .../images/ui-bg_glass_40_111111_1x400.png    |  Bin 0 -> 124 bytes
 .../images/ui-bg_glass_55_1c1c1c_1x400.png    |  Bin 0 -> 171 bytes
 .../ui-bg_highlight-hard_100_f9f9f9_1x100.png |  Bin 0 -> 86 bytes
 .../ui-bg_highlight-hard_40_aaaaaa_1x100.png  |  Bin 0 -> 100 bytes
 .../ui-bg_highlight-soft_50_aaaaaa_1x100.png  |  Bin 0 -> 102 bytes
 .../ui-bg_inset-hard_45_cd0a0a_1x100.png      |  Bin 0 -> 123 bytes
 .../ui-bg_inset-hard_55_ffeb80_1x100.png      |  Bin 0 -> 113 bytes
 .../images/ui-icons_222222_256x240.png        |  Bin 0 -> 4369 bytes
 .../images/ui-icons_4ca300_256x240.png        |  Bin 0 -> 4369 bytes
 .../images/ui-icons_bbbbbb_256x240.png        |  Bin 0 -> 4369 bytes
 .../images/ui-icons_ededed_256x240.png        |  Bin 0 -> 5355 bytes
 .../images/ui-icons_ffcf29_256x240.png        |  Bin 0 -> 5355 bytes
 .../images/ui-icons_ffffff_256x240.png        |  Bin 0 -> 4369 bytes
 .../black-tie/jquery-ui-1.8.18.custom.css     |  565 ++
 .../ui-bg_diagonals-thick_90_eeeeee_40x40.png |  Bin 0 -> 251 bytes
 .../images/ui-bg_flat_15_cd0a0a_40x100.png    |  Bin 0 -> 181 bytes
 .../images/ui-bg_glass_100_e4f1fb_1x400.png   |  Bin 0 -> 119 bytes
 .../images/ui-bg_glass_50_3baae3_1x400.png    |  Bin 0 -> 131 bytes
 .../images/ui-bg_glass_80_d7ebf9_1x400.png    |  Bin 0 -> 124 bytes
 .../ui-bg_highlight-hard_100_f2f5f7_1x100.png |  Bin 0 -> 103 bytes
 .../ui-bg_highlight-hard_70_000000_1x100.png  |  Bin 0 -> 118 bytes
 .../ui-bg_highlight-soft_100_deedf7_1x100.png |  Bin 0 -> 104 bytes
 .../ui-bg_highlight-soft_25_ffef8f_1x100.png  |  Bin 0 -> 119 bytes
 .../images/ui-icons_2694e8_256x240.png        |  Bin 0 -> 4369 bytes
 .../images/ui-icons_2e83ff_256x240.png        |  Bin 0 -> 4369 bytes
 .../images/ui-icons_3d80b3_256x240.png        |  Bin 0 -> 4369 bytes
 .../images/ui-icons_72a7cf_256x240.png        |  Bin 0 -> 4369 bytes
 .../images/ui-icons_ffffff_256x240.png        |  Bin 0 -> 4369 bytes
 .../cupertino/jquery-ui-1.8.18.custom.css     |  565 ++
 .../images/ui-bg_flat_30_cccccc_40x100.png    |  Bin 0 -> 180 bytes
 .../images/ui-bg_flat_50_5c5c5c_40x100.png    |  Bin 0 -> 180 bytes
 .../images/ui-bg_glass_40_ffc73d_1x400.png    |  Bin 0 -> 131 bytes
 .../ui-bg_highlight-hard_20_0972a5_1x100.png  |  Bin 0 -> 114 bytes
 .../ui-bg_highlight-soft_33_003147_1x100.png  |  Bin 0 -> 127 bytes
 .../ui-bg_highlight-soft_35_222222_1x100.png  |  Bin 0 -> 113 bytes
 .../ui-bg_highlight-soft_44_444444_1x100.png  |  Bin 0 -> 117 bytes
 .../ui-bg_highlight-soft_80_eeeeee_1x100.png  |  Bin 0 -> 95 bytes
 .../images/ui-bg_loop_25_000000_21x21.png     |  Bin 0 -> 235 bytes
 .../images/ui-icons_222222_256x240.png        |  Bin 0 -> 4369 bytes
 .../images/ui-icons_4b8e0b_256x240.png        |  Bin 0 -> 4369 bytes
 .../images/ui-icons_a83300_256x240.png        |  Bin 0 -> 4369 bytes
 .../images/ui-icons_cccccc_256x240.png        |  Bin 0 -> 4369 bytes
 .../images/ui-icons_ffffff_256x240.png        |  Bin 0 -> 4369 bytes
 .../dark-hive/jquery-ui-1.8.18.custom.css     |  565 ++
 .../ui-bg_diagonals-thick_15_0b3e6f_40x40.png |  Bin 0 -> 385 bytes
 .../ui-bg_dots-medium_30_0b58a2_4x4.png       |  Bin 0 -> 98 bytes
 .../images/ui-bg_dots-small_20_333333_2x2.png |  Bin 0 -> 83 bytes
 .../images/ui-bg_dots-small_30_a32d00_2x2.png |  Bin 0 -> 83 bytes
 .../images/ui-bg_dots-small_40_00498f_2x2.png |  Bin 0 -> 83 bytes
 .../images/ui-bg_flat_0_aaaaaa_40x100.png     |  Bin 0 -> 180 bytes
 .../images/ui-bg_flat_40_292929_40x100.png    |  Bin 0 -> 211 bytes
 .../ui-bg_gloss-wave_20_111111_500x100.png    |  Bin 0 -> 1620 bytes
 .../images/ui-icons_00498f_256x240.png        |  Bin 0 -> 4369 bytes
 .../images/ui-icons_98d2fb_256x240.png        |  Bin 0 -> 4369 bytes
 .../images/ui-icons_9ccdfc_256x240.png        |  Bin 0 -> 4369 bytes
 .../images/ui-icons_ffffff_256x240.png        |  Bin 0 -> 4369 bytes
 .../dot-luv/jquery-ui-1.8.18.custom.css       |  565 ++
 .../images/ui-bg_flat_0_aaaaaa_40x100.png     |  Bin 0 -> 180 bytes
 .../images/ui-bg_flat_0_eeeeee_40x100.png     |  Bin 0 -> 180 bytes
 .../images/ui-bg_flat_55_994d53_40x100.png    |  Bin 0 -> 182 bytes
 .../images/ui-bg_flat_55_fafafa_40x100.png    |  Bin 0 -> 180 bytes
 .../ui-bg_gloss-wave_30_3d3644_500x100.png    |  Bin 0 -> 4244 bytes
 .../ui-bg_highlight-soft_100_dcd9de_1x100.png |  Bin 0 -> 159 bytes
 .../ui-bg_highlight-soft_100_eae6ea_1x100.png |  Bin 0 -> 108 bytes
 .../ui-bg_highlight-soft_25_30273a_1x100.png  |  Bin 0 -> 124 bytes
 .../ui-bg_highlight-soft_45_5f5964_1x100.png  |  Bin 0 -> 173 bytes
 .../images/ui-icons_454545_256x240.png        |  Bin 0 -> 4369 bytes
 .../images/ui-icons_734d99_256x240.png        |  Bin 0 -> 4369 bytes
 .../images/ui-icons_8d78a5_256x240.png        |  Bin 0 -> 4369 bytes
 .../images/ui-icons_a8a3ae_256x240.png        |  Bin 0 -> 5355 bytes
 .../images/ui-icons_ebccce_256x240.png        |  Bin 0 -> 5355 bytes
 .../images/ui-icons_ffffff_256x240.png        |  Bin 0 -> 4369 bytes
 .../eggplant/jquery-ui-1.8.18.custom.css      |  565 ++
 .../ui-bg_diagonals-small_25_c5ddfc_40x40.png |  Bin 0 -> 157 bytes
 .../ui-bg_diagonals-thick_20_e69700_40x40.png |  Bin 0 -> 257 bytes
 .../ui-bg_diagonals-thick_22_1484e6_40x40.png |  Bin 0 -> 259 bytes
 .../ui-bg_diagonals-thick_26_2293f7_40x40.png |  Bin 0 -> 382 bytes
 .../images/ui-bg_flat_0_e69700_40x100.png     |  Bin 0 -> 181 bytes
 .../images/ui-bg_flat_0_e6b900_40x100.png     |  Bin 0 -> 181 bytes
 .../ui-bg_highlight-soft_100_f9f9f9_1x100.png |  Bin 0 -> 88 bytes
 .../ui-bg_inset-hard_100_eeeeee_1x100.png     |  Bin 0 -> 91 bytes
 .../images/ui-icons_0a82eb_256x240.png        |  Bin 0 -> 5355 bytes
 .../images/ui-icons_0b54d5_256x240.png        |  Bin 0 -> 4369 bytes
 .../images/ui-icons_5fa5e3_256x240.png        |  Bin 0 -> 5355 bytes
 .../images/ui-icons_fcdd4a_256x240.png        |  Bin 0 -> 5355 bytes
 .../images/ui-icons_ffffff_256x240.png        |  Bin 0 -> 4369 bytes
 .../excite-bike/jquery-ui-1.8.18.custom.css   |  565 ++
 .../images/ui-bg_flat_0_aaaaaa_40x100.png     |  Bin 0 -> 180 bytes
 .../images/ui-bg_flat_0_eeeeee_40x100.png     |  Bin 0 -> 180 bytes
 .../images/ui-bg_flat_55_ffffff_40x100.png    |  Bin 0 -> 178 bytes
 .../images/ui-bg_flat_75_ffffff_40x100.png    |  Bin 0 -> 178 bytes
 .../images/ui-bg_glass_65_ffffff_1x400.png    |  Bin 0 -> 105 bytes
 .../ui-bg_highlight-soft_100_f6f6f6_1x100.png |  Bin 0 -> 90 bytes
 .../ui-bg_highlight-soft_25_0073ea_1x100.png  |  Bin 0 -> 158 bytes
 .../ui-bg_highlight-soft_50_dddddd_1x100.png  |  Bin 0 -> 92 bytes
 .../flick/images/ui-icons_0073ea_256x240.png  |  Bin 0 -> 4369 bytes
 .../flick/images/ui-icons_454545_256x240.png  |  Bin 0 -> 4369 bytes
 .../flick/images/ui-icons_666666_256x240.png  |  Bin 0 -> 4369 bytes
 .../flick/images/ui-icons_ff0084_256x240.png  |  Bin 0 -> 4369 bytes
 .../flick/images/ui-icons_ffffff_256x240.png  |  Bin 0 -> 4369 bytes
 .../flick/jquery-ui-1.8.18.custom.css         |  565 ++
 .../ui-bg_diagonals-small_40_db4865_40x40.png |  Bin 0 -> 160 bytes
 .../ui-bg_diagonals-small_50_93c3cd_40x40.png |  Bin 0 -> 162 bytes
 .../ui-bg_diagonals-small_50_ff3853_40x40.png |  Bin 0 -> 156 bytes
 .../ui-bg_diagonals-small_75_ccd232_40x40.png |  Bin 0 -> 162 bytes
 .../ui-bg_dots-medium_80_ffff38_4x4.png       |  Bin 0 -> 100 bytes
 .../images/ui-bg_dots-small_35_35414f_2x2.png |  Bin 0 -> 83 bytes
 .../images/ui-bg_flat_75_ba9217_40x100.png    |  Bin 0 -> 182 bytes
 .../images/ui-bg_flat_75_ffffff_40x100.png    |  Bin 0 -> 178 bytes
 .../ui-bg_white-lines_85_f7f7ba_40x100.png    |  Bin 0 -> 212 bytes
 .../images/ui-icons_454545_256x240.png        |  Bin 0 -> 4369 bytes
 .../images/ui-icons_88a206_256x240.png        |  Bin 0 -> 5355 bytes
 .../images/ui-icons_c02669_256x240.png        |  Bin 0 -> 5355 bytes
 .../images/ui-icons_e1e463_256x240.png        |  Bin 0 -> 4369 bytes
 .../images/ui-icons_ffeb33_256x240.png        |  Bin 0 -> 4369 bytes
 .../images/ui-icons_ffffff_256x240.png        |  Bin 0 -> 4369 bytes
 .../hot-sneaks/jquery-ui-1.8.18.custom.css    |  565 ++
 .../images/ui-bg_flat_0_aaaaaa_40x100.png     |  Bin 0 -> 180 bytes
 .../images/ui-bg_glass_15_5f391b_1x400.png    |  Bin 0 -> 168 bytes
 .../ui-bg_gloss-wave_20_1c160d_500x100.png    |  Bin 0 -> 2411 bytes
 .../ui-bg_gloss-wave_25_453326_500x100.png    |  Bin 0 -> 3192 bytes
 .../ui-bg_gloss-wave_30_44372c_500x100.png    |  Bin 0 -> 4389 bytes
 .../ui-bg_highlight-soft_20_201913_1x100.png  |  Bin 0 -> 118 bytes
 .../ui-bg_highlight-soft_20_619226_1x100.png  |  Bin 0 -> 125 bytes
 .../ui-bg_inset-soft_10_201913_1x100.png      |  Bin 0 -> 106 bytes
 .../images/ui-icons_222222_256x240.png        |  Bin 0 -> 4369 bytes
 .../images/ui-icons_9bcc60_256x240.png        |  Bin 0 -> 4369 bytes
 .../images/ui-icons_add978_256x240.png        |  Bin 0 -> 5355 bytes
 .../images/ui-icons_e3ddc9_256x240.png        |  Bin 0 -> 4369 bytes
 .../images/ui-icons_f1fd86_256x240.png        |  Bin 0 -> 5355 bytes
 .../images/ui-icons_ffffff_256x240.png        |  Bin 0 -> 4369 bytes
 .../mint-choc/jquery-ui-1.8.18.custom.css     |  565 ++
 .../images/ui-bg_flat_0_aaaaaa_40x100.png     |  Bin 0 -> 180 bytes
 .../images/ui-bg_flat_0_eeeeee_40x100.png     |  Bin 0 -> 180 bytes
 .../images/ui-bg_flat_55_c0402a_40x100.png    |  Bin 0 -> 213 bytes
 .../images/ui-bg_flat_55_eeeeee_40x100.png    |  Bin 0 -> 180 bytes
 .../images/ui-bg_glass_100_f8f8f8_1x400.png   |  Bin 0 -> 105 bytes
 .../images/ui-bg_glass_35_dddddd_1x400.png    |  Bin 0 -> 109 bytes
 .../images/ui-bg_glass_60_eeeeee_1x400.png    |  Bin 0 -> 110 bytes
 .../ui-bg_inset-hard_75_999999_1x100.png      |  Bin 0 -> 114 bytes
 .../ui-bg_inset-soft_50_c9c9c9_1x100.png      |  Bin 0 -> 142 bytes
 .../images/ui-icons_3383bb_256x240.png        |  Bin 0 -> 4369 bytes
 .../images/ui-icons_454545_256x240.png        |  Bin 0 -> 4369 bytes
 .../images/ui-icons_70b2e1_256x240.png        |  Bin 0 -> 5355 bytes
 .../images/ui-icons_999999_256x240.png        |  Bin 0 -> 4369 bytes
 .../images/ui-icons_fbc856_256x240.png        |  Bin 0 -> 4369 bytes
 .../overcast/jquery-ui-1.8.18.custom.css      |  565 ++
 .../ui-bg_diagonal-maze_20_6e4f1c_10x10.png   |  Bin 0 -> 154 bytes
 .../ui-bg_diagonal-maze_40_000000_10x10.png   |  Bin 0 -> 132 bytes
 .../ui-bg_fine-grain_10_eceadf_60x60.png      |  Bin 0 -> 4429 bytes
 .../ui-bg_fine-grain_10_f8f7f6_60x60.png      |  Bin 0 -> 3251 bytes
 .../ui-bg_fine-grain_15_eceadf_60x60.png      |  Bin 0 -> 4391 bytes
 .../ui-bg_fine-grain_15_f7f3de_60x60.png      |  Bin 0 -> 4731 bytes
 .../ui-bg_fine-grain_15_ffffff_60x60.png      |  Bin 0 -> 3716 bytes
 .../ui-bg_fine-grain_65_654b24_60x60.png      |  Bin 0 -> 7369 bytes
 .../ui-bg_fine-grain_68_b83400_60x60.png      |  Bin 0 -> 8347 bytes
 .../images/ui-icons_222222_256x240.png        |  Bin 0 -> 4369 bytes
 .../images/ui-icons_3572ac_256x240.png        |  Bin 0 -> 5355 bytes
 .../images/ui-icons_8c291d_256x240.png        |  Bin 0 -> 4369 bytes
 .../images/ui-icons_b83400_256x240.png        |  Bin 0 -> 4369 bytes
 .../images/ui-icons_fbdb93_256x240.png        |  Bin 0 -> 4369 bytes
 .../images/ui-icons_ffffff_256x240.png        |  Bin 0 -> 4369 bytes
 .../jquery-ui-1.8.18.custom.css               |  565 ++
 .../images/ui-bg_flat_0_aaaaaa_40x100.png     |  Bin 0 -> 180 bytes
 .../images/ui-bg_flat_55_fbec88_40x100.png    |  Bin 0 -> 182 bytes
 .../images/ui-bg_glass_75_d0e5f5_1x400.png    |  Bin 0 -> 124 bytes
 .../images/ui-bg_glass_85_dfeffc_1x400.png    |  Bin 0 -> 123 bytes
 .../images/ui-bg_glass_95_fef1ec_1x400.png    |  Bin 0 -> 119 bytes
 .../ui-bg_gloss-wave_55_5c9ccc_500x100.png    |  Bin 0 -> 3457 bytes
 .../ui-bg_inset-hard_100_f5f8f9_1x100.png     |  Bin 0 -> 104 bytes
 .../ui-bg_inset-hard_100_fcfdfd_1x100.png     |  Bin 0 -> 88 bytes
 .../images/ui-icons_217bc0_256x240.png        |  Bin 0 -> 4369 bytes
 .../images/ui-icons_2e83ff_256x240.png        |  Bin 0 -> 4369 bytes
 .../images/ui-icons_469bdd_256x240.png        |  Bin 0 -> 4369 bytes
 .../images/ui-icons_6da8d5_256x240.png        |  Bin 0 -> 4369 bytes
 .../images/ui-icons_cd0a0a_256x240.png        |  Bin 0 -> 4369 bytes
 .../images/ui-icons_d8e7f3_256x240.png        |  Bin 0 -> 4369 bytes
 .../images/ui-icons_f9bd01_256x240.png        |  Bin 0 -> 4369 bytes
 .../redmond/jquery-ui-1.8.18.custom.css       |  565 ++
 .../images/ui-bg_flat_0_aaaaaa_40x100.png     |  Bin 0 -> 180 bytes
 .../images/ui-bg_flat_75_ffffff_40x100.png    |  Bin 0 -> 178 bytes
 .../images/ui-bg_glass_55_fbf9ee_1x400.png    |  Bin 0 -> 120 bytes
 .../images/ui-bg_glass_65_ffffff_1x400.png    |  Bin 0 -> 105 bytes
 .../images/ui-bg_glass_75_dadada_1x400.png    |  Bin 0 -> 111 bytes
 .../images/ui-bg_glass_75_e6e6e6_1x400.png    |  Bin 0 -> 110 bytes
 .../images/ui-bg_glass_95_fef1ec_1x400.png    |  Bin 0 -> 119 bytes
 .../ui-bg_highlight-soft_75_cccccc_1x100.png  |  Bin 0 -> 101 bytes
 .../images/ui-icons_222222_256x240.png        |  Bin 0 -> 4369 bytes
 .../images/ui-icons_2e83ff_256x240.png        |  Bin 0 -> 4369 bytes
 .../images/ui-icons_454545_256x240.png        |  Bin 0 -> 4369 bytes
 .../images/ui-icons_888888_256x240.png        |  Bin 0 -> 4369 bytes
 .../images/ui-icons_cd0a0a_256x240.png        |  Bin 0 -> 4369 bytes
 .../smoothness/jquery-ui-1.8.18.custom.css    |  565 ++
 .../images/ui-bg_glass_55_fcf0ba_1x400.png    |  Bin 0 -> 127 bytes
 .../ui-bg_gloss-wave_100_ece8da_500x100.png   |  Bin 0 -> 2130 bytes
 .../ui-bg_highlight-hard_100_f5f3e5_1x100.png |  Bin 0 -> 110 bytes
 .../ui-bg_highlight-hard_100_fafaf4_1x100.png |  Bin 0 -> 96 bytes
 .../ui-bg_highlight-hard_15_459e00_1x100.png  |  Bin 0 -> 114 bytes
 .../ui-bg_highlight-hard_95_cccccc_1x100.png  |  Bin 0 -> 105 bytes
 .../ui-bg_highlight-soft_25_67b021_1x100.png  |  Bin 0 -> 165 bytes
 .../ui-bg_highlight-soft_95_ffedad_1x100.png  |  Bin 0 -> 165 bytes
 .../ui-bg_inset-soft_15_2b2922_1x100.png      |  Bin 0 -> 157 bytes
 .../images/ui-icons_808080_256x240.png        |  Bin 0 -> 5355 bytes
 .../images/ui-icons_847e71_256x240.png        |  Bin 0 -> 4369 bytes
 .../images/ui-icons_8dc262_256x240.png        |  Bin 0 -> 4369 bytes
 .../images/ui-icons_cd0a0a_256x240.png        |  Bin 0 -> 4369 bytes
 .../images/ui-icons_eeeeee_256x240.png        |  Bin 0 -> 4369 bytes
 .../images/ui-icons_ffffff_256x240.png        |  Bin 0 -> 4369 bytes
 .../south-street/jquery-ui-1.8.18.custom.css  |  565 ++
 .../images/ui-bg_flat_55_999999_40x100.png    |  Bin 0 -> 180 bytes
 .../images/ui-bg_flat_75_aaaaaa_40x100.png    |  Bin 0 -> 180 bytes
 .../images/ui-bg_glass_45_0078ae_1x400.png    |  Bin 0 -> 136 bytes
 .../images/ui-bg_glass_55_f8da4e_1x400.png    |  Bin 0 -> 131 bytes
 .../images/ui-bg_glass_75_79c9ec_1x400.png    |  Bin 0 -> 132 bytes
 .../ui-bg_gloss-wave_45_e14f1c_500x100.png    |  Bin 0 -> 3649 bytes
 .../ui-bg_gloss-wave_50_6eac2c_500x100.png    |  Bin 0 -> 4256 bytes
 .../ui-bg_gloss-wave_75_2191c0_500x100.png    |  Bin 0 -> 3457 bytes
 .../ui-bg_inset-hard_100_fcfdfd_1x100.png     |  Bin 0 -> 88 bytes
 .../start/images/ui-icons_0078ae_256x240.png  |  Bin 0 -> 4369 bytes
 .../start/images/ui-icons_056b93_256x240.png  |  Bin 0 -> 4369 bytes
 .../start/images/ui-icons_d8e7f3_256x240.png  |  Bin 0 -> 4369 bytes
 .../start/images/ui-icons_e0fdff_256x240.png  |  Bin 0 -> 4369 bytes
 .../start/images/ui-icons_f5e175_256x240.png  |  Bin 0 -> 4369 bytes
 .../start/images/ui-icons_f7a50d_256x240.png  |  Bin 0 -> 4369 bytes
 .../start/images/ui-icons_fcd113_256x240.png  |  Bin 0 -> 4369 bytes
 .../start/jquery-ui-1.8.18.custom.css         |  565 ++
 ...ui-bg_diagonals-medium_20_d34d17_40x40.png |  Bin 0 -> 247 bytes
 .../images/ui-bg_flat_30_cccccc_40x100.png    |  Bin 0 -> 180 bytes
 .../images/ui-bg_flat_50_5c5c5c_40x100.png    |  Bin 0 -> 180 bytes
 .../ui-bg_gloss-wave_45_817865_500x100.png    |  Bin 0 -> 3971 bytes
 .../ui-bg_gloss-wave_60_fece2f_500x100.png    |  Bin 0 -> 3512 bytes
 .../ui-bg_gloss-wave_70_ffdd57_500x100.png    |  Bin 0 -> 3830 bytes
 .../ui-bg_gloss-wave_90_fff9e5_500x100.png    |  Bin 0 -> 2257 bytes
 .../ui-bg_highlight-soft_100_feeebd_1x100.png |  Bin 0 -> 108 bytes
 .../ui-bg_inset-soft_30_ffffff_1x100.png      |  Bin 0 -> 100 bytes
 .../sunny/images/ui-icons_3d3d3d_256x240.png  |  Bin 0 -> 5355 bytes
 .../sunny/images/ui-icons_bd7b00_256x240.png  |  Bin 0 -> 4369 bytes
 .../sunny/images/ui-icons_d19405_256x240.png  |  Bin 0 -> 4369 bytes
 .../sunny/images/ui-icons_eb990f_256x240.png  |  Bin 0 -> 4369 bytes
 .../sunny/images/ui-icons_ed9f26_256x240.png  |  Bin 0 -> 4369 bytes
 .../sunny/images/ui-icons_fadc7a_256x240.png  |  Bin 0 -> 4369 bytes
 .../sunny/images/ui-icons_ffe180_256x240.png  |  Bin 0 -> 4369 bytes
 .../sunny/jquery-ui-1.8.18.custom.css         |  565 ++
 .../images/ui-bg_diamond_10_4f4221_10x8.png   |  Bin 0 -> 136 bytes
 .../images/ui-bg_diamond_20_372806_10x8.png   |  Bin 0 -> 194 bytes
 .../images/ui-bg_diamond_25_675423_10x8.png   |  Bin 0 -> 198 bytes
 .../images/ui-bg_diamond_25_d5ac5d_10x8.png   |  Bin 0 -> 137 bytes
 .../images/ui-bg_diamond_8_261803_10x8.png    |  Bin 0 -> 136 bytes
 .../images/ui-bg_diamond_8_443113_10x8.png    |  Bin 0 -> 136 bytes
 .../images/ui-bg_flat_75_ddd4b0_40x100.png    |  Bin 0 -> 183 bytes
 .../ui-bg_highlight-hard_65_fee4bd_1x100.png  |  Bin 0 -> 114 bytes
 .../images/ui-icons_070603_256x240.png        |  Bin 0 -> 4369 bytes
 .../images/ui-icons_e8e2b5_256x240.png        |  Bin 0 -> 5355 bytes
 .../images/ui-icons_e9cd86_256x240.png        |  Bin 0 -> 4369 bytes
 .../images/ui-icons_efec9f_256x240.png        |  Bin 0 -> 5355 bytes
 .../images/ui-icons_f2ec64_256x240.png        |  Bin 0 -> 4369 bytes
 .../images/ui-icons_f9f2bd_256x240.png        |  Bin 0 -> 5355 bytes
 .../images/ui-icons_ff7519_256x240.png        |  Bin 0 -> 4369 bytes
 .../swanky-purse/jquery-ui-1.8.18.custom.css  |  565 ++
 .../images/ui-bg_flat_30_cccccc_40x100.png    |  Bin 0 -> 180 bytes
 .../images/ui-bg_flat_50_5c5c5c_40x100.png    |  Bin 0 -> 180 bytes
 .../images/ui-bg_glass_20_555555_1x400.png    |  Bin 0 -> 115 bytes
 .../images/ui-bg_glass_40_0078a3_1x400.png    |  Bin 0 -> 135 bytes
 .../images/ui-bg_glass_40_ffc73d_1x400.png    |  Bin 0 -> 131 bytes
 .../ui-bg_gloss-wave_25_333333_500x100.png    |  Bin 0 -> 1874 bytes
 .../ui-bg_highlight-soft_80_eeeeee_1x100.png  |  Bin 0 -> 95 bytes
 .../ui-bg_inset-soft_25_000000_1x100.png      |  Bin 0 -> 98 bytes
 .../ui-bg_inset-soft_30_f58400_1x100.png      |  Bin 0 -> 117 bytes
 .../images/ui-icons_222222_256x240.png        |  Bin 0 -> 4369 bytes
 .../images/ui-icons_4b8e0b_256x240.png        |  Bin 0 -> 4369 bytes
 .../images/ui-icons_a83300_256x240.png        |  Bin 0 -> 4369 bytes
 .../images/ui-icons_cccccc_256x240.png        |  Bin 0 -> 4369 bytes
 .../images/ui-icons_ffffff_256x240.png        |  Bin 0 -> 4369 bytes
 .../ui-darkness/jquery-ui-1.8.18.custom.css   |  565 ++
 .../ui-bg_diagonals-thick_18_b81900_40x40.png |  Bin 0 -> 260 bytes
 .../ui-bg_diagonals-thick_20_666666_40x40.png |  Bin 0 -> 251 bytes
 .../images/ui-bg_flat_10_000000_40x100.png    |  Bin 0 -> 178 bytes
 .../images/ui-bg_glass_100_f6f6f6_1x400.png   |  Bin 0 -> 104 bytes
 .../images/ui-bg_glass_100_fdf5ce_1x400.png   |  Bin 0 -> 125 bytes
 .../images/ui-bg_glass_65_ffffff_1x400.png    |  Bin 0 -> 105 bytes
 .../ui-bg_gloss-wave_35_f6a828_500x100.png    |  Bin 0 -> 3762 bytes
 .../ui-bg_highlight-soft_100_eeeeee_1x100.png |  Bin 0 -> 90 bytes
 .../ui-bg_highlight-soft_75_ffe45c_1x100.png  |  Bin 0 -> 129 bytes
 .../images/ui-icons_222222_256x240.png        |  Bin 0 -> 4369 bytes
 .../images/ui-icons_228ef1_256x240.png        |  Bin 0 -> 4369 bytes
 .../images/ui-icons_ef8c08_256x240.png        |  Bin 0 -> 4369 bytes
 .../images/ui-icons_ffd27a_256x240.png        |  Bin 0 -> 4369 bytes
 .../images/ui-icons_ffffff_256x240.png        |  Bin 0 -> 4369 bytes
 .../ui-lightness/jquery-ui-1.8.18.custom.css  |  565 ++
 .../images/ui-bg_flat_0_aaaaaa_40x100.png     |  Bin 0 -> 180 bytes
 .../images/ui-bg_glass_95_fef1ec_1x400.png    |  Bin 0 -> 119 bytes
 .../ui-bg_gloss-wave_16_121212_500x100.png    |  Bin 0 -> 2399 bytes
 .../ui-bg_highlight-hard_15_888888_1x100.png  |  Bin 0 -> 95 bytes
 .../ui-bg_highlight-hard_55_555555_1x100.png  |  Bin 0 -> 115 bytes
 .../ui-bg_highlight-soft_35_adadad_1x100.png  |  Bin 0 -> 103 bytes
 .../ui-bg_highlight-soft_60_dddddd_1x100.png  |  Bin 0 -> 106 bytes
 .../ui-bg_inset-soft_15_121212_1x100.png      |  Bin 0 -> 140 bytes
 .../vader/images/ui-icons_666666_256x240.png  |  Bin 0 -> 4369 bytes
 .../vader/images/ui-icons_aaaaaa_256x240.png  |  Bin 0 -> 4369 bytes
 .../vader/images/ui-icons_bbbbbb_256x240.png  |  Bin 0 -> 4369 bytes
 .../vader/images/ui-icons_c98000_256x240.png  |  Bin 0 -> 4369 bytes
 .../vader/images/ui-icons_cccccc_256x240.png  |  Bin 0 -> 4369 bytes
 .../vader/images/ui-icons_cd0a0a_256x240.png  |  Bin 0 -> 4369 bytes
 .../vader/images/ui-icons_f29a00_256x240.png  |  Bin 0 -> 5355 bytes
 .../vader/jquery-ui-1.8.18.custom.css         |  565 ++
 public/admin/js/osmplayer/logo.png            |  Bin 0 -> 763 bytes
 public/admin/js/osmplayer/makefile            |   95 +
 public/admin/js/osmplayer/minplayer/README.md |  122 +
 .../minplayer/bin/minplayer.compressed.js     |  115 +
 .../js/osmplayer/minplayer/bin/minplayer.js   | 4816 +++++++++++
 .../js/osmplayer/minplayer/flash/README.txt   |   12 +
 .../minplayer/flash/config/config.xml         |   39 +
 .../minplayer/flash/config/nocontrols.xml     |   39 +
 .../osmplayer/minplayer/flash/minplayer.swf   |  Bin 0 -> 16098 bytes
 .../flash/skins/default/controlBar.swf        |  Bin 0 -> 13678 bytes
 .../flash/skins/default/mediaPlayer.swf       |  Bin 0 -> 2982 bytes
 .../flash/skins/default/playLoader.swf        |  Bin 0 -> 2716 bytes
 .../js/osmplayer/minplayer/images/bg_hr.png   |  Bin 0 -> 943 bytes
 .../osmplayer/minplayer/images/blacktocat.png |  Bin 0 -> 1428 bytes
 .../minplayer/images/icon_download.png        |  Bin 0 -> 1162 bytes
 .../minplayer/images/sprite_download.png      |  Bin 0 -> 16799 bytes
 .../admin/js/osmplayer/minplayer/index.html   |  222 +
 .../osmplayer/minplayer/javascripts/main.js   |    1 +
 public/admin/js/osmplayer/minplayer/makefile  |   70 +
 .../admin/js/osmplayer/minplayer/params.json  |    1 +
 .../minplayer/src/minplayer.async.js          |   61 +
 .../minplayer/src/minplayer.compatibility.js  |  116 +
 .../minplayer/src/minplayer.controller.js     |  347 +
 .../minplayer/src/minplayer.display.js        |  392 +
 .../osmplayer/minplayer/src/minplayer.file.js |  178 +
 .../minplayer/src/minplayer.flags.js          |   71 +
 .../minplayer/src/minplayer.image.js          |  145 +
 .../js/osmplayer/minplayer/src/minplayer.js   |  417 +
 .../minplayer/src/minplayer.playLoader.js     |  220 +
 .../minplayer/src/minplayer.players.base.js   |  653 ++
 .../minplayer/src/minplayer.players.flash.js  |  124 +
 .../minplayer/src/minplayer.players.html5.js  |  421 +
 .../src/minplayer.players.minplayer.js        |  317 +
 .../minplayer/src/minplayer.players.vimeo.js  |  347 +
 .../src/minplayer.players.youtube.js          |  376 +
 .../minplayer/src/minplayer.plugin.js         |  631 ++
 .../minplayer/stylesheets/pygment_trac.css    |   70 +
 .../minplayer/stylesheets/stylesheet.css      |  431 +
 .../templates/default/css/images/loader.gif   |  Bin 0 -> 404 bytes
 .../default/css/minplayer_default.css         |  436 +
 .../js/minplayer.controller.default.js        |   96 +
 .../templates/default/js/minplayer.default.js |   66 +
 .../js/minplayer.playLoader.default.js        |   46 +
 .../default/minplayer_default.tpl.php         |   40 +
 public/admin/js/osmplayer/playlist.xml        |   61 +
 .../admin/js/osmplayer/src/iscroll/README.md  |   36 +
 .../js/osmplayer/src/iscroll/bin/make-dist    |    4 +
 .../src/iscroll/examples/carousel/index.html  |  170 +
 .../examples/check-dom-changes/index.html     |  172 +
 .../examples/custom-scrollbar/index.html      |  172 +
 .../examples/custom-scrollbar/scrollbar.css   |   91 +
 .../src/iscroll/examples/ender/ender.js       | 1602 ++++
 .../src/iscroll/examples/ender/ender.min.js   |   27 +
 .../src/iscroll/examples/ender/index.html     |  166 +
 .../iscroll/examples/form-fields/index.html   |  176 +
 .../examples/horizontal-scroll/index.html     |  134 +
 .../src/iscroll/examples/hover/index.html     |  199 +
 .../examples/ios-perfect-scrollbar/index.html |  170 +
 .../ios-perfect-scrollbar/scrollbar.css       |   57 +
 .../ios-perfect-scrollbar/scrollbar.png       |  Bin 0 -> 199 bytes
 .../src/iscroll/examples/ipad/index.html      |  167 +
 .../src/iscroll/examples/lite/index.html      |  161 +
 .../examples/pull-to-refresh/index.html       |  313 +
 .../examples/pull-to-refresh/pull-icon@2x.png |  Bin 0 -> 850 bytes
 .../src/iscroll/examples/simple/index.html    |  189 +
 .../examples/snap-to-element/index.html       |  133 +
 .../examples/use-transition/index.html        |  186 +
 .../src/iscroll/examples/zoom/index.html      |  118 +
 .../src/iscroll/examples/zoom/iscroll.jpg     |  Bin 0 -> 10018 bytes
 .../js/osmplayer/src/iscroll/license.txt      |   22 +
 .../js/osmplayer/src/iscroll/package.json     |   14 +
 .../js/osmplayer/src/iscroll/src/ender.js     |    7 +
 .../osmplayer/src/iscroll/src/iscroll-lite.js |  594 ++
 .../js/osmplayer/src/iscroll/src/iscroll.js   | 1076 +++
 public/admin/js/osmplayer/src/osmplayer.js    |  268 +
 .../admin/js/osmplayer/src/osmplayer.pager.js |   51 +
 .../js/osmplayer/src/osmplayer.parser.asx.js  |   44 +
 .../osmplayer/src/osmplayer.parser.default.js |   39 +
 .../js/osmplayer/src/osmplayer.parser.rss.js  |   65 +
 .../js/osmplayer/src/osmplayer.parser.xspf.js |   44 +
 .../osmplayer/src/osmplayer.parser.youtube.js |   73 +
 .../js/osmplayer/src/osmplayer.playlist.js    |  550 ++
 .../js/osmplayer/src/osmplayer.teaser.js      |   68 +
 .../templates/default/css/images/loader.gif   |  Bin 0 -> 404 bytes
 .../default/css/osmplayer_default.css         |  691 ++
 .../js/osmplayer.controller.default.js        |  123 +
 .../templates/default/js/osmplayer.default.js |   93 +
 .../default/js/osmplayer.pager.default.js     |   55 +
 .../js/osmplayer.playLoader.default.js        |   50 +
 .../default/js/osmplayer.playlist.default.js  |  172 +
 .../default/js/osmplayer.teaser.default.js    |   80 +
 .../templates/default/osmplayer.default.js    |   25 +
 .../default/osmplayer_default.tpl.php         |   65 +
 .../templates/simpleblack/css/images/busy.gif |  Bin 0 -> 3208 bytes
 .../templates/simpleblack/css/images/mask.png |  Bin 0 -> 151 bytes
 .../css/images/mediafront_audioslidebarbg.png |  Bin 0 -> 554 bytes
 .../css/images/mediafront_back.png            |  Bin 0 -> 597 bytes
 .../css/images/mediafront_bigplay.png         |  Bin 0 -> 18792 bytes
 .../css/images/mediafront_black40.png         |  Bin 0 -> 109 bytes
 .../css/images/mediafront_blue20.png          |  Bin 0 -> 144 bytes
 .../images/mediafront_buttonaudioslidebar.png |  Bin 0 -> 178 bytes
 .../css/images/mediafront_buttoncontroler.png |  Bin 0 -> 259 bytes
 .../css/images/mediafront_buttoninfo.png      |  Bin 0 -> 1352 bytes
 .../css/images/mediafront_buttonpause.png     |  Bin 0 -> 456 bytes
 .../css/images/mediafront_buttonplay.png      |  Bin 0 -> 828 bytes
 .../images/mediafront_buttonresizescreen.png  |  Bin 0 -> 780 bytes
 .../css/images/mediafront_buttonsound.png     |  Bin 0 -> 851 bytes
 .../css/images/mediafront_close.png           |  Bin 0 -> 571 bytes
 .../css/images/mediafront_controlerbarBg.png  |  Bin 0 -> 612 bytes
 .../css/images/mediafront_forward.png         |  Bin 0 -> 592 bytes
 .../css/images/mediafront_infobox.png         |  Bin 0 -> 2385 bytes
 .../css/images/mediafront_logo.png            |  Bin 0 -> 4331 bytes
 .../css/images/mediafront_movie640x360.png    |  Bin 0 -> 271814 bytes
 .../css/images/mediafront_moviethumb.png      |  Bin 0 -> 36462 bytes
 .../css/images/mediafront_playlistbg.png      |  Bin 0 -> 154 bytes
 .../css/images/mediafront_playlistshadow.png  |  Bin 0 -> 145 bytes
 .../css/images/mediafront_playlisttitlebg.png |  Bin 0 -> 242 bytes
 .../simpleblack/css/osmplayer_simpleblack.css |  405 +
 .../js/osmplayer.controller.simpleblack.js    |  102 +
 .../js/osmplayer.playLoader.simpleblack.js    |   45 +
 .../simpleblack/js/osmplayer.simpleblack.js   |   88 +
 .../simpleblack/osmplayer_simpleblack.tpl.php |   37 +
 public/admin/js/osmplayer/version.txt         |    1 +
 500 files changed, 67990 insertions(+), 1 deletion(-)
 create mode 100644 public/admin/js/osmplayer/LICENSE.TXT
 create mode 100644 public/admin/js/osmplayer/README.md
 create mode 100644 public/admin/js/osmplayer/bin/osmplayer.compressed.js
 create mode 100644 public/admin/js/osmplayer/bin/osmplayer.js
 create mode 100644 public/admin/js/osmplayer/doc/files.html
 create mode 100644 public/admin/js/osmplayer/doc/index.html
 create mode 100644 public/admin/js/osmplayer/doc/symbols/_global_.html
 create mode 100644 public/admin/js/osmplayer/doc/symbols/jQuery.fn.minplayer.html
 create mode 100644 public/admin/js/osmplayer/doc/symbols/jQuery.fn.osmplayer.html
 create mode 100644 public/admin/js/osmplayer/doc/symbols/minplayer.async.html
 create mode 100644 public/admin/js/osmplayer/doc/symbols/minplayer.compatibility.html
 create mode 100644 public/admin/js/osmplayer/doc/symbols/minplayer.display.html
 create mode 100644 public/admin/js/osmplayer/doc/symbols/minplayer.file.html
 create mode 100644 public/admin/js/osmplayer/doc/symbols/minplayer.flags.html
 create mode 100644 public/admin/js/osmplayer/doc/symbols/minplayer.image.html
 create mode 100644 public/admin/js/osmplayer/doc/symbols/minplayer.players.base.html
 create mode 100644 public/admin/js/osmplayer/doc/symbols/minplayer.players.flash.html
 create mode 100644 public/admin/js/osmplayer/doc/symbols/minplayer.players.html5.html
 create mode 100644 public/admin/js/osmplayer/doc/symbols/minplayer.players.minplayer.html
 create mode 100644 public/admin/js/osmplayer/doc/symbols/minplayer.players.vimeo.html
 create mode 100644 public/admin/js/osmplayer/doc/symbols/minplayer.players.youtube.html
 create mode 100644 public/admin/js/osmplayer/doc/symbols/minplayer.plugin.html
 create mode 100644 public/admin/js/osmplayer/doc/symbols/osmplayer.html
 create mode 100644 public/admin/js/osmplayer/doc/symbols/osmplayer.pager.html
 create mode 100644 public/admin/js/osmplayer/doc/symbols/osmplayer.playlist.html
 create mode 100644 public/admin/js/osmplayer/doc/symbols/osmplayer.scroll.html
 create mode 100644 public/admin/js/osmplayer/doc/symbols/osmplayer.teaser.html
 create mode 100644 public/admin/js/osmplayer/doc/symbols/src/minplayer_src_minplayer.async.js.html
 create mode 100644 public/admin/js/osmplayer/doc/symbols/src/minplayer_src_minplayer.compatibility.js.html
 create mode 100644 public/admin/js/osmplayer/doc/symbols/src/minplayer_src_minplayer.controller.js.html
 create mode 100644 public/admin/js/osmplayer/doc/symbols/src/minplayer_src_minplayer.display.js.html
 create mode 100644 public/admin/js/osmplayer/doc/symbols/src/minplayer_src_minplayer.file.js.html
 create mode 100644 public/admin/js/osmplayer/doc/symbols/src/minplayer_src_minplayer.flags.js.html
 create mode 100644 public/admin/js/osmplayer/doc/symbols/src/minplayer_src_minplayer.image.js.html
 create mode 100644 public/admin/js/osmplayer/doc/symbols/src/minplayer_src_minplayer.js.html
 create mode 100644 public/admin/js/osmplayer/doc/symbols/src/minplayer_src_minplayer.playLoader.js.html
 create mode 100644 public/admin/js/osmplayer/doc/symbols/src/minplayer_src_minplayer.players.base.js.html
 create mode 100644 public/admin/js/osmplayer/doc/symbols/src/minplayer_src_minplayer.players.flash.js.html
 create mode 100644 public/admin/js/osmplayer/doc/symbols/src/minplayer_src_minplayer.players.html5.js.html
 create mode 100644 public/admin/js/osmplayer/doc/symbols/src/minplayer_src_minplayer.players.minplayer.js.html
 create mode 100644 public/admin/js/osmplayer/doc/symbols/src/minplayer_src_minplayer.players.vimeo.js.html
 create mode 100644 public/admin/js/osmplayer/doc/symbols/src/minplayer_src_minplayer.players.youtube.js.html
 create mode 100644 public/admin/js/osmplayer/doc/symbols/src/minplayer_src_minplayer.plugin.js.html
 create mode 100644 public/admin/js/osmplayer/doc/symbols/src/src_osmplayer.js.html
 create mode 100644 public/admin/js/osmplayer/doc/symbols/src/src_osmplayer.pager.js.html
 create mode 100644 public/admin/js/osmplayer/doc/symbols/src/src_osmplayer.parser.asx.js.html
 create mode 100644 public/admin/js/osmplayer/doc/symbols/src/src_osmplayer.parser.default.js.html
 create mode 100644 public/admin/js/osmplayer/doc/symbols/src/src_osmplayer.parser.rss.js.html
 create mode 100644 public/admin/js/osmplayer/doc/symbols/src/src_osmplayer.parser.xspf.js.html
 create mode 100644 public/admin/js/osmplayer/doc/symbols/src/src_osmplayer.parser.youtube.js.html
 create mode 100644 public/admin/js/osmplayer/doc/symbols/src/src_osmplayer.playlist.js.html
 create mode 100644 public/admin/js/osmplayer/doc/symbols/src/src_osmplayer.scroll.js.html
 create mode 100644 public/admin/js/osmplayer/doc/symbols/src/src_osmplayer.teaser.js.html
 create mode 100644 public/admin/js/osmplayer/index.html
 create mode 100644 public/admin/js/osmplayer/jquery-ui/Aristo/Aristo.css
 create mode 100644 public/admin/js/osmplayer/jquery-ui/Aristo/images/bg_fallback.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/Aristo/images/icon_sprite.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/Aristo/images/progress_bar.gif
 create mode 100644 public/admin/js/osmplayer/jquery-ui/Aristo/images/slider_handles.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/Aristo/images/ui-icons_222222_256x240.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/Aristo/images/ui-icons_454545_256x240.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/README.md
 create mode 100755 public/admin/js/osmplayer/jquery-ui/absolution/README.md
 create mode 100644 public/admin/js/osmplayer/jquery-ui/absolution/absolution.blue.css
 create mode 100755 public/admin/js/osmplayer/jquery-ui/absolution/images/selector.png
 create mode 100755 public/admin/js/osmplayer/jquery-ui/absolution/images/ui-icons_222222_256x240.png
 create mode 100755 public/admin/js/osmplayer/jquery-ui/absolution/images/ui-icons_eeeeee_256x240.png
 create mode 100755 public/admin/js/osmplayer/jquery-ui/absolution/images/ui-icons_ffffff_256x240.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/black-tie/images/ui-bg_diagonals-thick_8_333333_40x40.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/black-tie/images/ui-bg_flat_65_ffffff_40x100.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/black-tie/images/ui-bg_glass_40_111111_1x400.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/black-tie/images/ui-bg_glass_55_1c1c1c_1x400.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/black-tie/images/ui-bg_highlight-hard_100_f9f9f9_1x100.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/black-tie/images/ui-bg_highlight-hard_40_aaaaaa_1x100.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/black-tie/images/ui-bg_highlight-soft_50_aaaaaa_1x100.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/black-tie/images/ui-bg_inset-hard_45_cd0a0a_1x100.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/black-tie/images/ui-bg_inset-hard_55_ffeb80_1x100.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/black-tie/images/ui-icons_222222_256x240.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/black-tie/images/ui-icons_4ca300_256x240.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/black-tie/images/ui-icons_bbbbbb_256x240.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/black-tie/images/ui-icons_ededed_256x240.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/black-tie/images/ui-icons_ffcf29_256x240.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/black-tie/images/ui-icons_ffffff_256x240.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/black-tie/jquery-ui-1.8.18.custom.css
 create mode 100644 public/admin/js/osmplayer/jquery-ui/cupertino/images/ui-bg_diagonals-thick_90_eeeeee_40x40.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/cupertino/images/ui-bg_flat_15_cd0a0a_40x100.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/cupertino/images/ui-bg_glass_100_e4f1fb_1x400.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/cupertino/images/ui-bg_glass_50_3baae3_1x400.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/cupertino/images/ui-bg_glass_80_d7ebf9_1x400.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/cupertino/images/ui-bg_highlight-hard_100_f2f5f7_1x100.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/cupertino/images/ui-bg_highlight-hard_70_000000_1x100.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/cupertino/images/ui-bg_highlight-soft_100_deedf7_1x100.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/cupertino/images/ui-bg_highlight-soft_25_ffef8f_1x100.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/cupertino/images/ui-icons_2694e8_256x240.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/cupertino/images/ui-icons_2e83ff_256x240.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/cupertino/images/ui-icons_3d80b3_256x240.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/cupertino/images/ui-icons_72a7cf_256x240.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/cupertino/images/ui-icons_ffffff_256x240.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/cupertino/jquery-ui-1.8.18.custom.css
 create mode 100644 public/admin/js/osmplayer/jquery-ui/dark-hive/images/ui-bg_flat_30_cccccc_40x100.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/dark-hive/images/ui-bg_flat_50_5c5c5c_40x100.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/dark-hive/images/ui-bg_glass_40_ffc73d_1x400.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/dark-hive/images/ui-bg_highlight-hard_20_0972a5_1x100.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/dark-hive/images/ui-bg_highlight-soft_33_003147_1x100.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/dark-hive/images/ui-bg_highlight-soft_35_222222_1x100.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/dark-hive/images/ui-bg_highlight-soft_44_444444_1x100.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/dark-hive/images/ui-bg_highlight-soft_80_eeeeee_1x100.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/dark-hive/images/ui-bg_loop_25_000000_21x21.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/dark-hive/images/ui-icons_222222_256x240.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/dark-hive/images/ui-icons_4b8e0b_256x240.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/dark-hive/images/ui-icons_a83300_256x240.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/dark-hive/images/ui-icons_cccccc_256x240.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/dark-hive/images/ui-icons_ffffff_256x240.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/dark-hive/jquery-ui-1.8.18.custom.css
 create mode 100644 public/admin/js/osmplayer/jquery-ui/dot-luv/images/ui-bg_diagonals-thick_15_0b3e6f_40x40.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/dot-luv/images/ui-bg_dots-medium_30_0b58a2_4x4.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/dot-luv/images/ui-bg_dots-small_20_333333_2x2.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/dot-luv/images/ui-bg_dots-small_30_a32d00_2x2.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/dot-luv/images/ui-bg_dots-small_40_00498f_2x2.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/dot-luv/images/ui-bg_flat_0_aaaaaa_40x100.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/dot-luv/images/ui-bg_flat_40_292929_40x100.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/dot-luv/images/ui-bg_gloss-wave_20_111111_500x100.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/dot-luv/images/ui-icons_00498f_256x240.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/dot-luv/images/ui-icons_98d2fb_256x240.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/dot-luv/images/ui-icons_9ccdfc_256x240.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/dot-luv/images/ui-icons_ffffff_256x240.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/dot-luv/jquery-ui-1.8.18.custom.css
 create mode 100644 public/admin/js/osmplayer/jquery-ui/eggplant/images/ui-bg_flat_0_aaaaaa_40x100.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/eggplant/images/ui-bg_flat_0_eeeeee_40x100.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/eggplant/images/ui-bg_flat_55_994d53_40x100.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/eggplant/images/ui-bg_flat_55_fafafa_40x100.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/eggplant/images/ui-bg_gloss-wave_30_3d3644_500x100.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/eggplant/images/ui-bg_highlight-soft_100_dcd9de_1x100.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/eggplant/images/ui-bg_highlight-soft_100_eae6ea_1x100.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/eggplant/images/ui-bg_highlight-soft_25_30273a_1x100.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/eggplant/images/ui-bg_highlight-soft_45_5f5964_1x100.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/eggplant/images/ui-icons_454545_256x240.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/eggplant/images/ui-icons_734d99_256x240.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/eggplant/images/ui-icons_8d78a5_256x240.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/eggplant/images/ui-icons_a8a3ae_256x240.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/eggplant/images/ui-icons_ebccce_256x240.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/eggplant/images/ui-icons_ffffff_256x240.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/eggplant/jquery-ui-1.8.18.custom.css
 create mode 100644 public/admin/js/osmplayer/jquery-ui/excite-bike/images/ui-bg_diagonals-small_25_c5ddfc_40x40.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/excite-bike/images/ui-bg_diagonals-thick_20_e69700_40x40.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/excite-bike/images/ui-bg_diagonals-thick_22_1484e6_40x40.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/excite-bike/images/ui-bg_diagonals-thick_26_2293f7_40x40.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/excite-bike/images/ui-bg_flat_0_e69700_40x100.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/excite-bike/images/ui-bg_flat_0_e6b900_40x100.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/excite-bike/images/ui-bg_highlight-soft_100_f9f9f9_1x100.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/excite-bike/images/ui-bg_inset-hard_100_eeeeee_1x100.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/excite-bike/images/ui-icons_0a82eb_256x240.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/excite-bike/images/ui-icons_0b54d5_256x240.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/excite-bike/images/ui-icons_5fa5e3_256x240.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/excite-bike/images/ui-icons_fcdd4a_256x240.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/excite-bike/images/ui-icons_ffffff_256x240.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/excite-bike/jquery-ui-1.8.18.custom.css
 create mode 100644 public/admin/js/osmplayer/jquery-ui/flick/images/ui-bg_flat_0_aaaaaa_40x100.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/flick/images/ui-bg_flat_0_eeeeee_40x100.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/flick/images/ui-bg_flat_55_ffffff_40x100.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/flick/images/ui-bg_flat_75_ffffff_40x100.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/flick/images/ui-bg_glass_65_ffffff_1x400.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/flick/images/ui-bg_highlight-soft_100_f6f6f6_1x100.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/flick/images/ui-bg_highlight-soft_25_0073ea_1x100.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/flick/images/ui-bg_highlight-soft_50_dddddd_1x100.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/flick/images/ui-icons_0073ea_256x240.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/flick/images/ui-icons_454545_256x240.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/flick/images/ui-icons_666666_256x240.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/flick/images/ui-icons_ff0084_256x240.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/flick/images/ui-icons_ffffff_256x240.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/flick/jquery-ui-1.8.18.custom.css
 create mode 100644 public/admin/js/osmplayer/jquery-ui/hot-sneaks/images/ui-bg_diagonals-small_40_db4865_40x40.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/hot-sneaks/images/ui-bg_diagonals-small_50_93c3cd_40x40.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/hot-sneaks/images/ui-bg_diagonals-small_50_ff3853_40x40.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/hot-sneaks/images/ui-bg_diagonals-small_75_ccd232_40x40.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/hot-sneaks/images/ui-bg_dots-medium_80_ffff38_4x4.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/hot-sneaks/images/ui-bg_dots-small_35_35414f_2x2.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/hot-sneaks/images/ui-bg_flat_75_ba9217_40x100.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/hot-sneaks/images/ui-bg_flat_75_ffffff_40x100.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/hot-sneaks/images/ui-bg_white-lines_85_f7f7ba_40x100.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/hot-sneaks/images/ui-icons_454545_256x240.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/hot-sneaks/images/ui-icons_88a206_256x240.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/hot-sneaks/images/ui-icons_c02669_256x240.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/hot-sneaks/images/ui-icons_e1e463_256x240.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/hot-sneaks/images/ui-icons_ffeb33_256x240.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/hot-sneaks/images/ui-icons_ffffff_256x240.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/hot-sneaks/jquery-ui-1.8.18.custom.css
 create mode 100644 public/admin/js/osmplayer/jquery-ui/mint-choc/images/ui-bg_flat_0_aaaaaa_40x100.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/mint-choc/images/ui-bg_glass_15_5f391b_1x400.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/mint-choc/images/ui-bg_gloss-wave_20_1c160d_500x100.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/mint-choc/images/ui-bg_gloss-wave_25_453326_500x100.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/mint-choc/images/ui-bg_gloss-wave_30_44372c_500x100.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/mint-choc/images/ui-bg_highlight-soft_20_201913_1x100.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/mint-choc/images/ui-bg_highlight-soft_20_619226_1x100.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/mint-choc/images/ui-bg_inset-soft_10_201913_1x100.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/mint-choc/images/ui-icons_222222_256x240.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/mint-choc/images/ui-icons_9bcc60_256x240.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/mint-choc/images/ui-icons_add978_256x240.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/mint-choc/images/ui-icons_e3ddc9_256x240.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/mint-choc/images/ui-icons_f1fd86_256x240.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/mint-choc/images/ui-icons_ffffff_256x240.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/mint-choc/jquery-ui-1.8.18.custom.css
 create mode 100644 public/admin/js/osmplayer/jquery-ui/overcast/images/ui-bg_flat_0_aaaaaa_40x100.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/overcast/images/ui-bg_flat_0_eeeeee_40x100.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/overcast/images/ui-bg_flat_55_c0402a_40x100.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/overcast/images/ui-bg_flat_55_eeeeee_40x100.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/overcast/images/ui-bg_glass_100_f8f8f8_1x400.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/overcast/images/ui-bg_glass_35_dddddd_1x400.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/overcast/images/ui-bg_glass_60_eeeeee_1x400.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/overcast/images/ui-bg_inset-hard_75_999999_1x100.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/overcast/images/ui-bg_inset-soft_50_c9c9c9_1x100.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/overcast/images/ui-icons_3383bb_256x240.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/overcast/images/ui-icons_454545_256x240.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/overcast/images/ui-icons_70b2e1_256x240.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/overcast/images/ui-icons_999999_256x240.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/overcast/images/ui-icons_fbc856_256x240.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/overcast/jquery-ui-1.8.18.custom.css
 create mode 100644 public/admin/js/osmplayer/jquery-ui/pepper-grinder/images/ui-bg_diagonal-maze_20_6e4f1c_10x10.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/pepper-grinder/images/ui-bg_diagonal-maze_40_000000_10x10.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/pepper-grinder/images/ui-bg_fine-grain_10_eceadf_60x60.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/pepper-grinder/images/ui-bg_fine-grain_10_f8f7f6_60x60.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/pepper-grinder/images/ui-bg_fine-grain_15_eceadf_60x60.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/pepper-grinder/images/ui-bg_fine-grain_15_f7f3de_60x60.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/pepper-grinder/images/ui-bg_fine-grain_15_ffffff_60x60.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/pepper-grinder/images/ui-bg_fine-grain_65_654b24_60x60.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/pepper-grinder/images/ui-bg_fine-grain_68_b83400_60x60.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/pepper-grinder/images/ui-icons_222222_256x240.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/pepper-grinder/images/ui-icons_3572ac_256x240.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/pepper-grinder/images/ui-icons_8c291d_256x240.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/pepper-grinder/images/ui-icons_b83400_256x240.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/pepper-grinder/images/ui-icons_fbdb93_256x240.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/pepper-grinder/images/ui-icons_ffffff_256x240.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/pepper-grinder/jquery-ui-1.8.18.custom.css
 create mode 100644 public/admin/js/osmplayer/jquery-ui/redmond/images/ui-bg_flat_0_aaaaaa_40x100.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/redmond/images/ui-bg_flat_55_fbec88_40x100.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/redmond/images/ui-bg_glass_75_d0e5f5_1x400.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/redmond/images/ui-bg_glass_85_dfeffc_1x400.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/redmond/images/ui-bg_glass_95_fef1ec_1x400.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/redmond/images/ui-bg_gloss-wave_55_5c9ccc_500x100.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/redmond/images/ui-bg_inset-hard_100_f5f8f9_1x100.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/redmond/images/ui-bg_inset-hard_100_fcfdfd_1x100.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/redmond/images/ui-icons_217bc0_256x240.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/redmond/images/ui-icons_2e83ff_256x240.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/redmond/images/ui-icons_469bdd_256x240.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/redmond/images/ui-icons_6da8d5_256x240.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/redmond/images/ui-icons_cd0a0a_256x240.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/redmond/images/ui-icons_d8e7f3_256x240.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/redmond/images/ui-icons_f9bd01_256x240.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/redmond/jquery-ui-1.8.18.custom.css
 create mode 100644 public/admin/js/osmplayer/jquery-ui/smoothness/images/ui-bg_flat_0_aaaaaa_40x100.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/smoothness/images/ui-bg_flat_75_ffffff_40x100.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/smoothness/images/ui-bg_glass_55_fbf9ee_1x400.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/smoothness/images/ui-bg_glass_65_ffffff_1x400.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/smoothness/images/ui-bg_glass_75_dadada_1x400.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/smoothness/images/ui-bg_glass_75_e6e6e6_1x400.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/smoothness/images/ui-bg_glass_95_fef1ec_1x400.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/smoothness/images/ui-bg_highlight-soft_75_cccccc_1x100.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/smoothness/images/ui-icons_222222_256x240.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/smoothness/images/ui-icons_2e83ff_256x240.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/smoothness/images/ui-icons_454545_256x240.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/smoothness/images/ui-icons_888888_256x240.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/smoothness/images/ui-icons_cd0a0a_256x240.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/smoothness/jquery-ui-1.8.18.custom.css
 create mode 100644 public/admin/js/osmplayer/jquery-ui/south-street/images/ui-bg_glass_55_fcf0ba_1x400.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/south-street/images/ui-bg_gloss-wave_100_ece8da_500x100.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/south-street/images/ui-bg_highlight-hard_100_f5f3e5_1x100.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/south-street/images/ui-bg_highlight-hard_100_fafaf4_1x100.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/south-street/images/ui-bg_highlight-hard_15_459e00_1x100.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/south-street/images/ui-bg_highlight-hard_95_cccccc_1x100.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/south-street/images/ui-bg_highlight-soft_25_67b021_1x100.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/south-street/images/ui-bg_highlight-soft_95_ffedad_1x100.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/south-street/images/ui-bg_inset-soft_15_2b2922_1x100.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/south-street/images/ui-icons_808080_256x240.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/south-street/images/ui-icons_847e71_256x240.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/south-street/images/ui-icons_8dc262_256x240.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/south-street/images/ui-icons_cd0a0a_256x240.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/south-street/images/ui-icons_eeeeee_256x240.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/south-street/images/ui-icons_ffffff_256x240.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/south-street/jquery-ui-1.8.18.custom.css
 create mode 100644 public/admin/js/osmplayer/jquery-ui/start/images/ui-bg_flat_55_999999_40x100.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/start/images/ui-bg_flat_75_aaaaaa_40x100.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/start/images/ui-bg_glass_45_0078ae_1x400.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/start/images/ui-bg_glass_55_f8da4e_1x400.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/start/images/ui-bg_glass_75_79c9ec_1x400.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/start/images/ui-bg_gloss-wave_45_e14f1c_500x100.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/start/images/ui-bg_gloss-wave_50_6eac2c_500x100.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/start/images/ui-bg_gloss-wave_75_2191c0_500x100.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/start/images/ui-bg_inset-hard_100_fcfdfd_1x100.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/start/images/ui-icons_0078ae_256x240.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/start/images/ui-icons_056b93_256x240.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/start/images/ui-icons_d8e7f3_256x240.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/start/images/ui-icons_e0fdff_256x240.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/start/images/ui-icons_f5e175_256x240.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/start/images/ui-icons_f7a50d_256x240.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/start/images/ui-icons_fcd113_256x240.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/start/jquery-ui-1.8.18.custom.css
 create mode 100644 public/admin/js/osmplayer/jquery-ui/sunny/images/ui-bg_diagonals-medium_20_d34d17_40x40.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/sunny/images/ui-bg_flat_30_cccccc_40x100.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/sunny/images/ui-bg_flat_50_5c5c5c_40x100.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/sunny/images/ui-bg_gloss-wave_45_817865_500x100.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/sunny/images/ui-bg_gloss-wave_60_fece2f_500x100.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/sunny/images/ui-bg_gloss-wave_70_ffdd57_500x100.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/sunny/images/ui-bg_gloss-wave_90_fff9e5_500x100.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/sunny/images/ui-bg_highlight-soft_100_feeebd_1x100.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/sunny/images/ui-bg_inset-soft_30_ffffff_1x100.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/sunny/images/ui-icons_3d3d3d_256x240.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/sunny/images/ui-icons_bd7b00_256x240.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/sunny/images/ui-icons_d19405_256x240.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/sunny/images/ui-icons_eb990f_256x240.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/sunny/images/ui-icons_ed9f26_256x240.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/sunny/images/ui-icons_fadc7a_256x240.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/sunny/images/ui-icons_ffe180_256x240.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/sunny/jquery-ui-1.8.18.custom.css
 create mode 100644 public/admin/js/osmplayer/jquery-ui/swanky-purse/images/ui-bg_diamond_10_4f4221_10x8.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/swanky-purse/images/ui-bg_diamond_20_372806_10x8.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/swanky-purse/images/ui-bg_diamond_25_675423_10x8.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/swanky-purse/images/ui-bg_diamond_25_d5ac5d_10x8.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/swanky-purse/images/ui-bg_diamond_8_261803_10x8.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/swanky-purse/images/ui-bg_diamond_8_443113_10x8.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/swanky-purse/images/ui-bg_flat_75_ddd4b0_40x100.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/swanky-purse/images/ui-bg_highlight-hard_65_fee4bd_1x100.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/swanky-purse/images/ui-icons_070603_256x240.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/swanky-purse/images/ui-icons_e8e2b5_256x240.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/swanky-purse/images/ui-icons_e9cd86_256x240.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/swanky-purse/images/ui-icons_efec9f_256x240.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/swanky-purse/images/ui-icons_f2ec64_256x240.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/swanky-purse/images/ui-icons_f9f2bd_256x240.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/swanky-purse/images/ui-icons_ff7519_256x240.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/swanky-purse/jquery-ui-1.8.18.custom.css
 create mode 100644 public/admin/js/osmplayer/jquery-ui/ui-darkness/images/ui-bg_flat_30_cccccc_40x100.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/ui-darkness/images/ui-bg_flat_50_5c5c5c_40x100.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/ui-darkness/images/ui-bg_glass_20_555555_1x400.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/ui-darkness/images/ui-bg_glass_40_0078a3_1x400.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/ui-darkness/images/ui-bg_glass_40_ffc73d_1x400.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/ui-darkness/images/ui-bg_gloss-wave_25_333333_500x100.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/ui-darkness/images/ui-bg_highlight-soft_80_eeeeee_1x100.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/ui-darkness/images/ui-bg_inset-soft_25_000000_1x100.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/ui-darkness/images/ui-bg_inset-soft_30_f58400_1x100.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/ui-darkness/images/ui-icons_222222_256x240.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/ui-darkness/images/ui-icons_4b8e0b_256x240.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/ui-darkness/images/ui-icons_a83300_256x240.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/ui-darkness/images/ui-icons_cccccc_256x240.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/ui-darkness/images/ui-icons_ffffff_256x240.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/ui-darkness/jquery-ui-1.8.18.custom.css
 create mode 100644 public/admin/js/osmplayer/jquery-ui/ui-lightness/images/ui-bg_diagonals-thick_18_b81900_40x40.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/ui-lightness/images/ui-bg_diagonals-thick_20_666666_40x40.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/ui-lightness/images/ui-bg_flat_10_000000_40x100.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/ui-lightness/images/ui-bg_glass_100_f6f6f6_1x400.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/ui-lightness/images/ui-bg_glass_100_fdf5ce_1x400.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/ui-lightness/images/ui-bg_glass_65_ffffff_1x400.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/ui-lightness/images/ui-bg_gloss-wave_35_f6a828_500x100.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/ui-lightness/images/ui-bg_highlight-soft_100_eeeeee_1x100.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/ui-lightness/images/ui-bg_highlight-soft_75_ffe45c_1x100.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/ui-lightness/images/ui-icons_222222_256x240.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/ui-lightness/images/ui-icons_228ef1_256x240.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/ui-lightness/images/ui-icons_ef8c08_256x240.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/ui-lightness/images/ui-icons_ffd27a_256x240.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/ui-lightness/images/ui-icons_ffffff_256x240.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/ui-lightness/jquery-ui-1.8.18.custom.css
 create mode 100644 public/admin/js/osmplayer/jquery-ui/vader/images/ui-bg_flat_0_aaaaaa_40x100.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/vader/images/ui-bg_glass_95_fef1ec_1x400.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/vader/images/ui-bg_gloss-wave_16_121212_500x100.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/vader/images/ui-bg_highlight-hard_15_888888_1x100.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/vader/images/ui-bg_highlight-hard_55_555555_1x100.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/vader/images/ui-bg_highlight-soft_35_adadad_1x100.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/vader/images/ui-bg_highlight-soft_60_dddddd_1x100.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/vader/images/ui-bg_inset-soft_15_121212_1x100.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/vader/images/ui-icons_666666_256x240.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/vader/images/ui-icons_aaaaaa_256x240.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/vader/images/ui-icons_bbbbbb_256x240.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/vader/images/ui-icons_c98000_256x240.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/vader/images/ui-icons_cccccc_256x240.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/vader/images/ui-icons_cd0a0a_256x240.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/vader/images/ui-icons_f29a00_256x240.png
 create mode 100644 public/admin/js/osmplayer/jquery-ui/vader/jquery-ui-1.8.18.custom.css
 create mode 100644 public/admin/js/osmplayer/logo.png
 create mode 100644 public/admin/js/osmplayer/makefile
 create mode 100644 public/admin/js/osmplayer/minplayer/README.md
 create mode 100644 public/admin/js/osmplayer/minplayer/bin/minplayer.compressed.js
 create mode 100644 public/admin/js/osmplayer/minplayer/bin/minplayer.js
 create mode 100755 public/admin/js/osmplayer/minplayer/flash/README.txt
 create mode 100644 public/admin/js/osmplayer/minplayer/flash/config/config.xml
 create mode 100644 public/admin/js/osmplayer/minplayer/flash/config/nocontrols.xml
 create mode 100644 public/admin/js/osmplayer/minplayer/flash/minplayer.swf
 create mode 100644 public/admin/js/osmplayer/minplayer/flash/skins/default/controlBar.swf
 create mode 100644 public/admin/js/osmplayer/minplayer/flash/skins/default/mediaPlayer.swf
 create mode 100644 public/admin/js/osmplayer/minplayer/flash/skins/default/playLoader.swf
 create mode 100644 public/admin/js/osmplayer/minplayer/images/bg_hr.png
 create mode 100644 public/admin/js/osmplayer/minplayer/images/blacktocat.png
 create mode 100644 public/admin/js/osmplayer/minplayer/images/icon_download.png
 create mode 100644 public/admin/js/osmplayer/minplayer/images/sprite_download.png
 create mode 100644 public/admin/js/osmplayer/minplayer/index.html
 create mode 100644 public/admin/js/osmplayer/minplayer/javascripts/main.js
 create mode 100644 public/admin/js/osmplayer/minplayer/makefile
 create mode 100644 public/admin/js/osmplayer/minplayer/params.json
 create mode 100644 public/admin/js/osmplayer/minplayer/src/minplayer.async.js
 create mode 100644 public/admin/js/osmplayer/minplayer/src/minplayer.compatibility.js
 create mode 100644 public/admin/js/osmplayer/minplayer/src/minplayer.controller.js
 create mode 100644 public/admin/js/osmplayer/minplayer/src/minplayer.display.js
 create mode 100644 public/admin/js/osmplayer/minplayer/src/minplayer.file.js
 create mode 100644 public/admin/js/osmplayer/minplayer/src/minplayer.flags.js
 create mode 100644 public/admin/js/osmplayer/minplayer/src/minplayer.image.js
 create mode 100644 public/admin/js/osmplayer/minplayer/src/minplayer.js
 create mode 100644 public/admin/js/osmplayer/minplayer/src/minplayer.playLoader.js
 create mode 100644 public/admin/js/osmplayer/minplayer/src/minplayer.players.base.js
 create mode 100644 public/admin/js/osmplayer/minplayer/src/minplayer.players.flash.js
 create mode 100644 public/admin/js/osmplayer/minplayer/src/minplayer.players.html5.js
 create mode 100644 public/admin/js/osmplayer/minplayer/src/minplayer.players.minplayer.js
 create mode 100644 public/admin/js/osmplayer/minplayer/src/minplayer.players.vimeo.js
 create mode 100644 public/admin/js/osmplayer/minplayer/src/minplayer.players.youtube.js
 create mode 100644 public/admin/js/osmplayer/minplayer/src/minplayer.plugin.js
 create mode 100644 public/admin/js/osmplayer/minplayer/stylesheets/pygment_trac.css
 create mode 100644 public/admin/js/osmplayer/minplayer/stylesheets/stylesheet.css
 create mode 100644 public/admin/js/osmplayer/minplayer/templates/default/css/images/loader.gif
 create mode 100644 public/admin/js/osmplayer/minplayer/templates/default/css/minplayer_default.css
 create mode 100644 public/admin/js/osmplayer/minplayer/templates/default/js/minplayer.controller.default.js
 create mode 100644 public/admin/js/osmplayer/minplayer/templates/default/js/minplayer.default.js
 create mode 100644 public/admin/js/osmplayer/minplayer/templates/default/js/minplayer.playLoader.default.js
 create mode 100644 public/admin/js/osmplayer/minplayer/templates/default/minplayer_default.tpl.php
 create mode 100644 public/admin/js/osmplayer/playlist.xml
 create mode 100644 public/admin/js/osmplayer/src/iscroll/README.md
 create mode 100755 public/admin/js/osmplayer/src/iscroll/bin/make-dist
 create mode 100644 public/admin/js/osmplayer/src/iscroll/examples/carousel/index.html
 create mode 100644 public/admin/js/osmplayer/src/iscroll/examples/check-dom-changes/index.html
 create mode 100644 public/admin/js/osmplayer/src/iscroll/examples/custom-scrollbar/index.html
 create mode 100644 public/admin/js/osmplayer/src/iscroll/examples/custom-scrollbar/scrollbar.css
 create mode 100644 public/admin/js/osmplayer/src/iscroll/examples/ender/ender.js
 create mode 100644 public/admin/js/osmplayer/src/iscroll/examples/ender/ender.min.js
 create mode 100644 public/admin/js/osmplayer/src/iscroll/examples/ender/index.html
 create mode 100644 public/admin/js/osmplayer/src/iscroll/examples/form-fields/index.html
 create mode 100644 public/admin/js/osmplayer/src/iscroll/examples/horizontal-scroll/index.html
 create mode 100644 public/admin/js/osmplayer/src/iscroll/examples/hover/index.html
 create mode 100644 public/admin/js/osmplayer/src/iscroll/examples/ios-perfect-scrollbar/index.html
 create mode 100644 public/admin/js/osmplayer/src/iscroll/examples/ios-perfect-scrollbar/scrollbar.css
 create mode 100644 public/admin/js/osmplayer/src/iscroll/examples/ios-perfect-scrollbar/scrollbar.png
 create mode 100644 public/admin/js/osmplayer/src/iscroll/examples/ipad/index.html
 create mode 100644 public/admin/js/osmplayer/src/iscroll/examples/lite/index.html
 create mode 100644 public/admin/js/osmplayer/src/iscroll/examples/pull-to-refresh/index.html
 create mode 100755 public/admin/js/osmplayer/src/iscroll/examples/pull-to-refresh/pull-icon@2x.png
 create mode 100644 public/admin/js/osmplayer/src/iscroll/examples/simple/index.html
 create mode 100644 public/admin/js/osmplayer/src/iscroll/examples/snap-to-element/index.html
 create mode 100644 public/admin/js/osmplayer/src/iscroll/examples/use-transition/index.html
 create mode 100644 public/admin/js/osmplayer/src/iscroll/examples/zoom/index.html
 create mode 100644 public/admin/js/osmplayer/src/iscroll/examples/zoom/iscroll.jpg
 create mode 100644 public/admin/js/osmplayer/src/iscroll/license.txt
 create mode 100644 public/admin/js/osmplayer/src/iscroll/package.json
 create mode 100644 public/admin/js/osmplayer/src/iscroll/src/ender.js
 create mode 100644 public/admin/js/osmplayer/src/iscroll/src/iscroll-lite.js
 create mode 100644 public/admin/js/osmplayer/src/iscroll/src/iscroll.js
 create mode 100644 public/admin/js/osmplayer/src/osmplayer.js
 create mode 100644 public/admin/js/osmplayer/src/osmplayer.pager.js
 create mode 100644 public/admin/js/osmplayer/src/osmplayer.parser.asx.js
 create mode 100644 public/admin/js/osmplayer/src/osmplayer.parser.default.js
 create mode 100644 public/admin/js/osmplayer/src/osmplayer.parser.rss.js
 create mode 100644 public/admin/js/osmplayer/src/osmplayer.parser.xspf.js
 create mode 100644 public/admin/js/osmplayer/src/osmplayer.parser.youtube.js
 create mode 100644 public/admin/js/osmplayer/src/osmplayer.playlist.js
 create mode 100644 public/admin/js/osmplayer/src/osmplayer.teaser.js
 create mode 100644 public/admin/js/osmplayer/templates/default/css/images/loader.gif
 create mode 100644 public/admin/js/osmplayer/templates/default/css/osmplayer_default.css
 create mode 100644 public/admin/js/osmplayer/templates/default/js/osmplayer.controller.default.js
 create mode 100644 public/admin/js/osmplayer/templates/default/js/osmplayer.default.js
 create mode 100644 public/admin/js/osmplayer/templates/default/js/osmplayer.pager.default.js
 create mode 100644 public/admin/js/osmplayer/templates/default/js/osmplayer.playLoader.default.js
 create mode 100644 public/admin/js/osmplayer/templates/default/js/osmplayer.playlist.default.js
 create mode 100644 public/admin/js/osmplayer/templates/default/js/osmplayer.teaser.default.js
 create mode 100644 public/admin/js/osmplayer/templates/default/osmplayer.default.js
 create mode 100644 public/admin/js/osmplayer/templates/default/osmplayer_default.tpl.php
 create mode 100644 public/admin/js/osmplayer/templates/simpleblack/css/images/busy.gif
 create mode 100644 public/admin/js/osmplayer/templates/simpleblack/css/images/mask.png
 create mode 100644 public/admin/js/osmplayer/templates/simpleblack/css/images/mediafront_audioslidebarbg.png
 create mode 100644 public/admin/js/osmplayer/templates/simpleblack/css/images/mediafront_back.png
 create mode 100644 public/admin/js/osmplayer/templates/simpleblack/css/images/mediafront_bigplay.png
 create mode 100644 public/admin/js/osmplayer/templates/simpleblack/css/images/mediafront_black40.png
 create mode 100644 public/admin/js/osmplayer/templates/simpleblack/css/images/mediafront_blue20.png
 create mode 100644 public/admin/js/osmplayer/templates/simpleblack/css/images/mediafront_buttonaudioslidebar.png
 create mode 100644 public/admin/js/osmplayer/templates/simpleblack/css/images/mediafront_buttoncontroler.png
 create mode 100644 public/admin/js/osmplayer/templates/simpleblack/css/images/mediafront_buttoninfo.png
 create mode 100644 public/admin/js/osmplayer/templates/simpleblack/css/images/mediafront_buttonpause.png
 create mode 100644 public/admin/js/osmplayer/templates/simpleblack/css/images/mediafront_buttonplay.png
 create mode 100644 public/admin/js/osmplayer/templates/simpleblack/css/images/mediafront_buttonresizescreen.png
 create mode 100644 public/admin/js/osmplayer/templates/simpleblack/css/images/mediafront_buttonsound.png
 create mode 100644 public/admin/js/osmplayer/templates/simpleblack/css/images/mediafront_close.png
 create mode 100644 public/admin/js/osmplayer/templates/simpleblack/css/images/mediafront_controlerbarBg.png
 create mode 100644 public/admin/js/osmplayer/templates/simpleblack/css/images/mediafront_forward.png
 create mode 100644 public/admin/js/osmplayer/templates/simpleblack/css/images/mediafront_infobox.png
 create mode 100644 public/admin/js/osmplayer/templates/simpleblack/css/images/mediafront_logo.png
 create mode 100644 public/admin/js/osmplayer/templates/simpleblack/css/images/mediafront_movie640x360.png
 create mode 100644 public/admin/js/osmplayer/templates/simpleblack/css/images/mediafront_moviethumb.png
 create mode 100644 public/admin/js/osmplayer/templates/simpleblack/css/images/mediafront_playlistbg.png
 create mode 100644 public/admin/js/osmplayer/templates/simpleblack/css/images/mediafront_playlistshadow.png
 create mode 100644 public/admin/js/osmplayer/templates/simpleblack/css/images/mediafront_playlisttitlebg.png
 create mode 100755 public/admin/js/osmplayer/templates/simpleblack/css/osmplayer_simpleblack.css
 create mode 100644 public/admin/js/osmplayer/templates/simpleblack/js/osmplayer.controller.simpleblack.js
 create mode 100644 public/admin/js/osmplayer/templates/simpleblack/js/osmplayer.playLoader.simpleblack.js
 create mode 100644 public/admin/js/osmplayer/templates/simpleblack/js/osmplayer.simpleblack.js
 create mode 100755 public/admin/js/osmplayer/templates/simpleblack/osmplayer_simpleblack.tpl.php
 create mode 100755 public/admin/js/osmplayer/version.txt

diff --git a/.gitattributes b/.gitattributes
index 1b319015d3b..cb0f840c572 100644
--- a/.gitattributes
+++ b/.gitattributes
@@ -2953,6 +2953,504 @@ public/admin/js/notify/index.html -text
 public/admin/js/notify/js/notification.js -text
 public/admin/js/notify/style/default.css -text
 public/admin/js/onload_utils.js -text
+public/admin/js/osmplayer/LICENSE.TXT -text
+public/admin/js/osmplayer/README.md -text
+public/admin/js/osmplayer/bin/osmplayer.compressed.js -text
+public/admin/js/osmplayer/bin/osmplayer.js -text
+public/admin/js/osmplayer/doc/files.html -text
+public/admin/js/osmplayer/doc/index.html -text
+public/admin/js/osmplayer/doc/symbols/_global_.html -text
+public/admin/js/osmplayer/doc/symbols/jQuery.fn.minplayer.html -text
+public/admin/js/osmplayer/doc/symbols/jQuery.fn.osmplayer.html -text
+public/admin/js/osmplayer/doc/symbols/minplayer.async.html -text
+public/admin/js/osmplayer/doc/symbols/minplayer.compatibility.html -text
+public/admin/js/osmplayer/doc/symbols/minplayer.display.html -text
+public/admin/js/osmplayer/doc/symbols/minplayer.file.html -text
+public/admin/js/osmplayer/doc/symbols/minplayer.flags.html -text
+public/admin/js/osmplayer/doc/symbols/minplayer.image.html -text
+public/admin/js/osmplayer/doc/symbols/minplayer.players.base.html -text
+public/admin/js/osmplayer/doc/symbols/minplayer.players.flash.html -text
+public/admin/js/osmplayer/doc/symbols/minplayer.players.html5.html -text
+public/admin/js/osmplayer/doc/symbols/minplayer.players.minplayer.html -text
+public/admin/js/osmplayer/doc/symbols/minplayer.players.vimeo.html -text
+public/admin/js/osmplayer/doc/symbols/minplayer.players.youtube.html -text
+public/admin/js/osmplayer/doc/symbols/minplayer.plugin.html -text
+public/admin/js/osmplayer/doc/symbols/osmplayer.html -text
+public/admin/js/osmplayer/doc/symbols/osmplayer.pager.html -text
+public/admin/js/osmplayer/doc/symbols/osmplayer.playlist.html -text
+public/admin/js/osmplayer/doc/symbols/osmplayer.scroll.html -text
+public/admin/js/osmplayer/doc/symbols/osmplayer.teaser.html -text
+public/admin/js/osmplayer/doc/symbols/src/minplayer_src_minplayer.async.js.html -text
+public/admin/js/osmplayer/doc/symbols/src/minplayer_src_minplayer.compatibility.js.html -text
+public/admin/js/osmplayer/doc/symbols/src/minplayer_src_minplayer.controller.js.html -text
+public/admin/js/osmplayer/doc/symbols/src/minplayer_src_minplayer.display.js.html -text
+public/admin/js/osmplayer/doc/symbols/src/minplayer_src_minplayer.file.js.html -text
+public/admin/js/osmplayer/doc/symbols/src/minplayer_src_minplayer.flags.js.html -text
+public/admin/js/osmplayer/doc/symbols/src/minplayer_src_minplayer.image.js.html -text
+public/admin/js/osmplayer/doc/symbols/src/minplayer_src_minplayer.js.html -text
+public/admin/js/osmplayer/doc/symbols/src/minplayer_src_minplayer.playLoader.js.html -text
+public/admin/js/osmplayer/doc/symbols/src/minplayer_src_minplayer.players.base.js.html -text
+public/admin/js/osmplayer/doc/symbols/src/minplayer_src_minplayer.players.flash.js.html -text
+public/admin/js/osmplayer/doc/symbols/src/minplayer_src_minplayer.players.html5.js.html -text
+public/admin/js/osmplayer/doc/symbols/src/minplayer_src_minplayer.players.minplayer.js.html -text
+public/admin/js/osmplayer/doc/symbols/src/minplayer_src_minplayer.players.vimeo.js.html -text
+public/admin/js/osmplayer/doc/symbols/src/minplayer_src_minplayer.players.youtube.js.html -text
+public/admin/js/osmplayer/doc/symbols/src/minplayer_src_minplayer.plugin.js.html -text
+public/admin/js/osmplayer/doc/symbols/src/src_osmplayer.js.html -text
+public/admin/js/osmplayer/doc/symbols/src/src_osmplayer.pager.js.html -text
+public/admin/js/osmplayer/doc/symbols/src/src_osmplayer.parser.asx.js.html -text
+public/admin/js/osmplayer/doc/symbols/src/src_osmplayer.parser.default.js.html -text
+public/admin/js/osmplayer/doc/symbols/src/src_osmplayer.parser.rss.js.html -text
+public/admin/js/osmplayer/doc/symbols/src/src_osmplayer.parser.xspf.js.html -text
+public/admin/js/osmplayer/doc/symbols/src/src_osmplayer.parser.youtube.js.html -text
+public/admin/js/osmplayer/doc/symbols/src/src_osmplayer.playlist.js.html -text
+public/admin/js/osmplayer/doc/symbols/src/src_osmplayer.scroll.js.html -text
+public/admin/js/osmplayer/doc/symbols/src/src_osmplayer.teaser.js.html -text
+public/admin/js/osmplayer/index.html -text
+public/admin/js/osmplayer/jquery-ui/Aristo/Aristo.css -text
+public/admin/js/osmplayer/jquery-ui/Aristo/images/bg_fallback.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/Aristo/images/icon_sprite.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/Aristo/images/progress_bar.gif -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/Aristo/images/slider_handles.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/Aristo/images/ui-icons_222222_256x240.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/Aristo/images/ui-icons_454545_256x240.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/README.md -text
+public/admin/js/osmplayer/jquery-ui/absolution/README.md -text
+public/admin/js/osmplayer/jquery-ui/absolution/absolution.blue.css -text
+public/admin/js/osmplayer/jquery-ui/absolution/images/selector.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/absolution/images/ui-icons_222222_256x240.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/absolution/images/ui-icons_eeeeee_256x240.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/absolution/images/ui-icons_ffffff_256x240.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/black-tie/images/ui-bg_diagonals-thick_8_333333_40x40.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/black-tie/images/ui-bg_flat_65_ffffff_40x100.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/black-tie/images/ui-bg_glass_40_111111_1x400.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/black-tie/images/ui-bg_glass_55_1c1c1c_1x400.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/black-tie/images/ui-bg_highlight-hard_100_f9f9f9_1x100.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/black-tie/images/ui-bg_highlight-hard_40_aaaaaa_1x100.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/black-tie/images/ui-bg_highlight-soft_50_aaaaaa_1x100.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/black-tie/images/ui-bg_inset-hard_45_cd0a0a_1x100.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/black-tie/images/ui-bg_inset-hard_55_ffeb80_1x100.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/black-tie/images/ui-icons_222222_256x240.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/black-tie/images/ui-icons_4ca300_256x240.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/black-tie/images/ui-icons_bbbbbb_256x240.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/black-tie/images/ui-icons_ededed_256x240.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/black-tie/images/ui-icons_ffcf29_256x240.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/black-tie/images/ui-icons_ffffff_256x240.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/black-tie/jquery-ui-1.8.18.custom.css -text
+public/admin/js/osmplayer/jquery-ui/cupertino/images/ui-bg_diagonals-thick_90_eeeeee_40x40.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/cupertino/images/ui-bg_flat_15_cd0a0a_40x100.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/cupertino/images/ui-bg_glass_100_e4f1fb_1x400.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/cupertino/images/ui-bg_glass_50_3baae3_1x400.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/cupertino/images/ui-bg_glass_80_d7ebf9_1x400.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/cupertino/images/ui-bg_highlight-hard_100_f2f5f7_1x100.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/cupertino/images/ui-bg_highlight-hard_70_000000_1x100.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/cupertino/images/ui-bg_highlight-soft_100_deedf7_1x100.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/cupertino/images/ui-bg_highlight-soft_25_ffef8f_1x100.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/cupertino/images/ui-icons_2694e8_256x240.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/cupertino/images/ui-icons_2e83ff_256x240.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/cupertino/images/ui-icons_3d80b3_256x240.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/cupertino/images/ui-icons_72a7cf_256x240.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/cupertino/images/ui-icons_ffffff_256x240.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/cupertino/jquery-ui-1.8.18.custom.css -text
+public/admin/js/osmplayer/jquery-ui/dark-hive/images/ui-bg_flat_30_cccccc_40x100.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/dark-hive/images/ui-bg_flat_50_5c5c5c_40x100.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/dark-hive/images/ui-bg_glass_40_ffc73d_1x400.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/dark-hive/images/ui-bg_highlight-hard_20_0972a5_1x100.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/dark-hive/images/ui-bg_highlight-soft_33_003147_1x100.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/dark-hive/images/ui-bg_highlight-soft_35_222222_1x100.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/dark-hive/images/ui-bg_highlight-soft_44_444444_1x100.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/dark-hive/images/ui-bg_highlight-soft_80_eeeeee_1x100.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/dark-hive/images/ui-bg_loop_25_000000_21x21.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/dark-hive/images/ui-icons_222222_256x240.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/dark-hive/images/ui-icons_4b8e0b_256x240.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/dark-hive/images/ui-icons_a83300_256x240.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/dark-hive/images/ui-icons_cccccc_256x240.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/dark-hive/images/ui-icons_ffffff_256x240.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/dark-hive/jquery-ui-1.8.18.custom.css -text
+public/admin/js/osmplayer/jquery-ui/dot-luv/images/ui-bg_diagonals-thick_15_0b3e6f_40x40.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/dot-luv/images/ui-bg_dots-medium_30_0b58a2_4x4.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/dot-luv/images/ui-bg_dots-small_20_333333_2x2.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/dot-luv/images/ui-bg_dots-small_30_a32d00_2x2.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/dot-luv/images/ui-bg_dots-small_40_00498f_2x2.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/dot-luv/images/ui-bg_flat_0_aaaaaa_40x100.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/dot-luv/images/ui-bg_flat_40_292929_40x100.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/dot-luv/images/ui-bg_gloss-wave_20_111111_500x100.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/dot-luv/images/ui-icons_00498f_256x240.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/dot-luv/images/ui-icons_98d2fb_256x240.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/dot-luv/images/ui-icons_9ccdfc_256x240.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/dot-luv/images/ui-icons_ffffff_256x240.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/dot-luv/jquery-ui-1.8.18.custom.css -text
+public/admin/js/osmplayer/jquery-ui/eggplant/images/ui-bg_flat_0_aaaaaa_40x100.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/eggplant/images/ui-bg_flat_0_eeeeee_40x100.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/eggplant/images/ui-bg_flat_55_994d53_40x100.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/eggplant/images/ui-bg_flat_55_fafafa_40x100.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/eggplant/images/ui-bg_gloss-wave_30_3d3644_500x100.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/eggplant/images/ui-bg_highlight-soft_100_dcd9de_1x100.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/eggplant/images/ui-bg_highlight-soft_100_eae6ea_1x100.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/eggplant/images/ui-bg_highlight-soft_25_30273a_1x100.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/eggplant/images/ui-bg_highlight-soft_45_5f5964_1x100.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/eggplant/images/ui-icons_454545_256x240.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/eggplant/images/ui-icons_734d99_256x240.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/eggplant/images/ui-icons_8d78a5_256x240.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/eggplant/images/ui-icons_a8a3ae_256x240.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/eggplant/images/ui-icons_ebccce_256x240.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/eggplant/images/ui-icons_ffffff_256x240.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/eggplant/jquery-ui-1.8.18.custom.css -text
+public/admin/js/osmplayer/jquery-ui/excite-bike/images/ui-bg_diagonals-small_25_c5ddfc_40x40.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/excite-bike/images/ui-bg_diagonals-thick_20_e69700_40x40.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/excite-bike/images/ui-bg_diagonals-thick_22_1484e6_40x40.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/excite-bike/images/ui-bg_diagonals-thick_26_2293f7_40x40.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/excite-bike/images/ui-bg_flat_0_e69700_40x100.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/excite-bike/images/ui-bg_flat_0_e6b900_40x100.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/excite-bike/images/ui-bg_highlight-soft_100_f9f9f9_1x100.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/excite-bike/images/ui-bg_inset-hard_100_eeeeee_1x100.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/excite-bike/images/ui-icons_0a82eb_256x240.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/excite-bike/images/ui-icons_0b54d5_256x240.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/excite-bike/images/ui-icons_5fa5e3_256x240.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/excite-bike/images/ui-icons_fcdd4a_256x240.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/excite-bike/images/ui-icons_ffffff_256x240.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/excite-bike/jquery-ui-1.8.18.custom.css -text
+public/admin/js/osmplayer/jquery-ui/flick/images/ui-bg_flat_0_aaaaaa_40x100.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/flick/images/ui-bg_flat_0_eeeeee_40x100.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/flick/images/ui-bg_flat_55_ffffff_40x100.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/flick/images/ui-bg_flat_75_ffffff_40x100.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/flick/images/ui-bg_glass_65_ffffff_1x400.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/flick/images/ui-bg_highlight-soft_100_f6f6f6_1x100.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/flick/images/ui-bg_highlight-soft_25_0073ea_1x100.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/flick/images/ui-bg_highlight-soft_50_dddddd_1x100.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/flick/images/ui-icons_0073ea_256x240.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/flick/images/ui-icons_454545_256x240.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/flick/images/ui-icons_666666_256x240.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/flick/images/ui-icons_ff0084_256x240.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/flick/images/ui-icons_ffffff_256x240.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/flick/jquery-ui-1.8.18.custom.css -text
+public/admin/js/osmplayer/jquery-ui/hot-sneaks/images/ui-bg_diagonals-small_40_db4865_40x40.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/hot-sneaks/images/ui-bg_diagonals-small_50_93c3cd_40x40.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/hot-sneaks/images/ui-bg_diagonals-small_50_ff3853_40x40.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/hot-sneaks/images/ui-bg_diagonals-small_75_ccd232_40x40.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/hot-sneaks/images/ui-bg_dots-medium_80_ffff38_4x4.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/hot-sneaks/images/ui-bg_dots-small_35_35414f_2x2.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/hot-sneaks/images/ui-bg_flat_75_ba9217_40x100.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/hot-sneaks/images/ui-bg_flat_75_ffffff_40x100.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/hot-sneaks/images/ui-bg_white-lines_85_f7f7ba_40x100.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/hot-sneaks/images/ui-icons_454545_256x240.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/hot-sneaks/images/ui-icons_88a206_256x240.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/hot-sneaks/images/ui-icons_c02669_256x240.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/hot-sneaks/images/ui-icons_e1e463_256x240.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/hot-sneaks/images/ui-icons_ffeb33_256x240.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/hot-sneaks/images/ui-icons_ffffff_256x240.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/hot-sneaks/jquery-ui-1.8.18.custom.css -text
+public/admin/js/osmplayer/jquery-ui/mint-choc/images/ui-bg_flat_0_aaaaaa_40x100.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/mint-choc/images/ui-bg_glass_15_5f391b_1x400.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/mint-choc/images/ui-bg_gloss-wave_20_1c160d_500x100.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/mint-choc/images/ui-bg_gloss-wave_25_453326_500x100.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/mint-choc/images/ui-bg_gloss-wave_30_44372c_500x100.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/mint-choc/images/ui-bg_highlight-soft_20_201913_1x100.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/mint-choc/images/ui-bg_highlight-soft_20_619226_1x100.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/mint-choc/images/ui-bg_inset-soft_10_201913_1x100.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/mint-choc/images/ui-icons_222222_256x240.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/mint-choc/images/ui-icons_9bcc60_256x240.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/mint-choc/images/ui-icons_add978_256x240.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/mint-choc/images/ui-icons_e3ddc9_256x240.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/mint-choc/images/ui-icons_f1fd86_256x240.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/mint-choc/images/ui-icons_ffffff_256x240.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/mint-choc/jquery-ui-1.8.18.custom.css -text
+public/admin/js/osmplayer/jquery-ui/overcast/images/ui-bg_flat_0_aaaaaa_40x100.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/overcast/images/ui-bg_flat_0_eeeeee_40x100.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/overcast/images/ui-bg_flat_55_c0402a_40x100.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/overcast/images/ui-bg_flat_55_eeeeee_40x100.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/overcast/images/ui-bg_glass_100_f8f8f8_1x400.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/overcast/images/ui-bg_glass_35_dddddd_1x400.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/overcast/images/ui-bg_glass_60_eeeeee_1x400.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/overcast/images/ui-bg_inset-hard_75_999999_1x100.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/overcast/images/ui-bg_inset-soft_50_c9c9c9_1x100.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/overcast/images/ui-icons_3383bb_256x240.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/overcast/images/ui-icons_454545_256x240.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/overcast/images/ui-icons_70b2e1_256x240.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/overcast/images/ui-icons_999999_256x240.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/overcast/images/ui-icons_fbc856_256x240.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/overcast/jquery-ui-1.8.18.custom.css -text
+public/admin/js/osmplayer/jquery-ui/pepper-grinder/images/ui-bg_diagonal-maze_20_6e4f1c_10x10.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/pepper-grinder/images/ui-bg_diagonal-maze_40_000000_10x10.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/pepper-grinder/images/ui-bg_fine-grain_10_eceadf_60x60.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/pepper-grinder/images/ui-bg_fine-grain_10_f8f7f6_60x60.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/pepper-grinder/images/ui-bg_fine-grain_15_eceadf_60x60.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/pepper-grinder/images/ui-bg_fine-grain_15_f7f3de_60x60.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/pepper-grinder/images/ui-bg_fine-grain_15_ffffff_60x60.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/pepper-grinder/images/ui-bg_fine-grain_65_654b24_60x60.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/pepper-grinder/images/ui-bg_fine-grain_68_b83400_60x60.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/pepper-grinder/images/ui-icons_222222_256x240.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/pepper-grinder/images/ui-icons_3572ac_256x240.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/pepper-grinder/images/ui-icons_8c291d_256x240.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/pepper-grinder/images/ui-icons_b83400_256x240.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/pepper-grinder/images/ui-icons_fbdb93_256x240.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/pepper-grinder/images/ui-icons_ffffff_256x240.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/pepper-grinder/jquery-ui-1.8.18.custom.css -text
+public/admin/js/osmplayer/jquery-ui/redmond/images/ui-bg_flat_0_aaaaaa_40x100.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/redmond/images/ui-bg_flat_55_fbec88_40x100.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/redmond/images/ui-bg_glass_75_d0e5f5_1x400.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/redmond/images/ui-bg_glass_85_dfeffc_1x400.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/redmond/images/ui-bg_glass_95_fef1ec_1x400.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/redmond/images/ui-bg_gloss-wave_55_5c9ccc_500x100.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/redmond/images/ui-bg_inset-hard_100_f5f8f9_1x100.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/redmond/images/ui-bg_inset-hard_100_fcfdfd_1x100.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/redmond/images/ui-icons_217bc0_256x240.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/redmond/images/ui-icons_2e83ff_256x240.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/redmond/images/ui-icons_469bdd_256x240.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/redmond/images/ui-icons_6da8d5_256x240.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/redmond/images/ui-icons_cd0a0a_256x240.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/redmond/images/ui-icons_d8e7f3_256x240.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/redmond/images/ui-icons_f9bd01_256x240.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/redmond/jquery-ui-1.8.18.custom.css -text
+public/admin/js/osmplayer/jquery-ui/smoothness/images/ui-bg_flat_0_aaaaaa_40x100.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/smoothness/images/ui-bg_flat_75_ffffff_40x100.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/smoothness/images/ui-bg_glass_55_fbf9ee_1x400.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/smoothness/images/ui-bg_glass_65_ffffff_1x400.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/smoothness/images/ui-bg_glass_75_dadada_1x400.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/smoothness/images/ui-bg_glass_75_e6e6e6_1x400.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/smoothness/images/ui-bg_glass_95_fef1ec_1x400.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/smoothness/images/ui-bg_highlight-soft_75_cccccc_1x100.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/smoothness/images/ui-icons_222222_256x240.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/smoothness/images/ui-icons_2e83ff_256x240.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/smoothness/images/ui-icons_454545_256x240.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/smoothness/images/ui-icons_888888_256x240.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/smoothness/images/ui-icons_cd0a0a_256x240.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/smoothness/jquery-ui-1.8.18.custom.css -text
+public/admin/js/osmplayer/jquery-ui/south-street/images/ui-bg_glass_55_fcf0ba_1x400.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/south-street/images/ui-bg_gloss-wave_100_ece8da_500x100.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/south-street/images/ui-bg_highlight-hard_100_f5f3e5_1x100.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/south-street/images/ui-bg_highlight-hard_100_fafaf4_1x100.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/south-street/images/ui-bg_highlight-hard_15_459e00_1x100.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/south-street/images/ui-bg_highlight-hard_95_cccccc_1x100.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/south-street/images/ui-bg_highlight-soft_25_67b021_1x100.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/south-street/images/ui-bg_highlight-soft_95_ffedad_1x100.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/south-street/images/ui-bg_inset-soft_15_2b2922_1x100.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/south-street/images/ui-icons_808080_256x240.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/south-street/images/ui-icons_847e71_256x240.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/south-street/images/ui-icons_8dc262_256x240.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/south-street/images/ui-icons_cd0a0a_256x240.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/south-street/images/ui-icons_eeeeee_256x240.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/south-street/images/ui-icons_ffffff_256x240.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/south-street/jquery-ui-1.8.18.custom.css -text
+public/admin/js/osmplayer/jquery-ui/start/images/ui-bg_flat_55_999999_40x100.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/start/images/ui-bg_flat_75_aaaaaa_40x100.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/start/images/ui-bg_glass_45_0078ae_1x400.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/start/images/ui-bg_glass_55_f8da4e_1x400.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/start/images/ui-bg_glass_75_79c9ec_1x400.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/start/images/ui-bg_gloss-wave_45_e14f1c_500x100.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/start/images/ui-bg_gloss-wave_50_6eac2c_500x100.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/start/images/ui-bg_gloss-wave_75_2191c0_500x100.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/start/images/ui-bg_inset-hard_100_fcfdfd_1x100.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/start/images/ui-icons_0078ae_256x240.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/start/images/ui-icons_056b93_256x240.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/start/images/ui-icons_d8e7f3_256x240.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/start/images/ui-icons_e0fdff_256x240.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/start/images/ui-icons_f5e175_256x240.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/start/images/ui-icons_f7a50d_256x240.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/start/images/ui-icons_fcd113_256x240.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/start/jquery-ui-1.8.18.custom.css -text
+public/admin/js/osmplayer/jquery-ui/sunny/images/ui-bg_diagonals-medium_20_d34d17_40x40.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/sunny/images/ui-bg_flat_30_cccccc_40x100.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/sunny/images/ui-bg_flat_50_5c5c5c_40x100.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/sunny/images/ui-bg_gloss-wave_45_817865_500x100.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/sunny/images/ui-bg_gloss-wave_60_fece2f_500x100.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/sunny/images/ui-bg_gloss-wave_70_ffdd57_500x100.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/sunny/images/ui-bg_gloss-wave_90_fff9e5_500x100.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/sunny/images/ui-bg_highlight-soft_100_feeebd_1x100.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/sunny/images/ui-bg_inset-soft_30_ffffff_1x100.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/sunny/images/ui-icons_3d3d3d_256x240.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/sunny/images/ui-icons_bd7b00_256x240.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/sunny/images/ui-icons_d19405_256x240.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/sunny/images/ui-icons_eb990f_256x240.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/sunny/images/ui-icons_ed9f26_256x240.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/sunny/images/ui-icons_fadc7a_256x240.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/sunny/images/ui-icons_ffe180_256x240.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/sunny/jquery-ui-1.8.18.custom.css -text
+public/admin/js/osmplayer/jquery-ui/swanky-purse/images/ui-bg_diamond_10_4f4221_10x8.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/swanky-purse/images/ui-bg_diamond_20_372806_10x8.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/swanky-purse/images/ui-bg_diamond_25_675423_10x8.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/swanky-purse/images/ui-bg_diamond_25_d5ac5d_10x8.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/swanky-purse/images/ui-bg_diamond_8_261803_10x8.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/swanky-purse/images/ui-bg_diamond_8_443113_10x8.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/swanky-purse/images/ui-bg_flat_75_ddd4b0_40x100.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/swanky-purse/images/ui-bg_highlight-hard_65_fee4bd_1x100.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/swanky-purse/images/ui-icons_070603_256x240.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/swanky-purse/images/ui-icons_e8e2b5_256x240.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/swanky-purse/images/ui-icons_e9cd86_256x240.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/swanky-purse/images/ui-icons_efec9f_256x240.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/swanky-purse/images/ui-icons_f2ec64_256x240.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/swanky-purse/images/ui-icons_f9f2bd_256x240.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/swanky-purse/images/ui-icons_ff7519_256x240.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/swanky-purse/jquery-ui-1.8.18.custom.css -text
+public/admin/js/osmplayer/jquery-ui/ui-darkness/images/ui-bg_flat_30_cccccc_40x100.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/ui-darkness/images/ui-bg_flat_50_5c5c5c_40x100.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/ui-darkness/images/ui-bg_glass_20_555555_1x400.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/ui-darkness/images/ui-bg_glass_40_0078a3_1x400.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/ui-darkness/images/ui-bg_glass_40_ffc73d_1x400.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/ui-darkness/images/ui-bg_gloss-wave_25_333333_500x100.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/ui-darkness/images/ui-bg_highlight-soft_80_eeeeee_1x100.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/ui-darkness/images/ui-bg_inset-soft_25_000000_1x100.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/ui-darkness/images/ui-bg_inset-soft_30_f58400_1x100.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/ui-darkness/images/ui-icons_222222_256x240.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/ui-darkness/images/ui-icons_4b8e0b_256x240.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/ui-darkness/images/ui-icons_a83300_256x240.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/ui-darkness/images/ui-icons_cccccc_256x240.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/ui-darkness/images/ui-icons_ffffff_256x240.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/ui-darkness/jquery-ui-1.8.18.custom.css -text
+public/admin/js/osmplayer/jquery-ui/ui-lightness/images/ui-bg_diagonals-thick_18_b81900_40x40.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/ui-lightness/images/ui-bg_diagonals-thick_20_666666_40x40.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/ui-lightness/images/ui-bg_flat_10_000000_40x100.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/ui-lightness/images/ui-bg_glass_100_f6f6f6_1x400.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/ui-lightness/images/ui-bg_glass_100_fdf5ce_1x400.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/ui-lightness/images/ui-bg_glass_65_ffffff_1x400.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/ui-lightness/images/ui-bg_gloss-wave_35_f6a828_500x100.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/ui-lightness/images/ui-bg_highlight-soft_100_eeeeee_1x100.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/ui-lightness/images/ui-bg_highlight-soft_75_ffe45c_1x100.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/ui-lightness/images/ui-icons_222222_256x240.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/ui-lightness/images/ui-icons_228ef1_256x240.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/ui-lightness/images/ui-icons_ef8c08_256x240.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/ui-lightness/images/ui-icons_ffd27a_256x240.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/ui-lightness/images/ui-icons_ffffff_256x240.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/ui-lightness/jquery-ui-1.8.18.custom.css -text
+public/admin/js/osmplayer/jquery-ui/vader/images/ui-bg_flat_0_aaaaaa_40x100.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/vader/images/ui-bg_glass_95_fef1ec_1x400.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/vader/images/ui-bg_gloss-wave_16_121212_500x100.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/vader/images/ui-bg_highlight-hard_15_888888_1x100.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/vader/images/ui-bg_highlight-hard_55_555555_1x100.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/vader/images/ui-bg_highlight-soft_35_adadad_1x100.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/vader/images/ui-bg_highlight-soft_60_dddddd_1x100.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/vader/images/ui-bg_inset-soft_15_121212_1x100.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/vader/images/ui-icons_666666_256x240.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/vader/images/ui-icons_aaaaaa_256x240.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/vader/images/ui-icons_bbbbbb_256x240.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/vader/images/ui-icons_c98000_256x240.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/vader/images/ui-icons_cccccc_256x240.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/vader/images/ui-icons_cd0a0a_256x240.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/vader/images/ui-icons_f29a00_256x240.png -text svneol=unset#unset
+public/admin/js/osmplayer/jquery-ui/vader/jquery-ui-1.8.18.custom.css -text
+public/admin/js/osmplayer/logo.png -text svneol=unset#unset
+public/admin/js/osmplayer/makefile -text
+public/admin/js/osmplayer/minplayer/README.md -text
+public/admin/js/osmplayer/minplayer/bin/minplayer.compressed.js -text
+public/admin/js/osmplayer/minplayer/bin/minplayer.js -text
+public/admin/js/osmplayer/minplayer/flash/README.txt -text
+public/admin/js/osmplayer/minplayer/flash/config/config.xml -text
+public/admin/js/osmplayer/minplayer/flash/config/nocontrols.xml -text
+public/admin/js/osmplayer/minplayer/flash/minplayer.swf -text svneol=unset#unset
+public/admin/js/osmplayer/minplayer/flash/skins/default/controlBar.swf -text svneol=unset#unset
+public/admin/js/osmplayer/minplayer/flash/skins/default/mediaPlayer.swf -text svneol=unset#unset
+public/admin/js/osmplayer/minplayer/flash/skins/default/playLoader.swf -text svneol=unset#unset
+public/admin/js/osmplayer/minplayer/images/bg_hr.png -text svneol=unset#unset
+public/admin/js/osmplayer/minplayer/images/blacktocat.png -text svneol=unset#unset
+public/admin/js/osmplayer/minplayer/images/icon_download.png -text svneol=unset#unset
+public/admin/js/osmplayer/minplayer/images/sprite_download.png -text svneol=unset#unset
+public/admin/js/osmplayer/minplayer/index.html -text
+public/admin/js/osmplayer/minplayer/javascripts/main.js -text
+public/admin/js/osmplayer/minplayer/makefile -text
+public/admin/js/osmplayer/minplayer/params.json -text
+public/admin/js/osmplayer/minplayer/src/minplayer.async.js -text
+public/admin/js/osmplayer/minplayer/src/minplayer.compatibility.js -text
+public/admin/js/osmplayer/minplayer/src/minplayer.controller.js -text
+public/admin/js/osmplayer/minplayer/src/minplayer.display.js -text
+public/admin/js/osmplayer/minplayer/src/minplayer.file.js -text
+public/admin/js/osmplayer/minplayer/src/minplayer.flags.js -text
+public/admin/js/osmplayer/minplayer/src/minplayer.image.js -text
+public/admin/js/osmplayer/minplayer/src/minplayer.js -text
+public/admin/js/osmplayer/minplayer/src/minplayer.playLoader.js -text
+public/admin/js/osmplayer/minplayer/src/minplayer.players.base.js -text
+public/admin/js/osmplayer/minplayer/src/minplayer.players.flash.js -text
+public/admin/js/osmplayer/minplayer/src/minplayer.players.html5.js -text
+public/admin/js/osmplayer/minplayer/src/minplayer.players.minplayer.js -text
+public/admin/js/osmplayer/minplayer/src/minplayer.players.vimeo.js -text
+public/admin/js/osmplayer/minplayer/src/minplayer.players.youtube.js -text
+public/admin/js/osmplayer/minplayer/src/minplayer.plugin.js -text
+public/admin/js/osmplayer/minplayer/stylesheets/pygment_trac.css -text
+public/admin/js/osmplayer/minplayer/stylesheets/stylesheet.css -text
+public/admin/js/osmplayer/minplayer/templates/default/css/images/loader.gif -text svneol=unset#unset
+public/admin/js/osmplayer/minplayer/templates/default/css/minplayer_default.css -text
+public/admin/js/osmplayer/minplayer/templates/default/js/minplayer.controller.default.js -text
+public/admin/js/osmplayer/minplayer/templates/default/js/minplayer.default.js -text
+public/admin/js/osmplayer/minplayer/templates/default/js/minplayer.playLoader.default.js -text
+public/admin/js/osmplayer/minplayer/templates/default/minplayer_default.tpl.php -text
+public/admin/js/osmplayer/playlist.xml -text
+public/admin/js/osmplayer/src/iscroll/README.md -text
+public/admin/js/osmplayer/src/iscroll/bin/make-dist -text
+public/admin/js/osmplayer/src/iscroll/examples/carousel/index.html -text
+public/admin/js/osmplayer/src/iscroll/examples/check-dom-changes/index.html -text
+public/admin/js/osmplayer/src/iscroll/examples/custom-scrollbar/index.html -text
+public/admin/js/osmplayer/src/iscroll/examples/custom-scrollbar/scrollbar.css -text
+public/admin/js/osmplayer/src/iscroll/examples/ender/ender.js -text
+public/admin/js/osmplayer/src/iscroll/examples/ender/ender.min.js -text
+public/admin/js/osmplayer/src/iscroll/examples/ender/index.html -text
+public/admin/js/osmplayer/src/iscroll/examples/form-fields/index.html -text
+public/admin/js/osmplayer/src/iscroll/examples/horizontal-scroll/index.html -text
+public/admin/js/osmplayer/src/iscroll/examples/hover/index.html -text
+public/admin/js/osmplayer/src/iscroll/examples/ios-perfect-scrollbar/index.html -text
+public/admin/js/osmplayer/src/iscroll/examples/ios-perfect-scrollbar/scrollbar.css -text
+public/admin/js/osmplayer/src/iscroll/examples/ios-perfect-scrollbar/scrollbar.png -text svneol=unset#unset
+public/admin/js/osmplayer/src/iscroll/examples/ipad/index.html -text
+public/admin/js/osmplayer/src/iscroll/examples/lite/index.html -text
+public/admin/js/osmplayer/src/iscroll/examples/pull-to-refresh/index.html -text
+public/admin/js/osmplayer/src/iscroll/examples/pull-to-refresh/pull-icon@2x.png -text svneol=unset#unset
+public/admin/js/osmplayer/src/iscroll/examples/simple/index.html -text
+public/admin/js/osmplayer/src/iscroll/examples/snap-to-element/index.html -text
+public/admin/js/osmplayer/src/iscroll/examples/use-transition/index.html -text
+public/admin/js/osmplayer/src/iscroll/examples/zoom/index.html -text
+public/admin/js/osmplayer/src/iscroll/examples/zoom/iscroll.jpg -text svneol=unset#unset
+public/admin/js/osmplayer/src/iscroll/license.txt -text
+public/admin/js/osmplayer/src/iscroll/package.json -text
+public/admin/js/osmplayer/src/iscroll/src/ender.js -text
+public/admin/js/osmplayer/src/iscroll/src/iscroll-lite.js -text
+public/admin/js/osmplayer/src/iscroll/src/iscroll.js -text
+public/admin/js/osmplayer/src/osmplayer.js -text
+public/admin/js/osmplayer/src/osmplayer.pager.js -text
+public/admin/js/osmplayer/src/osmplayer.parser.asx.js -text
+public/admin/js/osmplayer/src/osmplayer.parser.default.js -text
+public/admin/js/osmplayer/src/osmplayer.parser.rss.js -text
+public/admin/js/osmplayer/src/osmplayer.parser.xspf.js -text
+public/admin/js/osmplayer/src/osmplayer.parser.youtube.js -text
+public/admin/js/osmplayer/src/osmplayer.playlist.js -text
+public/admin/js/osmplayer/src/osmplayer.teaser.js -text
+public/admin/js/osmplayer/templates/default/css/images/loader.gif -text svneol=unset#unset
+public/admin/js/osmplayer/templates/default/css/osmplayer_default.css -text
+public/admin/js/osmplayer/templates/default/js/osmplayer.controller.default.js -text
+public/admin/js/osmplayer/templates/default/js/osmplayer.default.js -text
+public/admin/js/osmplayer/templates/default/js/osmplayer.pager.default.js -text
+public/admin/js/osmplayer/templates/default/js/osmplayer.playLoader.default.js -text
+public/admin/js/osmplayer/templates/default/js/osmplayer.playlist.default.js -text
+public/admin/js/osmplayer/templates/default/js/osmplayer.teaser.default.js -text
+public/admin/js/osmplayer/templates/default/osmplayer.default.js -text
+public/admin/js/osmplayer/templates/default/osmplayer_default.tpl.php -text
+public/admin/js/osmplayer/templates/simpleblack/css/images/busy.gif -text svneol=unset#unset
+public/admin/js/osmplayer/templates/simpleblack/css/images/mask.png -text svneol=unset#unset
+public/admin/js/osmplayer/templates/simpleblack/css/images/mediafront_audioslidebarbg.png -text svneol=unset#unset
+public/admin/js/osmplayer/templates/simpleblack/css/images/mediafront_back.png -text svneol=unset#unset
+public/admin/js/osmplayer/templates/simpleblack/css/images/mediafront_bigplay.png -text svneol=unset#unset
+public/admin/js/osmplayer/templates/simpleblack/css/images/mediafront_black40.png -text svneol=unset#unset
+public/admin/js/osmplayer/templates/simpleblack/css/images/mediafront_blue20.png -text svneol=unset#unset
+public/admin/js/osmplayer/templates/simpleblack/css/images/mediafront_buttonaudioslidebar.png -text svneol=unset#unset
+public/admin/js/osmplayer/templates/simpleblack/css/images/mediafront_buttoncontroler.png -text svneol=unset#unset
+public/admin/js/osmplayer/templates/simpleblack/css/images/mediafront_buttoninfo.png -text svneol=unset#unset
+public/admin/js/osmplayer/templates/simpleblack/css/images/mediafront_buttonpause.png -text svneol=unset#unset
+public/admin/js/osmplayer/templates/simpleblack/css/images/mediafront_buttonplay.png -text svneol=unset#unset
+public/admin/js/osmplayer/templates/simpleblack/css/images/mediafront_buttonresizescreen.png -text svneol=unset#unset
+public/admin/js/osmplayer/templates/simpleblack/css/images/mediafront_buttonsound.png -text svneol=unset#unset
+public/admin/js/osmplayer/templates/simpleblack/css/images/mediafront_close.png -text svneol=unset#unset
+public/admin/js/osmplayer/templates/simpleblack/css/images/mediafront_controlerbarBg.png -text svneol=unset#unset
+public/admin/js/osmplayer/templates/simpleblack/css/images/mediafront_forward.png -text svneol=unset#unset
+public/admin/js/osmplayer/templates/simpleblack/css/images/mediafront_infobox.png -text svneol=unset#unset
+public/admin/js/osmplayer/templates/simpleblack/css/images/mediafront_logo.png -text svneol=unset#unset
+public/admin/js/osmplayer/templates/simpleblack/css/images/mediafront_movie640x360.png -text svneol=unset#unset
+public/admin/js/osmplayer/templates/simpleblack/css/images/mediafront_moviethumb.png -text svneol=unset#unset
+public/admin/js/osmplayer/templates/simpleblack/css/images/mediafront_playlistbg.png -text svneol=unset#unset
+public/admin/js/osmplayer/templates/simpleblack/css/images/mediafront_playlistshadow.png -text svneol=unset#unset
+public/admin/js/osmplayer/templates/simpleblack/css/images/mediafront_playlisttitlebg.png -text svneol=unset#unset
+public/admin/js/osmplayer/templates/simpleblack/css/osmplayer_simpleblack.css -text
+public/admin/js/osmplayer/templates/simpleblack/js/osmplayer.controller.simpleblack.js -text
+public/admin/js/osmplayer/templates/simpleblack/js/osmplayer.playLoader.simpleblack.js -text
+public/admin/js/osmplayer/templates/simpleblack/js/osmplayer.simpleblack.js -text
+public/admin/js/osmplayer/templates/simpleblack/osmplayer_simpleblack.tpl.php -text
+public/admin/js/osmplayer/version.txt -text
 public/admin/js/plan_acces_conception.js -text
 public/admin/js/prettyphoto/README -text
 public/admin/js/prettyphoto/css/prettyPhoto.css -text
diff --git a/doc/extern_libs.txt b/doc/extern_libs.txt
index b25cb9da2c9..f22356a18b8 100644
--- a/doc/extern_libs.txt
+++ b/doc/extern_libs.txt
@@ -29,6 +29,7 @@
 | FPDF                                | MIT like                    |               |                                   |                  | http://www.fpdf.org/                                                                                                           |
 | Nuvola icons                        | LGPL                        |               | icônes                            |                  | http://www.icon-king.com/projects/nuvola/                                                                                      |
 | JQuery PlaceHolder plugin           | MIT/GPL                     |               | compat IE                         |                  | https://github.com/mathiasbynens/jquery-placeholder                                                                            |
-| Monocle                             | MIT                         |               | lecture epub                      |                  | https://github.com/joseph/Monocle                                                                                                                               |
+| OSM Player                          | GPL v3                      |               | player multimedia                 |                  | http://mediafront.org/osmplayer/index.html#.UFB0Q3lOpw4                                                                        |
+
 
 
diff --git a/public/admin/js/osmplayer/LICENSE.TXT b/public/admin/js/osmplayer/LICENSE.TXT
new file mode 100644
index 00000000000..da219970274
--- /dev/null
+++ b/public/admin/js/osmplayer/LICENSE.TXT
@@ -0,0 +1,25 @@
+/**
+ *  Copyright (c) 2010 Alethia Inc,
+ *  http://www.alethia-inc.com
+ *  Developed by Travis Tidwell | travist at alethia-inc.com 
+ *
+ *  License:  GPL version 3.
+ *
+ *  Permission is hereby granted, free of charge, to any person obtaining a copy
+ *  of this software and associated documentation files (the "Software"), to deal
+ *  in the Software without restriction, including without limitation the rights
+ *  to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ *  copies of the Software, and to permit persons to whom the Software is
+ *  furnished to do so, subject to the following conditions:
+ *  
+ *  The above copyright notice and this permission notice shall be included in
+ *  all copies or substantial portions of the Software.
+
+ *  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ *  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ *  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ *  AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ *  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ *  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ *  THE SOFTWARE.
+ */
\ No newline at end of file
diff --git a/public/admin/js/osmplayer/README.md b/public/admin/js/osmplayer/README.md
new file mode 100644
index 00000000000..91d58f8d166
--- /dev/null
+++ b/public/admin/js/osmplayer/README.md
@@ -0,0 +1,11 @@
+Open Standard Media Player
+=====================================
+
+ABOUT:
+   The open standard media player is an open source GPL - license free - full featured media player written in jQuery.
+   It was designed to dynamically play any media thrown it's way, whether it be HTML5 video - Flash video - Audio, etc.
+
+   Although this media player was designed to be used within a Content Management environment, such as Drupal, you can
+   use this player for other applications outside of a CMS.
+
+ENJOY!
diff --git a/public/admin/js/osmplayer/bin/osmplayer.compressed.js b/public/admin/js/osmplayer/bin/osmplayer.compressed.js
new file mode 100644
index 00000000000..c7984bd11d3
--- /dev/null
+++ b/public/admin/js/osmplayer/bin/osmplayer.compressed.js
@@ -0,0 +1,187 @@
+(function(){var a=Math,b=/webkit/i.test(navigator.appVersion)?"webkit":/firefox/i.test(navigator.userAgent)?"Moz":/trident/i.test(navigator.userAgent)?"ms":"opera"in window?"O":"",c=/android/gi.test(navigator.appVersion),d=/iphone|ipad/gi.test(navigator.appVersion),e=/playbook/gi.test(navigator.appVersion),h=/hp-tablet/gi.test(navigator.appVersion),i="WebKitCSSMatrix"in window&&"m11"in new WebKitCSSMatrix,j="ontouchstart"in window&&!h,k=b+"Transform"in document.documentElement.style,m=d||e,s=window.requestAnimationFrame||
+window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame||function(a){return setTimeout(a,1)},x=window.cancelRequestAnimationFrame||window.webkitCancelAnimationFrame||window.webkitCancelRequestAnimationFrame||window.mozCancelRequestAnimationFrame||window.oCancelRequestAnimationFrame||window.msCancelRequestAnimationFrame||clearTimeout,t="onorientationchange"in window?"orientationchange":"resize",u=j?"touchstart":"mousedown",
+p=j?"touchmove":"mousemove",q=j?"touchend":"mouseup",r=j?"touchcancel":"mouseup",v="Moz"==b?"DOMMouseScroll":"mousewheel",n="translate"+(i?"3d(":"("),o=i?",0)":")",e=function(a,f){var g=this,e=document,w;g.wrapper="object"==typeof a?a:e.getElementById(a);g.wrapper.style.overflow="hidden";g.scroller=g.wrapper.children[0];g.options={hScroll:!0,vScroll:!0,x:0,y:0,bounce:!0,bounceLock:!1,momentum:!0,lockDirection:!0,useTransform:!0,useTransition:!1,topOffset:0,checkDOMChanges:!1,hScrollbar:!0,vScrollbar:!0,
+fixedScrollbar:c,hideScrollbar:d,fadeScrollbar:d&&i,scrollbarClass:"",zoom:!1,zoomMin:1,zoomMax:4,doubleTapZoom:2,wheelAction:"scroll",snap:!1,snapThreshold:1,onRefresh:null,onBeforeScrollStart:function(a){a.preventDefault()},onScrollStart:null,onBeforeScrollMove:null,onScrollMove:null,onBeforeScrollEnd:null,onScrollEnd:null,onTouchEnd:null,onDestroy:null,onZoomStart:null,onZoom:null,onZoomEnd:null};for(w in f)g.options[w]=f[w];g.x=g.options.x;g.y=g.options.y;g.options.useTransform=k?g.options.useTransform:
+!1;g.options.hScrollbar=g.options.hScroll&&g.options.hScrollbar;g.options.vScrollbar=g.options.vScroll&&g.options.vScrollbar;g.options.zoom=g.options.useTransform&&g.options.zoom;g.options.useTransition=m&&g.options.useTransition;g.options.zoom&&c&&(n="translate(",o=")");g.scroller.style[b+"TransitionProperty"]=g.options.useTransform?"-"+b.toLowerCase()+"-transform":"top left";g.scroller.style[b+"TransitionDuration"]="0";g.scroller.style[b+"TransformOrigin"]="0 0";g.options.useTransition&&(g.scroller.style[b+
+"TransitionTimingFunction"]="cubic-bezier(0.33,0.66,0.66,1)");g.options.useTransform?g.scroller.style[b+"Transform"]=n+g.x+"px,"+g.y+"px"+o:g.scroller.style.cssText+=";position:absolute;top:"+g.y+"px;left:"+g.x+"px";g.options.useTransition&&(g.options.fixedScrollbar=!0);g.refresh();g._bind(t,window);g._bind(u);j||(g._bind("mouseout",g.wrapper),"none"!=g.options.wheelAction&&g._bind(v));g.options.checkDOMChanges&&(g.checkDOMTime=setInterval(function(){g._checkDOMChanges()},500))};e.prototype={enabled:!0,
+x:0,y:0,steps:[],scale:1,currPageX:0,currPageY:0,pagesX:[],pagesY:[],aniTime:null,wheelZoomCount:0,handleEvent:function(a){switch(a.type){case u:if(!j&&0!==a.button)break;this._start(a);break;case p:this._move(a);break;case q:case r:this._end(a);break;case t:this._resize();break;case v:this._wheel(a);break;case "mouseout":this._mouseout(a);break;case "webkitTransitionEnd":this._transitionEnd(a)}},_checkDOMChanges:function(){!this.moved&&(!this.zoomed&&!(this.animating||this.scrollerW==this.scroller.offsetWidth*
+this.scale&&this.scrollerH==this.scroller.offsetHeight*this.scale))&&this.refresh()},_scrollbar:function(c){var f=document,g;this[c+"Scrollbar"]?(this[c+"ScrollbarWrapper"]||(g=f.createElement("div"),this.options.scrollbarClass?g.className=this.options.scrollbarClass+c.toUpperCase():g.style.cssText="position:absolute;z-index:100;"+("h"==c?"height:7px;bottom:1px;left:2px;right:"+(this.vScrollbar?"7":"2")+"px":"width:7px;bottom:"+(this.hScrollbar?"7":"2")+"px;top:2px;right:1px"),g.style.cssText+=";pointer-events:none;-"+
+b+"-transition-property:opacity;-"+b+"-transition-duration:"+(this.options.fadeScrollbar?"350ms":"0")+";overflow:hidden;opacity:"+(this.options.hideScrollbar?"0":"1"),this.wrapper.appendChild(g),this[c+"ScrollbarWrapper"]=g,g=f.createElement("div"),this.options.scrollbarClass||(g.style.cssText="position:absolute;z-index:100;background:rgba(0,0,0,0.5);border:1px solid rgba(255,255,255,0.9);-"+b+"-background-clip:padding-box;-"+b+"-box-sizing:border-box;"+("h"==c?"height:100%":"width:100%")+";-"+b+
+"-border-radius:3px;border-radius:3px"),g.style.cssText+=";pointer-events:none;-"+b+"-transition-property:-"+b+"-transform;-"+b+"-transition-timing-function:cubic-bezier(0.33,0.66,0.66,1);-"+b+"-transition-duration:0;-"+b+"-transform:"+n+"0,0"+o,this.options.useTransition&&(g.style.cssText+=";-"+b+"-transition-timing-function:cubic-bezier(0.33,0.66,0.66,1)"),this[c+"ScrollbarWrapper"].appendChild(g),this[c+"ScrollbarIndicator"]=g),"h"==c?(this.hScrollbarSize=this.hScrollbarWrapper.clientWidth,this.hScrollbarIndicatorSize=
+a.max(this.hScrollbarSize*this.hScrollbarSize/this.scrollerW>>0,8),this.hScrollbarIndicator.style.width=this.hScrollbarIndicatorSize+"px",this.hScrollbarMaxScroll=this.hScrollbarSize-this.hScrollbarIndicatorSize,this.hScrollbarProp=this.hScrollbarMaxScroll/this.maxScrollX):(this.vScrollbarSize=this.vScrollbarWrapper.clientHeight,this.vScrollbarIndicatorSize=a.max(this.vScrollbarSize*this.vScrollbarSize/this.scrollerH>>0,8),this.vScrollbarIndicator.style.height=this.vScrollbarIndicatorSize+"px",this.vScrollbarMaxScroll=
+this.vScrollbarSize-this.vScrollbarIndicatorSize,this.vScrollbarProp=this.vScrollbarMaxScroll/this.maxScrollY),this._scrollbarPos(c,!0)):this[c+"ScrollbarWrapper"]&&(k&&(this[c+"ScrollbarIndicator"].style[b+"Transform"]=""),this[c+"ScrollbarWrapper"].parentNode.removeChild(this[c+"ScrollbarWrapper"]),this[c+"ScrollbarWrapper"]=null,this[c+"ScrollbarIndicator"]=null)},_resize:function(){var a=this;setTimeout(function(){a.refresh()},c?200:0)},_pos:function(a,c){a=this.hScroll?a:0;c=this.vScroll?c:0;
+this.options.useTransform?this.scroller.style[b+"Transform"]=n+a+"px,"+c+"px"+o+" scale("+this.scale+")":(a>>=0,c>>=0,this.scroller.style.left=a+"px",this.scroller.style.top=c+"px");this.x=a;this.y=c;this._scrollbarPos("h");this._scrollbarPos("v")},_scrollbarPos:function(a,c){var g="h"==a?this.x:this.y;this[a+"Scrollbar"]&&(g*=this[a+"ScrollbarProp"],0>g?(this.options.fixedScrollbar||(g=this[a+"ScrollbarIndicatorSize"]+(3*g>>0),8>g&&(g=8),this[a+"ScrollbarIndicator"].style["h"==a?"width":"height"]=
+g+"px"),g=0):g>this[a+"ScrollbarMaxScroll"]&&(this.options.fixedScrollbar?g=this[a+"ScrollbarMaxScroll"]:(g=this[a+"ScrollbarIndicatorSize"]-(3*(g-this[a+"ScrollbarMaxScroll"])>>0),8>g&&(g=8),this[a+"ScrollbarIndicator"].style["h"==a?"width":"height"]=g+"px",g=this[a+"ScrollbarMaxScroll"]+(this[a+"ScrollbarIndicatorSize"]-g))),this[a+"ScrollbarWrapper"].style[b+"TransitionDelay"]="0",this[a+"ScrollbarWrapper"].style.opacity=c&&this.options.hideScrollbar?"0":"1",this[a+"ScrollbarIndicator"].style[b+
+"Transform"]=n+("h"==a?g+"px,0":"0,"+g+"px")+o)},_start:function(c){var f=j?c.touches[0]:c,g,d;if(this.enabled){this.options.onBeforeScrollStart&&this.options.onBeforeScrollStart.call(this,c);(this.options.useTransition||this.options.zoom)&&this._transitionTime(0);this.zoomed=this.animating=this.moved=!1;this.dirY=this.dirX=this.absDistY=this.absDistX=this.distY=this.distX=0;this.options.zoom&&(j&&1<c.touches.length)&&(d=a.abs(c.touches[0].pageX-c.touches[1].pageX),g=a.abs(c.touches[0].pageY-c.touches[1].pageY),
+this.touchesDistStart=a.sqrt(d*d+g*g),this.originX=a.abs(c.touches[0].pageX+c.touches[1].pageX-2*this.wrapperOffsetLeft)/2-this.x,this.originY=a.abs(c.touches[0].pageY+c.touches[1].pageY-2*this.wrapperOffsetTop)/2-this.y,this.options.onZoomStart&&this.options.onZoomStart.call(this,c));if(this.options.momentum&&(this.options.useTransform?(g=getComputedStyle(this.scroller,null)[b+"Transform"].replace(/[^0-9-.,]/g,"").split(","),d=1*g[4],g=1*g[5]):(d=1*getComputedStyle(this.scroller,null).left.replace(/[^0-9-]/g,
+""),g=1*getComputedStyle(this.scroller,null).top.replace(/[^0-9-]/g,"")),d!=this.x||g!=this.y))this.options.useTransition?this._unbind("webkitTransitionEnd"):x(this.aniTime),this.steps=[],this._pos(d,g);this.absStartX=this.x;this.absStartY=this.y;this.startX=this.x;this.startY=this.y;this.pointX=f.pageX;this.pointY=f.pageY;this.startTime=c.timeStamp||Date.now();this.options.onScrollStart&&this.options.onScrollStart.call(this,c);this._bind(p);this._bind(q);this._bind(r)}},_move:function(c){var f=j?
+c.touches[0]:c,g=f.pageX-this.pointX,d=f.pageY-this.pointY,e=this.x+g,h=this.y+d,i=c.timeStamp||Date.now();this.options.onBeforeScrollMove&&this.options.onBeforeScrollMove.call(this,c);if(this.options.zoom&&j&&1<c.touches.length)e=a.abs(c.touches[0].pageX-c.touches[1].pageX),h=a.abs(c.touches[0].pageY-c.touches[1].pageY),this.touchesDist=a.sqrt(e*e+h*h),this.zoomed=!0,f=1/this.touchesDistStart*this.touchesDist*this.scale,f<this.options.zoomMin?f=0.5*this.options.zoomMin*Math.pow(2,f/this.options.zoomMin):
+f>this.options.zoomMax&&(f=2*this.options.zoomMax*Math.pow(0.5,this.options.zoomMax/f)),this.lastScale=f/this.scale,e=this.originX-this.originX*this.lastScale+this.x,h=this.originY-this.originY*this.lastScale+this.y,this.scroller.style[b+"Transform"]=n+e+"px,"+h+"px"+o+" scale("+f+")",this.options.onZoom&&this.options.onZoom.call(this,c);else{this.pointX=f.pageX;this.pointY=f.pageY;if(0<e||e<this.maxScrollX)e=this.options.bounce?this.x+g/2:0<=e||0<=this.maxScrollX?0:this.maxScrollX;if(h>this.minScrollY||
+h<this.maxScrollY)h=this.options.bounce?this.y+d/2:h>=this.minScrollY||0<=this.maxScrollY?this.minScrollY:this.maxScrollY;this.distX+=g;this.distY+=d;this.absDistX=a.abs(this.distX);this.absDistY=a.abs(this.distY);6>this.absDistX&&6>this.absDistY||(this.options.lockDirection&&(this.absDistX>this.absDistY+5?(h=this.y,d=0):this.absDistY>this.absDistX+5&&(e=this.x,g=0)),this.moved=!0,this._pos(e,h),this.dirX=0<g?-1:0>g?1:0,this.dirY=0<d?-1:0>d?1:0,300<i-this.startTime&&(this.startTime=i,this.startX=
+this.x,this.startY=this.y),this.options.onScrollMove&&this.options.onScrollMove.call(this,c))}},_end:function(c){if(!(j&&0!=c.touches.length)){var f=this,g=j?c.changedTouches[0]:c,d,e,h={dist:0,time:0},i={dist:0,time:0},k=(c.timeStamp||Date.now())-f.startTime,l=f.x,m=f.y;f._unbind(p);f._unbind(q);f._unbind(r);f.options.onBeforeScrollEnd&&f.options.onBeforeScrollEnd.call(f,c);if(f.zoomed)l=f.scale*f.lastScale,l=Math.max(f.options.zoomMin,l),l=Math.min(f.options.zoomMax,l),f.lastScale=l/f.scale,f.scale=
+l,f.x=f.originX-f.originX*f.lastScale+f.x,f.y=f.originY-f.originY*f.lastScale+f.y,f.scroller.style[b+"TransitionDuration"]="200ms",f.scroller.style[b+"Transform"]=n+f.x+"px,"+f.y+"px"+o+" scale("+f.scale+")",f.zoomed=!1,f.refresh(),f.options.onZoomEnd&&f.options.onZoomEnd.call(f,c);else{if(f.moved){if(300>k&&f.options.momentum){h=l?f._momentum(l-f.startX,k,-f.x,f.scrollerW-f.wrapperW+f.x,f.options.bounce?f.wrapperW:0):h;i=m?f._momentum(m-f.startY,k,-f.y,0>f.maxScrollY?f.scrollerH-f.wrapperH+f.y-f.minScrollY:
+0,f.options.bounce?f.wrapperH:0):i;l=f.x+h.dist;m=f.y+i.dist;if(0<f.x&&0<l||f.x<f.maxScrollX&&l<f.maxScrollX)h={dist:0,time:0};if(f.y>f.minScrollY&&m>f.minScrollY||f.y<f.maxScrollY&&m<f.maxScrollY)i={dist:0,time:0}}h.dist||i.dist?(h=a.max(a.max(h.time,i.time),10),f.options.snap&&(i=l-f.absStartX,k=m-f.absStartY,a.abs(i)<f.options.snapThreshold&&a.abs(k)<f.options.snapThreshold?f.scrollTo(f.absStartX,f.absStartY,200):(i=f._snap(l,m),l=i.x,m=i.y,h=a.max(i.time,h))),f.scrollTo(l>>0,m>>0,h)):f.options.snap?
+(i=l-f.absStartX,k=m-f.absStartY,a.abs(i)<f.options.snapThreshold&&a.abs(k)<f.options.snapThreshold?f.scrollTo(f.absStartX,f.absStartY,200):(i=f._snap(f.x,f.y),(i.x!=f.x||i.y!=f.y)&&f.scrollTo(i.x,i.y,i.time))):f._resetPos(200)}else j&&(f.doubleTapTimer&&f.options.zoom?(clearTimeout(f.doubleTapTimer),f.doubleTapTimer=null,f.options.onZoomStart&&f.options.onZoomStart.call(f,c),f.zoom(f.pointX,f.pointY,1==f.scale?f.options.doubleTapZoom:1),f.options.onZoomEnd&&setTimeout(function(){f.options.onZoomEnd.call(f,
+c)},200)):f.doubleTapTimer=setTimeout(function(){f.doubleTapTimer=null;for(d=g.target;1!=d.nodeType;)d=d.parentNode;"SELECT"!=d.tagName&&("INPUT"!=d.tagName&&"TEXTAREA"!=d.tagName)&&(e=document.createEvent("MouseEvents"),e.initMouseEvent("click",!0,!0,c.view,1,g.screenX,g.screenY,g.clientX,g.clientY,c.ctrlKey,c.altKey,c.shiftKey,c.metaKey,0,null),e._fake=!0,d.dispatchEvent(e))},f.options.zoom?250:0)),f._resetPos(200);f.options.onTouchEnd&&f.options.onTouchEnd.call(f,c)}}},_resetPos:function(a){var c=
+0<=this.x?0:this.x<this.maxScrollX?this.maxScrollX:this.x,g=this.y>=this.minScrollY||0<this.maxScrollY?this.minScrollY:this.y<this.maxScrollY?this.maxScrollY:this.y;if(c==this.x&&g==this.y){if(this.moved&&(this.moved=!1,this.options.onScrollEnd&&this.options.onScrollEnd.call(this)),this.hScrollbar&&this.options.hideScrollbar&&("webkit"==b&&(this.hScrollbarWrapper.style[b+"TransitionDelay"]="300ms"),this.hScrollbarWrapper.style.opacity="0"),this.vScrollbar&&this.options.hideScrollbar)"webkit"==b&&
+(this.vScrollbarWrapper.style[b+"TransitionDelay"]="300ms"),this.vScrollbarWrapper.style.opacity="0"}else this.scrollTo(c,g,a||0)},_wheel:function(a){var b=this,c,d;if("wheelDeltaX"in a)c=a.wheelDeltaX/12,d=a.wheelDeltaY/12;else if("wheelDelta"in a)c=d=a.wheelDelta/12;else if("detail"in a)c=d=3*-a.detail;else return;if("zoom"==b.options.wheelAction){if(d=b.scale*Math.pow(2,1/3*(d?d/Math.abs(d):0)),d<b.options.zoomMin&&(d=b.options.zoomMin),d>b.options.zoomMax&&(d=b.options.zoomMax),d!=b.scale)!b.wheelZoomCount&&
+b.options.onZoomStart&&b.options.onZoomStart.call(b,a),b.wheelZoomCount++,b.zoom(a.pageX,a.pageY,d,400),setTimeout(function(){b.wheelZoomCount--;!b.wheelZoomCount&&b.options.onZoomEnd&&b.options.onZoomEnd.call(b,a)},400)}else c=b.x+c,d=b.y+d,0<c?c=0:c<b.maxScrollX&&(c=b.maxScrollX),d>b.minScrollY?d=b.minScrollY:d<b.maxScrollY&&(d=b.maxScrollY),b.scrollTo(c,d,0)},_mouseout:function(a){var b=a.relatedTarget;if(b)for(;b=b.parentNode;)if(b==this.wrapper)return;this._end(a)},_transitionEnd:function(a){a.target==
+this.scroller&&(this._unbind("webkitTransitionEnd"),this._startAni())},_startAni:function(){var b=this,c=b.x,d=b.y,e=Date.now(),h,i,k;b.animating||(b.steps.length?(h=b.steps.shift(),h.x==c&&h.y==d&&(h.time=0),b.animating=!0,b.moved=!0,b.options.useTransition)?(b._transitionTime(h.time),b._pos(h.x,h.y),b.animating=!1,h.time?b._bind("webkitTransitionEnd"):b._resetPos(0)):(k=function(){var j=Date.now(),m;if(j>=e+h.time){b._pos(h.x,h.y);b.animating=false;b.options.onAnimationEnd&&b.options.onAnimationEnd.call(b);
+b._startAni()}else{j=(j-e)/h.time-1;i=a.sqrt(1-j*j);j=(h.x-c)*i+c;m=(h.y-d)*i+d;b._pos(j,m);if(b.animating)b.aniTime=s(k)}},k()):b._resetPos(400))},_transitionTime:function(a){a+="ms";this.scroller.style[b+"TransitionDuration"]=a;this.hScrollbar&&(this.hScrollbarIndicator.style[b+"TransitionDuration"]=a);this.vScrollbar&&(this.vScrollbarIndicator.style[b+"TransitionDuration"]=a)},_momentum:function(b,c,d,e,h){var c=a.abs(b)/c,i=c*c/0.0012;0<b&&i>d?(d+=h/(6/(6E-4*(i/c))),c=c*d/i,i=d):0>b&&i>e&&(e+=
+h/(6/(6E-4*(i/c))),c=c*e/i,i=e);return{dist:i*(0>b?-1:1),time:c/6E-4>>0}},_offset:function(a){for(var b=-a.offsetLeft,c=-a.offsetTop;a=a.offsetParent;)b-=a.offsetLeft,c-=a.offsetTop;a!=this.wrapper&&(b*=this.scale,c*=this.scale);return{left:b,top:c}},_snap:function(b,c){var d,e,h;h=this.pagesX.length-1;d=0;for(e=this.pagesX.length;d<e;d++)if(b>=this.pagesX[d]){h=d;break}h==this.currPageX&&(0<h&&0>this.dirX)&&h--;b=this.pagesX[h];e=(e=a.abs(b-this.pagesX[this.currPageX]))?500*(a.abs(this.x-b)/e):0;
+this.currPageX=h;h=this.pagesY.length-1;for(d=0;d<h;d++)if(c>=this.pagesY[d]){h=d;break}h==this.currPageY&&(0<h&&0>this.dirY)&&h--;c=this.pagesY[h];d=(d=a.abs(c-this.pagesY[this.currPageY]))?500*(a.abs(this.y-c)/d):0;this.currPageY=h;h=a.max(e,d)>>0;return{x:b,y:c,time:h||200}},_bind:function(a,b,c){(b||this.scroller).addEventListener(a,this,!!c)},_unbind:function(a,b,c){(b||this.scroller).removeEventListener(a,this,!!c)},destroy:function(){this.scroller.style[b+"Transform"]="";this.vScrollbar=this.hScrollbar=
+!1;this._scrollbar("h");this._scrollbar("v");this._unbind(t,window);this._unbind(u);this._unbind(p);this._unbind(q);this._unbind(r);this.options.hasTouch||(this._unbind("mouseout",this.wrapper),this._unbind(v));this.options.useTransition&&this._unbind("webkitTransitionEnd");this.options.checkDOMChanges&&clearInterval(this.checkDOMTime);this.options.onDestroy&&this.options.onDestroy.call(this)},refresh:function(){var a,c,d,e=0;c=0;this.scale<this.options.zoomMin&&(this.scale=this.options.zoomMin);
+this.wrapperW=this.wrapper.clientWidth||1;this.wrapperH=this.wrapper.clientHeight||1;this.minScrollY=-this.options.topOffset||0;this.scrollerW=this.scroller.offsetWidth*this.scale>>0;this.scrollerH=(this.scroller.offsetHeight+this.minScrollY)*this.scale>>0;this.maxScrollX=this.wrapperW-this.scrollerW;this.maxScrollY=this.wrapperH-this.scrollerH+this.minScrollY;this.dirY=this.dirX=0;this.options.onRefresh&&this.options.onRefresh.call(this);this.hScroll=this.options.hScroll&&0>this.maxScrollX;this.vScroll=
+this.options.vScroll&&(!this.options.bounceLock&&!this.hScroll||this.scrollerH>this.wrapperH);this.hScrollbar=this.hScroll&&this.options.hScrollbar;this.vScrollbar=this.vScroll&&this.options.vScrollbar&&this.scrollerH>this.wrapperH;a=this._offset(this.wrapper);this.wrapperOffsetLeft=-a.left;this.wrapperOffsetTop=-a.top;if("string"==typeof this.options.snap){this.pagesX=[];this.pagesY=[];d=this.scroller.querySelectorAll(this.options.snap);a=0;for(c=d.length;a<c;a++)e=this._offset(d[a]),e.left+=this.wrapperOffsetLeft,
+e.top+=this.wrapperOffsetTop,this.pagesX[a]=e.left<this.maxScrollX?this.maxScrollX:e.left*this.scale,this.pagesY[a]=e.top<this.maxScrollY?this.maxScrollY:e.top*this.scale}else if(this.options.snap){for(this.pagesX=[];e>=this.maxScrollX;)this.pagesX[c]=e,e-=this.wrapperW,c++;this.maxScrollX%this.wrapperW&&(this.pagesX[this.pagesX.length]=this.maxScrollX-this.pagesX[this.pagesX.length-1]+this.pagesX[this.pagesX.length-1]);c=e=0;for(this.pagesY=[];e>=this.maxScrollY;)this.pagesY[c]=e,e-=this.wrapperH,
+c++;this.maxScrollY%this.wrapperH&&(this.pagesY[this.pagesY.length]=this.maxScrollY-this.pagesY[this.pagesY.length-1]+this.pagesY[this.pagesY.length-1])}this._scrollbar("h");this._scrollbar("v");this.zoomed||(this.scroller.style[b+"TransitionDuration"]="0",this._resetPos(200))},scrollTo:function(a,b,c,d){var e=a;this.stop();e.length||(e=[{x:a,y:b,time:c,relative:d}]);a=0;for(b=e.length;a<b;a++)e[a].relative&&(e[a].x=this.x-e[a].x,e[a].y=this.y-e[a].y),this.steps.push({x:e[a].x,y:e[a].y,time:e[a].time||
+0});this._startAni()},scrollToElement:function(b,c){var d;if(b=b.nodeType?b:this.scroller.querySelector(b))d=this._offset(b),d.left+=this.wrapperOffsetLeft,d.top+=this.wrapperOffsetTop,d.left=0<d.left?0:d.left<this.maxScrollX?this.maxScrollX:d.left,d.top=d.top>this.minScrollY?this.minScrollY:d.top<this.maxScrollY?this.maxScrollY:d.top,c=void 0===c?a.max(2*a.abs(d.left),2*a.abs(d.top)):c,this.scrollTo(d.left,d.top,c)},scrollToPage:function(a,b,c){c=void 0===c?400:c;this.options.onScrollStart&&this.options.onScrollStart.call(this);
+if(this.options.snap)a="next"==a?this.currPageX+1:"prev"==a?this.currPageX-1:a,b="next"==b?this.currPageY+1:"prev"==b?this.currPageY-1:b,a=0>a?0:a>this.pagesX.length-1?this.pagesX.length-1:a,b=0>b?0:b>this.pagesY.length-1?this.pagesY.length-1:b,this.currPageX=a,this.currPageY=b,a=this.pagesX[a],b=this.pagesY[b];else if(a*=-this.wrapperW,b*=-this.wrapperH,a<this.maxScrollX&&(a=this.maxScrollX),b<this.maxScrollY)b=this.maxScrollY;this.scrollTo(a,b,c)},disable:function(){this.stop();this._resetPos(0);
+this.enabled=!1;this._unbind(p);this._unbind(q);this._unbind(r)},enable:function(){this.enabled=!0},stop:function(){this.options.useTransition?this._unbind("webkitTransitionEnd"):x(this.aniTime);this.steps=[];this.animating=this.moved=!1},zoom:function(a,c,d,e){var h=d/this.scale;this.options.useTransform&&(this.zoomed=!0,e=void 0===e?200:e,a=a-this.wrapperOffsetLeft-this.x,c=c-this.wrapperOffsetTop-this.y,this.x=a-a*h+this.x,this.y=c-c*h+this.y,this.scale=d,this.refresh(),this.x=0<this.x?0:this.x<
+this.maxScrollX?this.maxScrollX:this.x,this.y=this.y>this.minScrollY?this.minScrollY:this.y<this.maxScrollY?this.maxScrollY:this.y,this.scroller.style[b+"TransitionDuration"]=e+"ms",this.scroller.style[b+"Transform"]=n+this.x+"px,"+this.y+"px"+o+" scale("+d+")",this.zoomed=!1)},isReady:function(){return!this.moved&&!this.zoomed&&!this.animating}};"undefined"!==typeof exports?exports.iScroll=e:window.iScroll=e})();var minplayer=minplayer||{};
+function checkPlayType(a,b){if("function"===typeof a.canPlayType){if("object"===typeof b){for(var c=b.length,d="";c--&&!(d=checkPlayType(a,b[c])););return d}c=a.canPlayType(b);if("no"!==c&&""!==c)return b}return""}
+minplayer.compatibility=function(){var a=null,a=document.createElement("video");this.videoOGG=checkPlayType(a,"video/ogg");this.videoH264=checkPlayType(a,["video/mp4","video/h264"]);this.videoWEBM=checkPlayType(a,["video/x-webm","video/webm","application/octet-stream"]);a=document.createElement("audio");this.audioOGG=checkPlayType(a,"audio/ogg");this.audioMP3=checkPlayType(a,"audio/mpeg");this.audioMP4=checkPlayType(a,"audio/mp4")};
+minplayer.playTypes||(minplayer.playTypes=new minplayer.compatibility,minplayer.isAndroid=/android/gi.test(navigator.appVersion),minplayer.isIDevice=/iphone|ipad/gi.test(navigator.appVersion),minplayer.isPlaybook=/playbook/gi.test(navigator.appVersion),minplayer.isTouchPad=/hp-tablet/gi.test(navigator.appVersion),minplayer.hasTouch="ontouchstart"in window&&!minplayer.isTouchPad);minplayer=minplayer||{};minplayer.async=function(){this.value=null;this.queue=[]};
+minplayer.async.prototype.get=function(a){this.value!==null?a(this.value):this.queue.push(a)};minplayer.async.prototype.set=function(a){this.value=a;var b=this.queue.length;if(b){for(;b--;)this.queue[b](a);this.queue=[]}};minplayer=minplayer||{};minplayer.flags=function(){this.flag=0;this.ids={};this.numFlags=0};minplayer.flags.prototype.setFlag=function(a,b){if(!this.ids.hasOwnProperty(a)){this.ids[a]=this.numFlags;this.numFlags++}this.flag=b?this.flag|1<<this.ids[a]:this.flag&~(1<<this.ids[a])};
+minplayer=minplayer||{};minplayer.plugins=minplayer.plugins||{};minplayer.queue=minplayer.queue||[];minplayer.lock=!1;minplayer.plugin=function(a,b,c,d){this.name=a;this.pluginReady=false;this.options=c||{};this.queue=d||{};this.triggered={};this.lock=false;if(b){this.active=true;this.context=jQuery(b);this.construct()}};minplayer.plugin.prototype.construct=function(){this.addPlugin()};minplayer.plugin.prototype.destroy=function(){this.active=false;this.unbind()};
+minplayer.plugin.prototype.create=function(a,b,c){var d=null,b=b||"minplayer";window[b][a]||(b="minplayer");c=c||this.display;if(window[b][a]){d=window[b][a];d[this.options.template]&&(d=d[this.options.template]);typeof d!=="function"&&(d=window.minplayer[a]);if(typeof d==="function")return new d(c,this.options)}return null};minplayer.plugin.prototype.ready=function(){if(!this.pluginReady){this.pluginReady=true;this.trigger("ready");this.checkQueue()}};
+minplayer.plugin.prototype.isValid=function(){return!!this.options.id&&this.active};minplayer.plugin.prototype.addPlugin=function(a,b){a=a||this.name;b=b||this;if(b.isValid()){minplayer.plugins[this.options.id]||(minplayer.plugins[this.options.id]={});minplayer.plugins[this.options.id][a]||(minplayer.plugins[this.options.id][a]=[]);minplayer.plugins[this.options.id][a].push(b);this.checkQueue(b)}};
+minplayer.plugin.prototype.poll=function(a,b){var c=this;setTimeout(function e(){a.call(c)&&setTimeout(e,b)},b)};minplayer.plugin.prototype.get=function(a,b){if(typeof a==="function"){b=a;a=null}return minplayer.get.call(this,this.options.id,a,b)};
+minplayer.plugin.prototype.checkQueue=function(a){var b=null,c=0,d=false,e=[],a=a||this;minplayer.lock=true;for(var h=minplayer.queue.length,c=0;c<h;c++)if(minplayer.queue.hasOwnProperty(c)){b=minplayer.queue[c];d=!b.id&&!b.plugin;d=d|b.plugin==a.name;(d=d&(!b.id||b.id==this.options.id))&&(d=minplayer.bind.call(b.context,b.event,this.options.id,a.name,b.callback));d||e.push(b)}minplayer.queue=e;minplayer.lock=false};
+minplayer.plugin.prototype.trigger=function(a,b){if(!this.active)return this;this.triggered[a]=b;if(this.queue.hasOwnProperty(a)){var c=0,d={},e=this.queue[a];for(c in e)if(e.hasOwnProperty(c)){d=e[c];d.callback({target:this,data:d.data},b)}}return this};
+minplayer.plugin.prototype.bind=function(a,b,c){if(!this.active)return this;if(typeof b==="function"){c=b;b=null}if(a&&c){this.queue[a]=this.queue[a]||[];this.unbind(a,c);this.queue[a].push({callback:c,data:b});this.triggered.hasOwnProperty(a)&&c({target:this,data:b},this.triggered[a]);return this}};
+minplayer.plugin.prototype.unbind=function(a,b){if(this.lock){var c=this;setTimeout(function(){c.unbind(a,b)},10)}this.lock=true;var d=this.queue.hasOwnProperty(a)?this.queue[a]:null;if(a)if(b){if(d){var e=0,h={};for(e in d)if(d.hasOwnProperty(e)&&d[e].callback===b){h=this.queue[a].splice(e,1);delete h}}}else this.queue[a]=[];else this.queue={};this.lock=false;return this};
+minplayer.addQueue=function(a,b,c,d,e){minplayer.lock?setTimeout(function(){minplayer.addQueue(a,c,b,d,e)},10):minplayer.queue.push({context:a,id:c,event:b,plugin:d,callback:e})};
+minplayer.bind=function(a,b,c,d){if(!d)return false;var e=minplayer.plugins,h=[],i=function(a,b){if(e.hasOwnProperty(a)&&e[a].hasOwnProperty(b))for(var c=e[a][b].length;c--;)h.push(e[a][b][c])};if(b&&c)i(b,c);else if(!b&&c)for(b in e)i(b,c);else if(b&&!c&&e[b])for(c in e[b])i(b,c);else if(!b&&!c)for(b in e)for(c in e[b])i(b,c);for(i=h.length;i--;)h[i].bind(a,function(a){return function(b){d.call(a,b.target)}}(this));minplayer.addQueue(this,a,b,c,d);return h.length>0};
+minplayer.get=function(a,b,c){if(typeof a==="function"){c=a;b=a=null}if(typeof b==="function"){c=b;b=a;a=null}if(c=typeof c==="function"?c:null)minplayer.bind.call(this,"ready",a,b,c);else{var d=minplayer.plugins;if(!a&&!b&&!c)return d;if(a&&!b&&!c)return d[a];if(a&&b&&!c)return d[a][b];if(!a&&b&&!c){c=[];for(a in d)if(d.hasOwnProperty(a)&&d[a].hasOwnProperty(b))for(var e=d[a][b].length;e--;)c.push(d[a][b][e]);return c}}};minplayer=minplayer||{};
+minplayer.display=function(a,b,c,d){minplayer.plugin.call(this,a,b,c,d)};minplayer.display.prototype=new minplayer.plugin;minplayer.display.prototype.constructor=minplayer.display;minplayer.display.prototype.getDisplay=function(){return this.context};
+minplayer.display.prototype.construct=function(){this.display=this.getDisplay(this.context,this.options);minplayer.plugin.prototype.construct.call(this);this.options.pluginName="display";this.elements=this.getElements();if(this.onResize){var a=0;jQuery(window).resize(function(b){return function(){clearTimeout(a);a=setTimeout(function(){b.onResize()},200)}}(this))}};minplayer.display.prototype.onResize=!1;minplayer.display.prototype.hide=function(a){if(a=a||this.display){a.forceHide=true;a.unbind().hide()}};
+minplayer.display.prototype.fullScreenElement=function(){return this.display};minplayer.click=function(a,b){var c=false,a=jQuery(a);a.bind("touchstart click",function(a){if(!c){c=true;setTimeout(function(){c=false},100);b.call(this,a)}});return a};minplayer.display.prototype.onFocus=function(a){this.hasFocus=this.focus=a};minplayer.showHideElements=[];
+minplayer.showAll=function(){for(var a=minplayer.showHideElements.length,b=null;a--;){b=minplayer.showHideElements[a];minplayer.showThenHide(b.element,b.timeout,b.callback)}};minplayer.stopShowThenHide=function(a){a=jQuery(a);a.showTimer&&clearTimeout(a.showTimer);a.stopShowThenHide=true;a.shown=true;a.show()};
+minplayer.showThenHide=function(a,b,c){if(a){b=b||5E3;if(!a.showTimer){a.shown=true;a.stopShowThenHide=false;minplayer.showHideElements.push({element:a,timeout:b,callback:c});minplayer.click(document,function(){a.stopShowThenHide||minplayer.showThenHide(a,b,c)});jQuery(document).bind("mousemove",function(){a.stopShowThenHide||minplayer.showThenHide(a,b,c)})}clearTimeout(a.showTimer);if(!a.shown&&!a.forceHide){a.shown=true;a.show();c&&c(true)}a.showTimer=setTimeout(function(){a.hide("slow",function(){a.shown=
+false;c&&c(false)})},b)}};minplayer.display.prototype.fullscreen=function(a){var b=this.isFullScreen(),c=this.fullScreenElement();if(b&&!a){c.removeClass("fullscreen");screenfull&&screenfull.exit();this.trigger("fullscreen",false)}else if(!b&&a){c.addClass("fullscreen");if(screenfull){screenfull.request(c[0]);var d=this;screenfull.onchange=function(){screenfull.isFullscreen||d.fullscreen(false)}}this.trigger("fullscreen",true)}};minplayer.display.prototype.toggleFullScreen=function(){this.fullscreen(!this.isFullScreen())};
+minplayer.display.prototype.isFullScreen=function(){return this.fullScreenElement().hasClass("fullscreen")};minplayer.display.prototype.getScaledRect=function(a,b){var c={};c.x=b.x?b.x:0;c.y=b.y?b.y:0;c.width=b.width?b.width:0;c.height=b.height?b.height:0;if(a){if(b.width/b.height>a){c.height=b.height;c.width=Math.floor(b.height*a)}else{c.height=Math.floor(b.width/a);c.width=b.width}c.x=Math.floor((b.width-c.width)/2);c.y=Math.floor((b.height-c.height)/2)}return c};
+minplayer.display.prototype.getElements=function(){return{}};
+(function(a,b){var c;a:{for(var d=[["requestFullscreen","exitFullscreen","fullscreenchange","fullscreen","fullscreenElement"],["webkitRequestFullScreen","webkitCancelFullScreen","webkitfullscreenchange","webkitIsFullScreen","webkitCurrentFullScreenElement"],["mozRequestFullScreen","mozCancelFullScreen","mozfullscreenchange","mozFullScreen","mozFullScreenElement"]],e=0,h=d.length;e<h;e++)if(d.hasOwnProperty(e)){var i=d[e];if(i[1]in b){c=i;break a}}c=void 0}if(!c)return a.screenfull=false;var j="ALLOW_KEYBOARD_INPUT"in
+Element,k={init:function(){b.addEventListener(c[2],function(a){k.isFullscreen=b[c[3]];k.element=b[c[4]];k.onchange(a)});return this},isFullscreen:b[c[3]],element:b[c[4]],request:function(a){a=a||b.documentElement;a[c[0]](j&&Element.ALLOW_KEYBOARD_INPUT);if(!b.isFullscreen)a[c[0]]()},exit:function(){b[c[1]]()},toggle:function(a){this.isFullscreen?this.exit():this.request(a)},onchange:function(){}};a.screenfull=k.init()})(window,document);
+jQuery.fn.minplayer||(jQuery.fn.minplayer=function(a){return jQuery(this).each(function(){a=a||{};a.id=a.id||jQuery(this).attr("id")||Math.random();if(!minplayer.plugins[a.id]){a.template=a.template||"default";minplayer[a.template]?new minplayer[a.template](jQuery(this),a):new minplayer(jQuery(this),a)}})});minplayer=jQuery.extend(function(a,b){minplayer.display.call(this,"player",a,b)},minplayer);minplayer.prototype=new minplayer.display;minplayer.prototype.constructor=minplayer;
+minplayer.prototype.construct=function(){jQuery.each(this.context[0].attributes,function(a){return function(c,d){a.options[d.name]=a.options[d.name]||d.value}}(this));this.options=jQuery.extend({id:"player",build:false,wmode:"transparent",preload:true,autoplay:false,autoload:true,loop:false,width:"100%",height:"350px",debug:false,volume:80,files:null,file:"",preview:"",attributes:{},logo:"",link:"",width:"100%",height:"100%"},this.options);minplayer.display.prototype.construct.call(this);this.options.pluginName=
+"player";this.controller=this.create("controller");this.playLoader=this.create("playLoader");minplayer.click(document,function(a){return function(c){var d=jQuery(c.target).closest("#"+a.options.id).length!=0;minplayer.get.call(this,a.options.id,null,function(a){a.onFocus(d)})}}(this));if(this.options.logo&&this.elements.logo){var a="";this.options.link&&(a=a+('<a target="_blank" href="'+this.options.link+'">'));a=a+('<img src="'+this.options.logo+'" >');this.options.link&&(a=a+"</a>");this.logo=this.elements.logo.append(a)}this.currentPlayer=
+"html5";this.addKeyEvents();this.addEvents();this.load(this.getFiles());this.ready()};minplayer.prototype.bindTo=function(a){a.bind("error",function(a){return function(c,d){if(a.currentPlayer=="html5"){minplayer.player="minplayer";a.options.file.player="minplayer";a.loadPlayer()}else a.showError(d)}}(this));a.bind("fullscreen",function(a){return function(){a.resize()}}(this))};minplayer.prototype.addEvents=function(){minplayer.get.call(this,this.options.id,null,function(a){return function(b){a.bindTo(b)}}(this))};
+minplayer.prototype.showError=function(a){if(typeof a!=="object"){a=a||"";if(this.elements.error){this.elements.error.text(a);if(a){this.elements.error.show();var b=this;setTimeout(function(){b.elements.error.hide("slow")},5E3)}else this.elements.error.hide()}}};minplayer.prototype.addKeyEvents=function(){jQuery(document).bind("keydown",function(a){return function(b){switch(b.keyCode){case 113:case 27:a.isFullScreen()&&a.fullscreen(false)}}}(this))};
+minplayer.prototype.getFiles=function(){if(this.options.files)return this.options.files;if(this.options.file)return this.options.file;var a=[],b=null;if(this.elements.media){(b=this.elements.media.attr("src"))&&a.push({path:b});jQuery("source",this.elements.media).each(function(){a.push({path:jQuery(this).attr("src"),mimetype:jQuery(this).attr("type"),codecs:jQuery(this).attr("codecs")})})}return a};
+minplayer.getMediaFile=function(a){if(!a)return null;if(typeof a==="string"||a.path||a.id)return new minplayer.file(a);var b=null,c=null,d;for(d in a)if(a.hasOwnProperty(d)){c=new minplayer.file(a[d]);c.player&&c.priority>0&&(b=c)}return b};
+minplayer.prototype.loadPlayer=function(){if(!this.options.file||this.elements.display.length==0||!this.options.file.player)return false;this.showError();var a=this.options.file.player.toString();if(!this.media||a!==this.currentPlayer){this.currentPlayer=a;if(this.elements.display){a={};if(this.media){a=this.media.queue;this.media.destroy()}pClass=minplayer.players[this.options.file.player];this.options.mediaelement=this.elements.media;this.media=new pClass(this.elements.display,this.options,a);this.get("media",
+function(a){return function(c){c.load(a.options.file);a.display.addClass("minplayer-player-"+c.mediaFile.player)}}(this));return true}this.showError("No media display found.")}else if(this.media){this.media.options=this.options;this.display.removeClass("minplayer-player-"+this.media.mediaFile.player);this.media.load(this.options.file);this.display.addClass("minplayer-player-"+this.media.mediaFile.player);return false}};
+minplayer.prototype.load=function(a){this.options.files=a||this.options.files;this.options.file=minplayer.getMediaFile(this.options.files);if(this.loadPlayer()){this.bindTo(this.media);this.options.file.mimetype&&!this.options.file.player&&this.showError("Cannot play media: "+this.options.file.mimetype)}};minplayer.prototype.resize=function(){this.get(function(a){if(a.onResize)a.onResize()})};minplayer=minplayer||{};
+minplayer.image=function(a,b){this.loaded=false;this.loader=null;this.ratio=0;this.img=null;minplayer.display.call(this,"image",a,b)};minplayer.image.prototype=new minplayer.display;minplayer.image.prototype.constructor=minplayer.image;
+minplayer.image.prototype.construct=function(){minplayer.display.prototype.construct.call(this);this.options.pluginName="image";this.display.css("overflow","hidden");this.loader=new Image;var a=this;this.loader.onload=function(){a.loaded=true;a.ratio=a.loader.width/a.loader.height;a.resize();a.trigger("loaded")};this.ready()};
+minplayer.image.prototype.load=function(a){this.clear(function(){this.display.empty();this.img=jQuery(document.createElement("img")).attr({src:""}).hide();this.display.append(this.img);this.loader.src=a;this.img.attr("src",a)})};minplayer.image.prototype.clear=function(a){this.loaded=false;this.img?this.img.fadeOut(function(b){return function(){b.img.attr("src","");b.loader.src="";jQuery(this).remove();a.call(b)}}(this)):a.call(this)};
+minplayer.image.prototype.resize=function(a,b){a=a||this.display.parent().width();b=b||this.display.parent().height();if(a&&b&&this.loaded){var c=this.getScaledRect(this.ratio,{width:a,height:b});this.img&&this.img.attr("src",this.loader.src).css({marginLeft:c.x,marginTop:c.y,width:c.width,height:c.height});this.img.fadeIn()}};minplayer.image.prototype.onResize=function(){this.resize()};minplayer=minplayer||{};
+minplayer.file=function(a){if(!a)return null;a=typeof a==="string"?{path:a}:a;if(a.hasOwnProperty("isMinPlayerFile"))return a;this.isMinPlayerFile=true;this.duration=a.duration||0;this.bytesTotal=a.bytesTotal||0;this.quality=a.quality||0;this.stream=a.stream||"";this.path=a.path||"";this.codecs=a.codecs||"";this.extension=a.extension||this.getFileExtension();this.mimetype=a.mimetype||a.filemime||this.getMimeType();this.type=a.type||this.getType();if(!this.type){this.mimetype=this.getMimeType();this.type=
+this.getType()}this.player=minplayer.player||a.player||this.getBestPlayer();this.priority=a.priority||this.getPriority();this.id=a.id||this.getId();if(!this.path)this.path=this.id};minplayer.player="";minplayer.file.prototype.getBestPlayer=function(){var a=null,b=0;jQuery.each(minplayer.players,function(c){return function(d,e){var h=e.getPriority();if(e.canPlay(c)&&h>b){a=d;b=h}}}(this));return a};
+minplayer.file.prototype.getPriority=function(){var a=1;this.player&&(a=minplayer.players[this.player].getPriority());switch(this.mimetype){case "video/x-webm":case "video/webm":case "application/octet-stream":return a*10;case "video/mp4":case "audio/mp4":case "audio/mpeg":return a*9;case "video/ogg":case "audio/ogg":case "video/quicktime":return a*8;default:return a*5}};minplayer.file.prototype.getFileExtension=function(){return this.path.substring(this.path.lastIndexOf(".")+1).toLowerCase()};
+minplayer.file.prototype.getMimeType=function(){switch(this.extension){case "mp4":case "m4v":case "flv":case "f4v":return"video/mp4";case "webm":return"video/webm";case "ogg":case "ogv":return"video/ogg";case "3g2":return"video/3gpp2";case "3gpp":case "3gp":return"video/3gpp";case "mov":return"video/quicktime";case "swf":return"application/x-shockwave-flash";case "oga":return"audio/ogg";case "mp3":return"audio/mpeg";case "m4a":case "f4a":return"audio/mp4";case "aac":return"audio/aac";case "wav":return"audio/vnd.wave";
+case "wma":return"audio/x-ms-wma";default:return"unknown"}};minplayer.file.prototype.getType=function(){var a=this.mimetype.match(/([^\/]+)(\/)/),a=a&&a.length>1?a[1]:"";return a=="video"||this.mimetype=="application/octet-stream"?"video":a=="audio"?"audio":""};minplayer.file.prototype.getId=function(){var a=minplayer.players[this.player];return a&&a.getMediaId?a.getMediaId(this):""};minplayer=minplayer||{};
+minplayer.playLoader=function(a,b){this.busy=new minplayer.flags;this.bigPlay=new minplayer.flags;this.previewFlag=new minplayer.flags;this.preview=null;this.enabled=true;minplayer.display.call(this,"playLoader",a,b)};minplayer.playLoader.prototype=new minplayer.display;minplayer.playLoader.prototype.constructor=minplayer.playLoader;minplayer.playLoader.prototype.construct=function(){minplayer.display.prototype.construct.call(this);this.options.pluginName="playLoader";this.initialize();this.ready()};
+minplayer.playLoader.prototype.initialize=function(){this.get("media",function(a){if(a.hasPlayLoader(this.options.preview)){this.enabled=false;this.hide(this.elements.busy);this.hide(this.elements.bigPlay);this.hide(this.elements.preview);this.hide()}else{this.enabled=true;if(!this.options.preview)this.options.preview=a.elements.media.attr("poster");a.elements.media.attr("poster","");this.loadPreview();this.elements.bigPlay&&minplayer.click(this.elements.bigPlay.unbind(),function(b){b.preventDefault();
+minplayer.showAll();jQuery(this).hide();a.play()});a.unbind("loadstart").bind("loadstart",function(a){return function(){a.busy.setFlag("media",true);a.bigPlay.setFlag("media",true);a.previewFlag.setFlag("media",true);a.checkVisibility()}}(this));a.bind("waiting",function(a){return function(){a.busy.setFlag("media",true);a.checkVisibility()}}(this));a.bind("loadeddata",function(a){return function(){a.busy.setFlag("media",false);a.checkVisibility()}}(this));a.bind("playing",function(b){return function(){b.busy.setFlag("media",
+false);b.bigPlay.setFlag("media",false);a.mediaFile.type!=="audio"&&b.previewFlag.setFlag("media",false);b.checkVisibility()}}(this));a.bind("pause",function(a){return function(){a.bigPlay.setFlag("media",true);a.checkVisibility()}}(this))}})};minplayer.playLoader.prototype.loadPreview=function(){if(this.enabled&&this.elements.preview)if(this.options.preview){this.elements.preview.addClass("has-preview").show();this.preview=new minplayer.image(this.elements.preview,this.options);this.preview.load(this.options.preview)}else this.elements.preview.hide()};
+minplayer.playLoader.prototype.checkVisibility=function(){if(this.enabled){this.busy.flag?this.elements.busy.show():this.elements.busy.hide();this.bigPlay.flag?this.elements.bigPlay.show():this.elements.bigPlay.hide();this.previewFlag.flag?this.elements.preview.show():this.elements.preview.hide();(this.bigPlay.flag||this.busy.flag||this.previewFlag.flag)&&this.display.show();!this.bigPlay.flag&&(!this.busy.flag&&!this.previewFlag.flag)&&this.display.hide()}};minplayer=minplayer||{};
+minplayer.players=minplayer.players||{};minplayer.players.base=function(a,b,c){minplayer.display.call(this,"media",a,b,c)};minplayer.players.base.prototype=new minplayer.display;minplayer.players.base.prototype.constructor=minplayer.players.base;minplayer.players.base.prototype.getElements=function(){var a=minplayer.display.prototype.getElements.call(this);return jQuery.extend(a,{media:this.options.mediaelement})};minplayer.players.base.getPriority=function(){return 0};
+minplayer.players.base.getMediaId=function(){return""};minplayer.players.base.canPlay=function(){return false};
+minplayer.players.base.prototype.construct=function(){minplayer.display.prototype.construct.call(this);this.options.pluginName="basePlayer";this.mediaFile=this.options.file;this.clear();this.playerFound()||this.addPlayer();this.player=this.getPlayer();minplayer.click(this.display,function(a){return function(){minplayer.showAll();a.playing?a.pause():a.play()}}(this));jQuery(document).bind("keydown",function(a){return function(b){if(a.hasFocus){b.preventDefault();switch(b.keyCode){case 32:case 179:a.playing?
+a.pause():a.play();break;case 38:a.setVolumeRelative(0.1);break;case 40:a.setVolumeRelative(-0.1);break;case 37:case 227:a.seekRelative(-0.05);break;case 39:case 228:a.seekRelative(0.05)}}}}(this))};minplayer.players.base.prototype.addPlayer=function(){this.elements.media&&this.elements.media.remove();this.elements.media=jQuery(this.create());this.display.html(this.elements.media)};minplayer.players.base.prototype.destroy=function(){minplayer.plugin.prototype.destroy.call(this);this.clear()};
+minplayer.players.base.prototype.clear=function(){this.playerReady=false;this.reset();this.player&&jQuery(this.player).unbind()};
+minplayer.players.base.prototype.reset=function(){this.duration=new minplayer.async;this.currentTime=new minplayer.async;this.bytesLoaded=new minplayer.async;this.bytesTotal=new minplayer.async;this.bytesStart=new minplayer.async;this.volume=new minplayer.async;this.loading=this.playing=this.hasFocus=false;this.trigger("pause");this.trigger("waiting");this.trigger("progress",{loaded:0,total:0,start:0});this.trigger("timeupdate",{currentTime:0,duration:0})};
+minplayer.players.base.prototype.onReady=function(){if(!this.playerReady){this.playerReady=true;this.setVolume(this.options.volume/100);this.loading=true;this.poll(function(a){return function(){a.loading&&a.getBytesLoaded(function(b){a.getBytesTotal(function(c){if(b||c){var d=0;a.getBytesStart(function(a){d=a});a.trigger("progress",{loaded:b,total:c,start:d});if(b>=c)a.loading=false}})});return a.loading}}(this),1E3);this.ready();this.trigger("loadstart")}};
+minplayer.players.base.prototype.onPlaying=function(){this.trigger("playing");this.playing=this.hasFocus=true;this.poll(function(a){return function(){a.playing&&a.getCurrentTime(function(b){a.getDuration(function(c){b=parseFloat(b);c=parseFloat(c);(b||c)&&a.trigger("timeupdate",{currentTime:b,duration:c})})});return a.playing}}(this),1E3)};minplayer.players.base.prototype.onPaused=function(){this.trigger("pause");this.playing=this.hasFocus=false};
+minplayer.players.base.prototype.onComplete=function(){if(this.playing)this.onPaused();this.hasFocus=this.loading=this.playing=false;this.trigger("ended")};minplayer.players.base.prototype.onLoaded=function(){this.options.autoplay&&this.play();this.trigger("loadeddata")};minplayer.players.base.prototype.onWaiting=function(){this.trigger("waiting")};minplayer.players.base.prototype.onError=function(a){this.hasFocus=false;this.trigger("error",a)};
+minplayer.players.base.prototype.isReady=function(){return this.player&&this.playerReady};minplayer.players.base.prototype.hasPlayLoader=function(){return false};minplayer.players.base.prototype.hasController=function(){return false};minplayer.players.base.prototype.playerFound=function(){return false};minplayer.players.base.prototype.create=function(){this.reset();return null};minplayer.players.base.prototype.getPlayer=function(){return this.player};
+minplayer.players.base.prototype.load=function(a){var b=typeof this.mediaFile=="string"?this.mediaFile:this.mediaFile.path;if(a&&this.isReady()&&a.path!=b){this.reset();this.mediaFile=a;return true}return false};minplayer.players.base.prototype.play=function(){return this.isReady()};minplayer.players.base.prototype.pause=function(){return this.isReady()};minplayer.players.base.prototype.stop=function(){this.hasFocus=this.loading=this.playing=false;return this.isReady()};
+minplayer.players.base.prototype.seekRelative=function(a){this.getCurrentTime(function(b){return function(c){b.getDuration(function(d){if(d){var e=0,e=a>-1&&a<1?(c/d+parseFloat(a))*d:c+parseFloat(a);b.seek(e)}})}}(this))};minplayer.players.base.prototype.seek=function(){return this.isReady()};minplayer.players.base.prototype.getValue=function(a,b){if(this.isReady()){var c=this.player[a]();c!==void 0&&c!==null&&b(c)}};
+minplayer.players.base.prototype.setVolumeRelative=function(a){this.getVolume(function(b){return function(c){c=c+parseFloat(a);c=c<0?0:c;b.setVolume(c>1?1:c)}}(this))};minplayer.players.base.prototype.setVolume=function(a){this.trigger("volumeupdate",a);return this.isReady()};minplayer.players.base.prototype.getVolume=function(a){return this.volume.get(a)};minplayer.players.base.prototype.getCurrentTime=function(a){return this.currentTime.get(a)};minplayer.players.base.prototype.getDuration=function(a){return this.duration.get(a)};
+minplayer.players.base.prototype.getBytesStart=function(a){return this.bytesStart.get(a)};minplayer.players.base.prototype.getBytesLoaded=function(a){return this.bytesLoaded.get(a)};minplayer.players.base.prototype.getBytesTotal=function(a){return this.bytesTotal.get(a)};minplayer=minplayer||{};minplayer.players=minplayer.players||{};minplayer.players.html5=function(a,b,c){minplayer.players.base.call(this,a,b,c)};minplayer.players.html5.prototype=new minplayer.players.base;
+minplayer.players.html5.prototype.constructor=minplayer.players.html5;minplayer.players.html5.getPriority=function(){return 10};
+minplayer.players.html5.canPlay=function(a){switch(a.mimetype){case "video/ogg":return!!minplayer.playTypes.videoOGG;case "video/mp4":case "video/x-mp4":case "video/m4v":case "video/x-m4v":return!!minplayer.playTypes.videoH264;case "video/x-webm":case "video/webm":case "application/octet-stream":return!!minplayer.playTypes.videoWEBM;case "audio/ogg":return!!minplayer.playTypes.audioOGG;case "audio/mpeg":return!!minplayer.playTypes.audioMP3;case "audio/mp4":return!!minplayer.playTypes.audioMP4;default:return false}};
+minplayer.players.html5.prototype.construct=function(){minplayer.players.base.prototype.construct.call(this);this.options.pluginName="html5";this.addPlayerEvents()};minplayer.players.html5.prototype.addPlayerEvent=function(a,b){this.player&&this.player.addEventListener(a,function(c){var d=a+"Event";c[d]&&c.player.removeEventListener(a,c[d],false);c[d]=function(a){b.call(c,a)};return c[d]}(this),false)};
+minplayer.players.html5.prototype.addPlayerEvents=function(){if(this.player){this.addPlayerEvent("abort",function(){this.trigger("abort")});this.addPlayerEvent("loadstart",function(){this.onReady()});this.addPlayerEvent("loadeddata",function(){this.onLoaded()});this.addPlayerEvent("loadedmetadata",function(){this.onLoaded()});this.addPlayerEvent("canplaythrough",function(){this.onLoaded()});this.addPlayerEvent("ended",function(){this.onComplete()});this.addPlayerEvent("pause",function(){this.onPaused()});
+this.addPlayerEvent("play",function(){this.onPlaying()});this.addPlayerEvent("playing",function(){this.onPlaying()});var a=false;this.addPlayerEvent("error",function(){if(!a){a=true;this.trigger("error","An error occured - "+this.player.error.code)}});this.addPlayerEvent("waiting",function(){this.onWaiting()});this.addPlayerEvent("durationchange",function(){this.duration.set(this.player.duration);this.trigger("durationchange",{duration:this.player.duration})});this.addPlayerEvent("progress",function(a){this.bytesTotal.set(a.total);
+this.bytesLoaded.set(a.loaded)});return true}return false};minplayer.players.html5.prototype.onReady=function(){minplayer.players.base.prototype.onReady.call(this);if(minplayer.isAndroid)this.onLoaded();if(minplayer.isIDevice){this.play();var a=this;setTimeout(function(){a.pause();a.onLoaded()},1)}};minplayer.players.html5.prototype.playerFound=function(){return this.display.find(this.mediaFile.type).length>0};
+minplayer.players.html5.prototype.create=function(){minplayer.players.base.prototype.create.call(this);var a=jQuery(document.createElement(this.mediaFile.type)).attr(this.options.attributes).append(jQuery(document.createElement("source")).attr({src:this.mediaFile.path}));a.eq(0)[0].setAttribute("width","100%");a.eq(0)[0].setAttribute("height","100%");a.eq(0)[0].setAttribute("autobuffer",true);var b=this.options.autoload?"auto":"metadata",b=minplayer.isIDevice?"metadata":b;a.eq(0)[0].setAttribute("preload",
+b);return a};minplayer.players.html5.prototype.getPlayer=function(){return this.elements.media.eq(0)[0]};minplayer.players.html5.prototype.load=function(a){if(minplayer.players.base.prototype.load.call(this,a)){var b=this.elements.media.attr("src");b||(b=jQuery("source",this.elements.media).eq(0).attr("src"));if(b!=a.path){this.addPlayer();this.player=this.getPlayer();this.addPlayerEvents();a='<source src="'+a.path+'"></source>';this.elements.media.removeAttr("src").empty().html(a);return true}}return false};
+minplayer.players.html5.prototype.play=function(){if(minplayer.players.base.prototype.play.call(this)){this.player.play();return true}return false};minplayer.players.html5.prototype.pause=function(){if(minplayer.players.base.prototype.pause.call(this)){this.player.pause();return true}return false};minplayer.players.html5.prototype.stop=function(){if(minplayer.players.base.prototype.stop.call(this)){this.player.pause();this.player.src="";return true}return false};
+minplayer.players.html5.prototype.seek=function(a){if(minplayer.players.base.prototype.seek.call(this,a)){this.player.currentTime=a;return true}return false};minplayer.players.html5.prototype.setVolume=function(a){if(minplayer.players.base.prototype.setVolume.call(this,a)){this.player.volume=a;return true}return false};minplayer.players.html5.prototype.getVolume=function(a){this.isReady()&&a(this.player.volume)};minplayer.players.html5.prototype.getDuration=function(a){this.isReady()&&a(this.player.duration)};
+minplayer.players.html5.prototype.getCurrentTime=function(a){this.isReady()&&a(this.player.currentTime)};
+minplayer.players.html5.prototype.getBytesLoaded=function(a){if(this.isReady()){var b=0;if(this.bytesLoaded.value)b=this.bytesLoaded.value;else if(this.player.buffered&&this.player.buffered.length>0&&this.player.buffered.end&&this.player.duration)b=this.player.buffered.end(0);else if(this.player.bytesTotal!=void 0&&this.player.bytesTotal>0&&this.player.bufferedBytes!=void 0)b=this.player.bufferedBytes;a(b)}};
+minplayer.players.html5.prototype.getBytesTotal=function(a){if(this.isReady()){var b=0;if(this.bytesTotal.value)b=this.bytesTotal.value;else if(this.player.buffered&&this.player.buffered.length>0&&this.player.buffered.end&&this.player.duration)b=this.player.duration;else if(this.player.bytesTotal!=void 0&&this.player.bytesTotal>0&&this.player.bufferedBytes!=void 0)b=this.player.bytesTotal;a(b)}};minplayer=minplayer||{};minplayer.players=minplayer.players||{};
+minplayer.players.flash=function(a,b,c){minplayer.players.base.call(this,a,b,c)};minplayer.players.flash.prototype=new minplayer.players.base;minplayer.players.flash.prototype.constructor=minplayer.players.flash;minplayer.players.flash.prototype.construct=function(){minplayer.players.base.prototype.construct.call(this);this.options.pluginName="flash"};minplayer.players.flash.getPriority=function(){return 0};minplayer.players.flash.canPlay=function(){return false};
+minplayer.players.flash.prototype.getFlash=function(a){var b=window.location.protocol;b.charAt(b.length-1)==":"&&(b=b.substring(0,b.length-1));var c=document.createElement("script");c.src=b+"://ajax.googleapis.com/ajax/libs/swfobject/2.2/swfobject.js";b=document.getElementsByTagName("script")[0];b.parentNode.insertBefore(c,b);var d=this;setTimeout(function h(){typeof swfobject!=="undefined"?swfobject.embedSWF(a.swf,a.id,a.width,a.height,"9.0.0",false,a.flashvars,{allowscriptaccess:"always",allowfullscreen:"true",
+wmode:a.wmode,quality:"high"},{id:a.id,name:a.id,playerType:"flash"},function(a){d.player=a.ref}):setTimeout(h,200)},200);return'<div id="'+a.id+'"></div>'};minplayer.players.flash.prototype.playerFound=function(){return this.display.find('object[playerType="flash"]').length>0};minplayer=minplayer||{};minplayer.players=minplayer.players||{};minplayer.players.minplayer=function(a,b,c){minplayer.players.flash.call(this,a,b,c)};minplayer.players.minplayer.prototype=new minplayer.players.flash;
+minplayer.players.minplayer.prototype.constructor=minplayer.players.minplayer;minplayer.players.minplayer.prototype.construct=function(){minplayer.players.flash.prototype.construct.call(this);this.options.pluginName="minplayer"};window.onFlashPlayerReady=function(a){for(var a=minplayer.get(a,"media"),b=a.length;b--;)a[b].onReady()};window.onFlashPlayerUpdate=function(a,b){for(var c=minplayer.get(a,"media"),d=c.length;d--;)c[d].onMediaUpdate(b)};
+window.onFlashPlayerDebug=function(a){console&&console.log&&console.log(a)};minplayer.players.minplayer.getPriority=function(){return 1};minplayer.players.minplayer.canPlay=function(a){return!(jQuery.inArray(a.mimetype,["video/x-webm","video/webm","application/octet-stream"])>=0)&&(a.type=="video"||a.type=="audio")};
+minplayer.players.minplayer.prototype.create=function(){this.options=jQuery.extend({swfplayer:"flash/minplayer.swf"},this.options);minplayer.players.flash.prototype.create.call(this);return this.getFlash({swf:this.options.swfplayer,id:this.options.id+"_player",width:"100%",height:"100%",flashvars:{id:this.options.id,debug:this.options.debug,config:"nocontrols",file:this.mediaFile.path,autostart:this.options.autoplay,autoload:this.options.autoload},wmode:this.options.wmode})};
+minplayer.players.minplayer.prototype.onMediaUpdate=function(a){switch(a){case "mediaMeta":this.onLoaded();break;case "mediaPlaying":if(this.minplayerloaded)this.onPlaying();break;case "mediaPaused":this.minplayerloaded=true;this.onPaused();break;case "mediaComplete":this.onComplete()}};minplayer.players.minplayer.prototype.clear=function(){minplayer.players.flash.prototype.clear.call(this);this.minplayerloaded=this.options.autoplay};
+minplayer.players.minplayer.prototype.load=function(a){if(minplayer.players.flash.prototype.load.call(this,a)){this.player.loadMedia(a.path,a.stream);return true}return false};minplayer.players.minplayer.prototype.play=function(){if(minplayer.players.flash.prototype.play.call(this)){this.player.playMedia();return true}return false};minplayer.players.minplayer.prototype.pause=function(){if(minplayer.players.flash.prototype.pause.call(this)){this.player.pauseMedia();return true}return false};
+minplayer.players.minplayer.prototype.stop=function(){if(minplayer.players.flash.prototype.stop.call(this)){this.player.stopMedia();return true}return false};minplayer.players.minplayer.prototype.seek=function(a){if(minplayer.players.flash.prototype.seek.call(this,a)){this.player.seekMedia(a);return true}return false};minplayer.players.minplayer.prototype.setVolume=function(a){if(minplayer.players.flash.prototype.setVolume.call(this,a)){this.player.setVolume(a);return true}return false};
+minplayer.players.minplayer.prototype.getVolume=function(a){this.isReady()&&a(this.player.getVolume())};minplayer.players.minplayer.prototype.getDuration=function(a){if(this.isReady()){var b=this.player.getDuration();b?a(b):this.poll(function(c){return function(){(b=c.player.getDuration())&&a(b);return!b}}(this),1E3)}};minplayer.players.minplayer.prototype.getCurrentTime=function(a){this.isReady()&&a(this.player.getCurrentTime())};
+minplayer.players.minplayer.prototype.getBytesLoaded=function(a){this.isReady()&&a(this.player.getMediaBytesLoaded())};minplayer.players.minplayer.prototype.getBytesTotal=function(a){this.isReady()&&a(this.player.getMediaBytesTotal())};minplayer=minplayer||{};minplayer.players=minplayer.players||{};minplayer.players.youtube=function(a,b,c){this.quality="default";minplayer.players.base.call(this,a,b,c)};minplayer.players.youtube.prototype=new minplayer.players.base;
+minplayer.players.youtube.prototype.constructor=minplayer.players.youtube;minplayer.players.youtube.prototype.construct=function(){minplayer.players.base.prototype.construct.call(this);this.options.pluginName="youtube"};minplayer.players.youtube.getPriority=function(){return 10};minplayer.players.youtube.canPlay=function(a){return a.mimetype==="video/youtube"?true:a.path.search(/^http(s)?\:\/\/(www\.)?youtube\.com/i)===0};
+minplayer.players.youtube.getMediaId=function(a){var b=/^http[s]?\:\/\/(www\.)?youtube\.com\/watch\?v=([a-zA-Z0-9_\-]+)/i;return a.path.search(b)===0?a.path.match(b)[2]:a.path};minplayer.players.youtube.getImage=function(a,b,c){c("http://img.youtube.com/vi/"+a.id+"/"+(b=="thumbnail"?"1":"0")+".jpg")};
+minplayer.players.youtube.prototype.setPlayerState=function(a){switch(a){case YT.PlayerState.BUFFERING:this.onWaiting();break;case YT.PlayerState.PAUSED:this.onPaused();break;case YT.PlayerState.PLAYING:this.onPlaying();break;case YT.PlayerState.ENDED:this.onComplete()}};minplayer.players.youtube.prototype.onReady=function(){minplayer.players.base.prototype.onReady.call(this);this.options.autoplay||this.pause();this.onLoaded()};
+minplayer.players.youtube.prototype.playerFound=function(){return this.display.find("iframe#"+this.options.id+"-player.youtube-player").length>0};minplayer.players.youtube.prototype.onPlayerStateChange=function(a){this.setPlayerState(a.data)};minplayer.players.youtube.prototype.onQualityChange=function(a){this.quality=a.data};minplayer.players.youtube.prototype.hasPlayLoader=function(a){return minplayer.hasTouch||!a};minplayer.players.youtube.prototype.hasController=function(){return minplayer.isIDevice};
+minplayer.players.youtube.prototype.create=function(){minplayer.players.base.prototype.create.call(this);var a=document.createElement("script");a.src="https://www.youtube.com/player_api";var b=document.getElementsByTagName("script")[0];b.parentNode.insertBefore(a,b);this.playerId=this.options.id+"-player";this.poll(function(a){return function(){var b=jQuery("#"+a.playerId).length>0;if(b=(b=b&&"YT"in window)&&typeof YT.Player=="function"){jQuery("#"+a.playerId).addClass("youtube-player");var e=location.protocol,
+e=e+("//"+location.hostname),e=e+(location.port&&":"+location.port),h={};minplayer.isIDevice?h.origin=e:h={enablejsapi:minplayer.isIDevice?0:1,origin:e,wmode:"opaque",controls:minplayer.isAndroid?1:0};a.player=new YT.Player(a.playerId,{height:"100%",width:"100%",frameborder:0,videoId:a.mediaFile.id,playerVars:h,events:{onReady:function(b){a.onReady(b)},onStateChange:function(b){a.onPlayerStateChange(b)},onPlaybackQualityChange:function(b){a.onQualityChange(b)},onError:function(b){a.onError(b)}}})}return!b}}(this),
+200);return jQuery(document.createElement("div")).attr({id:this.playerId})};minplayer.players.youtube.prototype.load=function(a){if(minplayer.players.base.prototype.load.call(this,a)){this.player.loadVideoById(a.id,0,this.quality);return true}return false};minplayer.players.youtube.prototype.play=function(){if(minplayer.players.base.prototype.play.call(this)){this.onWaiting();this.player.playVideo();return true}return false};
+minplayer.players.youtube.prototype.pause=function(){if(minplayer.players.base.prototype.pause.call(this)){this.player.pauseVideo();return true}return false};minplayer.players.youtube.prototype.stop=function(){if(minplayer.players.base.prototype.stop.call(this)){this.player.stopVideo();return true}return false};minplayer.players.youtube.prototype.seek=function(a){if(minplayer.players.base.prototype.seek.call(this,a)){this.onWaiting();this.player.seekTo(a,true);return true}return false};
+minplayer.players.youtube.prototype.setVolume=function(a){if(minplayer.players.base.prototype.setVolume.call(this,a)){this.player.setVolume(a*100);return true}return false};minplayer.players.youtube.prototype.getVolume=function(a){this.getValue("getVolume",a)};minplayer.players.youtube.prototype.getDuration=function(a){this.getValue("getDuration",a)};minplayer.players.youtube.prototype.getCurrentTime=function(a){this.getValue("getCurrentTime",a)};
+minplayer.players.youtube.prototype.getBytesStart=function(a){this.getValue("getVideoStartBytes",a)};minplayer.players.youtube.prototype.getBytesLoaded=function(a){this.getValue("getVideoBytesLoaded",a)};minplayer.players.youtube.prototype.getBytesTotal=function(a){this.getValue("getVideoBytesTotal",a)};minplayer=minplayer||{};minplayer.players=minplayer.players||{};minplayer.players.vimeo=function(a,b,c){minplayer.players.base.call(this,a,b,c)};minplayer.players.vimeo.prototype=new minplayer.players.base;
+minplayer.players.vimeo.prototype.constructor=minplayer.players.vimeo;minplayer.players.vimeo.prototype.construct=function(){minplayer.players.base.prototype.construct.call(this);this.options.pluginName="vimeo"};minplayer.players.vimeo.getPriority=function(){return 10};minplayer.players.vimeo.canPlay=function(a){return a.mimetype==="video/vimeo"?true:a.path.search(/^http(s)?\:\/\/(www\.)?vimeo\.com/i)===0};minplayer.players.vimeo.prototype.hasPlayLoader=function(a){return minplayer.hasTouch||!a};
+minplayer.players.vimeo.prototype.hasController=function(){return minplayer.hasTouch};minplayer.players.vimeo.getMediaId=function(a){var b=/^http[s]?\:\/\/(www\.)?vimeo\.com\/(\?v\=)?([0-9]+)/i;return a.path.search(b)===0?a.path.match(b)[3]:a.path};minplayer.players.vimeo.getImage=function(a,b,c){jQuery.ajax({url:"http://vimeo.com/api/v2/video/"+a.id+".json",dataType:"jsonp",success:function(a){c(a[0].thumbnail_large)}})};minplayer.players.vimeo.prototype.reset=function(){minplayer.players.base.prototype.reset.call(this)};
+minplayer.players.vimeo.prototype.create=function(){minplayer.players.base.prototype.create.call(this);var a=document.createElement("script");a.src="http://a.vimeocdn.com/js/froogaloop2.min.js";var b=document.getElementsByTagName("script")[0];b.parentNode.insertBefore(a,b);var c=document.createElement("iframe");c.setAttribute("id",this.options.id+"-player");c.setAttribute("type","text/html");c.setAttribute("width","100%");c.setAttribute("height","100%");c.setAttribute("frameborder","0");jQuery(c).addClass("vimeo-player");
+a="http://player.vimeo.com/video/"+(this.mediaFile.id+"?");a=a+jQuery.param({wmode:"opaque",api:1,player_id:this.options.id+"-player",title:0,byline:0,portrait:0,autoplay:this.options.autoplay,loop:this.options.loop});c.setAttribute("src",a);this.poll(function(a){return function(){if(window.Froogaloop){a.player=window.Froogaloop(c);var b=0;a.player.addEvent("ready",function(){clearTimeout(b);a.onReady();a.onError("")});b=setTimeout(function(){a.onReady();a.onError("Unable to play video.")},2E3)}return!window.Froogaloop}}(this),
+200);this.trigger("loadstart");return c};
+minplayer.players.vimeo.prototype.onReady=function(){this.player.addEvent("loadProgress",function(a){return function(b){a.duration.set(parseFloat(b.duration));a.bytesLoaded.set(b.bytesLoaded);a.bytesTotal.set(b.bytesTotal)}}(this));this.player.addEvent("playProgress",function(a){return function(b){a.duration.set(parseFloat(b.duration));a.currentTime.set(parseFloat(b.seconds))}}(this));this.player.addEvent("play",function(a){return function(){a.onPlaying()}}(this));this.player.addEvent("pause",function(a){return function(){a.onPaused()}}(this));
+this.player.addEvent("finish",function(a){return function(){a.onComplete()}}(this));minplayer.players.base.prototype.onReady.call(this);this.onLoaded()};minplayer.players.vimeo.prototype.clear=function(){this.player&&this.player.api("unload");minplayer.players.base.prototype.clear.call(this)};minplayer.players.vimeo.prototype.load=function(a){if(minplayer.players.base.prototype.load.call(this,a)){this.construct();return true}return false};
+minplayer.players.vimeo.prototype.play=function(){if(minplayer.players.base.prototype.play.call(this)){this.player.api("play");return true}return false};minplayer.players.vimeo.prototype.pause=function(){if(minplayer.players.base.prototype.pause.call(this)){this.player.api("pause");return true}return false};minplayer.players.vimeo.prototype.stop=function(){if(minplayer.players.base.prototype.stop.call(this)){this.player.api("unload");return true}return false};
+minplayer.players.vimeo.prototype.seek=function(a){if(minplayer.players.base.prototype.seek.call(this,a)){this.player.api("seekTo",a);return true}return false};minplayer.players.vimeo.prototype.setVolume=function(a){if(minplayer.players.base.prototype.setVolume.call(this,a)){this.volume.set(a);this.player.api("setVolume",a);return true}return false};minplayer.players.vimeo.prototype.getVolume=function(a){this.player.api("getVolume",function(b){a(b)})};
+minplayer.players.vimeo.prototype.getDuration=function(a){this.isReady()&&(this.duration.value?a(this.duration.value):this.player.api("getDuration",function(b){a(b)}))};minplayer=minplayer||{};minplayer.controller=function(a,b){minplayer.display.call(this,"controller",a,b)};minplayer.controller.prototype=new minplayer.display;minplayer.controller.prototype.constructor=minplayer.controller;
+minplayer.formatTime=function(a){var a=a||0,b=0,c=0,d=0,e="",d=Math.floor(a/3600),a=a-d*3600,c=Math.floor(a/60),b=Math.floor((a-c*60)%60);if(d){e=e+String(d);e=e+":"}e=e+(c>=10?String(c):"0"+String(c));e=e+":"+(b>=10?String(b):"0"+String(b));return{time:e,units:""}};minplayer.controller.prototype.getElements=function(){var a=minplayer.display.prototype.getElements.call(this);return jQuery.extend(a,{play:null,pause:null,fullscreen:null,seek:null,progress:null,volume:null,timer:null})};
+minplayer.controller.prototype.construct=function(){minplayer.display.prototype.construct.call(this);this.options.pluginName="controller";this.dragging=false;this.vol=0;if(this.elements.seek)this.seekBar=this.elements.seek.slider({range:"min",create:function(a){jQuery(".ui-slider-range",a.target).addClass("ui-state-active")}});if(this.elements.volume)this.volumeBar=this.elements.volume.slider({range:"min",orientation:"vertical"});this.get("player",function(a){this.elements.fullscreen&&minplayer.click(this.elements.fullscreen.unbind(),
+function(){a.toggleFullScreen()}).css({pointer:"hand"})});this.get("media",function(a){if(a.hasController())this.hide();else{if(this.elements.pause){minplayer.click(this.elements.pause.unbind(),function(b){return function(c){c.preventDefault();b.playPause(false,a)}}(this));a.bind("pause",function(a){return function(){a.setPlayPause(true)}}(this))}if(this.elements.play){minplayer.click(this.elements.play.unbind(),function(b){return function(c){c.preventDefault();b.playPause(true,a)}}(this));a.bind("playing",
+function(a){return function(){a.setPlayPause(false)}}(this))}if(this.elements.duration){a.bind("durationchange",function(a){return function(c,d){a.setTimeString("duration",d.duration)}}(this));a.getDuration(function(a){return function(c){a.setTimeString("duration",c)}}(this))}this.elements.progress&&a.bind("progress",function(a){return function(c,d){a.elements.progress.width((d.total?d.loaded/d.total*100:0)+"%")}}(this));(this.seekBar||this.elements.timer)&&a.bind("timeupdate",function(a){return function(c,
+d){if(!a.dragging){var e=0;d.duration&&(e=d.currentTime/d.duration*100);a.seekBar&&a.seekBar.slider("option","value",e);a.setTimeString("timer",d.currentTime)}}}(this));this.seekBar&&this.seekBar.slider({start:function(a){return function(){a.dragging=true}}(this),stop:function(b){return function(c,d){b.dragging=false;a.getDuration(function(b){a.seek(d.value/100*b)})}}(this),slide:function(b){return function(c,d){a.getDuration(function(c){c=d.value/100*c;b.dragging||a.seek(c);b.setTimeString("timer",
+c)})}}(this)});this.elements.mute&&minplayer.click(this.elements.mute,function(b){return function(c){c.preventDefault();c=b.volumeBar.slider("option","value");if(c>0){b.vol=c;b.volumeBar.slider("option","value",0);a.setVolume(0)}else{b.volumeBar.slider("option","value",b.vol);a.setVolume(b.vol/100)}}}(this));if(this.volumeBar){this.volumeBar.slider({slide:function(b,c){a.setVolume(c.value/100)}});a.bind("volumeupdate",function(a){return function(c,d){a.volumeBar.slider("option","value",d*100)}}(this));
+a.getVolume(function(a){return function(c){a.volumeBar.slider("option","value",c*100)}}(this))}}});this.ready()};minplayer.controller.prototype.setPlayPause=function(a){this.elements.play&&this.elements.play.css("display",a?"inherit":"none");this.elements.pause&&this.elements.pause.css("display",a?"none":"inherit")};minplayer.controller.prototype.playPause=function(a,b){var c=a?"play":"pause";this.display.trigger(c);this.setPlayPause(!a);if(b)b[c]()};
+minplayer.controller.prototype.setTimeString=function(a,b){this.elements[a]&&this.elements[a].text(minplayer.formatTime(b).time)};jQuery.fn.osmplayer||(jQuery.fn.osmplayer=function(a){return jQuery(this).each(function(){a=a||{};a.id=a.id||jQuery(this).attr("id")||Math.random();if(!minplayer.plugins[a.id]){a.template=a.template||"default";osmplayer[a.template]?new osmplayer[a.template](jQuery(this),a):new osmplayer(jQuery(this),a)}})});osmplayer=function(a,b){minplayer.call(this,a,b)};
+osmplayer.prototype=new minplayer;osmplayer.prototype.constructor=osmplayer;osmplayer.prototype.create=function(a,b,c){return minplayer.prototype.create.call(this,a,"osmplayer",c)};
+osmplayer.prototype.construct=function(){this.options=jQuery.extend({playlist:"",node:{},swfplayer:"minplayer/flash/minplayer.swf",logo:"logo.png",link:"http://www.mediafront.org"},this.options);minplayer.prototype.construct.call(this);this.playQueue=[];this.playIndex=0;this.create("playlist","osmplayer");this.get("playlist",function(a){a.bind("nodeLoad",function(a){return function(c,d){a.loadNode(d)}}(this))});this.get("media",function(a){return function(b){b.bind("ended",function(){a.options.autoplay=
+true;a.playNext()})}}(this));this.options.node&&this.loadNode(this.options.node)};osmplayer.prototype.fullScreenElement=function(){return this.elements.minplayer};
+osmplayer.prototype.loadNode=function(a){if(a&&a.mediafiles){var b=a.mediafiles.media;if(b){this.playQueue.length=0;this.playQueue=[];this.playIndex=0;var c=null,d=[],d=minplayer.isAndroid||minplayer.isIDevice?["media"]:["intro","commercial","prereel","media","postreel"];jQuery.each(d,function(a){return function(d,i){if(c=a.addToQueue(b[i]))c.queueType=i}}(this))}osmplayer.getImage(a.mediafiles,"preview",function(a){return function(b){a.options.preview=b.path;a.playLoader&&a.playLoader.initialize()}}(this));
+this.playNext()}};osmplayer.prototype.addToQueue=function(a){(a=minplayer.getMediaFile(a))&&this.playQueue.push(a);return a};osmplayer.prototype.playNext=function(){if(this.playQueue.length>this.playIndex){this.load(this.playQueue[this.playIndex]);this.playIndex++}else if(this.options.repeat){this.playIndex=0;this.playNext()}else if(this.playQueue.length>0){this.options.autoplay=false;this.playIndex=0;this.playNext()}else this.media&&this.media.stop()};
+osmplayer.getImage=function(a,b,c){var d="",e=a.image;if(e)if(e[b])d=e[b];else if(e.image)d=e.image;else for(b in e)if(e.hasOwnProperty(b)){d=e[b];break}if(d)c(new minplayer.file(d));else if(a=minplayer.getMediaFile(a.media.media))(d=minplayer.players[a.player])&&typeof d.getImage==="function"&&d.getImage(a,b,function(a){c(new minplayer.file(a))})};var osmplayer=osmplayer||{};osmplayer.parser=osmplayer.parser||{};
+osmplayer.parser["default"]={priority:1,valid:function(){return true},getType:function(){return"json"},getFeed:function(a,b,c){a=a.replace(/(.*)\??(.*)/i,"$1");return a+("?start-index="+b)+("&max-results="+c)},parse:function(a){return a}};osmplayer=osmplayer||{};osmplayer.parser=osmplayer.parser||{};
+osmplayer.parser.youtube={priority:10,valid:function(a){return a.search(/^http(s)?\:\/\/gdata\.youtube\.com/i)===0},getType:function(){return"jsonp"},getFeed:function(a,b,c){a=a.replace(/(.*)\??(.*)/i,"$1");return a+("?start-index="+(b+1))+("&max-results="+c)+"&v=2&alt=jsonc"},parse:function(a){var a=a.data,b={total_rows:a.totalItems,nodes:[]},c;for(c in a.items)if(a.items.hasOwnProperty(c)){var d=a.items[c];b.nodes.push({title:d.title,description:d.description,mediafiles:{image:{thumbnail:{path:d.thumbnail.sqDefault},
+image:{path:d.thumbnail.hqDefault}},media:{media:{player:"youtube",id:d.id}}}})}return b}};osmplayer=osmplayer||{};osmplayer.parser=osmplayer.parser||{};
+osmplayer.parser.rss={priority:8,valid:function(a){a=a.replace(/(.*)\??(.*)/i,"$1");return a.match(/\.rss$/i)!==null},getType:function(){return"xml"},getFeed:function(a){return a},parse:function(a){var b={total_rows:0,nodes:[]};jQuery("rss channel",a).find("item").each(function(){osmplayer.parser.rss.addRSSItem(b,jQuery(this))});return b},addRSSItem:function(a,b){a.total_rows++;a.nodes.push({title:b.find("title").text(),description:b.find("annotation").text(),mediafiles:{image:{image:{path:b.find("image").text()}},
+media:{media:{path:b.find("location").text()}}}})}};osmplayer=osmplayer||{};osmplayer.parser=osmplayer.parser||{};osmplayer.parser.asx={priority:8,valid:function(a){a=a.replace(/(.*)\??(.*)/i,"$1");return a.match(/\.asx$/i)!==null},getType:function(){return"xml"},getFeed:function(a){return a},parse:function(a){var b={total_rows:0,nodes:[]};jQuery("asx entry",a).each(function(){osmplayer.parser.rss.addRSSItem(b,jQuery(this))});return b}};osmplayer=osmplayer||{};osmplayer.parser=osmplayer.parser||{};
+osmplayer.parser.xsfp={priority:8,valid:function(a){a=a.replace(/(.*)\??(.*)/i,"$1");return a.match(/\.xml$/i)!==null},getType:function(){return"xml"},getFeed:function(a){return a},parse:function(a){var b={total_rows:0,nodes:[]};jQuery("playlist trackList track",a).each(function(){osmplayer.parser.rss.addRSSItem(b,jQuery(this))});return b}};osmplayer=osmplayer||{};osmplayer.playlist=function(a,b){minplayer.display.call(this,"playlist",a,b)};osmplayer.playlist.prototype=new minplayer.display;
+osmplayer.playlist.prototype.constructor=osmplayer.playlist;
+osmplayer.playlist.prototype.construct=function(){this.options=jQuery.extend({vertical:true,playlist:"",pageLimit:10,autoNext:true,shuffle:false,loop:false,hysteresis:40,scrollSpeed:20,scrollMode:"auto"},this.options);minplayer.display.prototype.construct.call(this);this.nodes=[];this.page=-1;this.totalItems=0;this.currentItem=-1;this.playqueue=[];this.playqueuepos=0;this.playlist=this.options.playlist;this.scroll=null;this.orient={pos:this.options.vertical?"y":"x",pagePos:this.options.vertical?"pageY":
+"pageX",offset:this.options.vertical?"top":"left",wrapperSize:this.options.vertical?"wrapperH":"wrapperW",minScroll:this.options.vertical?"minScrollY":"minScrollX",maxScroll:this.options.vertical?"maxScrollY":"maxScrollX",size:this.options.vertical?"height":"width"};this.pager=this.create("pager","osmplayer");this.pager.bind("nextPage",function(a){return function(){a.nextPage()}}(this));this.pager.bind("prevPage",function(a){return function(){a.prevPage()}}(this));this.next()&&this.options.autoNext&&
+this.get("media",function(a){a.bind("ended",function(b){return function(){a.options.autoplay=true;b.next()}}(this))});this.ready()};osmplayer.playlist.prototype.scrollTo=function(a,b){if(this.scroll){this.scroll.options.hideScrollbar=false;this.options.vertical?this.scroll.scrollTo(0,a,0,b):this.scroll.scrollTo(a,0,0,b);this.scroll.options.hideScrollbar=true}};
+osmplayer.playlist.prototype.refreshScroll=function(){if(window.addEventListener){var a=this.elements.list,b=this.elements.scroll;if(!this.scroll&&a.length>0&&b.length>0&&a[this.orient.size]()>b[this.orient.size]()){this.scroll=new iScroll(this.elements.scroll.eq(0)[0],{hScroll:!this.options.vertical,hScrollbar:!this.options.vertical,vScroll:this.options.vertical,vScrollbar:this.options.vertical,hideScrollbar:true});this.options.scrollMode=="auto"&&!minplayer.hasTouch&&this.elements.list.bind("mousemove",
+function(a){return function(b){b.preventDefault();var c=a.display.offset()[a.orient.offset];a.mousePos=b[a.orient.pagePos];a.mousePos=a.mousePos-c}}(this)).bind("mouseenter",function(a){return function(b){b.preventDefault();a.scrolling=true;var c=function(){if(a.scrolling){var b=a.scroll[a.orient.wrapperSize]/2,d=a.mousePos-b;if(Math.abs(d)>a.options.hysteresis){var h=a.options.hysteresis,d=a.options.scrollSpeed*(d+h*(d>0?-1:0)),d=d/b,b=a.scroll[a.orient.pos]-d,h=a.scroll[a.orient.minScroll]||0,s=
+a.scroll[a.orient.maxScroll];b>=h?a.scrollTo(h):b<=s?a.scrollTo(s):a.scrollTo(d,true)}setTimeout(c,30)}};c()}}(this)).bind("mouseleave",function(a){return function(b){b.preventDefault();a.scrolling=false}}(this));if(!this.options.vertical){var c=0;jQuery.each(this.elements.list.children(),function(){c=c+jQuery(this).outerWidth()});this.elements.list.width(c)}this.scroll.refresh();this.scroll.scrollTo(0,0,200)}else if(this.scroll){this.scroll.disable();this.elements.list.unbind("mousemove").unbind("mouseenter").unbind("mouseleave")}}else{var d=
+this;setTimeout(function(){d.refreshScroll.call(d)},200)}};
+osmplayer.playlist.prototype.set=function(a,b){if(typeof a!=="object")this.trigger("error","Playlist must be an object to set");else if(a.hasOwnProperty("total_rows")){if(a.total_rows&&a.nodes.length){this.totalItems=a.total_rows;this.currentItem=0;(this.page+1)*this.options.pageLimit>=this.totalItems?this.pager.nextPage.hide():this.pager.nextPage.show();var c=null,d=a.nodes.length;this.elements.list.empty();this.nodes=[];for(var e=0;e<d;e++){c=this.create("teaser","osmplayer",this.elements.list);
+c.setNode(a.nodes[e]);c.bind("nodeLoad",function(a,b){return function(){a.loadItem(b)}}(this,e));this.nodes.push(c);b===e&&this.loadItem(e)}this.refreshScroll();this.trigger("playlistLoad",a)}this.elements.playlist_busy&&this.elements.playlist_busy.hide()}else this.trigger("error","Unknown playlist format.")};osmplayer.playlist.prototype.setQueue=function(){this.playqueue.push({page:this.page,item:this.currentItem});this.playqueuepos=this.playqueue.length};
+osmplayer.playlist.prototype.next=function(){var a=0,b=this.page;if(this.playqueuepos>=this.playqueue.length){if(this.options.shuffle){a=Math.floor(Math.random()*this.totalItems);b=Math.floor(a/this.options.pageLimit);a=a%this.options.pageLimit;return this.load(b,a)}a=this.currentItem+1;return a>=this.nodes.length?this.load(b+1,0):this.loadItem(a)}this.playqueuepos=this.playqueuepos+1;a=this.playqueue[this.playqueuepos];return this.load(a.page,a.item)};
+osmplayer.playlist.prototype.prev=function(){this.playqueuepos=this.playqueuepos-1;this.playqueuepos=this.playqueuepos<0?0:this.playqueuepos;var a=this.playqueue[this.playqueuepos];return a?this.load(a.page,a.item):false};osmplayer.playlist.prototype.loadItem=function(a){if(a<this.nodes.length){this.setQueue();var b=this.nodes[this.currentItem];b.select(false);this.currentItem=a;b=this.nodes[a];b.select(true);this.trigger("nodeLoad",b.node);return true}return false};
+osmplayer.playlist.prototype.nextPage=function(a){return this.load(this.page+1,a)};osmplayer.playlist.prototype.prevPage=function(a){return this.load(this.page-1,a)};
+osmplayer.playlist.prototype.load=function(a,b){if(this.playlist==this.options.playlist&&a==this.page)return this.loadItem(b);this.playlist=this.options.playlist;if(!this.playlist)return false;if(a>Math.floor(this.totalItems/this.options.pageLimit))if(this.options.loop)b=a=0;else return false;this.elements.playlist_busy&&this.elements.playlist_busy.show();a=a||0;a=a<0?0:a;this.setQueue();this.page=a;this.page==0?this.pager.prevPage.hide():this.pager.prevPage.show();if(typeof this.playlist=="object"){this.set(this.playlist,
+b);if(this.playlist.endpoint)this.playlist=this.options.playlist=this.playlist.endpoint;return true}var c=osmplayer.parser["default"],d;for(d in osmplayer.parser)osmplayer.parser.hasOwnProperty(d)&&osmplayer.parser[d].valid(this.playlist)&&osmplayer.parser[d].priority>c.priority&&(c=osmplayer.parser[d]);var e=this,h=this;d={type:"GET",url:c.getFeed(this.playlist,this.page*this.options.pageLimit,this.options.pageLimit),success:function(a){e.set(c.parse(a),b)},error:function(a,b){h.elements.playlist_busy&&
+h.elements.playlist_busy.hide();h.trigger("error",b)}};var i="";if(i=c.getType())d.dataType=i;jQuery.ajax(d);return true};osmplayer=osmplayer||{};osmplayer.pager=function(a,b){minplayer.display.call(this,"pager",a,b)};osmplayer.pager.prototype=new minplayer.display;osmplayer.pager.prototype.constructor=osmplayer.pager;
+osmplayer.pager.prototype.construct=function(){minplayer.display.prototype.construct.call(this);if(this.elements.prevPage)this.prevPage=this.elements.prevPage.click(function(a){return function(b){b.preventDefault();a.trigger("prevPage")}}(this));if(this.elements.nextPage)this.nextPage=this.elements.nextPage.click(function(a){return function(b){b.preventDefault();a.trigger("nextPage")}}(this))};osmplayer=osmplayer||{};
+osmplayer.teaser=function(a,b){this.preview=null;minplayer.display.call(this,"teaser",a,b)};osmplayer.teaser.prototype=new minplayer.display;osmplayer.teaser.prototype.constructor=osmplayer.teaser;osmplayer.teaser.prototype.select=function(){};
+osmplayer.teaser.prototype.setNode=function(a){this.node=a;this.elements.title&&this.elements.title.text(a.title);if(a.mediafiles&&a.mediafiles.image)if((a=osmplayer.getImage(a.mediafiles,"thumbnail"))&&this.elements.image){this.preview=new minplayer.image(this.elements.image);this.preview.load(a)}this.display.unbind("click").click(function(a){return function(c){c.preventDefault();a.trigger("nodeLoad",a.node)}}(this))};
diff --git a/public/admin/js/osmplayer/bin/osmplayer.js b/public/admin/js/osmplayer/bin/osmplayer.js
new file mode 100644
index 00000000000..2474b50690c
--- /dev/null
+++ b/public/admin/js/osmplayer/bin/osmplayer.js
@@ -0,0 +1,7082 @@
+/*!
+ * iScroll v4.1.9 ~ Copyright (c) 2011 Matteo Spinelli, http://cubiq.org
+ * Released under MIT license, http://cubiq.org/license
+ */
+(function(){
+var m = Math,
+	mround = function (r) { return r >> 0; },
+	vendor = (/webkit/i).test(navigator.appVersion) ? 'webkit' :
+		(/firefox/i).test(navigator.userAgent) ? 'Moz' :
+		(/trident/i).test(navigator.userAgent) ? 'ms' :
+		'opera' in window ? 'O' : '',
+
+    // Browser capabilities
+    isAndroid = (/android/gi).test(navigator.appVersion),
+    isIDevice = (/iphone|ipad/gi).test(navigator.appVersion),
+    isPlaybook = (/playbook/gi).test(navigator.appVersion),
+    isTouchPad = (/hp-tablet/gi).test(navigator.appVersion),
+
+    has3d = 'WebKitCSSMatrix' in window && 'm11' in new WebKitCSSMatrix(),
+    hasTouch = 'ontouchstart' in window && !isTouchPad,
+    hasTransform = vendor + 'Transform' in document.documentElement.style,
+    hasTransitionEnd = isIDevice || isPlaybook,
+
+	nextFrame = (function() {
+	    return window.requestAnimationFrame
+			|| window.webkitRequestAnimationFrame
+			|| window.mozRequestAnimationFrame
+			|| window.oRequestAnimationFrame
+			|| window.msRequestAnimationFrame
+			|| function(callback) { return setTimeout(callback, 1); }
+	})(),
+	cancelFrame = (function () {
+	    return window.cancelRequestAnimationFrame
+			|| window.webkitCancelAnimationFrame
+			|| window.webkitCancelRequestAnimationFrame
+			|| window.mozCancelRequestAnimationFrame
+			|| window.oCancelRequestAnimationFrame
+			|| window.msCancelRequestAnimationFrame
+			|| clearTimeout
+	})(),
+
+	// Events
+	RESIZE_EV = 'onorientationchange' in window ? 'orientationchange' : 'resize',
+	START_EV = hasTouch ? 'touchstart' : 'mousedown',
+	MOVE_EV = hasTouch ? 'touchmove' : 'mousemove',
+	END_EV = hasTouch ? 'touchend' : 'mouseup',
+	CANCEL_EV = hasTouch ? 'touchcancel' : 'mouseup',
+	WHEEL_EV = vendor == 'Moz' ? 'DOMMouseScroll' : 'mousewheel',
+
+	// Helpers
+	trnOpen = 'translate' + (has3d ? '3d(' : '('),
+	trnClose = has3d ? ',0)' : ')',
+
+	// Constructor
+	iScroll = function (el, options) {
+		var that = this,
+			doc = document,
+			i;
+
+		that.wrapper = typeof el == 'object' ? el : doc.getElementById(el);
+		that.wrapper.style.overflow = 'hidden';
+		that.scroller = that.wrapper.children[0];
+
+		// Default options
+		that.options = {
+			hScroll: true,
+			vScroll: true,
+			x: 0,
+			y: 0,
+			bounce: true,
+			bounceLock: false,
+			momentum: true,
+			lockDirection: true,
+			useTransform: true,
+			useTransition: false,
+			topOffset: 0,
+			checkDOMChanges: false,		// Experimental
+
+			// Scrollbar
+			hScrollbar: true,
+			vScrollbar: true,
+			fixedScrollbar: isAndroid,
+			hideScrollbar: isIDevice,
+			fadeScrollbar: isIDevice && has3d,
+			scrollbarClass: '',
+
+			// Zoom
+			zoom: false,
+			zoomMin: 1,
+			zoomMax: 4,
+			doubleTapZoom: 2,
+			wheelAction: 'scroll',
+
+			// Snap
+			snap: false,
+			snapThreshold: 1,
+
+			// Events
+			onRefresh: null,
+			onBeforeScrollStart: function (e) { e.preventDefault(); },
+			onScrollStart: null,
+			onBeforeScrollMove: null,
+			onScrollMove: null,
+			onBeforeScrollEnd: null,
+			onScrollEnd: null,
+			onTouchEnd: null,
+			onDestroy: null,
+			onZoomStart: null,
+			onZoom: null,
+			onZoomEnd: null
+		};
+
+		// User defined options
+		for (i in options) that.options[i] = options[i];
+		
+		// Set starting position
+		that.x = that.options.x;
+		that.y = that.options.y;
+
+		// Normalize options
+		that.options.useTransform = hasTransform ? that.options.useTransform : false;
+		that.options.hScrollbar = that.options.hScroll && that.options.hScrollbar;
+		that.options.vScrollbar = that.options.vScroll && that.options.vScrollbar;
+		that.options.zoom = that.options.useTransform && that.options.zoom;
+		that.options.useTransition = hasTransitionEnd && that.options.useTransition;
+
+		// Helpers FIX ANDROID BUG!
+		// translate3d and scale doesn't work together! 
+		// Ignoring 3d ONLY WHEN YOU SET that.options.zoom
+		if ( that.options.zoom && isAndroid ){
+			trnOpen = 'translate(';
+			trnClose = ')';
+		}
+		
+		// Set some default styles
+		that.scroller.style[vendor + 'TransitionProperty'] = that.options.useTransform ? '-' + vendor.toLowerCase() + '-transform' : 'top left';
+		that.scroller.style[vendor + 'TransitionDuration'] = '0';
+		that.scroller.style[vendor + 'TransformOrigin'] = '0 0';
+		if (that.options.useTransition) that.scroller.style[vendor + 'TransitionTimingFunction'] = 'cubic-bezier(0.33,0.66,0.66,1)';
+		
+		if (that.options.useTransform) that.scroller.style[vendor + 'Transform'] = trnOpen + that.x + 'px,' + that.y + 'px' + trnClose;
+		else that.scroller.style.cssText += ';position:absolute;top:' + that.y + 'px;left:' + that.x + 'px';
+
+		if (that.options.useTransition) that.options.fixedScrollbar = true;
+
+		that.refresh();
+
+		that._bind(RESIZE_EV, window);
+		that._bind(START_EV);
+		if (!hasTouch) {
+			that._bind('mouseout', that.wrapper);
+			if (that.options.wheelAction != 'none')
+				that._bind(WHEEL_EV);
+		}
+
+		if (that.options.checkDOMChanges) that.checkDOMTime = setInterval(function () {
+			that._checkDOMChanges();
+		}, 500);
+	};
+
+// Prototype
+iScroll.prototype = {
+	enabled: true,
+	x: 0,
+	y: 0,
+	steps: [],
+	scale: 1,
+	currPageX: 0, currPageY: 0,
+	pagesX: [], pagesY: [],
+	aniTime: null,
+	wheelZoomCount: 0,
+	
+	handleEvent: function (e) {
+		var that = this;
+		switch(e.type) {
+			case START_EV:
+				if (!hasTouch && e.button !== 0) return;
+				that._start(e);
+				break;
+			case MOVE_EV: that._move(e); break;
+			case END_EV:
+			case CANCEL_EV: that._end(e); break;
+			case RESIZE_EV: that._resize(); break;
+			case WHEEL_EV: that._wheel(e); break;
+			case 'mouseout': that._mouseout(e); break;
+			case 'webkitTransitionEnd': that._transitionEnd(e); break;
+		}
+	},
+	
+	_checkDOMChanges: function () {
+		if (this.moved || this.zoomed || this.animating ||
+			(this.scrollerW == this.scroller.offsetWidth * this.scale && this.scrollerH == this.scroller.offsetHeight * this.scale)) return;
+
+		this.refresh();
+	},
+	
+	_scrollbar: function (dir) {
+		var that = this,
+			doc = document,
+			bar;
+
+		if (!that[dir + 'Scrollbar']) {
+			if (that[dir + 'ScrollbarWrapper']) {
+				if (hasTransform) that[dir + 'ScrollbarIndicator'].style[vendor + 'Transform'] = '';
+				that[dir + 'ScrollbarWrapper'].parentNode.removeChild(that[dir + 'ScrollbarWrapper']);
+				that[dir + 'ScrollbarWrapper'] = null;
+				that[dir + 'ScrollbarIndicator'] = null;
+			}
+
+			return;
+		}
+
+		if (!that[dir + 'ScrollbarWrapper']) {
+			// Create the scrollbar wrapper
+			bar = doc.createElement('div');
+
+			if (that.options.scrollbarClass) bar.className = that.options.scrollbarClass + dir.toUpperCase();
+			else bar.style.cssText = 'position:absolute;z-index:100;' + (dir == 'h' ? 'height:7px;bottom:1px;left:2px;right:' + (that.vScrollbar ? '7' : '2') + 'px' : 'width:7px;bottom:' + (that.hScrollbar ? '7' : '2') + 'px;top:2px;right:1px');
+
+			bar.style.cssText += ';pointer-events:none;-' + vendor + '-transition-property:opacity;-' + vendor + '-transition-duration:' + (that.options.fadeScrollbar ? '350ms' : '0') + ';overflow:hidden;opacity:' + (that.options.hideScrollbar ? '0' : '1');
+
+			that.wrapper.appendChild(bar);
+			that[dir + 'ScrollbarWrapper'] = bar;
+
+			// Create the scrollbar indicator
+			bar = doc.createElement('div');
+			if (!that.options.scrollbarClass) {
+				bar.style.cssText = 'position:absolute;z-index:100;background:rgba(0,0,0,0.5);border:1px solid rgba(255,255,255,0.9);-' + vendor + '-background-clip:padding-box;-' + vendor + '-box-sizing:border-box;' + (dir == 'h' ? 'height:100%' : 'width:100%') + ';-' + vendor + '-border-radius:3px;border-radius:3px';
+			}
+			bar.style.cssText += ';pointer-events:none;-' + vendor + '-transition-property:-' + vendor + '-transform;-' + vendor + '-transition-timing-function:cubic-bezier(0.33,0.66,0.66,1);-' + vendor + '-transition-duration:0;-' + vendor + '-transform:' + trnOpen + '0,0' + trnClose;
+			if (that.options.useTransition) bar.style.cssText += ';-' + vendor + '-transition-timing-function:cubic-bezier(0.33,0.66,0.66,1)';
+
+			that[dir + 'ScrollbarWrapper'].appendChild(bar);
+			that[dir + 'ScrollbarIndicator'] = bar;
+		}
+
+		if (dir == 'h') {
+			that.hScrollbarSize = that.hScrollbarWrapper.clientWidth;
+			that.hScrollbarIndicatorSize = m.max(mround(that.hScrollbarSize * that.hScrollbarSize / that.scrollerW), 8);
+			that.hScrollbarIndicator.style.width = that.hScrollbarIndicatorSize + 'px';
+			that.hScrollbarMaxScroll = that.hScrollbarSize - that.hScrollbarIndicatorSize;
+			that.hScrollbarProp = that.hScrollbarMaxScroll / that.maxScrollX;
+		} else {
+			that.vScrollbarSize = that.vScrollbarWrapper.clientHeight;
+			that.vScrollbarIndicatorSize = m.max(mround(that.vScrollbarSize * that.vScrollbarSize / that.scrollerH), 8);
+			that.vScrollbarIndicator.style.height = that.vScrollbarIndicatorSize + 'px';
+			that.vScrollbarMaxScroll = that.vScrollbarSize - that.vScrollbarIndicatorSize;
+			that.vScrollbarProp = that.vScrollbarMaxScroll / that.maxScrollY;
+		}
+
+		// Reset position
+		that._scrollbarPos(dir, true);
+	},
+	
+	_resize: function () {
+		var that = this;
+		setTimeout(function () { that.refresh(); }, isAndroid ? 200 : 0);
+	},
+	
+	_pos: function (x, y) {
+		x = this.hScroll ? x : 0;
+		y = this.vScroll ? y : 0;
+
+		if (this.options.useTransform) {
+			this.scroller.style[vendor + 'Transform'] = trnOpen + x + 'px,' + y + 'px' + trnClose + ' scale(' + this.scale + ')';
+		} else {
+			x = mround(x);
+			y = mround(y);
+			this.scroller.style.left = x + 'px';
+			this.scroller.style.top = y + 'px';
+		}
+
+		this.x = x;
+		this.y = y;
+
+		this._scrollbarPos('h');
+		this._scrollbarPos('v');
+	},
+
+	_scrollbarPos: function (dir, hidden) {
+		var that = this,
+			pos = dir == 'h' ? that.x : that.y,
+			size;
+
+		if (!that[dir + 'Scrollbar']) return;
+
+		pos = that[dir + 'ScrollbarProp'] * pos;
+
+		if (pos < 0) {
+			if (!that.options.fixedScrollbar) {
+				size = that[dir + 'ScrollbarIndicatorSize'] + mround(pos * 3);
+				if (size < 8) size = 8;
+				that[dir + 'ScrollbarIndicator'].style[dir == 'h' ? 'width' : 'height'] = size + 'px';
+			}
+			pos = 0;
+		} else if (pos > that[dir + 'ScrollbarMaxScroll']) {
+			if (!that.options.fixedScrollbar) {
+				size = that[dir + 'ScrollbarIndicatorSize'] - mround((pos - that[dir + 'ScrollbarMaxScroll']) * 3);
+				if (size < 8) size = 8;
+				that[dir + 'ScrollbarIndicator'].style[dir == 'h' ? 'width' : 'height'] = size + 'px';
+				pos = that[dir + 'ScrollbarMaxScroll'] + (that[dir + 'ScrollbarIndicatorSize'] - size);
+			} else {
+				pos = that[dir + 'ScrollbarMaxScroll'];
+			}
+		}
+
+		that[dir + 'ScrollbarWrapper'].style[vendor + 'TransitionDelay'] = '0';
+		that[dir + 'ScrollbarWrapper'].style.opacity = hidden && that.options.hideScrollbar ? '0' : '1';
+		that[dir + 'ScrollbarIndicator'].style[vendor + 'Transform'] = trnOpen + (dir == 'h' ? pos + 'px,0' : '0,' + pos + 'px') + trnClose;
+	},
+	
+	_start: function (e) {
+		var that = this,
+			point = hasTouch ? e.touches[0] : e,
+			matrix, x, y,
+			c1, c2;
+
+		if (!that.enabled) return;
+
+		if (that.options.onBeforeScrollStart) that.options.onBeforeScrollStart.call(that, e);
+
+		if (that.options.useTransition || that.options.zoom) that._transitionTime(0);
+
+		that.moved = false;
+		that.animating = false;
+		that.zoomed = false;
+		that.distX = 0;
+		that.distY = 0;
+		that.absDistX = 0;
+		that.absDistY = 0;
+		that.dirX = 0;
+		that.dirY = 0;
+
+		// Gesture start
+		if (that.options.zoom && hasTouch && e.touches.length > 1) {
+			c1 = m.abs(e.touches[0].pageX-e.touches[1].pageX);
+			c2 = m.abs(e.touches[0].pageY-e.touches[1].pageY);
+			that.touchesDistStart = m.sqrt(c1 * c1 + c2 * c2);
+
+			that.originX = m.abs(e.touches[0].pageX + e.touches[1].pageX - that.wrapperOffsetLeft * 2) / 2 - that.x;
+			that.originY = m.abs(e.touches[0].pageY + e.touches[1].pageY - that.wrapperOffsetTop * 2) / 2 - that.y;
+
+			if (that.options.onZoomStart) that.options.onZoomStart.call(that, e);
+		}
+
+		if (that.options.momentum) {
+			if (that.options.useTransform) {
+				// Very lame general purpose alternative to CSSMatrix
+				matrix = getComputedStyle(that.scroller, null)[vendor + 'Transform'].replace(/[^0-9-.,]/g, '').split(',');
+				x = matrix[4] * 1;
+				y = matrix[5] * 1;
+			} else {
+				x = getComputedStyle(that.scroller, null).left.replace(/[^0-9-]/g, '') * 1;
+				y = getComputedStyle(that.scroller, null).top.replace(/[^0-9-]/g, '') * 1;
+			}
+			
+			if (x != that.x || y != that.y) {
+				if (that.options.useTransition) that._unbind('webkitTransitionEnd');
+				else cancelFrame(that.aniTime);
+				that.steps = [];
+				that._pos(x, y);
+			}
+		}
+
+		that.absStartX = that.x;	// Needed by snap threshold
+		that.absStartY = that.y;
+
+		that.startX = that.x;
+		that.startY = that.y;
+		that.pointX = point.pageX;
+		that.pointY = point.pageY;
+
+		that.startTime = e.timeStamp || Date.now();
+
+		if (that.options.onScrollStart) that.options.onScrollStart.call(that, e);
+
+		that._bind(MOVE_EV);
+		that._bind(END_EV);
+		that._bind(CANCEL_EV);
+	},
+	
+	_move: function (e) {
+		var that = this,
+			point = hasTouch ? e.touches[0] : e,
+			deltaX = point.pageX - that.pointX,
+			deltaY = point.pageY - that.pointY,
+			newX = that.x + deltaX,
+			newY = that.y + deltaY,
+			c1, c2, scale,
+			timestamp = e.timeStamp || Date.now();
+
+		if (that.options.onBeforeScrollMove) that.options.onBeforeScrollMove.call(that, e);
+
+		// Zoom
+		if (that.options.zoom && hasTouch && e.touches.length > 1) {
+			c1 = m.abs(e.touches[0].pageX - e.touches[1].pageX);
+			c2 = m.abs(e.touches[0].pageY - e.touches[1].pageY);
+			that.touchesDist = m.sqrt(c1*c1+c2*c2);
+
+			that.zoomed = true;
+
+			scale = 1 / that.touchesDistStart * that.touchesDist * this.scale;
+
+			if (scale < that.options.zoomMin) scale = 0.5 * that.options.zoomMin * Math.pow(2.0, scale / that.options.zoomMin);
+			else if (scale > that.options.zoomMax) scale = 2.0 * that.options.zoomMax * Math.pow(0.5, that.options.zoomMax / scale);
+
+			that.lastScale = scale / this.scale;
+
+			newX = this.originX - this.originX * that.lastScale + this.x,
+			newY = this.originY - this.originY * that.lastScale + this.y;
+
+			this.scroller.style[vendor + 'Transform'] = trnOpen + newX + 'px,' + newY + 'px' + trnClose + ' scale(' + scale + ')';
+
+			if (that.options.onZoom) that.options.onZoom.call(that, e);
+			return;
+		}
+
+		that.pointX = point.pageX;
+		that.pointY = point.pageY;
+
+		// Slow down if outside of the boundaries
+		if (newX > 0 || newX < that.maxScrollX) {
+			newX = that.options.bounce ? that.x + (deltaX / 2) : newX >= 0 || that.maxScrollX >= 0 ? 0 : that.maxScrollX;
+		}
+		if (newY > that.minScrollY || newY < that.maxScrollY) { 
+			newY = that.options.bounce ? that.y + (deltaY / 2) : newY >= that.minScrollY || that.maxScrollY >= 0 ? that.minScrollY : that.maxScrollY;
+		}
+
+		that.distX += deltaX;
+		that.distY += deltaY;
+		that.absDistX = m.abs(that.distX);
+		that.absDistY = m.abs(that.distY);
+
+		if (that.absDistX < 6 && that.absDistY < 6) {
+			return;
+		}
+
+		// Lock direction
+		if (that.options.lockDirection) {
+			if (that.absDistX > that.absDistY + 5) {
+				newY = that.y;
+				deltaY = 0;
+			} else if (that.absDistY > that.absDistX + 5) {
+				newX = that.x;
+				deltaX = 0;
+			}
+		}
+
+		that.moved = true;
+		that._pos(newX, newY);
+		that.dirX = deltaX > 0 ? -1 : deltaX < 0 ? 1 : 0;
+		that.dirY = deltaY > 0 ? -1 : deltaY < 0 ? 1 : 0;
+
+		if (timestamp - that.startTime > 300) {
+			that.startTime = timestamp;
+			that.startX = that.x;
+			that.startY = that.y;
+		}
+		
+		if (that.options.onScrollMove) that.options.onScrollMove.call(that, e);
+	},
+	
+	_end: function (e) {
+		if (hasTouch && e.touches.length != 0) return;
+
+		var that = this,
+			point = hasTouch ? e.changedTouches[0] : e,
+			target, ev,
+			momentumX = { dist:0, time:0 },
+			momentumY = { dist:0, time:0 },
+			duration = (e.timeStamp || Date.now()) - that.startTime,
+			newPosX = that.x,
+			newPosY = that.y,
+			distX, distY,
+			newDuration,
+			snap,
+			scale;
+
+		that._unbind(MOVE_EV);
+		that._unbind(END_EV);
+		that._unbind(CANCEL_EV);
+
+		if (that.options.onBeforeScrollEnd) that.options.onBeforeScrollEnd.call(that, e);
+
+		if (that.zoomed) {
+			scale = that.scale * that.lastScale;
+			scale = Math.max(that.options.zoomMin, scale);
+			scale = Math.min(that.options.zoomMax, scale);
+			that.lastScale = scale / that.scale;
+			that.scale = scale;
+
+			that.x = that.originX - that.originX * that.lastScale + that.x;
+			that.y = that.originY - that.originY * that.lastScale + that.y;
+			
+			that.scroller.style[vendor + 'TransitionDuration'] = '200ms';
+			that.scroller.style[vendor + 'Transform'] = trnOpen + that.x + 'px,' + that.y + 'px' + trnClose + ' scale(' + that.scale + ')';
+			
+			that.zoomed = false;
+			that.refresh();
+
+			if (that.options.onZoomEnd) that.options.onZoomEnd.call(that, e);
+			return;
+		}
+
+		if (!that.moved) {
+			if (hasTouch) {
+				if (that.doubleTapTimer && that.options.zoom) {
+					// Double tapped
+					clearTimeout(that.doubleTapTimer);
+					that.doubleTapTimer = null;
+					if (that.options.onZoomStart) that.options.onZoomStart.call(that, e);
+					that.zoom(that.pointX, that.pointY, that.scale == 1 ? that.options.doubleTapZoom : 1);
+					if (that.options.onZoomEnd) {
+						setTimeout(function() {
+							that.options.onZoomEnd.call(that, e);
+						}, 200); // 200 is default zoom duration
+					}
+				} else {
+					that.doubleTapTimer = setTimeout(function () {
+						that.doubleTapTimer = null;
+
+						// Find the last touched element
+						target = point.target;
+						while (target.nodeType != 1) target = target.parentNode;
+
+						if (target.tagName != 'SELECT' && target.tagName != 'INPUT' && target.tagName != 'TEXTAREA') {
+							ev = document.createEvent('MouseEvents');
+							ev.initMouseEvent('click', true, true, e.view, 1,
+								point.screenX, point.screenY, point.clientX, point.clientY,
+								e.ctrlKey, e.altKey, e.shiftKey, e.metaKey,
+								0, null);
+							ev._fake = true;
+							target.dispatchEvent(ev);
+						}
+					}, that.options.zoom ? 250 : 0);
+				}
+			}
+
+			that._resetPos(200);
+
+			if (that.options.onTouchEnd) that.options.onTouchEnd.call(that, e);
+			return;
+		}
+
+		if (duration < 300 && that.options.momentum) {
+			momentumX = newPosX ? that._momentum(newPosX - that.startX, duration, -that.x, that.scrollerW - that.wrapperW + that.x, that.options.bounce ? that.wrapperW : 0) : momentumX;
+			momentumY = newPosY ? that._momentum(newPosY - that.startY, duration, -that.y, (that.maxScrollY < 0 ? that.scrollerH - that.wrapperH + that.y - that.minScrollY : 0), that.options.bounce ? that.wrapperH : 0) : momentumY;
+
+			newPosX = that.x + momentumX.dist;
+			newPosY = that.y + momentumY.dist;
+
+ 			if ((that.x > 0 && newPosX > 0) || (that.x < that.maxScrollX && newPosX < that.maxScrollX)) momentumX = { dist:0, time:0 };
+ 			if ((that.y > that.minScrollY && newPosY > that.minScrollY) || (that.y < that.maxScrollY && newPosY < that.maxScrollY)) momentumY = { dist:0, time:0 };
+		}
+
+		if (momentumX.dist || momentumY.dist) {
+			newDuration = m.max(m.max(momentumX.time, momentumY.time), 10);
+
+			// Do we need to snap?
+			if (that.options.snap) {
+				distX = newPosX - that.absStartX;
+				distY = newPosY - that.absStartY;
+				if (m.abs(distX) < that.options.snapThreshold && m.abs(distY) < that.options.snapThreshold) { that.scrollTo(that.absStartX, that.absStartY, 200); }
+				else {
+					snap = that._snap(newPosX, newPosY);
+					newPosX = snap.x;
+					newPosY = snap.y;
+					newDuration = m.max(snap.time, newDuration);
+				}
+			}
+
+			that.scrollTo(mround(newPosX), mround(newPosY), newDuration);
+
+			if (that.options.onTouchEnd) that.options.onTouchEnd.call(that, e);
+			return;
+		}
+
+		// Do we need to snap?
+		if (that.options.snap) {
+			distX = newPosX - that.absStartX;
+			distY = newPosY - that.absStartY;
+			if (m.abs(distX) < that.options.snapThreshold && m.abs(distY) < that.options.snapThreshold) that.scrollTo(that.absStartX, that.absStartY, 200);
+			else {
+				snap = that._snap(that.x, that.y);
+				if (snap.x != that.x || snap.y != that.y) that.scrollTo(snap.x, snap.y, snap.time);
+			}
+
+			if (that.options.onTouchEnd) that.options.onTouchEnd.call(that, e);
+			return;
+		}
+
+		that._resetPos(200);
+		if (that.options.onTouchEnd) that.options.onTouchEnd.call(that, e);
+	},
+	
+	_resetPos: function (time) {
+		var that = this,
+			resetX = that.x >= 0 ? 0 : that.x < that.maxScrollX ? that.maxScrollX : that.x,
+			resetY = that.y >= that.minScrollY || that.maxScrollY > 0 ? that.minScrollY : that.y < that.maxScrollY ? that.maxScrollY : that.y;
+
+		if (resetX == that.x && resetY == that.y) {
+			if (that.moved) {
+				that.moved = false;
+				if (that.options.onScrollEnd) that.options.onScrollEnd.call(that);		// Execute custom code on scroll end
+			}
+
+			if (that.hScrollbar && that.options.hideScrollbar) {
+				if (vendor == 'webkit') that.hScrollbarWrapper.style[vendor + 'TransitionDelay'] = '300ms';
+				that.hScrollbarWrapper.style.opacity = '0';
+			}
+			if (that.vScrollbar && that.options.hideScrollbar) {
+				if (vendor == 'webkit') that.vScrollbarWrapper.style[vendor + 'TransitionDelay'] = '300ms';
+				that.vScrollbarWrapper.style.opacity = '0';
+			}
+
+			return;
+		}
+
+		that.scrollTo(resetX, resetY, time || 0);
+	},
+
+	_wheel: function (e) {
+		var that = this,
+			wheelDeltaX, wheelDeltaY,
+			deltaX, deltaY,
+			deltaScale;
+
+		if ('wheelDeltaX' in e) {
+			wheelDeltaX = e.wheelDeltaX / 12;
+			wheelDeltaY = e.wheelDeltaY / 12;
+		} else if('wheelDelta' in e) {
+			wheelDeltaX = wheelDeltaY = e.wheelDelta / 12;
+		} else if ('detail' in e) {
+			wheelDeltaX = wheelDeltaY = -e.detail * 3;
+		} else {
+			return;
+		}
+		
+		if (that.options.wheelAction == 'zoom') {
+			deltaScale = that.scale * Math.pow(2, 1/3 * (wheelDeltaY ? wheelDeltaY / Math.abs(wheelDeltaY) : 0));
+			if (deltaScale < that.options.zoomMin) deltaScale = that.options.zoomMin;
+			if (deltaScale > that.options.zoomMax) deltaScale = that.options.zoomMax;
+			
+			if (deltaScale != that.scale) {
+				if (!that.wheelZoomCount && that.options.onZoomStart) that.options.onZoomStart.call(that, e);
+				that.wheelZoomCount++;
+				
+				that.zoom(e.pageX, e.pageY, deltaScale, 400);
+				
+				setTimeout(function() {
+					that.wheelZoomCount--;
+					if (!that.wheelZoomCount && that.options.onZoomEnd) that.options.onZoomEnd.call(that, e);
+				}, 400);
+			}
+			
+			return;
+		}
+		
+		deltaX = that.x + wheelDeltaX;
+		deltaY = that.y + wheelDeltaY;
+
+		if (deltaX > 0) deltaX = 0;
+		else if (deltaX < that.maxScrollX) deltaX = that.maxScrollX;
+
+		if (deltaY > that.minScrollY) deltaY = that.minScrollY;
+		else if (deltaY < that.maxScrollY) deltaY = that.maxScrollY;
+
+		that.scrollTo(deltaX, deltaY, 0);
+	},
+	
+	_mouseout: function (e) {
+		var t = e.relatedTarget;
+
+		if (!t) {
+			this._end(e);
+			return;
+		}
+
+		while (t = t.parentNode) if (t == this.wrapper) return;
+		
+		this._end(e);
+	},
+
+	_transitionEnd: function (e) {
+		var that = this;
+
+		if (e.target != that.scroller) return;
+
+		that._unbind('webkitTransitionEnd');
+		
+		that._startAni();
+	},
+
+
+	/**
+	 *
+	 * Utilities
+	 *
+	 */
+	_startAni: function () {
+		var that = this,
+			startX = that.x, startY = that.y,
+			startTime = Date.now(),
+			step, easeOut,
+			animate;
+
+		if (that.animating) return;
+		
+		if (!that.steps.length) {
+			that._resetPos(400);
+			return;
+		}
+		
+		step = that.steps.shift();
+		
+		if (step.x == startX && step.y == startY) step.time = 0;
+
+		that.animating = true;
+		that.moved = true;
+		
+		if (that.options.useTransition) {
+			that._transitionTime(step.time);
+			that._pos(step.x, step.y);
+			that.animating = false;
+			if (step.time) that._bind('webkitTransitionEnd');
+			else that._resetPos(0);
+			return;
+		}
+
+		animate = function () {
+			var now = Date.now(),
+				newX, newY;
+
+			if (now >= startTime + step.time) {
+				that._pos(step.x, step.y);
+				that.animating = false;
+				if (that.options.onAnimationEnd) that.options.onAnimationEnd.call(that);			// Execute custom code on animation end
+				that._startAni();
+				return;
+			}
+
+			now = (now - startTime) / step.time - 1;
+			easeOut = m.sqrt(1 - now * now);
+			newX = (step.x - startX) * easeOut + startX;
+			newY = (step.y - startY) * easeOut + startY;
+			that._pos(newX, newY);
+			if (that.animating) that.aniTime = nextFrame(animate);
+		};
+
+		animate();
+	},
+
+	_transitionTime: function (time) {
+		time += 'ms';
+		this.scroller.style[vendor + 'TransitionDuration'] = time;
+		if (this.hScrollbar) this.hScrollbarIndicator.style[vendor + 'TransitionDuration'] = time;
+		if (this.vScrollbar) this.vScrollbarIndicator.style[vendor + 'TransitionDuration'] = time;
+	},
+
+	_momentum: function (dist, time, maxDistUpper, maxDistLower, size) {
+		var deceleration = 0.0006,
+			speed = m.abs(dist) / time,
+			newDist = (speed * speed) / (2 * deceleration),
+			newTime = 0, outsideDist = 0;
+
+		// Proportinally reduce speed if we are outside of the boundaries 
+		if (dist > 0 && newDist > maxDistUpper) {
+			outsideDist = size / (6 / (newDist / speed * deceleration));
+			maxDistUpper = maxDistUpper + outsideDist;
+			speed = speed * maxDistUpper / newDist;
+			newDist = maxDistUpper;
+		} else if (dist < 0 && newDist > maxDistLower) {
+			outsideDist = size / (6 / (newDist / speed * deceleration));
+			maxDistLower = maxDistLower + outsideDist;
+			speed = speed * maxDistLower / newDist;
+			newDist = maxDistLower;
+		}
+
+		newDist = newDist * (dist < 0 ? -1 : 1);
+		newTime = speed / deceleration;
+
+		return { dist: newDist, time: mround(newTime) };
+	},
+
+	_offset: function (el) {
+		var left = -el.offsetLeft,
+			top = -el.offsetTop;
+			
+		while (el = el.offsetParent) {
+			left -= el.offsetLeft;
+			top -= el.offsetTop;
+		}
+		
+		if (el != this.wrapper) {
+			left *= this.scale;
+			top *= this.scale;
+		}
+
+		return { left: left, top: top };
+	},
+
+	_snap: function (x, y) {
+		var that = this,
+			i, l,
+			page, time,
+			sizeX, sizeY;
+
+		// Check page X
+		page = that.pagesX.length - 1;
+		for (i=0, l=that.pagesX.length; i<l; i++) {
+			if (x >= that.pagesX[i]) {
+				page = i;
+				break;
+			}
+		}
+		if (page == that.currPageX && page > 0 && that.dirX < 0) page--;
+		x = that.pagesX[page];
+		sizeX = m.abs(x - that.pagesX[that.currPageX]);
+		sizeX = sizeX ? m.abs(that.x - x) / sizeX * 500 : 0;
+		that.currPageX = page;
+
+		// Check page Y
+		page = that.pagesY.length-1;
+		for (i=0; i<page; i++) {
+			if (y >= that.pagesY[i]) {
+				page = i;
+				break;
+			}
+		}
+		if (page == that.currPageY && page > 0 && that.dirY < 0) page--;
+		y = that.pagesY[page];
+		sizeY = m.abs(y - that.pagesY[that.currPageY]);
+		sizeY = sizeY ? m.abs(that.y - y) / sizeY * 500 : 0;
+		that.currPageY = page;
+
+		// Snap with constant speed (proportional duration)
+		time = mround(m.max(sizeX, sizeY)) || 200;
+
+		return { x: x, y: y, time: time };
+	},
+
+	_bind: function (type, el, bubble) {
+		(el || this.scroller).addEventListener(type, this, !!bubble);
+	},
+
+	_unbind: function (type, el, bubble) {
+		(el || this.scroller).removeEventListener(type, this, !!bubble);
+	},
+
+
+	/**
+	 *
+	 * Public methods
+	 *
+	 */
+	destroy: function () {
+		var that = this;
+
+		that.scroller.style[vendor + 'Transform'] = '';
+
+		// Remove the scrollbars
+		that.hScrollbar = false;
+		that.vScrollbar = false;
+		that._scrollbar('h');
+		that._scrollbar('v');
+
+		// Remove the event listeners
+		that._unbind(RESIZE_EV, window);
+		that._unbind(START_EV);
+		that._unbind(MOVE_EV);
+		that._unbind(END_EV);
+		that._unbind(CANCEL_EV);
+		
+		if (!that.options.hasTouch) {
+			that._unbind('mouseout', that.wrapper);
+			that._unbind(WHEEL_EV);
+		}
+		
+		if (that.options.useTransition) that._unbind('webkitTransitionEnd');
+		
+		if (that.options.checkDOMChanges) clearInterval(that.checkDOMTime);
+		
+		if (that.options.onDestroy) that.options.onDestroy.call(that);
+	},
+
+	refresh: function () {
+		var that = this,
+			offset,
+			i, l,
+			els,
+			pos = 0,
+			page = 0;
+
+		if (that.scale < that.options.zoomMin) that.scale = that.options.zoomMin;
+		that.wrapperW = that.wrapper.clientWidth || 1;
+		that.wrapperH = that.wrapper.clientHeight || 1;
+
+		that.minScrollY = -that.options.topOffset || 0;
+		that.scrollerW = mround(that.scroller.offsetWidth * that.scale);
+		that.scrollerH = mround((that.scroller.offsetHeight + that.minScrollY) * that.scale);
+		that.maxScrollX = that.wrapperW - that.scrollerW;
+		that.maxScrollY = that.wrapperH - that.scrollerH + that.minScrollY;
+		that.dirX = 0;
+		that.dirY = 0;
+
+		if (that.options.onRefresh) that.options.onRefresh.call(that);
+
+		that.hScroll = that.options.hScroll && that.maxScrollX < 0;
+		that.vScroll = that.options.vScroll && (!that.options.bounceLock && !that.hScroll || that.scrollerH > that.wrapperH);
+
+		that.hScrollbar = that.hScroll && that.options.hScrollbar;
+		that.vScrollbar = that.vScroll && that.options.vScrollbar && that.scrollerH > that.wrapperH;
+
+		offset = that._offset(that.wrapper);
+		that.wrapperOffsetLeft = -offset.left;
+		that.wrapperOffsetTop = -offset.top;
+
+		// Prepare snap
+		if (typeof that.options.snap == 'string') {
+			that.pagesX = [];
+			that.pagesY = [];
+			els = that.scroller.querySelectorAll(that.options.snap);
+			for (i=0, l=els.length; i<l; i++) {
+				pos = that._offset(els[i]);
+				pos.left += that.wrapperOffsetLeft;
+				pos.top += that.wrapperOffsetTop;
+				that.pagesX[i] = pos.left < that.maxScrollX ? that.maxScrollX : pos.left * that.scale;
+				that.pagesY[i] = pos.top < that.maxScrollY ? that.maxScrollY : pos.top * that.scale;
+			}
+		} else if (that.options.snap) {
+			that.pagesX = [];
+			while (pos >= that.maxScrollX) {
+				that.pagesX[page] = pos;
+				pos = pos - that.wrapperW;
+				page++;
+			}
+			if (that.maxScrollX%that.wrapperW) that.pagesX[that.pagesX.length] = that.maxScrollX - that.pagesX[that.pagesX.length-1] + that.pagesX[that.pagesX.length-1];
+
+			pos = 0;
+			page = 0;
+			that.pagesY = [];
+			while (pos >= that.maxScrollY) {
+				that.pagesY[page] = pos;
+				pos = pos - that.wrapperH;
+				page++;
+			}
+			if (that.maxScrollY%that.wrapperH) that.pagesY[that.pagesY.length] = that.maxScrollY - that.pagesY[that.pagesY.length-1] + that.pagesY[that.pagesY.length-1];
+		}
+
+		// Prepare the scrollbars
+		that._scrollbar('h');
+		that._scrollbar('v');
+
+		if (!that.zoomed) {
+			that.scroller.style[vendor + 'TransitionDuration'] = '0';
+			that._resetPos(200);
+		}
+	},
+
+	scrollTo: function (x, y, time, relative) {
+		var that = this,
+			step = x,
+			i, l;
+
+		that.stop();
+
+		if (!step.length) step = [{ x: x, y: y, time: time, relative: relative }];
+		
+		for (i=0, l=step.length; i<l; i++) {
+			if (step[i].relative) { step[i].x = that.x - step[i].x; step[i].y = that.y - step[i].y; }
+			that.steps.push({ x: step[i].x, y: step[i].y, time: step[i].time || 0 });
+		}
+
+		that._startAni();
+	},
+
+	scrollToElement: function (el, time) {
+		var that = this, pos;
+		el = el.nodeType ? el : that.scroller.querySelector(el);
+		if (!el) return;
+
+		pos = that._offset(el);
+		pos.left += that.wrapperOffsetLeft;
+		pos.top += that.wrapperOffsetTop;
+
+		pos.left = pos.left > 0 ? 0 : pos.left < that.maxScrollX ? that.maxScrollX : pos.left;
+		pos.top = pos.top > that.minScrollY ? that.minScrollY : pos.top < that.maxScrollY ? that.maxScrollY : pos.top;
+		time = time === undefined ? m.max(m.abs(pos.left)*2, m.abs(pos.top)*2) : time;
+
+		that.scrollTo(pos.left, pos.top, time);
+	},
+
+	scrollToPage: function (pageX, pageY, time) {
+		var that = this, x, y;
+		
+		time = time === undefined ? 400 : time;
+
+		if (that.options.onScrollStart) that.options.onScrollStart.call(that);
+
+		if (that.options.snap) {
+			pageX = pageX == 'next' ? that.currPageX+1 : pageX == 'prev' ? that.currPageX-1 : pageX;
+			pageY = pageY == 'next' ? that.currPageY+1 : pageY == 'prev' ? that.currPageY-1 : pageY;
+
+			pageX = pageX < 0 ? 0 : pageX > that.pagesX.length-1 ? that.pagesX.length-1 : pageX;
+			pageY = pageY < 0 ? 0 : pageY > that.pagesY.length-1 ? that.pagesY.length-1 : pageY;
+
+			that.currPageX = pageX;
+			that.currPageY = pageY;
+			x = that.pagesX[pageX];
+			y = that.pagesY[pageY];
+		} else {
+			x = -that.wrapperW * pageX;
+			y = -that.wrapperH * pageY;
+			if (x < that.maxScrollX) x = that.maxScrollX;
+			if (y < that.maxScrollY) y = that.maxScrollY;
+		}
+
+		that.scrollTo(x, y, time);
+	},
+
+	disable: function () {
+		this.stop();
+		this._resetPos(0);
+		this.enabled = false;
+
+		// If disabled after touchstart we make sure that there are no left over events
+		this._unbind(MOVE_EV);
+		this._unbind(END_EV);
+		this._unbind(CANCEL_EV);
+	},
+	
+	enable: function () {
+		this.enabled = true;
+	},
+	
+	stop: function () {
+		if (this.options.useTransition) this._unbind('webkitTransitionEnd');
+		else cancelFrame(this.aniTime);
+		this.steps = [];
+		this.moved = false;
+		this.animating = false;
+	},
+	
+	zoom: function (x, y, scale, time) {
+		var that = this,
+			relScale = scale / that.scale;
+
+		if (!that.options.useTransform) return;
+
+		that.zoomed = true;
+		time = time === undefined ? 200 : time;
+		x = x - that.wrapperOffsetLeft - that.x;
+		y = y - that.wrapperOffsetTop - that.y;
+		that.x = x - x * relScale + that.x;
+		that.y = y - y * relScale + that.y;
+
+		that.scale = scale;
+		that.refresh();
+
+		that.x = that.x > 0 ? 0 : that.x < that.maxScrollX ? that.maxScrollX : that.x;
+		that.y = that.y > that.minScrollY ? that.minScrollY : that.y < that.maxScrollY ? that.maxScrollY : that.y;
+
+		that.scroller.style[vendor + 'TransitionDuration'] = time + 'ms';
+		that.scroller.style[vendor + 'Transform'] = trnOpen + that.x + 'px,' + that.y + 'px' + trnClose + ' scale(' + scale + ')';
+		that.zoomed = false;
+	},
+	
+	isReady: function () {
+		return !this.moved && !this.zoomed && !this.animating;
+	}
+};
+
+if (typeof exports !== 'undefined') exports.iScroll = iScroll;
+else window.iScroll = iScroll;
+
+})();
+/** The minplayer namespace. */
+var minplayer = minplayer || {};
+
+// Private function to check a single element's play type.
+function checkPlayType(elem, playType) {
+  if ((typeof elem.canPlayType) === 'function') {
+    if (typeof playType === 'object') {
+      var i = playType.length;
+      var mimetype = '';
+      while (i--) {
+        mimetype = checkPlayType(elem, playType[i]);
+        if (!!mimetype) {
+          break;
+        }
+      }
+      return mimetype;
+    }
+    else {
+      var canPlay = elem.canPlayType(playType);
+      if (('no' !== canPlay) && ('' !== canPlay)) {
+        return playType;
+      }
+    }
+  }
+  return '';
+}
+
+/**
+ * @constructor
+ * @class This class is used to define the types of media that can be played
+ * within the browser.
+ * <p>
+ * <strong>Usage:</strong>
+ * <pre><code>
+ *   var playTypes = new minplayer.compatibility();
+ *
+ *   if (playTypes.videoOGG) {
+ *     console.log("This browser can play OGG video");
+ *   }
+ *
+ *   if (playTypes.videoH264) {
+ *     console.log("This browser can play H264 video");
+ *   }
+ *
+ *   if (playTypes.videoWEBM) {
+ *     console.log("This browser can play WebM video");
+ *   }
+ *
+ *   if (playTypes.audioOGG) {
+ *     console.log("This browser can play OGG audio");
+ *   }
+ *
+ *   if (playTypes.audioMP3) {
+ *     console.log("This browser can play MP3 audio");
+ *   }
+ *
+ *   if (playTypes.audioMP4) {
+ *     console.log("This browser can play MP4 audio");
+ *   }
+ * </code></pre>
+ */
+minplayer.compatibility = function() {
+  var elem = null;
+
+  // Create a video element.
+  elem = document.createElement('video');
+
+  /** Can play OGG video */
+  this.videoOGG = checkPlayType(elem, 'video/ogg');
+
+  /** Can play H264 video */
+  this.videoH264 = checkPlayType(elem, [
+    'video/mp4',
+    'video/h264'
+  ]);
+
+  /** Can play WEBM video */
+  this.videoWEBM = checkPlayType(elem, [
+    'video/x-webm',
+    'video/webm',
+    'application/octet-stream'
+  ]);
+
+  // Create an audio element.
+  elem = document.createElement('audio');
+
+  /** Can play audio OGG */
+  this.audioOGG = checkPlayType(elem, 'audio/ogg');
+
+  /** Can play audio MP3 */
+  this.audioMP3 = checkPlayType(elem, 'audio/mpeg');
+
+  /** Can play audio MP4 */
+  this.audioMP4 = checkPlayType(elem, 'audio/mp4');
+};
+
+if (!minplayer.playTypes) {
+
+  /** The compatible playtypes for this browser. */
+  minplayer.playTypes = new minplayer.compatibility();
+
+  /** See if we are an android device. */
+  minplayer.isAndroid = (/android/gi).test(navigator.appVersion);
+
+  /** See if we are an iOS device. */
+  minplayer.isIDevice = (/iphone|ipad/gi).test(navigator.appVersion);
+
+  /** See if we are a playbook device. */
+  minplayer.isPlaybook = (/playbook/gi).test(navigator.appVersion);
+
+  /** See if we are a touchpad device. */
+  minplayer.isTouchPad = (/hp-tablet/gi).test(navigator.appVersion);
+
+  /** Determine if we have a touchscreen. */
+  minplayer.hasTouch = 'ontouchstart' in window && !minplayer.isTouchPad;
+}
+/** The minplayer namespace. */
+var minplayer = minplayer || {};
+
+/**
+ * @constructor
+ * @class This class keeps track of asynchronous get requests for certain
+ * variables within the player.
+ */
+minplayer.async = function() {
+
+  /** The final value of this asynchronous variable. */
+  this.value = null;
+
+  /** The queue of callbacks to call when this value is determined. */
+  this.queue = [];
+};
+
+/**
+ * Retrieve the value of this variable.
+ *
+ * @param {function} callback The function to call when the value is determined.
+ * @param {function} pollValue The poll function to try and get the value every
+ * 1 second if the value is not set.
+ */
+minplayer.async.prototype.get = function(callback, pollValue) {
+
+  // If the value is set, then immediately call the callback, otherwise, just
+  // add it to the queue when the variable is set.
+  if (this.value !== null) {
+    callback(this.value);
+  }
+  else {
+
+    // Add this callback to the queue.
+    this.queue.push(callback);
+  }
+};
+
+/**
+ * Sets the value of an asynchronous value.
+ *
+ * @param {void} val The value to set.
+ */
+minplayer.async.prototype.set = function(val) {
+
+  // Set the value.
+  this.value = val;
+
+  // Get the callback queue length.
+  var i = this.queue.length;
+
+  // Iterate through all the callbacks and call them.
+  if (i) {
+    while (i--) {
+      this.queue[i](val);
+    }
+
+    // Reset the queue.
+    this.queue = [];
+  }
+};
+/** The minplayer namespace. */
+var minplayer = minplayer || {};
+
+/**
+ * @constructor
+ * @class This is a class used to keep track of flag states
+ * which is used to control the busy cursor, big play button, among other
+ * items in which multiple components can have an interest in hiding or
+ * showing a single element on the screen.
+ *
+ * <p>
+ * <strong>Usage:</strong>
+ * <pre><code>
+ *   // Declare a flags variable.
+ *   var flags = new minplayer.flags();
+ *
+ *   // Set the flag based on two components interested in the flag.
+ *   flags.setFlag("component1", true);
+ *   flags.setFlag("component2", true);
+ *
+ *   // Print out the value of the flags. ( Prints 3 )
+ *   console.log(flags.flags);
+ *
+ *   // Now unset a single components flag.
+ *   flags.setFlag("component1", false);
+ *
+ *   // Print out the value of the flags.
+ *   console.log(flags.flags);
+ *
+ *   // Unset the other components flag.
+ *   flags.setFlag("component2", false);
+ *
+ *   // Print out the value of the flags.
+ *   console.log(flags.flags);
+ * </code></pre>
+ * </p>
+ */
+minplayer.flags = function() {
+
+  /** The flag. */
+  this.flag = 0;
+
+  /** Id map to reference id with the flag index. */
+  this.ids = {};
+
+  /** The number of flags. */
+  this.numFlags = 0;
+};
+
+/**
+ * Sets a flag based on boolean logic operators.
+ *
+ * @param {string} id The id of the controller interested in this flag.
+ * @param {boolean} value The value of this flag ( true or false ).
+ */
+minplayer.flags.prototype.setFlag = function(id, value) {
+
+  // Define this id if it isn't present.
+  if (!this.ids.hasOwnProperty(id)) {
+    this.ids[id] = this.numFlags;
+    this.numFlags++;
+  }
+
+  // Use binary operations to keep track of the flag state
+  if (value) {
+    this.flag |= (1 << this.ids[id]);
+  }
+  else {
+    this.flag &= ~(1 << this.ids[id]);
+  }
+};
+/** The minplayer namespace. */
+minplayer = minplayer || {};
+
+/** Static array to keep track of all plugins. */
+minplayer.plugins = minplayer.plugins || {};
+
+/** Static array to keep track of queues. */
+minplayer.queue = minplayer.queue || [];
+
+/** Mutex lock to keep multiple triggers from occuring. */
+minplayer.lock = false;
+
+/**
+ * @constructor
+ * @class The base class for all plugins.
+ *
+ * @param {string} name The name of this plugin.
+ * @param {object} context The jQuery context.
+ * @param {object} options This components options.
+ * @param {object} queue The event queue to pass events around.
+ */
+minplayer.plugin = function(name, context, options, queue) {
+
+  /** The name of this plugin. */
+  this.name = name;
+
+  /** The ready flag. */
+  this.pluginReady = false;
+
+  /** The options for this plugin. */
+  this.options = options || {};
+
+  /** The event queue. */
+  this.queue = queue || {};
+
+  /** Keep track of already triggered events. */
+  this.triggered = {};
+
+  /** Create a queue lock. */
+  this.lock = false;
+
+  // Only call the constructor if we have a context.
+  if (context) {
+
+    /** Say that we are active. */
+    this.active = true;
+
+    /** Keep track of the context. */
+    this.context = jQuery(context);
+
+    // Construct this plugin.
+    this.construct();
+  }
+};
+
+/**
+ * The constructor which is called once the context is set.
+ * Any class deriving from the plugin class should place all context
+ * dependant functionality within this function instead of the standard
+ * constructor function since it is called on object derivation as well
+ * as object creation.
+ */
+minplayer.plugin.prototype.construct = function() {
+
+  // Adds this as a plugin.
+  this.addPlugin();
+};
+
+/**
+ * Destructor.
+ */
+minplayer.plugin.prototype.destroy = function() {
+
+  // Unbind all events.
+  this.active = false;
+  this.unbind();
+};
+
+/**
+ * Creates a new plugin within this context.
+ *
+ * @param {string} name The name of the plugin you wish to create.
+ * @param {object} base The base object for this plugin.
+ * @param {object} context The context which you would like to create.
+ * @return {object} The new plugin object.
+ */
+minplayer.plugin.prototype.create = function(name, base, context) {
+  var plugin = null;
+
+  // Make sure we have a base object.
+  base = base || 'minplayer';
+  if (!window[base][name]) {
+    base = 'minplayer';
+  }
+
+  // Make sure there is a context.
+  context = context || this.display;
+
+  // See if this plugin exists within this object.
+  if (window[base][name]) {
+
+    // Set the plugin.
+    plugin = window[base][name];
+
+    // See if a template version of the plugin exists.
+    if (plugin[this.options.template]) {
+
+      plugin = plugin[this.options.template];
+    }
+
+    // Make sure the plugin is a function.
+    if (typeof plugin !== 'function') {
+      plugin = window['minplayer'][name];
+    }
+
+    // Make sure it is a function.
+    if (typeof plugin === 'function') {
+      return new plugin(context, this.options);
+    }
+  }
+
+  return null;
+};
+
+/**
+ * Plugins should call this method when they are ready.
+ */
+minplayer.plugin.prototype.ready = function() {
+
+  // Keep this plugin from triggering multiple ready events.
+  if (!this.pluginReady) {
+
+    // Set the ready flag.
+    this.pluginReady = true;
+
+    // Now trigger that I am ready.
+    this.trigger('ready');
+
+    // Check the queue.
+    this.checkQueue();
+  }
+};
+
+/**
+ * Returns if this component is valid.
+ *
+ * @return {boolean} TRUE if the plugin display is valid.
+ */
+minplayer.plugin.prototype.isValid = function() {
+  return !!this.options.id && this.active;
+};
+
+/**
+ * Adds a new plugin to this player.
+ *
+ * @param {string} name The name of this plugin.
+ * @param {object} plugin A new plugin object, derived from media.plugin.
+ */
+minplayer.plugin.prototype.addPlugin = function(name, plugin) {
+  name = name || this.name;
+  plugin = plugin || this;
+
+  // Make sure the plugin is valid.
+  if (plugin.isValid()) {
+
+    // If the plugins for this instance do not exist.
+    if (!minplayer.plugins[this.options.id]) {
+
+      // Initialize the plugins.
+      minplayer.plugins[this.options.id] = {};
+    }
+
+    if (!minplayer.plugins[this.options.id][name]) {
+
+      // Add the plugins array.
+      minplayer.plugins[this.options.id][name] = [];
+    }
+
+    // Add this plugin.
+    minplayer.plugins[this.options.id][name].push(plugin);
+
+    // Now check the queue for this plugin.
+    this.checkQueue(plugin);
+  }
+};
+
+/**
+ * Create a polling timer.
+ *
+ * @param {function} callback The function to call when you poll.
+ * @param {integer} interval The interval you would like to poll.
+ */
+minplayer.plugin.prototype.poll = function(callback, interval) {
+  setTimeout((function(context) {
+    return function callLater() {
+      if (callback.call(context)) {
+        setTimeout(callLater, interval);
+      }
+    };
+  })(this), interval);
+};
+
+/**
+ * Gets a plugin by name and calls callback when it is ready.
+ *
+ * @param {string} plugin The plugin of the plugin.
+ * @param {function} callback Called when the plugin is ready.
+ * @return {object} The plugin if no callback is provided.
+ */
+minplayer.plugin.prototype.get = function(plugin, callback) {
+
+  // If they pass just a callback, then return all plugins when ready.
+  if (typeof plugin === 'function') {
+    callback = plugin;
+    plugin = null;
+  }
+
+  // Return the minplayer.get equivalent.
+  return minplayer.get.call(this, this.options.id, plugin, callback);
+};
+
+/**
+ * Check the queue and execute it.
+ *
+ * @param {object} plugin The plugin object to check the queue against.
+ */
+minplayer.plugin.prototype.checkQueue = function(plugin) {
+
+  // Initialize our variables.
+  var q = null, i = 0, check = false, newqueue = [];
+
+  // Normalize the plugin variable.
+  plugin = plugin || this;
+
+  // Set the lock.
+  minplayer.lock = true;
+
+  // Iterate through all the queues.
+  var length = minplayer.queue.length;
+  for (i = 0; i < length; i++) {
+    if (minplayer.queue.hasOwnProperty(i)) {
+      // Get the queue.
+      q = minplayer.queue[i];
+
+      // Now check to see if this queue is about us.
+      check = !q.id && !q.plugin;
+      check |= (q.plugin == plugin.name);
+      check &= (!q.id || (q.id == this.options.id));
+
+      // If the check passes...
+      if (check) {
+        check = minplayer.bind.call(
+          q.context,
+          q.event,
+          this.options.id,
+          plugin.name,
+          q.callback
+        );
+      }
+
+      // Add the queue back if it doesn't check out.
+      if (!check) {
+
+        // Add this back to the queue.
+        newqueue.push(q);
+      }
+    }
+  }
+
+  // Set the old queue to the new queue.
+  minplayer.queue = newqueue;
+
+  // Release the lock.
+  minplayer.lock = false;
+};
+
+/**
+ * Trigger a media event.
+ *
+ * @param {string} type The event type.
+ * @param {object} data The event data object.
+ * @return {object} The plugin object.
+ */
+minplayer.plugin.prototype.trigger = function(type, data) {
+
+  // Don't trigger if this plugin is inactive.
+  if (!this.active) {
+    return this;
+  }
+
+  // Add this to our triggered array.
+  this.triggered[type] = data;
+
+  // Check to make sure the queue for this type exists.
+  if (this.queue.hasOwnProperty(type)) {
+
+    var i = 0, queue = {}, queuetype = this.queue[type];
+
+    // Iterate through all the callbacks in this queue.
+    for (i in queuetype) {
+
+      // Check to make sure the queue index exists.
+      if (queuetype.hasOwnProperty(i)) {
+
+        // Setup the event object, and call the callback.
+        queue = queuetype[i];
+        queue.callback({target: this, data: queue.data}, data);
+      }
+    }
+  }
+
+  // Return the plugin object.
+  return this;
+};
+
+/**
+ * Bind to a media event.
+ *
+ * @param {string} type The event type.
+ * @param {object} data The data to bind with the event.
+ * @param {function} fn The callback function.
+ * @return {object} The plugin object.
+ **/
+minplayer.plugin.prototype.bind = function(type, data, fn) {
+
+  // Only bind if active.
+  if (!this.active) {
+    return this;
+  }
+
+  // Allow the data to be the callback.
+  if (typeof data === 'function') {
+    fn = data;
+    data = null;
+  }
+
+  // You must bind to a specific event and have a callback.
+  if (!type || !fn) {
+    return;
+  }
+
+  // Initialize the queue for this type.
+  this.queue[type] = this.queue[type] || [];
+
+  // Unbind any existing equivalent events.
+  this.unbind(type, fn);
+
+  // Now add this event to the queue.
+  this.queue[type].push({
+    callback: fn,
+    data: data
+  });
+
+  // Now see if this event has already been triggered.
+  if (this.triggered.hasOwnProperty(type)) {
+
+    // Go ahead and trigger the event.
+    fn({target: this, data: data}, this.triggered[type]);
+  }
+
+  // Return the plugin.
+  return this;
+};
+
+/**
+ * Unbind a media event.
+ *
+ * @param {string} type The event type.
+ * @param {function} fn The callback function.
+ * @return {object} The plugin object.
+ **/
+minplayer.plugin.prototype.unbind = function(type, fn) {
+
+  // If this is locked then try again after 10ms.
+  if (this.lock) {
+    setTimeout((function(plugin) {
+      return function() {
+        plugin.unbind(type, fn);
+      };
+    })(this), 10);
+  }
+
+  // Set the lock.
+  this.lock = true;
+
+  // Get the queue type.
+  var queuetype = this.queue.hasOwnProperty(type) ? this.queue[type] : null;
+
+  if (!type) {
+    this.queue = {};
+  }
+  else if (!fn) {
+    this.queue[type] = [];
+  }
+  else if (queuetype) {
+    // Iterate through all the callbacks and search for equal callbacks.
+    var i = 0, queue = {};
+    for (i in queuetype) {
+      if (queuetype.hasOwnProperty(i)) {
+        if (queuetype[i].callback === fn) {
+          queue = this.queue[type].splice(i, 1);
+          delete queue;
+        }
+      }
+    }
+  }
+
+  // Reset the lock.
+  this.lock = false;
+
+  // Return the plugin.
+  return this;
+};
+
+/**
+ * Adds an item to the queue.
+ *
+ * @param {object} context The context which this is called within.
+ * @param {string} event The event to trigger on.
+ * @param {string} id The player ID.
+ * @param {string} plugin The name of the plugin.
+ * @param {function} callback Called when the event occurs.
+ */
+minplayer.addQueue = function(context, event, id, plugin, callback) {
+
+  // See if it is locked...
+  if (!minplayer.lock) {
+    minplayer.queue.push({
+      context: context,
+      id: id,
+      event: event,
+      plugin: plugin,
+      callback: callback
+    });
+  }
+  else {
+
+    // If so, then try again after 10 milliseconds.
+    setTimeout(function() {
+      minplayer.addQueue(context, id, event, plugin, callback);
+    }, 10);
+  }
+};
+
+/**
+ * Binds an event to a plugin instance, and if it doesn't exist, then caches
+ * it for a later time.
+ *
+ * @param {string} event The event to trigger on.
+ * @param {string} id The player ID.
+ * @param {string} plugin The name of the plugin.
+ * @param {function} callback Called when the event occurs.
+ * @return {boolean} If the bind was successful.
+ * @this The object in context who called this method.
+ */
+minplayer.bind = function(event, id, plugin, callback) {
+
+  // If no callback exists, then just return false.
+  if (!callback) {
+    return false;
+  }
+
+  // Get the plugins.
+  var plugins = minplayer.plugins;
+
+  // Determine the selected plugins.
+  var selected = [];
+
+  // Create a quick add.
+  var addSelected = function(id, plugin) {
+    if (plugins.hasOwnProperty(id) && plugins[id].hasOwnProperty(plugin)) {
+      var i = plugins[id][plugin].length;
+      while (i--) {
+        selected.push(plugins[id][plugin][i]);
+      }
+    }
+  };
+
+  // If they provide id && plugin
+  if (id && plugin) {
+    addSelected(id, plugin);
+  }
+
+  // If they provide no id but a plugin.
+  else if (!id && plugin) {
+    for (var id in plugins) {
+      addSelected(id, plugin);
+    }
+  }
+
+  // If they provide an id but no plugin.
+  else if (id && !plugin && plugins[id]) {
+    for (var plugin in plugins[id]) {
+      addSelected(id, plugin);
+    }
+  }
+
+  // If they provide niether an id or a plugin.
+  else if (!id && !plugin) {
+    for (var id in plugins) {
+      for (var plugin in plugins[id]) {
+        addSelected(id, plugin);
+      }
+    }
+  }
+
+  // Iterate through the selected plugins and bind.
+  var i = selected.length;
+  while (i--) {
+    selected[i].bind(event, (function(context) {
+      return function(event) {
+        callback.call(context, event.target);
+      };
+    })(this));
+  }
+
+  // Add it to the queue for post bindings...
+  minplayer.addQueue(this, event, id, plugin, callback);
+
+  // Return that this wasn't handled.
+  return (selected.length > 0);
+};
+
+/**
+ * The main API for minPlayer.
+ *
+ * Provided that this function takes three parameters, there are 8 different
+ * ways to use this api.
+ *
+ *   id (0x100) - You want a specific player.
+ *   plugin (0x010) - You want a specific plugin.
+ *   callback (0x001) - You only want it when it is ready.
+ *
+ *   000 - You want all plugins from all players, ready or not.
+ *
+ *          var plugins = minplayer.get();
+ *
+ *   001 - You want all plugins from all players, but only when ready.
+ *
+ *          minplayer.get(function(plugin) {
+ *            // Code goes here.
+ *          });
+ *
+ *   010 - You want a specific plugin from all players, ready or not...
+ *
+ *          var medias = minplayer.get(null, 'media');
+ *
+ *   011 - You want a specific plugin from all players, but only when ready.
+ *
+ *          minplayer.get('player', function(player) {
+ *            // Code goes here.
+ *          });
+ *
+ *   100 - You want all plugins from a specific player, ready or not.
+ *
+ *          var plugins = minplayer.get('player_id');
+ *
+ *   101 - You want all plugins from a specific player, but only when ready.
+ *
+ *          minplayer.get('player_id', null, function(plugin) {
+ *            // Code goes here.
+ *          });
+ *
+ *   110 - You want a specific plugin from a specific player, ready or not.
+ *
+ *          var plugin = minplayer.get('player_id', 'media');
+ *
+ *   111 - You want a specific plugin from a specific player, only when ready.
+ *
+ *          minplayer.get('player_id', 'media', function(media) {
+ *            // Code goes here.
+ *          });
+ *
+ * @this The context in which this function was called.
+ * @param {string} id The ID of the widget to get the plugins from.
+ * @param {string} plugin The name of the plugin.
+ * @param {function} callback Called when the plugin is ready.
+ * @return {object} The plugin object if it is immediately available.
+ */
+minplayer.get = function(id, plugin, callback) {
+
+  // Normalize the arguments for a better interface.
+  if (typeof id === 'function') {
+    callback = id;
+    plugin = id = null;
+  }
+
+  if (typeof plugin === 'function') {
+    callback = plugin;
+    plugin = id;
+    id = null;
+  }
+
+  // Make sure the callback is a callback.
+  callback = (typeof callback === 'function') ? callback : null;
+
+  // If a callback was provided, then just go ahead and bind.
+  if (callback) {
+    minplayer.bind.call(this, 'ready', id, plugin, callback);
+    return;
+  }
+
+  // Get the plugins.
+  var plugins = minplayer.plugins;
+
+  // 0x000
+  if (!id && !plugin && !callback) {
+    return plugins;
+  }
+  // 0x100
+  else if (id && !plugin && !callback) {
+    return plugins[id];
+  }
+  // 0x110
+  else if (id && plugin && !callback) {
+    return plugins[id][plugin];
+  }
+  // 0x010
+  else if (!id && plugin && !callback) {
+    var plugin_types = [];
+    for (var id in plugins) {
+      if (plugins.hasOwnProperty(id) && plugins[id].hasOwnProperty(plugin)) {
+        var i = plugins[id][plugin].length;
+        while (i--) {
+          plugin_types.push(plugins[id][plugin][i]);
+        }
+      }
+    }
+    return plugin_types;
+  }
+};
+/** The minplayer namespace. */
+minplayer = minplayer || {};
+
+/**
+ * @constructor
+ * @extends minplayer.plugin
+ * @class Base class used to provide the display and options for any component
+ * deriving from this class.  Components who derive are expected to provide
+ * the elements that they define by implementing the getElements method.
+ *
+ * @param {string} name The name of this plugin.
+ * @param {object} context The jQuery context this component resides.
+ * @param {object} options The options for this component.
+ * @param {object} queue The event queue to pass events around.
+ */
+minplayer.display = function(name, context, options, queue) {
+
+  // Derive from plugin
+  minplayer.plugin.call(this, name, context, options, queue);
+};
+
+/** Derive from minplayer.plugin. */
+minplayer.display.prototype = new minplayer.plugin();
+
+/** Reset the constructor. */
+minplayer.display.prototype.constructor = minplayer.display;
+
+/**
+ * Returns the display for this component.
+ *
+ * @return {object} The jQuery context for this display.
+ */
+minplayer.display.prototype.getDisplay = function() {
+  return this.context;
+};
+
+/**
+ * @see minplayer.plugin.construct
+ */
+minplayer.display.prototype.construct = function() {
+
+  // Set the display.
+  this.display = this.getDisplay(this.context, this.options);
+
+  // Call the plugin constructor.
+  minplayer.plugin.prototype.construct.call(this);
+
+  // Set the plugin name within the options.
+  this.options.pluginName = 'display';
+
+  // Get the display elements.
+  this.elements = this.getElements();
+
+  // Only do this if they allow resize for this display.
+  if (this.onResize) {
+
+    // Set the resize timeout and this pointer.
+    var resizeTimeout = 0;
+
+    // Add a handler to trigger a resize event.
+    jQuery(window).resize((function(display) {
+      return function() {
+        clearTimeout(resizeTimeout);
+        resizeTimeout = setTimeout(function() {
+          display.onResize();
+        }, 200);
+      };
+    })(this));
+  }
+};
+
+/**
+ * Called when the window resizes.
+ */
+minplayer.display.prototype.onResize = false;
+
+/**
+ * Wrapper around hide that will always not show.
+ *
+ * @param {object} element The element you wish to hide.
+ */
+minplayer.display.prototype.hide = function(element) {
+  element = element || this.display;
+  if (element) {
+    element.forceHide = true;
+    element.unbind().hide();
+  }
+};
+
+/**
+ * Gets the full screen element.
+ *
+ * @return {object} The display to be used for full screen support.
+ */
+minplayer.display.prototype.fullScreenElement = function() {
+  return this.display;
+};
+
+/**
+ * Fix for the click function in jQuery to be cross platform.
+ *
+ * @param {object} element The element that will be clicked.
+ * @param {function} fn Called when the element is clicked.
+ * @return {object} The element that is to be clicked.
+ */
+minplayer.click = function(element, fn) {
+  var flag = false;
+  element = jQuery(element);
+  element.bind('touchstart click', function(event) {
+    if (!flag) {
+      flag = true;
+      setTimeout(function() {
+        flag = false;
+      }, 100);
+      fn.call(this, event);
+    }
+  });
+  return element;
+};
+
+/**
+ * Determines if the player is in focus or not.
+ *
+ * @param {boolean} focus If the player is in focus.
+ */
+minplayer.display.prototype.onFocus = function(focus) {
+  this.hasFocus = this.focus = focus;
+};
+
+/** Keep track of all the show hide elements. */
+minplayer.showHideElements = [];
+
+/**
+ * Show all the show hide elements.
+ */
+minplayer.showAll = function() {
+  var i = minplayer.showHideElements.length;
+  var obj = null;
+  while (i--) {
+    obj = minplayer.showHideElements[i];
+    minplayer.showThenHide(obj.element, obj.timeout, obj.callback);
+  }
+};
+
+/**
+ * Stops the whole show then hide from happening.
+ *
+ * @param {object} element The element you want the showThenHide to stop.
+ */
+minplayer.stopShowThenHide = function(element) {
+  element = jQuery(element);
+  if (element.showTimer) {
+    clearTimeout(element.showTimer);
+  }
+  element.stopShowThenHide = true;
+  element.shown = true;
+  element.show();
+};
+
+/**
+ * Called if you would like for your display item to show then hide.
+ *
+ * @param {object} element The element you would like to hide or show.
+ * @param {number} timeout The timeout to hide and show.
+ * @param {function} callback Called when something happens.
+ */
+minplayer.showThenHide = function(element, timeout, callback) {
+
+  // If no element exists, then just return.
+  if (!element) {
+    return;
+  }
+
+  // Ensure we have a timeout.
+  timeout = timeout || 5000;
+
+  // If this has not yet been configured.
+  if (!element.showTimer) {
+    element.shown = true;
+    element.stopShowThenHide = false;
+
+    // Add this to our showHideElements.
+    minplayer.showHideElements.push({
+      element: element,
+      timeout: timeout,
+      callback: callback
+    });
+
+    // Bind to a click event.
+    minplayer.click(document, function() {
+      if (!element.stopShowThenHide) {
+        minplayer.showThenHide(element, timeout, callback);
+      }
+    });
+
+    // Bind to the mousemove event.
+    jQuery(document).bind('mousemove', function() {
+      if (!element.stopShowThenHide) {
+        minplayer.showThenHide(element, timeout, callback);
+      }
+    });
+  }
+
+  // Clear the timeout, and then setup the show then hide functionality.
+  clearTimeout(element.showTimer);
+
+  // Show the display.
+  if (!element.shown && !element.forceHide) {
+    element.shown = true;
+    element.show();
+    if (callback) {
+      callback(true);
+    }
+  }
+
+  // Set a timer to hide it after the timeout.
+  element.showTimer = setTimeout(function() {
+    element.hide('slow', function() {
+      element.shown = false;
+      if (callback) {
+        callback(false);
+      }
+    });
+  }, timeout);
+};
+
+/**
+ * Make this display element go fullscreen.
+ *
+ * @param {boolean} full Tell the player to go into fullscreen or not.
+ */
+minplayer.display.prototype.fullscreen = function(full) {
+  var isFull = this.isFullScreen();
+  var element = this.fullScreenElement();
+  if (isFull && !full) {
+    element.removeClass('fullscreen');
+    if (screenfull) {
+      screenfull.exit();
+    }
+    this.trigger('fullscreen', false);
+  }
+  else if (!isFull && full) {
+    element.addClass('fullscreen');
+    if (screenfull) {
+      screenfull.request(element[0]);
+      screenfull.onchange = (function(display) {
+        return function(e) {
+          if (!screenfull.isFullscreen) {
+            display.fullscreen(false);
+          }
+        };
+      })(this);
+    }
+    this.trigger('fullscreen', true);
+  }
+};
+
+/**
+ * Toggle fullscreen.
+ */
+minplayer.display.prototype.toggleFullScreen = function() {
+  this.fullscreen(!this.isFullScreen());
+};
+
+/**
+ * Checks to see if we are in fullscreen mode.
+ *
+ * @return {boolean} TRUE - fullscreen, FALSE - otherwise.
+ */
+minplayer.display.prototype.isFullScreen = function() {
+  return this.fullScreenElement().hasClass('fullscreen');
+};
+
+/**
+ * Returns a scaled rectangle provided a ratio and the container rect.
+ *
+ * @param {number} ratio The width/height ratio of what is being scaled.
+ * @param {object} rect The bounding rectangle for scaling.
+ * @return {object} The Rectangle object of the scaled rectangle.
+ */
+minplayer.display.prototype.getScaledRect = function(ratio, rect) {
+  var scaledRect = {};
+  scaledRect.x = rect.x ? rect.x : 0;
+  scaledRect.y = rect.y ? rect.y : 0;
+  scaledRect.width = rect.width ? rect.width : 0;
+  scaledRect.height = rect.height ? rect.height : 0;
+  if (ratio) {
+    if ((rect.width / rect.height) > ratio) {
+      scaledRect.height = rect.height;
+      scaledRect.width = Math.floor(rect.height * ratio);
+    }
+    else {
+      scaledRect.height = Math.floor(rect.width / ratio);
+      scaledRect.width = rect.width;
+    }
+    scaledRect.x = Math.floor((rect.width - scaledRect.width) / 2);
+    scaledRect.y = Math.floor((rect.height - scaledRect.height) / 2);
+  }
+  return scaledRect;
+};
+
+/**
+ * Returns all the jQuery elements that this component uses.
+ *
+ * @return {object} An object which defines all the jQuery elements that
+ * this component uses.
+ */
+minplayer.display.prototype.getElements = function() {
+  return {};
+};
+
+/**
+ * From https://github.com/sindresorhus/screenfull.js
+ */
+/*global Element:true*/
+(function(window, document) {
+  'use strict';
+  var methods = (function() {
+    var methodMap = [
+      [
+        'requestFullscreen',
+        'exitFullscreen',
+        'fullscreenchange',
+        'fullscreen',
+        'fullscreenElement'
+      ],
+      [
+        'webkitRequestFullScreen',
+        'webkitCancelFullScreen',
+        'webkitfullscreenchange',
+        'webkitIsFullScreen',
+        'webkitCurrentFullScreenElement'
+      ],
+      [
+        'mozRequestFullScreen',
+        'mozCancelFullScreen',
+        'mozfullscreenchange',
+        'mozFullScreen',
+        'mozFullScreenElement'
+      ]
+    ];
+    for (var i = 0, l = methodMap.length; i < l; i++) {
+      if (methodMap.hasOwnProperty(i)) {
+        var val = methodMap[i];
+        if (val[1] in document) {
+          return val;
+        }
+      }
+    }
+  })();
+
+  if (!methods) {
+    return window.screenfull = false;
+  }
+
+  var keyboardAllowed = 'ALLOW_KEYBOARD_INPUT' in Element;
+
+  var screenfull = {
+    init: function() {
+      document.addEventListener(methods[2], function(e) {
+        screenfull.isFullscreen = document[methods[3]];
+        screenfull.element = document[methods[4]];
+        screenfull.onchange(e);
+      });
+      return this;
+    },
+    isFullscreen: document[methods[3]],
+    element: document[methods[4]],
+    request: function(elem) {
+      elem = elem || document.documentElement;
+      elem[methods[0]](keyboardAllowed && Element.ALLOW_KEYBOARD_INPUT);
+      // Work around Safari 5.1 bug: reports support for keyboard in fullscreen
+      // even though it doesn't.
+      if (!document.isFullscreen) {
+        elem[methods[0]]();
+      }
+    },
+    exit: function() {
+      document[methods[1]]();
+    },
+    toggle: function(elem) {
+      if (this.isFullscreen) {
+        this.exit();
+      } else {
+        this.request(elem);
+      }
+    },
+    onchange: function() {}
+  };
+
+  window.screenfull = screenfull.init();
+})(window, document);
+// Add a way to instanciate using jQuery prototype.
+if (!jQuery.fn.minplayer) {
+
+  /**
+   * @constructor
+   *
+   * Define a jQuery minplayer prototype.
+   *
+   * @param {object} options The options for this jQuery prototype.
+   * @return {Array} jQuery object.
+   */
+  jQuery.fn.minplayer = function(options) {
+    return jQuery(this).each(function() {
+      options = options || {};
+      options.id = options.id || jQuery(this).attr('id') || Math.random();
+      if (!minplayer.plugins[options.id]) {
+        options.template = options.template || 'default';
+        if (minplayer[options.template]) {
+          new minplayer[options.template](jQuery(this), options);
+        }
+        else {
+          new minplayer(jQuery(this), options);
+        }
+      }
+    });
+  };
+}
+
+/**
+ * @constructor
+ * @extends minplayer.display
+ * @class The core media player class which governs the media player
+ * functionality.
+ *
+ * <p><strong>Usage:</strong>
+ * <pre><code>
+ *
+ *   // Create a media player.
+ *   var player = jQuery("#player").minplayer({
+ *
+ *   });
+ *
+ * </code></pre>
+ * </p>
+ *
+ * @param {object} context The jQuery context.
+ * @param {object} options This components options.
+ */
+minplayer = jQuery.extend(function(context, options) {
+
+  // Derive from display
+  minplayer.display.call(this, 'player', context, options);
+}, minplayer);
+
+/** Derive from minplayer.display. */
+minplayer.prototype = new minplayer.display();
+
+/** Reset the constructor. */
+minplayer.prototype.constructor = minplayer;
+
+/**
+ * @see minplayer.plugin.construct
+ */
+minplayer.prototype.construct = function() {
+
+  // Allow them to provide arguments based off of the DOM attributes.
+  jQuery.each(this.context[0].attributes, (function(player) {
+    return function(index, attr) {
+      player.options[attr.name] = player.options[attr.name] || attr.value;
+    };
+  })(this));
+
+  // Make sure we provide default options...
+  this.options = jQuery.extend({
+    id: 'player',
+    build: false,
+    wmode: 'transparent',
+    preload: true,
+    autoplay: false,
+    autoload: true,
+    loop: false,
+    width: '100%',
+    height: '350px',
+    debug: false,
+    volume: 80,
+    files: null,
+    file: '',
+    preview: '',
+    attributes: {},
+    logo: '',
+    link: '',
+    width: '100%',
+    height: '100%'
+  }, this.options);
+
+  // Call the minplayer display constructor.
+  minplayer.display.prototype.construct.call(this);
+
+  // Set the plugin name within the options.
+  this.options.pluginName = 'player';
+
+  /** The controller for this player. */
+  this.controller = this.create('controller');
+
+  /** The play loader for this player. */
+  this.playLoader = this.create('playLoader');
+
+  // Set the focus of the element based on if they click in or outside of it.
+  minplayer.click(document, (function(player) {
+    return function(event) {
+      var target = jQuery(event.target);
+      var focus = !(target.closest('#' + player.options.id).length == 0);
+      minplayer.get.call(this, player.options.id, null, function(plugin) {
+        plugin.onFocus(focus);
+      });
+    };
+  })(this));
+
+  /** Add the logo for the player. */
+  if (this.options.logo && this.elements.logo) {
+
+    var code = '';
+    if (this.options.link) {
+      code += '<a target="_blank" href="' + this.options.link + '">';
+    }
+    code += '<img src="' + this.options.logo + '" >';
+    if (this.options.link) {
+      code += '</a>';
+    }
+    this.logo = this.elements.logo.append(code);
+  }
+
+  /** Variable to store the current media player. */
+  this.currentPlayer = 'html5';
+
+  // Add key events to the window.
+  this.addKeyEvents();
+
+  // Called to add events.
+  this.addEvents();
+
+  // Now load these files.
+  this.load(this.getFiles());
+
+  // The player is ready.
+  this.ready();
+};
+
+/**
+ * Called when an error occurs.
+ *
+ * @param {object} plugin The plugin you wish to bind to.
+ */
+minplayer.prototype.bindTo = function(plugin) {
+  plugin.bind('error', (function(player) {
+    return function(event, data) {
+      if (player.currentPlayer == 'html5') {
+        minplayer.player = 'minplayer';
+        player.options.file.player = 'minplayer';
+        player.loadPlayer();
+      }
+      else {
+        player.showError(data);
+      }
+    };
+  })(this));
+
+  // Bind to the fullscreen event.
+  plugin.bind('fullscreen', (function(player) {
+    return function(event, data) {
+      player.resize();
+    };
+  })(this));
+};
+
+/**
+ * We need to bind to events we are interested in.
+ */
+minplayer.prototype.addEvents = function() {
+  minplayer.get.call(this, this.options.id, null, (function(player) {
+    return function(plugin) {
+      player.bindTo(plugin);
+    };
+  })(this));
+};
+
+/**
+ * Sets an error on the player.
+ *
+ * @param {string} error The error to display on the player.
+ */
+minplayer.prototype.showError = function(error) {
+  if (typeof error !== 'object') {
+    error = error || '';
+    if (this.elements.error) {
+
+      // Set the error text.
+      this.elements.error.text(error);
+      if (error) {
+        // Show the error message.
+        this.elements.error.show();
+
+        // Only show this error for a time interval.
+        setTimeout((function(player) {
+          return function() {
+            player.elements.error.hide('slow');
+          };
+        })(this), 5000);
+      }
+      else {
+        this.elements.error.hide();
+      }
+    }
+  }
+};
+
+/**
+ * Adds key events to the player.
+ */
+minplayer.prototype.addKeyEvents = function() {
+  jQuery(document).bind('keydown', (function(player) {
+    return function(event) {
+      switch (event.keyCode) {
+        case 113: // ESC
+        case 27:  // Q
+          if (player.isFullScreen()) {
+            player.fullscreen(false);
+          }
+          break;
+      }
+    };
+  })(this));
+};
+
+/**
+ * Returns all the media files available for this player.
+ *
+ * @return {array} All the media files for this player.
+ */
+minplayer.prototype.getFiles = function() {
+
+  // If they provide the files in the options, use those first.
+  if (this.options.files) {
+    return this.options.files;
+  }
+
+  if (this.options.file) {
+    return this.options.file;
+  }
+
+  var files = [];
+  var mediaSrc = null;
+
+  // Get the files involved...
+  if (this.elements.media) {
+    mediaSrc = this.elements.media.attr('src');
+    if (mediaSrc) {
+      files.push({'path': mediaSrc});
+    }
+    jQuery('source', this.elements.media).each(function() {
+      files.push({
+        'path': jQuery(this).attr('src'),
+        'mimetype': jQuery(this).attr('type'),
+        'codecs': jQuery(this).attr('codecs')
+      });
+    });
+  }
+
+  return files;
+};
+
+/**
+ * Returns the full media player object.
+ *
+ * @param {array} files An array of files to chose from.
+ * @return {object} The best media file to play in the current browser.
+ */
+minplayer.getMediaFile = function(files) {
+
+  // If there are no files then return null.
+  if (!files) {
+    return null;
+  }
+
+  // If the file is already a file object then just return.
+  if ((typeof files === 'string') || files.path || files.id) {
+    return new minplayer.file(files);
+  }
+
+  // Add the files and get the best player to play.
+  var bestPriority = 0, mFile = null, file = null;
+  for (var i in files) {
+    if (files.hasOwnProperty(i)) {
+      file = new minplayer.file(files[i]);
+      if (file.player && (file.priority > bestPriority)) {
+        mFile = file;
+      }
+    }
+  }
+
+  // Return the best minplayer file.
+  return mFile;
+};
+
+/**
+ * Loads a media player based on the current file.
+ *
+ * @return {boolean} If a new player was loaded.
+ */
+minplayer.prototype.loadPlayer = function() {
+
+  // Do nothing if there isn't a file or anywhere to put it.
+  if (!this.options.file || (this.elements.display.length == 0)) {
+    return false;
+  }
+
+  // If no player is set, then also return false.
+  if (!this.options.file.player) {
+    return false;
+  }
+
+  // Reset the error.
+  this.showError();
+
+  // Only destroy if the current player is different than the new player.
+  var player = this.options.file.player.toString();
+
+  // If there isn't media or if the players are different.
+  if (!this.media || (player !== this.currentPlayer)) {
+
+    // Set the current media player.
+    this.currentPlayer = player;
+
+    // Do nothing if we don't have a display.
+    if (!this.elements.display) {
+      this.showError('No media display found.');
+      return;
+    }
+
+    // Destroy the current media.
+    var queue = {};
+    if (this.media) {
+      queue = this.media.queue;
+      this.media.destroy();
+    }
+
+    // Get the class name and create the new player.
+    pClass = minplayer.players[this.options.file.player];
+
+    // Create the new media player.
+    this.options.mediaelement = this.elements.media;
+    this.media = new pClass(this.elements.display, this.options, queue);
+
+    // Now get the media when it is ready.
+    this.get('media', (function(player) {
+      return function(media) {
+
+        // Load the media.
+        media.load(player.options.file);
+        player.display.addClass('minplayer-player-' + media.mediaFile.player);
+      };
+    })(this));
+
+    // Return that a new player is loaded.
+    return true;
+  }
+  // If the media object already exists...
+  else if (this.media) {
+
+    // Now load the different media file.
+    this.media.options = this.options;
+    this.display.removeClass('minplayer-player-' + this.media.mediaFile.player);
+    this.media.load(this.options.file);
+    this.display.addClass('minplayer-player-' + this.media.mediaFile.player);
+    return false;
+  }
+};
+
+/**
+ * Load a set of files or a single file for the media player.
+ *
+ * @param {array} files An array of files to chose from to load.
+ */
+minplayer.prototype.load = function(files) {
+
+  // Set the id and class.
+  var id = '', pClass = '';
+
+  // If no file was provided, then get it.
+  this.options.files = files || this.options.files;
+  this.options.file = minplayer.getMediaFile(this.options.files);
+
+  // Now load the player.
+  if (this.loadPlayer()) {
+
+    // Add the events since we now have a player.
+    this.bindTo(this.media);
+
+    // If the player isn't valid, then show an error.
+    if (this.options.file.mimetype && !this.options.file.player) {
+      this.showError('Cannot play media: ' + this.options.file.mimetype);
+    }
+  }
+};
+
+/**
+ * Called when the player is resized.
+ */
+minplayer.prototype.resize = function() {
+
+  // Call onRezie for each plugin.
+  this.get(function(plugin) {
+    if (plugin.onResize) {
+      plugin.onResize();
+    }
+  });
+};
+/** The minplayer namespace. */
+var minplayer = minplayer || {};
+
+/**
+ * @constructor
+ * @class A class to easily handle images.
+ * @param {object} context The jQuery context.
+ * @param {object} options This components options.
+ */
+minplayer.image = function(context, options) {
+
+  // Determine if the image is loaded.
+  this.loaded = false;
+
+  // The image loader.
+  this.loader = null;
+
+  // The ratio of the image.
+  this.ratio = 0;
+
+  // The image element.
+  this.img = null;
+
+  // Derive from display
+  minplayer.display.call(this, 'image', context, options);
+};
+
+/** Derive from minplayer.display. */
+minplayer.image.prototype = new minplayer.display();
+
+/** Reset the constructor. */
+minplayer.image.prototype.constructor = minplayer.image;
+
+/**
+ * @see minplayer.plugin.construct
+ */
+minplayer.image.prototype.construct = function() {
+
+  // Call the media display constructor.
+  minplayer.display.prototype.construct.call(this);
+
+  // Set the plugin name within the options.
+  this.options.pluginName = 'image';
+
+  // Set the container to not show any overflow...
+  this.display.css('overflow', 'hidden');
+
+  /** The loader for the image. */
+  this.loader = new Image();
+
+  /** Register for when the image is loaded within the loader. */
+  this.loader.onload = (function(image) {
+    return function() {
+      image.loaded = true;
+      image.ratio = (image.loader.width / image.loader.height);
+      image.resize();
+      image.trigger('loaded');
+    };
+  })(this);
+
+  // We are now ready.
+  this.ready();
+};
+
+/**
+ * Loads an image.
+ *
+ * @param {string} src The source of the image to load.
+ */
+minplayer.image.prototype.load = function(src) {
+
+  // First clear the previous image.
+  this.clear(function() {
+
+    // Create the new image, and append to the display.
+    this.display.empty();
+    this.img = jQuery(document.createElement('img')).attr({src: ''}).hide();
+    this.display.append(this.img);
+    this.loader.src = src;
+    this.img.attr('src', src);
+  });
+};
+
+/**
+ * Clears an image.
+ *
+ * @param {function} callback Called when the image is done clearing.
+ */
+minplayer.image.prototype.clear = function(callback) {
+  this.loaded = false;
+  if (this.img) {
+    this.img.fadeOut((function(image) {
+      return function() {
+        image.img.attr('src', '');
+        image.loader.src = '';
+        jQuery(this).remove();
+        callback.call(image);
+      };
+    })(this));
+  }
+  else {
+    callback.call(this);
+  }
+};
+
+/**
+ * Resize the image provided a width and height or nothing.
+ *
+ * @param {integer} width (optional) The width of the container.
+ * @param {integer} height (optional) The height of the container.
+ */
+minplayer.image.prototype.resize = function(width, height) {
+  width = width || this.display.parent().width();
+  height = height || this.display.parent().height();
+  if (width && height && this.loaded) {
+
+    // Get the scaled rectangle.
+    var rect = this.getScaledRect(this.ratio, {
+      width: width,
+      height: height
+    });
+
+    // Now set this image to the new size.
+    if (this.img) {
+      this.img.attr('src', this.loader.src).css({
+        marginLeft: rect.x,
+        marginTop: rect.y,
+        width: rect.width,
+        height: rect.height
+      });
+    }
+
+    // Show the container.
+    this.img.fadeIn();
+  }
+};
+
+/**
+ * @see minplayer.display#onResize
+ */
+minplayer.image.prototype.onResize = function() {
+
+  // Resize the image to fit.
+  this.resize();
+};
+/** The minplayer namespace. */
+var minplayer = minplayer || {};
+
+/**
+ * @constructor
+ * @class A wrapper class used to provide all the data necessary to control an
+ * individual file within this media player.
+ *
+ * @param {object} file A media file object with minimal required information.
+ */
+minplayer.file = function(file) {
+
+  // If there isn't a file provided, then just return null.
+  if (!file) {
+    return null;
+  }
+
+  file = (typeof file === 'string') ? {path: file} : file;
+
+  // If we already are a minplayer file, then just return this file.
+  if (file.hasOwnProperty('isMinPlayerFile')) {
+    return file;
+  }
+
+  this.isMinPlayerFile = true;
+  this.duration = file.duration || 0;
+  this.bytesTotal = file.bytesTotal || 0;
+  this.quality = file.quality || 0;
+  this.stream = file.stream || '';
+  this.path = file.path || '';
+  this.codecs = file.codecs || '';
+
+  // These should be provided, but just in case...
+  this.extension = file.extension || this.getFileExtension();
+  this.mimetype = file.mimetype || file.filemime || this.getMimeType();
+  this.type = file.type || this.getType();
+
+  // Fail safe to try and guess the mimetype and media type.
+  if (!this.type) {
+    this.mimetype = this.getMimeType();
+    this.type = this.getType();
+  }
+
+  // Get the player.
+  this.player = minplayer.player || file.player || this.getBestPlayer();
+  this.priority = file.priority || this.getPriority();
+  this.id = file.id || this.getId();
+  if (!this.path) {
+    this.path = this.id;
+  }
+};
+
+/** Used to force the player for all media. */
+minplayer.player = '';
+
+/**
+ * Returns the best player for the job.
+ *
+ * @return {string} The best player to play the media file.
+ */
+minplayer.file.prototype.getBestPlayer = function() {
+  var bestplayer = null, bestpriority = 0;
+  jQuery.each(minplayer.players, (function(file) {
+    return function(name, player) {
+      var priority = player.getPriority();
+      if (player.canPlay(file) && (priority > bestpriority)) {
+        bestplayer = name;
+        bestpriority = priority;
+      }
+    };
+  })(this));
+  return bestplayer;
+};
+
+/**
+ * The priority of this file is determined by the priority of the best
+ * player multiplied by the priority of the mimetype.
+ *
+ * @return {integer} The priority of the media file.
+ */
+minplayer.file.prototype.getPriority = function() {
+  var priority = 1;
+  if (this.player) {
+    priority = minplayer.players[this.player].getPriority();
+  }
+  switch (this.mimetype) {
+    case 'video/x-webm':
+    case 'video/webm':
+    case 'application/octet-stream':
+      return priority * 10;
+    case 'video/mp4':
+    case 'audio/mp4':
+    case 'audio/mpeg':
+      return priority * 9;
+    case 'video/ogg':
+    case 'audio/ogg':
+    case 'video/quicktime':
+      return priority * 8;
+    default:
+      return priority * 5;
+  }
+};
+
+/**
+ * Returns the file extension of the file path.
+ *
+ * @return {string} The file extension.
+ */
+minplayer.file.prototype.getFileExtension = function() {
+  return this.path.substring(this.path.lastIndexOf('.') + 1).toLowerCase();
+};
+
+/**
+ * Returns the proper mimetype based off of the extension.
+ *
+ * @return {string} The mimetype of the file based off of extension.
+ */
+minplayer.file.prototype.getMimeType = function() {
+  switch (this.extension) {
+    case 'mp4': case 'm4v': case 'flv': case 'f4v':
+      return 'video/mp4';
+    case'webm':
+      return 'video/webm';
+    case 'ogg': case 'ogv':
+      return 'video/ogg';
+    case '3g2':
+      return 'video/3gpp2';
+    case '3gpp':
+    case '3gp':
+      return 'video/3gpp';
+    case 'mov':
+      return 'video/quicktime';
+    case'swf':
+      return 'application/x-shockwave-flash';
+    case 'oga':
+      return 'audio/ogg';
+    case 'mp3':
+      return 'audio/mpeg';
+    case 'm4a': case 'f4a':
+      return 'audio/mp4';
+    case 'aac':
+      return 'audio/aac';
+    case 'wav':
+      return 'audio/vnd.wave';
+    case 'wma':
+      return 'audio/x-ms-wma';
+    default:
+      return 'unknown';
+  }
+};
+
+/**
+ * The type of media this is: video or audio.
+ *
+ * @return {string} "video" or "audio" based on what the type of media this
+ * is.
+ */
+minplayer.file.prototype.getType = function() {
+  var type = this.mimetype.match(/([^\/]+)(\/)/);
+  type = (type && (type.length > 1)) ? type[1] : '';
+  if (type == 'video' || this.mimetype == 'application/octet-stream') {
+    return 'video';
+  }
+  if (type == 'audio') {
+    return 'audio';
+  }
+  return '';
+};
+
+/**
+ * Returns the ID for this media file.
+ *
+ * @return {string} The id for this media file which is provided by the player.
+ */
+minplayer.file.prototype.getId = function() {
+  var player = minplayer.players[this.player];
+  return (player && player.getMediaId) ? player.getMediaId(this) : '';
+};
+/** The minplayer namespace. */
+var minplayer = minplayer || {};
+
+/**
+ * @constructor
+ * @extends minplayer.display
+ * @class The play loader base class, which is used to control the busy
+ * cursor, big play button, and the opaque background which shows when the
+ * player is paused.
+ *
+ * @param {object} context The jQuery context.
+ * @param {object} options This components options.
+ */
+minplayer.playLoader = function(context, options) {
+
+  // Define the flags that control the busy cursor.
+  this.busy = new minplayer.flags();
+
+  // Define the flags that control the big play button.
+  this.bigPlay = new minplayer.flags();
+
+  // Define the flags the control the preview.
+  this.previewFlag = new minplayer.flags();
+
+  /** The preview image. */
+  this.preview = null;
+
+  /** If the playLoader is enabled. */
+  this.enabled = true;
+
+  // Derive from display
+  minplayer.display.call(this, 'playLoader', context, options);
+};
+
+/** Derive from minplayer.display. */
+minplayer.playLoader.prototype = new minplayer.display();
+
+/** Reset the constructor. */
+minplayer.playLoader.prototype.constructor = minplayer.playLoader;
+
+/**
+ * The constructor.
+ */
+minplayer.playLoader.prototype.construct = function() {
+
+  // Call the media display constructor.
+  minplayer.display.prototype.construct.call(this);
+
+  // Set the plugin name within the options.
+  this.options.pluginName = 'playLoader';
+
+  // Get the media plugin.
+  this.initialize();
+
+  // We are now ready.
+  this.ready();
+};
+
+/**
+ * Initialize the playLoader.
+ */
+minplayer.playLoader.prototype.initialize = function() {
+
+  // Get the media plugin.
+  this.get('media', function(media) {
+
+    // Only bind if this player does not have its own play loader.
+    if (!media.hasPlayLoader(this.options.preview)) {
+
+      // Enable the playLoader.
+      this.enabled = true;
+
+      // Get the poster image.
+      if (!this.options.preview) {
+        this.options.preview = media.elements.media.attr('poster');
+      }
+
+      // Reset the media's poster image.
+      media.elements.media.attr('poster', '');
+
+      // Load the preview image.
+      this.loadPreview();
+
+      // Trigger a play event when someone clicks on the controller.
+      if (this.elements.bigPlay) {
+        minplayer.click(this.elements.bigPlay.unbind(), function(event) {
+          event.preventDefault();
+          minplayer.showAll();
+          jQuery(this).hide();
+          media.play();
+        });
+      }
+
+      // Bind to the player events to control the play loader.
+      media.unbind('loadstart').bind('loadstart', (function(playLoader) {
+        return function(event) {
+          playLoader.busy.setFlag('media', true);
+          playLoader.bigPlay.setFlag('media', true);
+          playLoader.previewFlag.setFlag('media', true);
+          playLoader.checkVisibility();
+        };
+      })(this));
+      media.bind('waiting', (function(playLoader) {
+        return function(event) {
+          playLoader.busy.setFlag('media', true);
+          playLoader.checkVisibility();
+        };
+      })(this));
+      media.bind('loadeddata', (function(playLoader) {
+        return function(event) {
+          playLoader.busy.setFlag('media', false);
+          playLoader.checkVisibility();
+        };
+      })(this));
+      media.bind('playing', (function(playLoader) {
+        return function(event) {
+          playLoader.busy.setFlag('media', false);
+          playLoader.bigPlay.setFlag('media', false);
+          if (media.mediaFile.type !== 'audio') {
+            playLoader.previewFlag.setFlag('media', false);
+          }
+          playLoader.checkVisibility();
+        };
+      })(this));
+      media.bind('pause', (function(playLoader) {
+        return function(event) {
+          playLoader.bigPlay.setFlag('media', true);
+          playLoader.checkVisibility();
+        };
+      })(this));
+    }
+    else {
+
+      // Hide the display.
+      this.enabled = false;
+      this.hide(this.elements.busy);
+      this.hide(this.elements.bigPlay);
+      this.hide(this.elements.preview);
+      this.hide();
+    }
+  });
+};
+
+/**
+ * Loads the preview image.
+ */
+minplayer.playLoader.prototype.loadPreview = function() {
+
+  // Ignore if disabled.
+  if (!this.enabled) {
+    return;
+  }
+
+  // If the preview element exists.
+  if (this.elements.preview) {
+
+    // If there is a preview to show...
+    if (this.options.preview) {
+
+      // Say that this has a preview.
+      this.elements.preview.addClass('has-preview').show();
+
+      // Create a new preview image.
+      this.preview = new minplayer.image(this.elements.preview, this.options);
+
+      // Create the image.
+      this.preview.load(this.options.preview);
+    }
+    else {
+
+      // Hide the preview.
+      this.elements.preview.hide();
+    }
+  }
+};
+
+/**
+ * Hide or show certain elements based on the state of the busy and big play
+ * button.
+ */
+minplayer.playLoader.prototype.checkVisibility = function() {
+
+  // Ignore if disabled.
+  if (!this.enabled) {
+    return;
+  }
+
+  // Hide or show the busy cursor based on the flags.
+  if (this.busy.flag) {
+    this.elements.busy.show();
+  }
+  else {
+    this.elements.busy.hide();
+  }
+
+  // Hide or show the big play button based on the flags.
+  if (this.bigPlay.flag) {
+    this.elements.bigPlay.show();
+  }
+  else {
+    this.elements.bigPlay.hide();
+  }
+
+  if (this.previewFlag.flag) {
+    this.elements.preview.show();
+  }
+  else {
+    this.elements.preview.hide();
+  }
+
+  // Show the control either flag is set.
+  if (this.bigPlay.flag || this.busy.flag || this.previewFlag.flag) {
+    this.display.show();
+  }
+
+  // Hide the whole control if both flags are 0.
+  if (!this.bigPlay.flag && !this.busy.flag && !this.previewFlag.flag) {
+    this.display.hide();
+  }
+};
+/** The minplayer namespace. */
+var minplayer = minplayer || {};
+
+/** All the media player implementations */
+minplayer.players = minplayer.players || {};
+
+/**
+ * @constructor
+ * @extends minplayer.display
+ * @class The base media player class where all media players derive from.
+ *
+ * @param {object} context The jQuery context.
+ * @param {object} options This components options.
+ * @param {object} queue The event queue to pass events around.
+ */
+minplayer.players.base = function(context, options, queue) {
+
+  // Derive from display
+  minplayer.display.call(this, 'media', context, options, queue);
+};
+
+/** Derive from minplayer.display. */
+minplayer.players.base.prototype = new minplayer.display();
+
+/** Reset the constructor. */
+minplayer.players.base.prototype.constructor = minplayer.players.base;
+
+/**
+ * @see minplayer.display.getElements
+ * @this minplayer.players.base
+ * @return {object} The elements for this display.
+ */
+minplayer.players.base.prototype.getElements = function() {
+  var elements = minplayer.display.prototype.getElements.call(this);
+  return jQuery.extend(elements, {
+    media: this.options.mediaelement
+  });
+};
+
+/**
+ * Get the priority of this media player.
+ *
+ * @return {number} The priority of this media player.
+ */
+minplayer.players.base.getPriority = function() {
+  return 0;
+};
+
+/**
+ * Returns the ID for the media being played.
+ *
+ * @param {object} file A {@link minplayer.file} object.
+ * @return {string} The ID for the provided media.
+ */
+minplayer.players.base.getMediaId = function(file) {
+  return '';
+};
+
+/**
+ * Determine if we can play the media file.
+ *
+ * @param {object} file A {@link minplayer.file} object.
+ * @return {boolean} If this player can play this media type.
+ */
+minplayer.players.base.canPlay = function(file) {
+  return false;
+};
+
+/**
+ * @see minplayer.plugin.construct
+ * @this minplayer.players.base
+ */
+minplayer.players.base.prototype.construct = function() {
+
+  // Call the media display constructor.
+  minplayer.display.prototype.construct.call(this);
+
+  // Set the plugin name within the options.
+  this.options.pluginName = 'basePlayer';
+
+  /** The currently loaded media file. */
+  this.mediaFile = this.options.file;
+
+  // Clear the media player.
+  this.clear();
+
+  // Get the player display object.
+  if (!this.playerFound()) {
+
+    // Add the new player.
+    this.addPlayer();
+  }
+
+  // Get the player object...
+  this.player = this.getPlayer();
+
+  // Toggle playing if they click.
+  minplayer.click(this.display, (function(player) {
+    return function() {
+      minplayer.showAll();
+      if (player.playing) {
+        player.pause();
+      }
+      else {
+        player.play();
+      }
+    };
+  })(this));
+
+  // Bind to key events...
+  jQuery(document).bind('keydown', (function(player) {
+    return function(event) {
+      if (player.hasFocus) {
+        event.preventDefault();
+        switch (event.keyCode) {
+          case 32:  // SPACE
+          case 179: // GOOGLE play/pause button.
+            if (player.playing) {
+              player.pause();
+            }
+            else {
+              player.play();
+            }
+            break;
+          case 38:  // UP
+            player.setVolumeRelative(0.1);
+            break;
+          case 40:  // DOWN
+            player.setVolumeRelative(-0.1);
+            break;
+          case 37:  // LEFT
+          case 227: // GOOGLE TV REW
+            player.seekRelative(-0.05);
+            break;
+          case 39:  // RIGHT
+          case 228: // GOOGLE TV FW
+            player.seekRelative(0.05);
+            break;
+        }
+      }
+    };
+  })(this));
+};
+
+/**
+ * Adds the media player.
+ */
+minplayer.players.base.prototype.addPlayer = function() {
+
+  // Remove the media element if found
+  if (this.elements.media) {
+    this.elements.media.remove();
+  }
+
+  // Create a new media player element.
+  this.elements.media = jQuery(this.create());
+  this.display.html(this.elements.media);
+};
+
+/**
+ * @see minplayer.plugin.destroy.
+ */
+minplayer.players.base.prototype.destroy = function() {
+  minplayer.plugin.prototype.destroy.call(this);
+  this.clear();
+};
+
+/**
+ * Clears the media player.
+ */
+minplayer.players.base.prototype.clear = function() {
+
+  // Reset the ready flag.
+  this.playerReady = false;
+
+  // Reset the player.
+  this.reset();
+
+  // If the player exists, then unbind all events.
+  if (this.player) {
+    jQuery(this.player).unbind();
+  }
+};
+
+/**
+ * Resets all variables.
+ */
+minplayer.players.base.prototype.reset = function() {
+
+  // The duration of the player.
+  this.duration = new minplayer.async();
+
+  // The current play time of the player.
+  this.currentTime = new minplayer.async();
+
+  // The amount of bytes loaded in the player.
+  this.bytesLoaded = new minplayer.async();
+
+  // The total amount of bytes for the media.
+  this.bytesTotal = new minplayer.async();
+
+  // The bytes that the download started with.
+  this.bytesStart = new minplayer.async();
+
+  // The current volume of the player.
+  this.volume = new minplayer.async();
+
+  // Reset focus.
+  this.hasFocus = false;
+
+  // We are not playing.
+  this.playing = false;
+
+  // We are not loading.
+  this.loading = false;
+
+  // Tell everyone else we reset.
+  this.trigger('pause');
+  this.trigger('waiting');
+  this.trigger('progress', {loaded: 0, total: 0, start: 0});
+  this.trigger('timeupdate', {currentTime: 0, duration: 0});
+};
+
+/**
+ * Called when the player is ready to recieve events and commands.
+ */
+minplayer.players.base.prototype.onReady = function() {
+
+  // Only continue if we are not already ready.
+  if (this.playerReady) {
+    return;
+  }
+
+  // Set the ready flag.
+  this.playerReady = true;
+
+  // Set the volume to the default.
+  this.setVolume(this.options.volume / 100);
+
+  // Setup the progress interval.
+  this.loading = true;
+
+  // Create a poll to get the progress.
+  this.poll((function(player) {
+    return function() {
+
+      // Only do this if the play interval is set.
+      if (player.loading) {
+
+        // Get the bytes loaded asynchronously.
+        player.getBytesLoaded(function(bytesLoaded) {
+
+          // Get the bytes total asynchronously.
+          player.getBytesTotal(function(bytesTotal) {
+
+            // Trigger an event about the progress.
+            if (bytesLoaded || bytesTotal) {
+
+              // Get the bytes start, but don't require it.
+              var bytesStart = 0;
+              player.getBytesStart(function(val) {
+                bytesStart = val;
+              });
+
+              // Trigger a progress event.
+              player.trigger('progress', {
+                loaded: bytesLoaded,
+                total: bytesTotal,
+                start: bytesStart
+              });
+
+              // Say we are not longer loading if they are equal.
+              if (bytesLoaded >= bytesTotal) {
+                player.loading = false;
+              }
+            }
+          });
+        });
+      }
+
+      // Keep polling as long as its loading...
+      return player.loading;
+    };
+  })(this), 1000);
+
+  // We are now ready.
+  this.ready();
+
+  // Trigger that the load has started.
+  this.trigger('loadstart');
+};
+
+/**
+ * Should be called when the media is playing.
+ */
+minplayer.players.base.prototype.onPlaying = function() {
+
+  // Trigger an event that we are playing.
+  this.trigger('playing');
+
+  // Say that this player has focus.
+  this.hasFocus = true;
+
+  // Set the playInterval to true.
+  this.playing = true;
+
+  // Create a poll to get the timeupate.
+  this.poll((function(player) {
+    return function() {
+
+      // Only do this if the play interval is set.
+      if (player.playing) {
+
+        // Get the current time asyncrhonously.
+        player.getCurrentTime(function(currentTime) {
+
+          // Get the duration asynchronously.
+          player.getDuration(function(duration) {
+
+            // Convert these to floats.
+            currentTime = parseFloat(currentTime);
+            duration = parseFloat(duration);
+
+            // Trigger an event about the progress.
+            if (currentTime || duration) {
+
+              // Trigger an update event.
+              player.trigger('timeupdate', {
+                currentTime: currentTime,
+                duration: duration
+              });
+            }
+          });
+        });
+      }
+
+      // Keep polling as long as it is playing.
+      return player.playing;
+    };
+  })(this), 1000);
+};
+
+/**
+ * Should be called when the media is paused.
+ */
+minplayer.players.base.prototype.onPaused = function() {
+
+  // Trigger an event that we are paused.
+  this.trigger('pause');
+
+  // Remove focus.
+  this.hasFocus = false;
+
+  // Say we are not playing.
+  this.playing = false;
+};
+
+/**
+ * Should be called when the media is complete.
+ */
+minplayer.players.base.prototype.onComplete = function() {
+  if (this.playing) {
+    this.onPaused();
+  }
+
+  // Stop the intervals.
+  this.playing = false;
+  this.loading = false;
+  this.hasFocus = false;
+  this.trigger('ended');
+};
+
+/**
+ * Should be called when the media is done loading.
+ */
+minplayer.players.base.prototype.onLoaded = function() {
+
+  // If we should autoplay, then just play now.
+  if (this.options.autoplay) {
+    this.play();
+  }
+
+  this.trigger('loadeddata');
+};
+
+/**
+ * Should be called when the player is waiting.
+ */
+minplayer.players.base.prototype.onWaiting = function() {
+  this.trigger('waiting');
+};
+
+/**
+ * Called when an error occurs.
+ *
+ * @param {string} errorCode The error that was triggered.
+ */
+minplayer.players.base.prototype.onError = function(errorCode) {
+  this.hasFocus = false;
+  this.trigger('error', errorCode);
+};
+
+/**
+ * @see minplayer.players.base#isReady
+ * @return {boolean} Checks to see if the Flash is ready.
+ */
+minplayer.players.base.prototype.isReady = function() {
+
+  // Return that the player is set and the ready flag is good.
+  return (this.player && this.playerReady);
+};
+
+/**
+ * Determines if the player should show the playloader.
+ *
+ * @param {string} preview The preview image.
+ * @return {bool} If this player implements its own playLoader.
+ */
+minplayer.players.base.prototype.hasPlayLoader = function(preview) {
+  return false;
+};
+
+/**
+ * Determines if the player should show the controller.
+ *
+ * @return {bool} If this player implements its own controller.
+ */
+minplayer.players.base.prototype.hasController = function() {
+  return false;
+};
+
+/**
+ * Returns if the media player is already within the DOM.
+ *
+ * @return {boolean} TRUE - if the player is in the DOM, FALSE otherwise.
+ */
+minplayer.players.base.prototype.playerFound = function() {
+  return false;
+};
+
+/**
+ * Creates the media player and inserts it in the DOM.
+ *
+ * @return {object} The media player entity.
+ */
+minplayer.players.base.prototype.create = function() {
+  this.reset();
+  return null;
+};
+
+/**
+ * Returns the media player object.
+ *
+ * @return {object} The media player object.
+ */
+minplayer.players.base.prototype.getPlayer = function() {
+  return this.player;
+};
+
+/**
+ * Loads a new media player.
+ *
+ * @param {object} file A {@link minplayer.file} object.
+ * @return {boolean} If this action was performed.
+ */
+minplayer.players.base.prototype.load = function(file) {
+
+  // Store the media file for future lookup.
+  var isString = (typeof this.mediaFile == 'string');
+  var path = isString ? this.mediaFile : this.mediaFile.path;
+  if (file && this.isReady() && (file.path != path)) {
+    this.reset();
+    this.mediaFile = file;
+    return true;
+  }
+
+  return false;
+};
+
+/**
+ * Play the loaded media file.
+ * @return {boolean} If this action was performed.
+ */
+minplayer.players.base.prototype.play = function() {
+  return this.isReady();
+};
+
+/**
+ * Pause the loaded media file.
+ * @return {boolean} If this action was performed.
+ */
+minplayer.players.base.prototype.pause = function() {
+  return this.isReady();
+};
+
+/**
+ * Stop the loaded media file.
+ * @return {boolean} If this action was performed.
+ */
+minplayer.players.base.prototype.stop = function() {
+  this.playing = false;
+  this.loading = false;
+  this.hasFocus = false;
+  return this.isReady();
+};
+
+/**
+ * Seeks to relative position.
+ *
+ * @param {number} pos Relative position.  -1 to 1 (percent), > 1 (seconds).
+ */
+minplayer.players.base.prototype.seekRelative = function(pos) {
+
+  // Get the current time asyncrhonously.
+  this.getCurrentTime((function(player) {
+    return function(currentTime) {
+
+      // Get the duration asynchronously.
+      player.getDuration(function(duration) {
+
+        // Only do this if we have a duration.
+        if (duration) {
+
+          // Get the position.
+          var seekPos = 0;
+          if ((pos > -1) && (pos < 1)) {
+            seekPos = ((currentTime / duration) + parseFloat(pos)) * duration;
+          }
+          else {
+            seekPos = (currentTime + parseFloat(pos));
+          }
+
+          // Set the seek value.
+          player.seek(seekPos);
+        }
+      });
+    };
+  })(this));
+};
+
+/**
+ * Seek the loaded media.
+ *
+ * @param {number} pos The position to seek the minplayer. 0 to 1.
+ * @return {boolean} If this action was performed.
+ */
+minplayer.players.base.prototype.seek = function(pos) {
+  return this.isReady();
+};
+
+/**
+ * Gets a value from the player.
+ *
+ * @param {string} getter The getter method on the player.
+ * @param {function} callback The callback function.
+ */
+minplayer.players.base.prototype.getValue = function(getter, callback) {
+  if (this.isReady()) {
+    var value = this.player[getter]();
+    if ((value !== undefined) && (value !== null)) {
+      callback(value);
+    }
+  }
+};
+
+/**
+ * Set the volume of the loaded minplayer.
+ *
+ * @param {number} vol -1 to 1 - The relative amount to increase or decrease.
+ */
+minplayer.players.base.prototype.setVolumeRelative = function(vol) {
+
+  // Get the volume
+  this.getVolume((function(player) {
+    return function(newVol) {
+      newVol += parseFloat(vol);
+      newVol = (newVol < 0) ? 0 : newVol;
+      newVol = (newVol > 1) ? 1 : newVol;
+      player.setVolume(newVol);
+    };
+  })(this));
+};
+
+/**
+ * Set the volume of the loaded minplayer.
+ *
+ * @param {number} vol The volume to set the media. 0 to 1.
+ * @return {boolean} If this action was performed.
+ */
+minplayer.players.base.prototype.setVolume = function(vol) {
+  this.trigger('volumeupdate', vol);
+  return this.isReady();
+};
+
+/**
+ * Get the volume from the loaded media.
+ *
+ * @param {function} callback Called when the volume is determined.
+ * @return {number} The volume of the media; 0 to 1.
+ */
+minplayer.players.base.prototype.getVolume = function(callback) {
+  return this.volume.get(callback);
+};
+
+/**
+ * Get the current time for the media being played.
+ *
+ * @param {function} callback Called when the time is determined.
+ * @return {number} The volume of the media; 0 to 1.
+ */
+minplayer.players.base.prototype.getCurrentTime = function(callback) {
+  return this.currentTime.get(callback);
+};
+
+/**
+ * Return the duration of the loaded media.
+ *
+ * @param {function} callback Called when the duration is determined.
+ * @return {number} The duration of the loaded media.
+ */
+minplayer.players.base.prototype.getDuration = function(callback) {
+  return this.duration.get(callback);
+};
+
+/**
+ * Return the start bytes for the loaded media.
+ *
+ * @param {function} callback Called when the start bytes is determined.
+ * @return {int} The bytes that were started.
+ */
+minplayer.players.base.prototype.getBytesStart = function(callback) {
+  return this.bytesStart.get(callback);
+};
+
+/**
+ * Return the bytes of media loaded.
+ *
+ * @param {function} callback Called when the bytes loaded is determined.
+ * @return {int} The amount of bytes loaded.
+ */
+minplayer.players.base.prototype.getBytesLoaded = function(callback) {
+  return this.bytesLoaded.get(callback);
+};
+
+/**
+ * Return the total amount of bytes.
+ *
+ * @param {function} callback Called when the bytes total is determined.
+ * @return {int} The total amount of bytes for this media.
+ */
+minplayer.players.base.prototype.getBytesTotal = function(callback) {
+  return this.bytesTotal.get(callback);
+};
+/** The minplayer namespace. */
+var minplayer = minplayer || {};
+
+/** All the media player implementations */
+minplayer.players = minplayer.players || {};
+
+/**
+ * @constructor
+ * @extends minplayer.display
+ * @class The HTML5 media player implementation.
+ *
+ * @param {object} context The jQuery context.
+ * @param {object} options This components options.
+ * @param {object} queue The event queue to pass events around.
+ */
+minplayer.players.html5 = function(context, options, queue) {
+
+  // Derive players base.
+  minplayer.players.base.call(this, context, options, queue);
+};
+
+/** Derive from minplayer.players.base. */
+minplayer.players.html5.prototype = new minplayer.players.base();
+
+/** Reset the constructor. */
+minplayer.players.html5.prototype.constructor = minplayer.players.html5;
+
+/**
+ * @see minplayer.players.base#getPriority
+ * @return {number} The priority of this media player.
+ */
+minplayer.players.html5.getPriority = function() {
+  return 10;
+};
+
+/**
+ * @see minplayer.players.base#canPlay
+ * @return {boolean} If this player can play this media type.
+ */
+minplayer.players.html5.canPlay = function(file) {
+  switch (file.mimetype) {
+    case 'video/ogg':
+      return !!minplayer.playTypes.videoOGG;
+    case 'video/mp4':
+    case 'video/x-mp4':
+    case 'video/m4v':
+    case 'video/x-m4v':
+      return !!minplayer.playTypes.videoH264;
+    case 'video/x-webm':
+    case 'video/webm':
+    case 'application/octet-stream':
+      return !!minplayer.playTypes.videoWEBM;
+    case 'audio/ogg':
+      return !!minplayer.playTypes.audioOGG;
+    case 'audio/mpeg':
+      return !!minplayer.playTypes.audioMP3;
+    case 'audio/mp4':
+      return !!minplayer.playTypes.audioMP4;
+    default:
+      return false;
+  }
+};
+
+/**
+ * @see minplayer.plugin.construct
+ */
+minplayer.players.html5.prototype.construct = function() {
+
+  // Call base constructor.
+  minplayer.players.base.prototype.construct.call(this);
+
+  // Set the plugin name within the options.
+  this.options.pluginName = 'html5';
+
+  // Add the player events.
+  this.addPlayerEvents();
+};
+
+/**
+ * Adds a new player event.
+ *
+ * @param {string} type The type of event being fired.
+ * @param {function} callback Called when the event is fired.
+ */
+minplayer.players.html5.prototype.addPlayerEvent = function(type, callback) {
+  if (this.player) {
+
+    // Add an event listener for this event type.
+    this.player.addEventListener(type, (function(player) {
+
+      // Get the function name.
+      var func = type + 'Event';
+
+      // If the callback already exists, then remove it from the player.
+      if (player[func]) {
+        player.player.removeEventListener(type, player[func], false);
+      }
+
+      // Create a new callback.
+      player[func] = function(event) {
+        callback.call(player, event);
+      };
+
+      // Return the callback.
+      return player[func];
+
+    })(this), false);
+  }
+};
+
+/**
+ * Add events.
+ * @return {boolean} If this action was performed.
+ */
+minplayer.players.html5.prototype.addPlayerEvents = function() {
+
+  // Check if the player exists.
+  if (this.player) {
+
+    this.addPlayerEvent('abort', function() {
+      this.trigger('abort');
+    });
+    this.addPlayerEvent('loadstart', function() {
+      this.onReady();
+    });
+    this.addPlayerEvent('loadeddata', function() {
+      this.onLoaded();
+    });
+    this.addPlayerEvent('loadedmetadata', function() {
+      this.onLoaded();
+    });
+    this.addPlayerEvent('canplaythrough', function() {
+      this.onLoaded();
+    });
+    this.addPlayerEvent('ended', function() {
+      this.onComplete();
+    });
+    this.addPlayerEvent('pause', function() {
+      this.onPaused();
+    });
+    this.addPlayerEvent('play', function() {
+      this.onPlaying();
+    });
+    this.addPlayerEvent('playing', function() {
+      this.onPlaying();
+    });
+
+    var errorSent = false;
+    this.addPlayerEvent('error', function() {
+      if (!errorSent) {
+        errorSent = true;
+        this.trigger('error', 'An error occured - ' + this.player.error.code);
+      }
+    });
+
+    this.addPlayerEvent('waiting', function() {
+      this.onWaiting();
+    });
+    this.addPlayerEvent('durationchange', function() {
+      this.duration.set(this.player.duration);
+      this.trigger('durationchange', {duration: this.player.duration});
+    });
+    this.addPlayerEvent('progress', function(event) {
+      this.bytesTotal.set(event.total);
+      this.bytesLoaded.set(event.loaded);
+    });
+    return true;
+  }
+
+  return false;
+};
+
+/**
+ * @see minplayer.players.base#onReady
+ */
+minplayer.players.html5.prototype.onReady = function() {
+  minplayer.players.base.prototype.onReady.call(this);
+
+  // Android just say we are loaded here.
+  if (minplayer.isAndroid) {
+    this.onLoaded();
+  }
+
+  // iOS devices are strange in that they don't autoload.
+  if (minplayer.isIDevice) {
+    this.play();
+    setTimeout((function(player) {
+      return function() {
+        player.pause();
+        player.onLoaded();
+      };
+    })(this), 1);
+  }
+};
+
+/**
+ * @see minplayer.players.base#playerFound
+ * @return {boolean} TRUE - if the player is in the DOM, FALSE otherwise.
+ */
+minplayer.players.html5.prototype.playerFound = function() {
+  return (this.display.find(this.mediaFile.type).length > 0);
+};
+
+/**
+ * @see minplayer.players.base#create
+ * @return {object} The media player entity.
+ */
+minplayer.players.html5.prototype.create = function() {
+  minplayer.players.base.prototype.create.call(this);
+  var element = jQuery(document.createElement(this.mediaFile.type))
+  .attr(this.options.attributes)
+  .append(
+    jQuery(document.createElement('source')).attr({
+      'src': this.mediaFile.path
+    })
+  );
+
+  // Fix the fluid width and height.
+  element.eq(0)[0].setAttribute('width', '100%');
+  element.eq(0)[0].setAttribute('height', '100%');
+  element.eq(0)[0].setAttribute('autobuffer', true);
+  var option = this.options.autoload ? 'auto' : 'metadata';
+  option = minplayer.isIDevice ? 'metadata' : option;
+  element.eq(0)[0].setAttribute('preload', option);
+  return element;
+};
+
+/**
+ * @see minplayer.players.base#getPlayer
+ * @return {object} The media player object.
+ */
+minplayer.players.html5.prototype.getPlayer = function() {
+  return this.elements.media.eq(0)[0];
+};
+
+/**
+ * @see minplayer.players.base#load
+ * @return {boolean} If this action was performed.
+ */
+minplayer.players.html5.prototype.load = function(file) {
+
+  // See if a load is even necessary.
+  if (minplayer.players.base.prototype.load.call(this, file)) {
+
+    // Get the current source.
+    var src = this.elements.media.attr('src');
+    if (!src) {
+      src = jQuery('source', this.elements.media).eq(0).attr('src');
+    }
+
+    // Only swap out if the new file is different from the source.
+    if (src != file.path) {
+
+      // Add a new player.
+      this.addPlayer();
+
+      // Set the new player.
+      this.player = this.getPlayer();
+
+      // Add the events again.
+      this.addPlayerEvents();
+
+      // Change the source...
+      var code = '<source src="' + file.path + '"></source>';
+      this.elements.media.removeAttr('src').empty().html(code);
+      return true;
+    }
+  }
+
+  return false;
+};
+
+/**
+ * @see minplayer.players.base#play
+ * @return {boolean} If this action was performed.
+ */
+minplayer.players.html5.prototype.play = function() {
+  if (minplayer.players.base.prototype.play.call(this)) {
+    this.player.play();
+    return true;
+  }
+
+  return false;
+};
+
+/**
+ * @see minplayer.players.base#pause
+ * @return {boolean} If this action was performed.
+ */
+minplayer.players.html5.prototype.pause = function() {
+  if (minplayer.players.base.prototype.pause.call(this)) {
+    this.player.pause();
+    return true;
+  }
+
+  return false;
+};
+
+/**
+ * @see minplayer.players.base#stop
+ * @return {boolean} If this action was performed.
+ */
+minplayer.players.html5.prototype.stop = function() {
+  if (minplayer.players.base.prototype.stop.call(this)) {
+    this.player.pause();
+    this.player.src = '';
+    return true;
+  }
+
+  return false;
+};
+
+/**
+ * @see minplayer.players.base#seek
+ * @return {boolean} If this action was performed.
+ */
+minplayer.players.html5.prototype.seek = function(pos) {
+  if (minplayer.players.base.prototype.seek.call(this, pos)) {
+    this.player.currentTime = pos;
+    return true;
+  }
+
+  return false;
+};
+
+/**
+ * @see minplayer.players.base#setVolume
+ * @return {boolean} If this action was performed.
+ */
+minplayer.players.html5.prototype.setVolume = function(vol) {
+  if (minplayer.players.base.prototype.setVolume.call(this, vol)) {
+    this.player.volume = vol;
+    return true;
+  }
+
+  return false;
+};
+
+/**
+ * @see minplayer.players.base#getVolume
+ */
+minplayer.players.html5.prototype.getVolume = function(callback) {
+  if (this.isReady()) {
+    callback(this.player.volume);
+  }
+};
+
+/**
+ * @see minplayer.players.base#getDuration
+ */
+minplayer.players.html5.prototype.getDuration = function(callback) {
+  if (this.isReady()) {
+    callback(this.player.duration);
+  }
+};
+
+/**
+ * @see minplayer.players.base#getCurrentTime
+ */
+minplayer.players.html5.prototype.getCurrentTime = function(callback) {
+  if (this.isReady()) {
+    callback(this.player.currentTime);
+  }
+};
+
+/**
+ * @see minplayer.players.base#getBytesLoaded
+ */
+minplayer.players.html5.prototype.getBytesLoaded = function(callback) {
+  if (this.isReady()) {
+    var loaded = 0;
+
+    // Check several different possibilities.
+    if (this.bytesLoaded.value) {
+      loaded = this.bytesLoaded.value;
+    }
+    else if (this.player.buffered &&
+        this.player.buffered.length > 0 &&
+        this.player.buffered.end &&
+        this.player.duration) {
+      loaded = this.player.buffered.end(0);
+    }
+    else if (this.player.bytesTotal != undefined &&
+             this.player.bytesTotal > 0 &&
+             this.player.bufferedBytes != undefined) {
+      loaded = this.player.bufferedBytes;
+    }
+
+    // Return the loaded amount.
+    callback(loaded);
+  }
+};
+
+/**
+ * @see minplayer.players.base#getBytesTotal
+ */
+minplayer.players.html5.prototype.getBytesTotal = function(callback) {
+  if (this.isReady()) {
+
+    var total = 0;
+
+    // Check several different possibilities.
+    if (this.bytesTotal.value) {
+      total = this.bytesTotal.value;
+    }
+    else if (this.player.buffered &&
+        this.player.buffered.length > 0 &&
+        this.player.buffered.end &&
+        this.player.duration) {
+      total = this.player.duration;
+    }
+    else if (this.player.bytesTotal != undefined &&
+             this.player.bytesTotal > 0 &&
+             this.player.bufferedBytes != undefined) {
+      total = this.player.bytesTotal;
+    }
+
+    // Return the loaded amount.
+    callback(total);
+  }
+};
+/** The minplayer namespace. */
+var minplayer = minplayer || {};
+
+/** All the media player implementations */
+minplayer.players = minplayer.players || {};
+
+/**
+ * @constructor
+ * @extends minplayer.display
+ * @class The Flash media player class to control the flash fallback.
+ *
+ * @param {object} context The jQuery context.
+ * @param {object} options This components options.
+ * @param {object} queue The event queue to pass events around.
+ */
+minplayer.players.flash = function(context, options, queue) {
+
+  // Derive from players base.
+  minplayer.players.base.call(this, context, options, queue);
+};
+
+/** Derive from minplayer.players.base. */
+minplayer.players.flash.prototype = new minplayer.players.base();
+
+/** Reset the constructor. */
+minplayer.players.flash.prototype.constructor = minplayer.players.flash;
+
+/**
+ * @see minplayer.plugin.construct
+ * @this minplayer.players.flash
+ */
+minplayer.players.flash.prototype.construct = function() {
+
+  // Call the players.base constructor.
+  minplayer.players.base.prototype.construct.call(this);
+
+  // Set the plugin name within the options.
+  this.options.pluginName = 'flash';
+};
+
+/**
+ * @see minplayer.players.base#getPriority
+ * @return {number} The priority of this media player.
+ */
+minplayer.players.flash.getPriority = function() {
+  return 0;
+};
+
+/**
+ * @see minplayer.players.base#canPlay
+ * @return {boolean} If this player can play this media type.
+ */
+minplayer.players.flash.canPlay = function(file) {
+  return false;
+};
+
+/**
+ * API to return the Flash player code provided params.
+ *
+ * @param {object} params The params used to populate the Flash code.
+ * @return {object} A Flash DOM element.
+ */
+minplayer.players.flash.prototype.getFlash = function(params) {
+  // Get the protocol.
+  var protocol = window.location.protocol;
+  if (protocol.charAt(protocol.length - 1) == ':') {
+    protocol = protocol.substring(0, protocol.length - 1);
+  }
+
+  // Insert the swfobject javascript.
+  var tag = document.createElement('script');
+  var src = protocol;
+  src += '://ajax.googleapis.com/ajax/libs/swfobject/2.2/swfobject.js';
+  tag.src = src;
+  var firstScriptTag = document.getElementsByTagName('script')[0];
+  firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);
+
+  // Create the swfobject.
+  setTimeout((function(player) {
+    return function tryAgain() {
+      if (typeof swfobject !== 'undefined') {
+        swfobject.embedSWF(
+          params.swf,
+          params.id,
+          params.width,
+          params.height,
+          '9.0.0',
+          false,
+          params.flashvars,
+          {
+            allowscriptaccess: 'always',
+            allowfullscreen: 'true',
+            wmode: params.wmode,
+            quality: 'high'
+          },
+          {
+            id: params.id,
+            name: params.id,
+            playerType: 'flash'
+          },
+          function(e) {
+            player.player = e.ref;
+          }
+        );
+      }
+      else {
+
+        // Try again after 200 ms.
+        setTimeout(tryAgain, 200);
+      }
+    };
+  })(this), 200);
+
+  // Return the div tag...
+  return '<div id="' + params.id + '"></div>';
+};
+
+/**
+ * @see minplayer.players.base#playerFound
+ * @return {boolean} TRUE - if the player is in the DOM, FALSE otherwise.
+ */
+minplayer.players.flash.prototype.playerFound = function() {
+  return (this.display.find('object[playerType="flash"]').length > 0);
+};
+/** The minplayer namespace. */
+var minplayer = minplayer || {};
+
+/** All the media player implementations */
+minplayer.players = minplayer.players || {};
+
+/**
+ * @constructor
+ * @extends minplayer.display
+ * @class The Flash media player class to control the flash fallback.
+ *
+ * @param {object} context The jQuery context.
+ * @param {object} options This components options.
+ * @param {object} queue The event queue to pass events around.
+ */
+minplayer.players.minplayer = function(context, options, queue) {
+
+  // Derive from players flash.
+  minplayer.players.flash.call(this, context, options, queue);
+};
+
+/** Derive from minplayer.players.flash. */
+minplayer.players.minplayer.prototype = new minplayer.players.flash();
+
+/** Reset the constructor. */
+minplayer.players.minplayer.prototype.constructor = minplayer.players.minplayer;
+
+/**
+ * @see minplayer.plugin.construct
+ * @this minplayer.players.minplayer
+ */
+minplayer.players.minplayer.prototype.construct = function() {
+
+  // Call the players.flash constructor.
+  minplayer.players.flash.prototype.construct.call(this);
+
+  // Set the plugin name within the options.
+  this.options.pluginName = 'minplayer';
+};
+
+/**
+ * Called when the Flash player is ready.
+ *
+ * @param {string} id The media player ID.
+ */
+window.onFlashPlayerReady = function(id) {
+  var media = minplayer.get(id, 'media');
+  var i = media.length;
+  while (i--) {
+    media[i].onReady();
+  }
+};
+
+/**
+ * Called when the Flash player updates.
+ *
+ * @param {string} id The media player ID.
+ * @param {string} eventType The event type that was triggered.
+ */
+window.onFlashPlayerUpdate = function(id, eventType) {
+  var media = minplayer.get(id, 'media');
+  var i = media.length;
+  while (i--) {
+    media[i].onMediaUpdate(eventType);
+  }
+};
+
+/**
+ * Used to debug from the Flash player to the browser console.
+ *
+ * @param {string} debug The debug string.
+ */
+window.onFlashPlayerDebug = function(debug) {
+  if (console && console.log) {
+    console.log(debug);
+  }
+};
+
+/**
+ * @see minplayer.players.base#getPriority
+ * @return {number} The priority of this media player.
+ */
+minplayer.players.minplayer.getPriority = function() {
+  return 1;
+};
+
+/**
+ * @see minplayer.players.base#canPlay
+ * @return {boolean} If this player can play this media type.
+ */
+minplayer.players.minplayer.canPlay = function(file) {
+  var isWEBM = jQuery.inArray(file.mimetype, ['video/x-webm',
+    'video/webm',
+    'application/octet-stream'
+  ]) >= 0;
+  return !isWEBM && (file.type == 'video' || file.type == 'audio');
+};
+
+/**
+ * @see minplayer.players.base#create
+ * @return {object} The media player entity.
+ */
+minplayer.players.minplayer.prototype.create = function() {
+
+  // Make sure we provide default options...
+  this.options = jQuery.extend({
+    swfplayer: 'flash/minplayer.swf'
+  }, this.options);
+
+  minplayer.players.flash.prototype.create.call(this);
+
+  // The flash variables for this flash player.
+  var flashVars = {
+    'id': this.options.id,
+    'debug': this.options.debug,
+    'config': 'nocontrols',
+    'file': this.mediaFile.path,
+    'autostart': this.options.autoplay,
+    'autoload': this.options.autoload
+  };
+
+  // Return a flash media player object.
+  return this.getFlash({
+    swf: this.options.swfplayer,
+    id: this.options.id + '_player',
+    width: '100%',
+    height: '100%',
+    flashvars: flashVars,
+    wmode: this.options.wmode
+  });
+};
+
+/**
+ * Called when the Flash player has an update.
+ *
+ * @param {string} eventType The event that was triggered in the player.
+ */
+minplayer.players.minplayer.prototype.onMediaUpdate = function(eventType) {
+  switch (eventType) {
+    case 'mediaMeta':
+      this.onLoaded();
+      break;
+    case 'mediaPlaying':
+      if (this.minplayerloaded) {
+        this.onPlaying();
+      }
+      break;
+    case 'mediaPaused':
+      this.minplayerloaded = true;
+      this.onPaused();
+      break;
+    case 'mediaComplete':
+      this.onComplete();
+      break;
+  }
+};
+
+/**
+ * Resets all variables.
+ */
+minplayer.players.minplayer.prototype.clear = function() {
+  minplayer.players.flash.prototype.clear.call(this);
+  this.minplayerloaded = this.options.autoplay;
+};
+
+/**
+ * @see minplayer.players.base#load
+ * @return {boolean} If this action was performed.
+ */
+minplayer.players.minplayer.prototype.load = function(file) {
+  if (minplayer.players.flash.prototype.load.call(this, file)) {
+    this.player.loadMedia(file.path, file.stream);
+    return true;
+  }
+
+  return false;
+};
+
+/**
+ * @see minplayer.players.base#play
+ * @return {boolean} If this action was performed.
+ */
+minplayer.players.minplayer.prototype.play = function() {
+  if (minplayer.players.flash.prototype.play.call(this)) {
+    this.player.playMedia();
+    return true;
+  }
+
+  return false;
+};
+
+/**
+ * @see minplayer.players.base#pause
+ * @return {boolean} If this action was performed.
+ */
+minplayer.players.minplayer.prototype.pause = function() {
+  if (minplayer.players.flash.prototype.pause.call(this)) {
+    this.player.pauseMedia();
+    return true;
+  }
+
+  return false;
+};
+
+/**
+ * @see minplayer.players.base#stop
+ * @return {boolean} If this action was performed.
+ */
+minplayer.players.minplayer.prototype.stop = function() {
+  if (minplayer.players.flash.prototype.stop.call(this)) {
+    this.player.stopMedia();
+    return true;
+  }
+
+  return false;
+};
+
+/**
+ * @see minplayer.players.base#seek
+ * @return {boolean} If this action was performed.
+ */
+minplayer.players.minplayer.prototype.seek = function(pos) {
+  if (minplayer.players.flash.prototype.seek.call(this, pos)) {
+    this.player.seekMedia(pos);
+    return true;
+  }
+
+  return false;
+};
+
+/**
+ * @see minplayer.players.base#setVolume
+ * @return {boolean} If this action was performed.
+ */
+minplayer.players.minplayer.prototype.setVolume = function(vol) {
+  if (minplayer.players.flash.prototype.setVolume.call(this, vol)) {
+    this.player.setVolume(vol);
+    return true;
+  }
+
+  return false;
+};
+
+/**
+ * @see minplayer.players.base#getVolume
+ */
+minplayer.players.minplayer.prototype.getVolume = function(callback) {
+  if (this.isReady()) {
+    callback(this.player.getVolume());
+  }
+};
+
+/**
+ * @see minplayer.players.flash#getDuration
+ */
+minplayer.players.minplayer.prototype.getDuration = function(callback) {
+  if (this.isReady()) {
+
+    // Check to see if it is immediately available.
+    var duration = this.player.getDuration();
+    if (duration) {
+      callback(duration);
+    }
+    else {
+
+      // If not, then poll every second for the duration.
+      this.poll((function(player) {
+        return function() {
+          duration = player.player.getDuration();
+          if (duration) {
+            callback(duration);
+          }
+          return !duration;
+        };
+      })(this), 1000);
+    }
+  }
+};
+
+/**
+ * @see minplayer.players.base#getCurrentTime
+ */
+minplayer.players.minplayer.prototype.getCurrentTime = function(callback) {
+  if (this.isReady()) {
+    callback(this.player.getCurrentTime());
+  }
+};
+
+/**
+ * @see minplayer.players.base#getBytesLoaded
+ */
+minplayer.players.minplayer.prototype.getBytesLoaded = function(callback) {
+  if (this.isReady()) {
+    callback(this.player.getMediaBytesLoaded());
+  }
+};
+
+/**
+ * @see minplayer.players.base#getBytesTotal.
+ */
+minplayer.players.minplayer.prototype.getBytesTotal = function(callback) {
+  if (this.isReady()) {
+    callback(this.player.getMediaBytesTotal());
+  }
+};
+/** The minplayer namespace. */
+var minplayer = minplayer || {};
+
+/** All the media player implementations */
+minplayer.players = minplayer.players || {};
+
+/**
+ * @constructor
+ * @extends minplayer.players.base
+ * @class The YouTube media player.
+ *
+ * @param {object} context The jQuery context.
+ * @param {object} options This components options.
+ * @param {object} queue The event queue to pass events around.
+ */
+minplayer.players.youtube = function(context, options, queue) {
+
+  /** The quality of the YouTube stream. */
+  this.quality = 'default';
+
+  // Derive from players base.
+  minplayer.players.base.call(this, context, options, queue);
+};
+
+/** Derive from minplayer.players.base. */
+minplayer.players.youtube.prototype = new minplayer.players.base();
+
+/** Reset the constructor. */
+minplayer.players.youtube.prototype.constructor = minplayer.players.youtube;
+
+/**
+ * @see minplayer.plugin.construct
+ * @this minplayer.players.youtube
+ */
+minplayer.players.youtube.prototype.construct = function() {
+
+  // Call the players.flash constructor.
+  minplayer.players.base.prototype.construct.call(this);
+
+  // Set the plugin name within the options.
+  this.options.pluginName = 'youtube';
+};
+
+/**
+ * @see minplayer.players.base#getPriority
+ * @return {number} The priority of this media player.
+ */
+minplayer.players.youtube.getPriority = function() {
+  return 10;
+};
+
+/**
+ * @see minplayer.players.base#canPlay
+ * @return {boolean} If this player can play this media type.
+ */
+minplayer.players.youtube.canPlay = function(file) {
+
+  // Check for the mimetype for youtube.
+  if (file.mimetype === 'video/youtube') {
+    return true;
+  }
+
+  // If the path is a YouTube path, then return true.
+  return (file.path.search(/^http(s)?\:\/\/(www\.)?youtube\.com/i) === 0);
+};
+
+/**
+ * Return the ID for a provided media file.
+ *
+ * @param {object} file A {@link minplayer.file} object.
+ * @return {string} The ID for the provided media.
+ */
+minplayer.players.youtube.getMediaId = function(file) {
+  var reg = /^http[s]?\:\/\/(www\.)?youtube\.com\/watch\?v=([a-zA-Z0-9_\-]+)/i;
+  if (file.path.search(reg) === 0) {
+    return file.path.match(reg)[2];
+  }
+  else {
+    return file.path;
+  }
+};
+
+/**
+ * Returns a preview image for this media player.
+ *
+ * @param {object} file A {@link minplayer.file} object.
+ * @param {string} type The type of image.
+ * @param {function} callback Called when the image is retrieved.
+ */
+minplayer.players.youtube.getImage = function(file, type, callback) {
+  type = (type == 'thumbnail') ? '1' : '0';
+  callback('http://img.youtube.com/vi/' + file.id + '/' + type + '.jpg');
+};
+
+/**
+ * Translates the player state for the YouTube API player.
+ *
+ * @param {number} playerState The YouTube player state.
+ */
+minplayer.players.youtube.prototype.setPlayerState = function(playerState) {
+  switch (playerState) {
+    case YT.PlayerState.CUED:
+      break;
+    case YT.PlayerState.BUFFERING:
+      this.onWaiting();
+      break;
+    case YT.PlayerState.PAUSED:
+      this.onPaused();
+      break;
+    case YT.PlayerState.PLAYING:
+      this.onPlaying();
+      break;
+    case YT.PlayerState.ENDED:
+      this.onComplete();
+      break;
+    default:
+      break;
+  }
+};
+
+/**
+ * Called when an error occurs.
+ *
+ * @param {string} event The onReady event that was triggered.
+ */
+minplayer.players.youtube.prototype.onReady = function(event) {
+  minplayer.players.base.prototype.onReady.call(this);
+  if (!this.options.autoplay) {
+    this.pause();
+  }
+  this.onLoaded();
+};
+
+/**
+ * Checks to see if this player can be found.
+ * @return {bool} TRUE - Player is found, FALSE - otherwise.
+ */
+minplayer.players.youtube.prototype.playerFound = function() {
+  var id = 'iframe#' + this.options.id + '-player.youtube-player';
+  var iframe = this.display.find(id);
+  return (iframe.length > 0);
+};
+
+/**
+ * Called when the player state changes.
+ *
+ * @param {object} event A JavaScript Event.
+ */
+minplayer.players.youtube.prototype.onPlayerStateChange = function(event) {
+  this.setPlayerState(event.data);
+};
+
+/**
+ * Called when the player quality changes.
+ *
+ * @param {string} newQuality The new quality for the change.
+ */
+minplayer.players.youtube.prototype.onQualityChange = function(newQuality) {
+  this.quality = newQuality.data;
+};
+
+/**
+ * Determines if the player should show the playloader.
+ *
+ * @param {string} preview The preview image.
+ * @return {bool} If this player implements its own playLoader.
+ */
+minplayer.players.youtube.prototype.hasPlayLoader = function(preview) {
+  return minplayer.hasTouch || !preview;
+};
+
+/**
+ * Determines if the player should show the controller.
+ *
+ * @return {bool} If this player implements its own playLoader.
+ */
+minplayer.players.youtube.prototype.hasController = function() {
+  return minplayer.isIDevice;
+};
+
+/**
+ * @see minplayer.players.base#create
+ * @return {object} The media player entity.
+ */
+minplayer.players.youtube.prototype.create = function() {
+  minplayer.players.base.prototype.create.call(this);
+
+  // Insert the YouTube iframe API player.
+  var tag = document.createElement('script');
+  tag.src = 'https://www.youtube.com/player_api';
+  var firstScriptTag = document.getElementsByTagName('script')[0];
+  firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);
+
+  // Get the player ID.
+  this.playerId = this.options.id + '-player';
+
+  // Poll until the YouTube API is ready.
+  this.poll((function(player) {
+    return function() {
+      var ready = jQuery('#' + player.playerId).length > 0;
+      ready = ready && ('YT' in window);
+      ready = ready && (typeof YT.Player == 'function');
+      if (ready) {
+        // Determine the origin of this script.
+        jQuery('#' + player.playerId).addClass('youtube-player');
+        var origin = location.protocol;
+        origin += '//' + location.hostname;
+        origin += (location.port && ':' + location.port);
+
+        var playerVars = {};
+        if (minplayer.isIDevice) {
+          playerVars.origin = origin;
+        }
+        else {
+          playerVars = {
+            enablejsapi: minplayer.isIDevice ? 0 : 1,
+            origin: origin,
+            wmode: 'opaque',
+            controls: minplayer.isAndroid ? 1 : 0
+          };
+        }
+
+        // Create the player.
+        player.player = new YT.Player(player.playerId, {
+          height: '100%',
+          width: '100%',
+          frameborder: 0,
+          videoId: player.mediaFile.id,
+          playerVars: playerVars,
+          events: {
+            'onReady': function(event) {
+              player.onReady(event);
+            },
+            'onStateChange': function(event) {
+              player.onPlayerStateChange(event);
+            },
+            'onPlaybackQualityChange': function(newQuality) {
+              player.onQualityChange(newQuality);
+            },
+            'onError': function(errorCode) {
+              player.onError(errorCode);
+            }
+          }
+        });
+      }
+      return !ready;
+    };
+  })(this), 200);
+
+  // Return the player.
+  return jQuery(document.createElement('div')).attr({
+    id: this.playerId
+  });
+};
+
+/**
+ * @see minplayer.players.base#load
+ * @return {boolean} If this action was performed.
+ */
+minplayer.players.youtube.prototype.load = function(file) {
+  if (minplayer.players.base.prototype.load.call(this, file)) {
+    this.player.loadVideoById(file.id, 0, this.quality);
+    return true;
+  }
+
+  return false;
+};
+
+/**
+ * @see minplayer.players.base#play
+ * @return {boolean} If this action was performed.
+ */
+minplayer.players.youtube.prototype.play = function() {
+  if (minplayer.players.base.prototype.play.call(this)) {
+    this.onWaiting();
+    this.player.playVideo();
+    return true;
+  }
+
+  return false;
+};
+
+/**
+ * @see minplayer.players.base#pause
+ * @return {boolean} If this action was performed.
+ */
+minplayer.players.youtube.prototype.pause = function() {
+  if (minplayer.players.base.prototype.pause.call(this)) {
+    this.player.pauseVideo();
+    return true;
+  }
+
+  return false;
+};
+
+/**
+ * @see minplayer.players.base#stop
+ * @return {boolean} If this action was performed.
+ */
+minplayer.players.youtube.prototype.stop = function() {
+  if (minplayer.players.base.prototype.stop.call(this)) {
+    this.player.stopVideo();
+    return true;
+  }
+
+  return false;
+};
+
+/**
+ * @see minplayer.players.base#seek
+ * @return {boolean} If this action was performed.
+ */
+minplayer.players.youtube.prototype.seek = function(pos) {
+  if (minplayer.players.base.prototype.seek.call(this, pos)) {
+    this.onWaiting();
+    this.player.seekTo(pos, true);
+    return true;
+  }
+
+  return false;
+};
+
+/**
+ * @see minplayer.players.base#setVolume
+ * @return {boolean} If this action was performed.
+ */
+minplayer.players.youtube.prototype.setVolume = function(vol) {
+  if (minplayer.players.base.prototype.setVolume.call(this, vol)) {
+    this.player.setVolume(vol * 100);
+    return true;
+  }
+
+  return false;
+};
+
+/**
+ * @see minplayer.players.base#getVolume
+ */
+minplayer.players.youtube.prototype.getVolume = function(callback) {
+  this.getValue('getVolume', callback);
+};
+
+/**
+ * @see minplayer.players.base#getDuration.
+ */
+minplayer.players.youtube.prototype.getDuration = function(callback) {
+  this.getValue('getDuration', callback);
+};
+
+/**
+ * @see minplayer.players.base#getCurrentTime
+ */
+minplayer.players.youtube.prototype.getCurrentTime = function(callback) {
+  this.getValue('getCurrentTime', callback);
+};
+
+/**
+ * @see minplayer.players.base#getBytesStart.
+ */
+minplayer.players.youtube.prototype.getBytesStart = function(callback) {
+  this.getValue('getVideoStartBytes', callback);
+};
+
+/**
+ * @see minplayer.players.base#getBytesLoaded.
+ */
+minplayer.players.youtube.prototype.getBytesLoaded = function(callback) {
+  this.getValue('getVideoBytesLoaded', callback);
+};
+
+/**
+ * @see minplayer.players.base#getBytesTotal.
+ */
+minplayer.players.youtube.prototype.getBytesTotal = function(callback) {
+  this.getValue('getVideoBytesTotal', callback);
+};
+/** The minplayer namespace. */
+var minplayer = minplayer || {};
+
+/** All the media player implementations */
+minplayer.players = minplayer.players || {};
+
+/**
+ * @constructor
+ * @extends minplayer.players.base
+ * @class The vimeo media player.
+ *
+ * @param {object} context The jQuery context.
+ * @param {object} options This components options.
+ * @param {object} queue The event queue to pass events around.
+ */
+minplayer.players.vimeo = function(context, options, queue) {
+
+  // Derive from players base.
+  minplayer.players.base.call(this, context, options, queue);
+};
+
+/** Derive from minplayer.players.base. */
+minplayer.players.vimeo.prototype = new minplayer.players.base();
+
+/** Reset the constructor. */
+minplayer.players.vimeo.prototype.constructor = minplayer.players.vimeo;
+
+/**
+ * @see minplayer.plugin.construct
+ * @this minplayer.players.vimeo
+ */
+minplayer.players.vimeo.prototype.construct = function() {
+
+  // Call the players.flash constructor.
+  minplayer.players.base.prototype.construct.call(this);
+
+  // Set the plugin name within the options.
+  this.options.pluginName = 'vimeo';
+};
+
+/**
+ * @see minplayer.players.base#getPriority
+ * @return {number} The priority of this media player.
+ */
+minplayer.players.vimeo.getPriority = function() {
+  return 10;
+};
+
+/**
+ * @see minplayer.players.base#canPlay
+ * @return {boolean} If this player can play this media type.
+ */
+minplayer.players.vimeo.canPlay = function(file) {
+
+  // Check for the mimetype for vimeo.
+  if (file.mimetype === 'video/vimeo') {
+    return true;
+  }
+
+  // If the path is a vimeo path, then return true.
+  return (file.path.search(/^http(s)?\:\/\/(www\.)?vimeo\.com/i) === 0);
+};
+
+/**
+ * Determines if the player should show the playloader.
+ *
+ * @param {string} preview The preview image.
+ * @return {bool} If this player implements its own playLoader.
+ */
+minplayer.players.vimeo.prototype.hasPlayLoader = function(preview) {
+  return minplayer.hasTouch || !preview;
+};
+
+/**
+ * Determines if the player should show the playloader.
+ *
+ * @return {bool} If this player implements its own playLoader.
+ */
+minplayer.players.vimeo.prototype.hasController = function() {
+  return minplayer.hasTouch;
+};
+
+/**
+ * Return the ID for a provided media file.
+ *
+ * @param {object} file A {@link minplayer.file} object.
+ * @return {string} The ID for the provided media.
+ */
+minplayer.players.vimeo.getMediaId = function(file) {
+  var regex = /^http[s]?\:\/\/(www\.)?vimeo\.com\/(\?v\=)?([0-9]+)/i;
+  if (file.path.search(regex) === 0) {
+    return file.path.match(regex)[3];
+  }
+  else {
+    return file.path;
+  }
+};
+
+/**
+ * Returns a preview image for this media player.
+ *
+ * @param {object} file A {@link minplayer.file} object.
+ * @param {string} type The type of image.
+ * @param {function} callback Called when the image is retrieved.
+ */
+minplayer.players.vimeo.getImage = function(file, type, callback) {
+  jQuery.ajax({
+    url: 'http://vimeo.com/api/v2/video/' + file.id + '.json',
+    dataType: 'jsonp',
+    success: function(data) {
+      callback(data[0].thumbnail_large);
+    }
+  });
+};
+
+/**
+ * @see minplayer.players.base#reset
+ */
+minplayer.players.vimeo.prototype.reset = function() {
+
+  // Reset the flash variables..
+  minplayer.players.base.prototype.reset.call(this);
+};
+
+/**
+ * @see minplayer.players.base#create
+ * @return {object} The media player entity.
+ */
+minplayer.players.vimeo.prototype.create = function() {
+  minplayer.players.base.prototype.create.call(this);
+
+  // Insert the Vimeo Froogaloop player.
+  var tag = document.createElement('script');
+  tag.src = 'http://a.vimeocdn.com/js/froogaloop2.min.js';
+  var firstScriptTag = document.getElementsByTagName('script')[0];
+  firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);
+
+  // Create the iframe for this player.
+  var iframe = document.createElement('iframe');
+  iframe.setAttribute('id', this.options.id + '-player');
+  iframe.setAttribute('type', 'text/html');
+  iframe.setAttribute('width', '100%');
+  iframe.setAttribute('height', '100%');
+  iframe.setAttribute('frameborder', '0');
+  jQuery(iframe).addClass('vimeo-player');
+
+  // Get the source.
+  var src = 'http://player.vimeo.com/video/';
+  src += this.mediaFile.id + '?';
+
+  // Add the parameters to the src.
+  src += jQuery.param({
+    'wmode': 'opaque',
+    'api': 1,
+    'player_id': this.options.id + '-player',
+    'title': 0,
+    'byline': 0,
+    'portrait': 0,
+    'autoplay': this.options.autoplay,
+    'loop': this.options.loop
+  });
+
+  // Set the source of the iframe.
+  iframe.setAttribute('src', src);
+
+  // Now register this player when the froogaloop code is loaded.
+  this.poll((function(player) {
+    return function() {
+      if (window.Froogaloop) {
+        player.player = window.Froogaloop(iframe);
+        var playerTimeout = 0;
+        player.player.addEvent('ready', function() {
+          clearTimeout(playerTimeout);
+          player.onReady();
+          player.onError('');
+        });
+        playerTimeout = setTimeout(function() {
+          player.onReady();
+          player.onError('Unable to play video.');
+        }, 2000);
+      }
+      return !window.Froogaloop;
+    };
+  })(this), 200);
+
+  // Trigger that the load has started.
+  this.trigger('loadstart');
+
+  // Return the player.
+  return iframe;
+};
+
+/**
+ * @see minplayer.players.base#onReady
+ */
+minplayer.players.vimeo.prototype.onReady = function(player_id) {
+
+  // Add the other listeners.
+  this.player.addEvent('loadProgress', (function(player) {
+    return function(progress) {
+      player.duration.set(parseFloat(progress.duration));
+      player.bytesLoaded.set(progress.bytesLoaded);
+      player.bytesTotal.set(progress.bytesTotal);
+    };
+  })(this));
+
+  this.player.addEvent('playProgress', (function(player) {
+    return function(progress) {
+      player.duration.set(parseFloat(progress.duration));
+      player.currentTime.set(parseFloat(progress.seconds));
+    };
+  })(this));
+
+  this.player.addEvent('play', (function(player) {
+    return function() {
+      player.onPlaying();
+    };
+  })(this));
+
+  this.player.addEvent('pause', (function(player) {
+    return function() {
+      player.onPaused();
+    };
+  })(this));
+
+  this.player.addEvent('finish', (function(player) {
+    return function() {
+      player.onComplete();
+    };
+  })(this));
+
+  minplayer.players.base.prototype.onReady.call(this);
+  this.onLoaded();
+};
+
+/**
+ * Clears the media player.
+ */
+minplayer.players.vimeo.prototype.clear = function() {
+  if (this.player) {
+    this.player.api('unload');
+  }
+  minplayer.players.base.prototype.clear.call(this);
+};
+
+/**
+ * @see minplayer.players.base#load
+ * @return {boolean} If this action was performed.
+ */
+minplayer.players.vimeo.prototype.load = function(file) {
+  if (minplayer.players.base.prototype.load.call(this, file)) {
+    this.construct();
+    return true;
+  }
+  return false;
+};
+
+/**
+ * @see minplayer.players.base#play
+ * @return {boolean} If this action was performed.
+ */
+minplayer.players.vimeo.prototype.play = function() {
+  if (minplayer.players.base.prototype.play.call(this)) {
+    this.player.api('play');
+    return true;
+  }
+
+  return false;
+};
+
+/**
+ * @see minplayer.players.base#pause
+ * @return {boolean} If this action was performed.
+ */
+minplayer.players.vimeo.prototype.pause = function() {
+  if (minplayer.players.base.prototype.pause.call(this)) {
+    this.player.api('pause');
+    return true;
+  }
+
+  return false;
+};
+
+/**
+ * @see minplayer.players.base#stop
+ * @return {boolean} If this action was performed.
+ */
+minplayer.players.vimeo.prototype.stop = function() {
+  if (minplayer.players.base.prototype.stop.call(this)) {
+    this.player.api('unload');
+    return true;
+  }
+
+  return false;
+};
+
+/**
+ * @see minplayer.players.base#seek
+ * @return {boolean} If this action was performed.
+ */
+minplayer.players.vimeo.prototype.seek = function(pos) {
+  if (minplayer.players.base.prototype.seek.call(this, pos)) {
+    this.player.api('seekTo', pos);
+    return true;
+  }
+
+  return false;
+};
+
+/**
+ * @see minplayer.players.base#setVolume
+ * @return {boolean} If this action was performed.
+ */
+minplayer.players.vimeo.prototype.setVolume = function(vol) {
+  if (minplayer.players.base.prototype.setVolume.call(this, vol)) {
+    this.volume.set(vol);
+    this.player.api('setVolume', vol);
+    return true;
+  }
+
+  return false;
+};
+
+/**
+ * @see minplayer.players.base#getVolume
+ */
+minplayer.players.vimeo.prototype.getVolume = function(callback) {
+  this.player.api('getVolume', function(vol) {
+    callback(vol);
+  });
+};
+
+/**
+ * @see minplayer.players.base#getDuration.
+ */
+minplayer.players.vimeo.prototype.getDuration = function(callback) {
+  if (this.isReady()) {
+    if (this.duration.value) {
+      callback(this.duration.value);
+    }
+    else {
+      this.player.api('getDuration', function(duration) {
+        callback(duration);
+      });
+    }
+  }
+};
+/** The minplayer namespace. */
+var minplayer = minplayer || {};
+
+/**
+ * @constructor
+ * @extends minplayer.display
+ * @class This is the base minplayer controller.  Other controllers can derive
+ * from the base and either build on top of it or simply define the elements
+ * that this base controller uses.
+ *
+ * @param {object} context The jQuery context.
+ * @param {object} options This components options.
+ */
+minplayer.controller = function(context, options) {
+
+  // Derive from display
+  minplayer.display.call(this, 'controller', context, options);
+};
+
+/** Derive from minplayer.display. */
+minplayer.controller.prototype = new minplayer.display();
+
+/** Reset the constructor. */
+minplayer.controller.prototype.constructor = minplayer.controller;
+
+/**
+ * A static function that will format a time value into a string time format.
+ *
+ * @param {integer} time An integer value of time.
+ * @return {string} A string representation of the time.
+ */
+minplayer.formatTime = function(time) {
+  time = time || 0;
+  var seconds = 0, minutes = 0, hour = 0, timeString = '';
+
+  hour = Math.floor(time / 3600);
+  time -= (hour * 3600);
+  minutes = Math.floor(time / 60);
+  time -= (minutes * 60);
+  seconds = Math.floor(time % 60);
+
+  if (hour) {
+    timeString += String(hour);
+    timeString += ':';
+  }
+
+  timeString += (minutes >= 10) ? String(minutes) : ('0' + String(minutes));
+  timeString += ':';
+  timeString += (seconds >= 10) ? String(seconds) : ('0' + String(seconds));
+  return {time: timeString, units: ''};
+};
+
+/**
+ * @see minplayer.display#getElements
+ * @return {object} The elements defined by this display.
+ */
+minplayer.controller.prototype.getElements = function() {
+  var elements = minplayer.display.prototype.getElements.call(this);
+  return jQuery.extend(elements, {
+    play: null,
+    pause: null,
+    fullscreen: null,
+    seek: null,
+    progress: null,
+    volume: null,
+    timer: null
+  });
+};
+
+/**
+ * @see minplayer.plugin#construct
+ */
+minplayer.controller.prototype.construct = function() {
+
+  // Call the minplayer plugin constructor.
+  minplayer.display.prototype.construct.call(this);
+
+  // Set the plugin name within the options.
+  this.options.pluginName = 'controller';
+
+  // Keep track of if we are dragging...
+  this.dragging = false;
+
+  // Keep track of the current volume.
+  this.vol = 0;
+
+  // If they have a seek bar.
+  if (this.elements.seek) {
+
+    // Create the seek bar slider control.
+    this.seekBar = this.elements.seek.slider({
+      range: 'min',
+      create: function(event, ui) {
+        jQuery('.ui-slider-range', event.target).addClass('ui-state-active');
+      }
+    });
+  }
+
+  // If they have a volume bar.
+  if (this.elements.volume) {
+
+    // Create the volume bar slider control.
+    this.volumeBar = this.elements.volume.slider({
+      range: 'min',
+      orientation: 'vertical'
+    });
+  }
+
+  // Get the player plugin.
+  this.get('player', function(player) {
+
+    // If they have a fullscreen button.
+    if (this.elements.fullscreen) {
+
+      // Bind to the click event.
+      minplayer.click(this.elements.fullscreen.unbind(), function() {
+        player.toggleFullScreen();
+      }).css({'pointer' : 'hand'});
+    }
+  });
+
+  // Get the media plugin.
+  this.get('media', function(media) {
+
+    // Only bind if this player does not have its own play loader.
+    if (!media.hasController()) {
+
+      // If they have a pause button
+      if (this.elements.pause) {
+
+        // Bind to the click on this button.
+        minplayer.click(this.elements.pause.unbind(), (function(controller) {
+          return function(event) {
+            event.preventDefault();
+            controller.playPause(false, media);
+          };
+        })(this));
+
+        // Bind to the pause event of the media.
+        media.bind('pause', (function(controller) {
+          return function(event) {
+            controller.setPlayPause(true);
+          };
+        })(this));
+      }
+
+      // If they have a play button
+      if (this.elements.play) {
+
+        // Bind to the click on this button.
+        minplayer.click(this.elements.play.unbind(), (function(controller) {
+          return function(event) {
+            event.preventDefault();
+            controller.playPause(true, media);
+          };
+        })(this));
+
+        // Bind to the play event of the media.
+        media.bind('playing', (function(controller) {
+          return function(event) {
+            controller.setPlayPause(false);
+          };
+        })(this));
+      }
+
+      // If they have a duration, then trigger on duration change.
+      if (this.elements.duration) {
+
+        // Bind to the duration change event.
+        media.bind('durationchange', (function(controller) {
+          return function(event, data) {
+            controller.setTimeString('duration', data.duration);
+          };
+        })(this));
+
+        // Set the timestring to the duration.
+        media.getDuration((function(controller) {
+          return function(duration) {
+            controller.setTimeString('duration', duration);
+          };
+        })(this));
+      }
+
+      // If they have a progress element.
+      if (this.elements.progress) {
+
+        // Bind to the progress event.
+        media.bind('progress', (function(controller) {
+          return function(event, data) {
+            var percent = data.total ? (data.loaded / data.total) * 100 : 0;
+            controller.elements.progress.width(percent + '%');
+          };
+        })(this));
+      }
+
+      // If they have a seek bar or timer, bind to the timeupdate.
+      if (this.seekBar || this.elements.timer) {
+
+        // Bind to the time update event.
+        media.bind('timeupdate', (function(controller) {
+          return function(event, data) {
+            if (!controller.dragging) {
+              var value = 0;
+              if (data.duration) {
+                value = (data.currentTime / data.duration) * 100;
+              }
+
+              // Update the seek bar if it exists.
+              if (controller.seekBar) {
+                controller.seekBar.slider('option', 'value', value);
+              }
+
+              controller.setTimeString('timer', data.currentTime);
+            }
+          };
+        })(this));
+      }
+
+      // If they have a seekBar element.
+      if (this.seekBar) {
+
+        // Register the events for the control bar to control the media.
+        this.seekBar.slider({
+          start: (function(controller) {
+            return function(event, ui) {
+              controller.dragging = true;
+            };
+          })(this),
+          stop: (function(controller) {
+            return function(event, ui) {
+              controller.dragging = false;
+              media.getDuration(function(duration) {
+                media.seek((ui.value / 100) * duration);
+              });
+            };
+          })(this),
+          slide: (function(controller) {
+            return function(event, ui) {
+              media.getDuration(function(duration) {
+                var time = (ui.value / 100) * duration;
+                if (!controller.dragging) {
+                  media.seek(time);
+                }
+                controller.setTimeString('timer', time);
+              });
+            };
+          })(this)
+        });
+      }
+
+      // Setup the mute button.
+      if (this.elements.mute) {
+        minplayer.click(this.elements.mute, (function(controller) {
+          return function(event) {
+            event.preventDefault();
+            var value = controller.volumeBar.slider('option', 'value');
+            if (value > 0) {
+              controller.vol = value;
+              controller.volumeBar.slider('option', 'value', 0);
+              media.setVolume(0);
+            }
+            else {
+              controller.volumeBar.slider('option', 'value', controller.vol);
+              media.setVolume(controller.vol / 100);
+            }
+          };
+        })(this));
+      }
+
+      // Setup the volume bar.
+      if (this.volumeBar) {
+
+        // Create the slider.
+        this.volumeBar.slider({
+          slide: function(event, ui) {
+            media.setVolume(ui.value / 100);
+          }
+        });
+
+        media.bind('volumeupdate', (function(controller) {
+          return function(event, vol) {
+            controller.volumeBar.slider('option', 'value', (vol * 100));
+          };
+        })(this));
+
+        // Set the volume to match that of the player.
+        media.getVolume((function(controller) {
+          return function(vol) {
+            controller.volumeBar.slider('option', 'value', (vol * 100));
+          };
+        })(this));
+      }
+    }
+    else {
+
+      // Hide this controller.
+      this.hide();
+    }
+  });
+
+  // We are now ready.
+  this.ready();
+};
+
+/**
+ * Sets the play and pause state of the control bar.
+ *
+ * @param {boolean} state TRUE - Show Play, FALSE - Show Pause.
+ */
+minplayer.controller.prototype.setPlayPause = function(state) {
+  var css = '';
+  if (this.elements.play) {
+    css = state ? 'inherit' : 'none';
+    this.elements.play.css('display', css);
+  }
+  if (this.elements.pause) {
+    css = state ? 'none' : 'inherit';
+    this.elements.pause.css('display', css);
+  }
+};
+
+/**
+ * Plays or pauses the media.
+ *
+ * @param {bool} state true => play, false => pause.
+ * @param {object} media The media player object.
+ */
+minplayer.controller.prototype.playPause = function(state, media) {
+  var type = state ? 'play' : 'pause';
+  this.display.trigger(type);
+  this.setPlayPause(!state);
+  if (media) {
+    media[type]();
+  }
+};
+
+/**
+ * Sets the time string on the control bar.
+ *
+ * @param {string} element The name of the element to set.
+ * @param {number} time The total time amount to set.
+ */
+minplayer.controller.prototype.setTimeString = function(element, time) {
+  if (this.elements[element]) {
+    this.elements[element].text(minplayer.formatTime(time).time);
+  }
+};
+// Add a way to instanciate using jQuery prototype.
+if (!jQuery.fn.osmplayer) {
+
+  /**
+   * @constructor
+   *
+   * Define a jQuery osmplayer prototype.
+   *
+   * @param {object} options The options for this jQuery prototype.
+   * @return {Array} jQuery object.
+   */
+  jQuery.fn.osmplayer = function(options) {
+    return jQuery(this).each(function() {
+      options = options || {};
+      options.id = options.id || jQuery(this).attr('id') || Math.random();
+      if (!minplayer.plugins[options.id]) {
+        options.template = options.template || 'default';
+        if (osmplayer[options.template]) {
+          new osmplayer[options.template](jQuery(this), options);
+        }
+        else {
+          new osmplayer(jQuery(this), options);
+        }
+      }
+    });
+  };
+}
+
+/**
+ * @constructor
+ * @extends minplayer
+ * @class The main osmplayer class.
+ *
+ * <p><strong>Usage:</strong>
+ * <pre><code>
+ *
+ *   // Create a media player.
+ *   var player = jQuery("#player").osmplayer({
+ *
+ *   });
+ *
+ * </code></pre>
+ * </p>
+ *
+ * @param {object} context The jQuery context.
+ * @param {object} options This components options.
+ */
+osmplayer = function(context, options) {
+
+  // Derive from minplayer
+  minplayer.call(this, context, options);
+};
+
+/** Derive from minplayer. */
+osmplayer.prototype = new minplayer();
+
+/** Reset the constructor. */
+osmplayer.prototype.constructor = osmplayer;
+
+/**
+ * Creates a new plugin within this context.
+ *
+ * @param {string} name The name of the plugin you wish to create.
+ * @param {object} base The base object for this plugin.
+ * @param {object} context The context which you would like to create.
+ * @return {object} The new plugin object.
+ */
+osmplayer.prototype.create = function(name, base, context) {
+  return minplayer.prototype.create.call(this, name, 'osmplayer', context);
+};
+
+/**
+ * @see minplayer.plugin.construct
+ */
+osmplayer.prototype.construct = function() {
+
+  // Make sure we provide default options...
+  this.options = jQuery.extend({
+    playlist: '',
+    node: {},
+    swfplayer: 'minplayer/flash/minplayer.swf',
+    logo: 'logo.png',
+    link: 'http://www.mediafront.org'
+  }, this.options);
+
+  // Call the minplayer display constructor.
+  minplayer.prototype.construct.call(this);
+
+  /** The play queue and index. */
+  this.playQueue = [];
+  this.playIndex = 0;
+
+  /** The playlist for this media player. */
+  this.create('playlist', 'osmplayer');
+
+  /** Get the playlist or any other playlist that connects. */
+  this.get('playlist', function(playlist) {
+    playlist.bind('nodeLoad', (function(player) {
+      return function(event, data) {
+        player.loadNode(data);
+      };
+    })(this));
+  });
+
+  // Play each media sequentially...
+  this.get('media', (function(player) {
+    return function(media) {
+      media.bind('ended', function() {
+        player.options.autoplay = true;
+        player.playNext();
+      });
+    };
+  })(this));
+
+  // Load the node if one is provided.
+  if (this.options.node) {
+    this.loadNode(this.options.node);
+  }
+};
+
+/**
+ * Gets the full screen element.
+ *
+ * @return {object} The element that will go into fullscreen.
+ */
+osmplayer.prototype.fullScreenElement = function() {
+  return this.elements.minplayer;
+};
+
+/**
+ * The load node function.
+ *
+ * @param {object} node A media node object.
+ */
+osmplayer.prototype.loadNode = function(node) {
+  if (node && node.mediafiles) {
+
+    // Load the media files.
+    var media = node.mediafiles.media;
+    if (media) {
+      this.playQueue.length = 0;
+      this.playQueue = [];
+      this.playIndex = 0;
+      var file = null;
+      var types = [];
+
+      // For mobile devices, we should only show the main media.
+      if (minplayer.isAndroid || minplayer.isIDevice) {
+        types = ['media'];
+      }
+      else {
+        types = ['intro', 'commercial', 'prereel', 'media', 'postreel'];
+      }
+
+      // Iterate through the types.
+      jQuery.each(types, (function(player) {
+        return function(key, type) {
+          if (file = player.addToQueue(media[type])) {
+            file.queueType = type;
+          }
+        };
+      })(this));
+    }
+
+    // Load the preview image.
+    osmplayer.getImage(node.mediafiles, 'preview', (function(player) {
+      return function(image) {
+        player.options.preview = image.path;
+        if (player.playLoader) {
+          player.playLoader.initialize();
+        }
+      };
+    })(this));
+
+    // Play the next media
+    this.playNext();
+  }
+};
+
+/**
+ * Adds a file to the play queue.
+ *
+ * @param {object} file The file to add to the queue.
+ * @return {object} The file that was added to the queue.
+ */
+osmplayer.prototype.addToQueue = function(file) {
+  if (file = minplayer.getMediaFile(file)) {
+    this.playQueue.push(file);
+  }
+  return file;
+};
+
+/**
+ * Plays the next media file in the queue.
+ */
+osmplayer.prototype.playNext = function() {
+  if (this.playQueue.length > this.playIndex) {
+    this.load(this.playQueue[this.playIndex]);
+    this.playIndex++;
+  }
+  else if (this.options.repeat) {
+    this.playIndex = 0;
+    this.playNext();
+  }
+  else if (this.playQueue.length > 0) {
+    // If there is no playlist, and no repeat, we will
+    // just seek to the beginning and pause.
+    this.options.autoplay = false;
+    this.playIndex = 0;
+    this.playNext();
+  }
+  else if (this.media) {
+    // Stop the player and unload.
+    this.media.stop();
+  }
+};
+
+/**
+ * Returns an image provided image array.
+ *
+ * @param {object} mediafiles The mediafiles to search within.
+ * @param {string} type The type of image to look for.
+ * @param {function} callback Called when the image is retrieved.
+ */
+osmplayer.getImage = function(mediafiles, type, callback) {
+
+  var image = '';
+  var images = mediafiles.image;
+  if (images) {
+
+    // If the image type exists, then just use that one...
+    if (images[type]) {
+      image = images[type];
+    }
+    // Or try the original image...
+    else if (images['image']) {
+      image = images['image'];
+    }
+    // Otherwise, just try ANY image...
+    else {
+
+      // Or, just pick the first one available.
+      for (type in images) {
+        if (images.hasOwnProperty(type)) {
+          image = images[type];
+          break;
+        }
+      }
+    }
+  }
+
+  // If the image exists, then callback with that image.
+  if (image) {
+    callback(new minplayer.file(image));
+  }
+  else {
+    // Get the image from the media player...
+    var mediaFile = minplayer.getMediaFile(mediafiles.media.media);
+    if (mediaFile) {
+      var player = minplayer.players[mediaFile.player];
+      if (player && (typeof player.getImage === 'function')) {
+        player.getImage(mediaFile, type, function(src) {
+          callback(new minplayer.file(src));
+        });
+      }
+    }
+  }
+};
+/** The osmplayer namespace. */
+var osmplayer = osmplayer || {};
+
+/** The parser object. */
+osmplayer.parser = osmplayer.parser || {};
+
+/**
+ * The default parser object.
+ *
+ * @return {object} The default parser.
+ **/
+osmplayer.parser['default'] = {
+
+  // The priority for this parser.
+  priority: 1,
+
+  // This parser is always valid.
+  valid: function(feed) {
+    return true;
+  },
+
+  // Returns the type of request to make.
+  getType: function(feed) {
+    return 'json';
+  },
+
+  // Returns the feed provided the start and numItems.
+  getFeed: function(feed, start, numItems) {
+    feed = feed.replace(/(.*)\??(.*)/i, '$1');
+    feed += '?start-index=' + start;
+    feed += '&max-results=' + numItems;
+    return feed;
+  },
+
+  // Parse the feed.
+  parse: function(data) {
+    return data;
+  }
+};
+/** The osmplayer namespace. */
+var osmplayer = osmplayer || {};
+
+/** The parser object. */
+osmplayer.parser = osmplayer.parser || {};
+
+/**
+ * The youtube parser object.
+ *
+ * @return {object} The youtube parser.
+ **/
+osmplayer.parser.youtube = {
+
+  // The priority for this parser.
+  priority: 10,
+
+  // Return if this is a valid youtube feed.
+  valid: function(feed) {
+    return (feed.search(/^http(s)?\:\/\/gdata\.youtube\.com/i) === 0);
+  },
+
+  // Returns the type of request to make.
+  getType: function(feed) {
+    return 'jsonp';
+  },
+
+  // Returns the feed provided the start and numItems.
+  getFeed: function(feed, start, numItems) {
+    feed = feed.replace(/(.*)\??(.*)/i, '$1');
+    feed += '?start-index=' + (start + 1);
+    feed += '&max-results=' + (numItems);
+    feed += '&v=2&alt=jsonc';
+    return feed;
+  },
+
+  // Parse the feed.
+  parse: function(data) {
+    data = data.data;
+    var playlist = {
+      total_rows: data.totalItems,
+      nodes: []
+    };
+
+    // Iterate through the items and parse it.
+    for (var index in data.items) {
+      if (data.items.hasOwnProperty(index)) {
+        var item = data.items[index];
+        playlist.nodes.push({
+          title: item.title,
+          description: item.description,
+          mediafiles: {
+            image: {
+              'thumbnail': {
+                path: item.thumbnail.sqDefault
+              },
+              'image': {
+                path: item.thumbnail.hqDefault
+              }
+            },
+            media: {
+              'media': {
+                player: 'youtube',
+                id: item.id
+              }
+            }
+          }
+        });
+      }
+    }
+
+    return playlist;
+  }
+};
+/** The osmplayer namespace. */
+var osmplayer = osmplayer || {};
+
+/** The parser object. */
+osmplayer.parser = osmplayer.parser || {};
+
+/**
+ * The rss parser object.
+ *
+ * @return {object} The rss parser.
+ **/
+osmplayer.parser.rss = {
+
+  // The priority for this parser.
+  priority: 8,
+
+  // Return if this is a valid youtube feed.
+  valid: function(feed) {
+    feed = feed.replace(/(.*)\??(.*)/i, '$1');
+    return feed.match(/\.rss$/i) !== null;
+  },
+
+  // Returns the type of request to make.
+  getType: function(feed) {
+    return 'xml';
+  },
+
+  // Returns the feed provided the start and numItems.
+  getFeed: function(feed, start, numItems) {
+    return feed;
+  },
+
+  // Parse the feed.
+  parse: function(data) {
+    var playlist = {
+      total_rows: 0,
+      nodes: []
+    };
+    jQuery('rss channel', data).find('item').each(function(index) {
+      osmplayer.parser.rss.addRSSItem(playlist, jQuery(this));
+    });
+    return playlist;
+  },
+
+  // Parse an RSS item.
+  addRSSItem: function(playlist, item) {
+    playlist.total_rows++;
+    playlist.nodes.push({
+      title: item.find('title').text(),
+      description: item.find('annotation').text(),
+      mediafiles: {
+        image: {
+          'image': {
+            path: item.find('image').text()
+          }
+        },
+        media: {
+          'media': {
+            path: item.find('location').text()
+          }
+        }
+      }
+    });
+  }
+};
+/** The osmplayer namespace. */
+var osmplayer = osmplayer || {};
+
+/** The parser object. */
+osmplayer.parser = osmplayer.parser || {};
+
+/**
+ * The asx parser object.
+ *
+ * @return {object} The asx parser.
+ **/
+osmplayer.parser.asx = {
+
+  // The priority for this parser.
+  priority: 8,
+
+  // Return if this is a valid youtube feed.
+  valid: function(feed) {
+    feed = feed.replace(/(.*)\??(.*)/i, '$1');
+    return feed.match(/\.asx$/i) !== null;
+  },
+
+  // Returns the type of request to make.
+  getType: function(feed) {
+    return 'xml';
+  },
+
+  // Returns the feed provided the start and numItems.
+  getFeed: function(feed, start, numItems) {
+    return feed;
+  },
+
+  // Parse the feed.
+  parse: function(data) {
+    var playlist = {
+      total_rows: 0,
+      nodes: []
+    };
+    jQuery('asx entry', data).each(function(index) {
+      osmplayer.parser.rss.addRSSItem(playlist, jQuery(this));
+    });
+    return playlist;
+  }
+};
+/** The osmplayer namespace. */
+var osmplayer = osmplayer || {};
+
+/** The parser object. */
+osmplayer.parser = osmplayer.parser || {};
+
+/**
+ * The xsfp parser object.
+ *
+ * @return {object} The xsfp parser.
+ **/
+osmplayer.parser.xsfp = {
+
+  // The priority for this parser.
+  priority: 8,
+
+  // Return if this is a valid youtube feed.
+  valid: function(feed) {
+    feed = feed.replace(/(.*)\??(.*)/i, '$1');
+    return feed.match(/\.xml$/i) !== null;
+  },
+
+  // Returns the type of request to make.
+  getType: function(feed) {
+    return 'xml';
+  },
+
+  // Returns the feed provided the start and numItems.
+  getFeed: function(feed, start, numItems) {
+    return feed;
+  },
+
+  // Parse the feed.
+  parse: function(data) {
+    var playlist = {
+      total_rows: 0,
+      nodes: []
+    };
+    jQuery('playlist trackList track', data).each(function(index) {
+      osmplayer.parser.rss.addRSSItem(playlist, jQuery(this));
+    });
+    return playlist;
+  }
+};
+/** The osmplayer namespace. */
+var osmplayer = osmplayer || {};
+
+/**
+ * @constructor
+ * @extends minplayer.display
+ * @class This class creates the playlist functionality for the minplayer.
+ *
+ * @param {object} context The jQuery context.
+ * @param {object} options This components options.
+ */
+osmplayer.playlist = function(context, options) {
+
+  // Derive from display
+  minplayer.display.call(this, 'playlist', context, options);
+};
+
+/** Derive from minplayer.display. */
+osmplayer.playlist.prototype = new minplayer.display();
+
+/** Reset the constructor. */
+osmplayer.playlist.prototype.constructor = osmplayer.playlist;
+
+/**
+ * @see minplayer.plugin#construct
+ */
+osmplayer.playlist.prototype.construct = function() {
+
+  // Make sure we provide default options...
+  this.options = jQuery.extend({
+    vertical: true,
+    playlist: '',
+    pageLimit: 10,
+    autoNext: true,
+    shuffle: false,
+    loop: false,
+    hysteresis: 40,
+    scrollSpeed: 20,
+    scrollMode: 'auto'
+  }, this.options);
+
+  // Call the minplayer plugin constructor.
+  minplayer.display.prototype.construct.call(this);
+
+  /** The nodes within this playlist. */
+  this.nodes = [];
+
+  // Current page.
+  this.page = -1;
+
+  // The total amount of nodes.
+  this.totalItems = 0;
+
+  // The current loaded item index.
+  this.currentItem = -1;
+
+  // The play playqueue.
+  this.playqueue = [];
+
+  // The playqueue position.
+  this.playqueuepos = 0;
+
+  // The current playlist.
+  this.playlist = this.options.playlist;
+
+  // Create the scroll bar.
+  this.scroll = null;
+
+  // Create our orientation variable.
+  this.orient = {
+    pos: this.options.vertical ? 'y' : 'x',
+    pagePos: this.options.vertical ? 'pageY' : 'pageX',
+    offset: this.options.vertical ? 'top' : 'left',
+    wrapperSize: this.options.vertical ? 'wrapperH' : 'wrapperW',
+    minScroll: this.options.vertical ? 'minScrollY' : 'minScrollX',
+    maxScroll: this.options.vertical ? 'maxScrollY' : 'maxScrollX',
+    size: this.options.vertical ? 'height' : 'width'
+  };
+
+  // Create the pager.
+  this.pager = this.create('pager', 'osmplayer');
+  this.pager.bind('nextPage', (function(playlist) {
+    return function(event) {
+      playlist.nextPage();
+    };
+  })(this));
+  this.pager.bind('prevPage', (function(playlist) {
+    return function(event) {
+      playlist.prevPage();
+    };
+  })(this));
+
+  // Load the "next" item.
+  if (this.next()) {
+
+    // Get the media.
+    if (this.options.autoNext) {
+      this.get('media', function(media) {
+        media.bind('ended', (function(playlist) {
+          return function(event) {
+            media.options.autoplay = true;
+            playlist.next();
+          };
+        })(this));
+      });
+    }
+  }
+
+  // Say that we are ready.
+  this.ready();
+};
+
+/**
+ * Wrapper around the scroll scrollTo method.
+ *
+ * @param {number} pos The position you would like to set the list.
+ * @param {boolean} relative If this is a relative position change.
+ */
+osmplayer.playlist.prototype.scrollTo = function(pos, relative) {
+  if (this.scroll) {
+    this.scroll.options.hideScrollbar = false;
+    if (this.options.vertical) {
+      this.scroll.scrollTo(0, pos, 0, relative);
+    }
+    else {
+      this.scroll.scrollTo(pos, 0, 0, relative);
+    }
+    this.scroll.options.hideScrollbar = true;
+  }
+};
+
+/**
+ * Refresh the scrollbar.
+ */
+osmplayer.playlist.prototype.refreshScroll = function() {
+
+  // Make sure that our window has the addEventListener to keep IE happy.
+  if (!window.addEventListener) {
+    setTimeout((function(playlist) {
+      return function() {
+        playlist.refreshScroll.call(playlist);
+      }
+    })(this), 200);
+    return;
+  }
+
+  // Check the size of the playlist.
+  var list = this.elements.list;
+  var scroll = this.elements.scroll;
+
+  // Check to see if we should add a scroll bar functionality.
+  if ((!this.scroll) &&
+      (list.length > 0) &&
+      (scroll.length > 0) &&
+      (list[this.orient.size]() > scroll[this.orient.size]())) {
+
+    // Setup the iScroll component.
+    this.scroll = new iScroll(this.elements.scroll.eq(0)[0], {
+      hScroll: !this.options.vertical,
+      hScrollbar: !this.options.vertical,
+      vScroll: this.options.vertical,
+      vScrollbar: this.options.vertical,
+      hideScrollbar: true
+    });
+
+    // Use autoScroll for non-touch devices.
+    if ((this.options.scrollMode == 'auto') && !minplayer.hasTouch) {
+
+      // Bind to the mouse events for autoscrolling.
+      this.elements.list.bind('mousemove', (function(playlist) {
+        return function(event) {
+          event.preventDefault();
+          var offset = playlist.display.offset()[playlist.orient.offset];
+          playlist.mousePos = event[playlist.orient.pagePos];
+          playlist.mousePos -= offset;
+        };
+      })(this)).bind('mouseenter', (function(playlist) {
+        return function(event) {
+          event.preventDefault();
+          playlist.scrolling = true;
+          var setScroll = function() {
+            if (playlist.scrolling) {
+              var scrollSize = playlist.scroll[playlist.orient.wrapperSize];
+              var scrollMid = (scrollSize / 2);
+              var delta = playlist.mousePos - scrollMid;
+              if (Math.abs(delta) > playlist.options.hysteresis) {
+                var hyst = playlist.options.hysteresis;
+                hyst *= (delta > 0) ? -1 : 0;
+                delta = (playlist.options.scrollSpeed * (delta + hyst));
+                delta /= scrollMid;
+                var pos = playlist.scroll[playlist.orient.pos] - delta;
+                var min = playlist.scroll[playlist.orient.minScroll] || 0;
+                var max = playlist.scroll[playlist.orient.maxScroll];
+                if (pos >= min) {
+                  playlist.scrollTo(min);
+                }
+                else if (pos <= max) {
+                  playlist.scrollTo(max);
+                }
+                else {
+                  playlist.scrollTo(delta, true);
+                }
+              }
+
+              // Set timeout to try again.
+              setTimeout(setScroll, 30);
+            }
+          };
+          setScroll();
+        };
+      })(this)).bind('mouseleave', (function(playlist) {
+        return function(event) {
+          event.preventDefault();
+          playlist.scrolling = false;
+        };
+      })(this));
+    }
+
+    // Need to force the width of the list.
+    if (!this.options.vertical) {
+      var listSize = 0;
+      jQuery.each(this.elements.list.children(), function() {
+        listSize += jQuery(this).outerWidth();
+      });
+      this.elements.list.width(listSize);
+    }
+
+    this.scroll.refresh();
+    this.scroll.scrollTo(0, 0, 200);
+  }
+  else if (this.scroll) {
+
+    // Disable the scroll bar.
+    this.scroll.disable();
+    this.elements.list
+      .unbind('mousemove')
+      .unbind('mouseenter')
+      .unbind('mouseleave');
+  }
+};
+
+/**
+ * Sets the playlist.
+ *
+ * @param {object} playlist The playlist object.
+ * @param {integer} loadIndex The index of the item to load.
+ */
+osmplayer.playlist.prototype.set = function(playlist, loadIndex) {
+
+  // Check to make sure the playlist is an object.
+  if (typeof playlist !== 'object') {
+    this.trigger('error', 'Playlist must be an object to set');
+    return;
+  }
+
+  // Check to make sure the playlist has correct format.
+  if (!playlist.hasOwnProperty('total_rows')) {
+    this.trigger('error', 'Unknown playlist format.');
+    return;
+  }
+
+  // Make sure the playlist has some rows.
+  if (playlist.total_rows && playlist.nodes.length) {
+
+    // Set the total rows.
+    this.totalItems = playlist.total_rows;
+    this.currentItem = 0;
+
+    // Show or hide the next page if there is or is not a next page.
+    if (((this.page + 1) * this.options.pageLimit) >= this.totalItems) {
+      this.pager.nextPage.hide();
+    }
+    else {
+      this.pager.nextPage.show();
+    }
+
+    var teaser = null;
+    var numNodes = playlist.nodes.length;
+    this.elements.list.empty();
+    this.nodes = [];
+
+    // Iterate through all the nodes.
+    for (var index = 0; index < numNodes; index++) {
+
+      // Create the teaser object.
+      teaser = this.create('teaser', 'osmplayer', this.elements.list);
+      teaser.setNode(playlist.nodes[index]);
+      teaser.bind('nodeLoad', (function(playlist, index) {
+        return function(event, data) {
+          playlist.loadItem(index);
+        };
+      })(this, index));
+
+      // Add this to our nodes array.
+      this.nodes.push(teaser);
+
+      // If the index is equal to the loadIndex.
+      if (loadIndex === index) {
+        this.loadItem(index);
+      }
+    }
+
+    // Refresh the sizes.
+    this.refreshScroll();
+
+    // Trigger that the playlist has loaded.
+    this.trigger('playlistLoad', playlist);
+  }
+
+  // Show that we are no longer busy.
+  if (this.elements.playlist_busy) {
+    this.elements.playlist_busy.hide();
+  }
+};
+
+/**
+ * Stores the current playlist state in the playqueue.
+ */
+osmplayer.playlist.prototype.setQueue = function() {
+
+  // Add this item to the playqueue.
+  this.playqueue.push({
+    page: this.page,
+    item: this.currentItem
+  });
+
+  // Store the current playqueue position.
+  this.playqueuepos = this.playqueue.length;
+};
+
+/**
+ * Loads the next item.
+ *
+ * @return {boolean} TRUE if loaded, FALSE if not.
+ */
+osmplayer.playlist.prototype.next = function() {
+  var item = 0, page = this.page;
+
+  // See if we are at the front of the playqueue.
+  if (this.playqueuepos >= this.playqueue.length) {
+
+    // If this is shuffle, then load a random item.
+    if (this.options.shuffle) {
+      item = Math.floor(Math.random() * this.totalItems);
+      page = Math.floor(item / this.options.pageLimit);
+      item = item % this.options.pageLimit;
+      return this.load(page, item);
+    }
+    else {
+
+      // Otherwise, increment the current item by one.
+      item = (this.currentItem + 1);
+      if (item >= this.nodes.length) {
+        return this.load(page + 1, 0);
+      }
+      else {
+        return this.loadItem(item);
+      }
+    }
+  }
+  else {
+
+    // Load the next item in the playqueue.
+    this.playqueuepos = this.playqueuepos + 1;
+    var currentQueue = this.playqueue[this.playqueuepos];
+    return this.load(currentQueue.page, currentQueue.item);
+  }
+};
+
+/**
+ * Loads the previous item.
+ *
+ * @return {boolean} TRUE if loaded, FALSE if not.
+ */
+osmplayer.playlist.prototype.prev = function() {
+
+  // Move back into the playqueue.
+  this.playqueuepos = this.playqueuepos - 1;
+  this.playqueuepos = (this.playqueuepos < 0) ? 0 : this.playqueuepos;
+  var currentQueue = this.playqueue[this.playqueuepos];
+  if (currentQueue) {
+    return this.load(currentQueue.page, currentQueue.item);
+  }
+  return false;
+};
+
+/**
+ * Loads a playlist node.
+ *
+ * @param {number} index The index of the item you would like to load.
+ * @return {boolean} TRUE if loaded, FALSE if not.
+ */
+osmplayer.playlist.prototype.loadItem = function(index) {
+  if (index < this.nodes.length) {
+    this.setQueue();
+
+    // Get the teaser at the current index and deselect it.
+    var teaser = this.nodes[this.currentItem];
+    teaser.select(false);
+    this.currentItem = index;
+
+    // Get the new teaser and select it.
+    teaser = this.nodes[index];
+    teaser.select(true);
+    this.trigger('nodeLoad', teaser.node);
+    return true;
+  }
+
+  return false;
+};
+
+/**
+ * Loads the next page.
+ *
+ * @param {integer} loadIndex The index of the item to load.
+ * @return {boolean} TRUE if loaded, FALSE if not.
+ */
+osmplayer.playlist.prototype.nextPage = function(loadIndex) {
+  return this.load(this.page + 1, loadIndex);
+};
+
+/**
+ * Loads the previous page.
+ *
+ * @param {integer} loadIndex The index of the item to load.
+ * @return {boolean} TRUE if loaded, FALSE if not.
+ */
+osmplayer.playlist.prototype.prevPage = function(loadIndex) {
+  return this.load(this.page - 1, loadIndex);
+};
+
+/**
+ * Loads a playlist.
+ *
+ * @param {integer} page The page to load.
+ * @param {integer} loadIndex The index of the item to load.
+ * @return {boolean} TRUE if loaded, FALSE if not.
+ */
+osmplayer.playlist.prototype.load = function(page, loadIndex) {
+
+  // If the playlist and pages are the same, then no need to load.
+  if ((this.playlist == this.options.playlist) && (page == this.page)) {
+    return this.loadItem(loadIndex);
+  }
+
+  // Set the new playlist.
+  this.playlist = this.options.playlist;
+
+  // Return if there aren't any playlists to play.
+  if (!this.playlist) {
+    return false;
+  }
+
+  // Determine if we need to loop.
+  var maxPages = Math.floor(this.totalItems / this.options.pageLimit);
+  if (page > maxPages) {
+    if (this.options.loop) {
+      page = 0;
+      loadIndex = 0;
+    }
+    else {
+      return false;
+    }
+  }
+
+  // Say that we are busy.
+  if (this.elements.playlist_busy) {
+    this.elements.playlist_busy.show();
+  }
+
+  // Normalize the page.
+  page = page || 0;
+  page = (page < 0) ? 0 : page;
+
+  // Set the queue.
+  this.setQueue();
+
+  // Set the new page.
+  this.page = page;
+
+  // Hide or show the page based on if we are on the first page.
+  if (this.page == 0) {
+    this.pager.prevPage.hide();
+  }
+  else {
+    this.pager.prevPage.show();
+  }
+
+  // If the playlist is an object, then go ahead and set it.
+  if (typeof this.playlist == 'object') {
+    this.set(this.playlist, loadIndex);
+    if (this.playlist.endpoint) {
+      this.playlist = this.options.playlist = this.playlist.endpoint;
+    }
+    return true;
+  }
+
+  // Get the highest priority parser.
+  var parser = osmplayer.parser['default'];
+  for (var name in osmplayer.parser) {
+    if (osmplayer.parser.hasOwnProperty(name)) {
+      if (osmplayer.parser[name].valid(this.playlist)) {
+        if (osmplayer.parser[name].priority > parser.priority) {
+          parser = osmplayer.parser[name];
+        }
+      }
+    }
+  }
+
+  // The start index.
+  var start = this.page * this.options.pageLimit;
+
+  // Get the feed from the parser.
+  var feed = parser.getFeed(
+    this.playlist,
+    start,
+    this.options.pageLimit
+  );
+
+  // Build our request.
+  var request = {
+    type: 'GET',
+    url: feed,
+    success: (function(playlist) {
+      return function(data) {
+        playlist.set(parser.parse(data), loadIndex);
+      };
+    })(this),
+    error: (function(playlist) {
+      return function(XMLHttpRequest, textStatus, errorThrown) {
+        if (playlist.elements.playlist_busy) {
+          playlist.elements.playlist_busy.hide();
+        }
+        playlist.trigger('error', textStatus);
+      }
+    })(this)
+  };
+
+  // Set the data if applicable.
+  var dataType = '';
+  if (dataType = parser.getType()) {
+    request.dataType = dataType;
+  }
+
+  // Perform an ajax callback.
+  jQuery.ajax(request);
+
+  // Return that we did something.
+  return true;
+};
+/** The osmplayer namespace. */
+var osmplayer = osmplayer || {};
+
+/**
+ * @constructor
+ * @extends minplayer.display
+ * @class This class provides pager functionality.
+ *
+ * @param {object} context The jQuery context.
+ * @param {object} options This components options.
+ */
+osmplayer.pager = function(context, options) {
+
+  // Derive from display
+  minplayer.display.call(this, 'pager', context, options);
+};
+
+/** Derive from minplayer.display. */
+osmplayer.pager.prototype = new minplayer.display();
+
+/** Reset the constructor. */
+osmplayer.pager.prototype.constructor = osmplayer.pager;
+
+/**
+ * @see minplayer.plugin#construct
+ */
+osmplayer.pager.prototype.construct = function() {
+
+  // Call the minplayer plugin constructor.
+  minplayer.display.prototype.construct.call(this);
+
+  // Setup the prev button.
+  if (this.elements.prevPage) {
+    this.prevPage = this.elements.prevPage.click((function(pager) {
+      return function(event) {
+        event.preventDefault();
+        pager.trigger('prevPage');
+      };
+    })(this));
+  }
+
+  // Setup the next button.
+  if (this.elements.nextPage) {
+    this.nextPage = this.elements.nextPage.click((function(pager) {
+      return function(event) {
+        event.preventDefault();
+        pager.trigger('nextPage');
+      };
+    })(this));
+  }
+};
+/** The osmplayer namespace. */
+var osmplayer = osmplayer || {};
+
+/**
+ * @constructor
+ * @extends minplayer.display
+ * @class This class provides teaser functionality.
+ *
+ * @param {object} context The jQuery context.
+ * @param {object} options This components options.
+ */
+osmplayer.teaser = function(context, options) {
+
+  /** The preview image. */
+  this.preview = null;
+
+  // Derive from display
+  minplayer.display.call(this, 'teaser', context, options);
+};
+
+/** Derive from minplayer.display. */
+osmplayer.teaser.prototype = new minplayer.display();
+
+/** Reset the constructor. */
+osmplayer.teaser.prototype.constructor = osmplayer.teaser;
+
+/**
+ * Selects the teaser.
+ *
+ * @param {boolean} selected TRUE if selected, FALSE otherwise.
+ */
+osmplayer.teaser.prototype.select = function(selected) {
+};
+
+/**
+ * Sets the node.
+ *
+ * @param {object} node The node object to set.
+ */
+osmplayer.teaser.prototype.setNode = function(node) {
+
+  // Add this to the node info for this teaser.
+  this.node = node;
+
+  // Set the title of the teaser.
+  if (this.elements.title) {
+    this.elements.title.text(node.title);
+  }
+
+  // Load the thumbnail image if it exists.
+  if (node.mediafiles && node.mediafiles.image) {
+    var image = osmplayer.getImage(node.mediafiles, 'thumbnail');
+    if (image) {
+      if (this.elements.image) {
+        this.preview = new minplayer.image(this.elements.image);
+        this.preview.load(image);
+      }
+    }
+  }
+
+  // Bind when they click on this teaser.
+  this.display.unbind('click').click((function(teaser) {
+    return function(event) {
+      event.preventDefault();
+      teaser.trigger('nodeLoad', teaser.node);
+    };
+  })(this));
+};
diff --git a/public/admin/js/osmplayer/doc/files.html b/public/admin/js/osmplayer/doc/files.html
new file mode 100644
index 00000000000..8d627be4d7e
--- /dev/null
+++ b/public/admin/js/osmplayer/doc/files.html
@@ -0,0 +1,542 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+        "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+	<head>
+		<meta http-equiv="content-type" content="text/html; charset=utf-8" />
+		
+		<title>JsDoc Reference - File Index</title>
+		<meta name="generator" content="JsDoc Toolkit" />
+		
+		<style type="text/css">
+		/* default.css */
+body
+{
+	font: 12px "Lucida Grande", Tahoma, Arial, Helvetica, sans-serif;
+	width: 800px;
+}
+
+.header
+{
+	clear: both;
+	background-color: #ccc;
+	padding: 8px;
+}
+
+h1
+{
+	font-size: 150%;
+	font-weight: bold;
+	padding: 0;
+	margin: 1em 0 0 .3em;
+}
+
+hr
+{
+	border: none 0;
+	border-top: 1px solid #7F8FB1;
+	height: 1px;
+}
+
+pre.code
+{
+	display: block;
+	padding: 8px;
+	border: 1px dashed #ccc;
+}
+
+#index
+{
+	margin-top: 24px;
+	float: left;
+	width: 160px;
+	position: absolute;
+	left: 8px;
+	background-color: #F3F3F3;
+	padding: 8px;
+}
+
+#content
+{
+	margin-left: 190px;
+	width: 600px;
+}
+
+.classList
+{
+	list-style-type: none;
+	padding: 0;
+	margin: 0 0 0 8px;
+	font-family: arial, sans-serif;
+	font-size: 1em;
+	overflow: auto;
+}
+
+.classList li
+{
+	padding: 0;
+	margin: 0 0 8px 0;
+}
+
+.summaryTable { width: 100%; }
+
+h1.classTitle
+{
+	font-size:170%;
+	line-height:130%;
+}
+
+h2 { font-size: 110%; }
+caption, div.sectionTitle
+{
+	background-color: #7F8FB1;
+	color: #fff;
+	font-size:130%;
+	text-align: left;
+	padding: 2px 6px 2px 6px;
+	border: 1px #7F8FB1 solid;
+}
+
+div.sectionTitle { margin-bottom: 8px; }
+.summaryTable thead { display: none; }
+
+.summaryTable td
+{
+	vertical-align: top;
+	padding: 4px;
+	border-bottom: 1px #7F8FB1 solid;
+	border-right: 1px #7F8FB1 solid;
+}
+
+/*col#summaryAttributes {}*/
+.summaryTable td.attributes
+{
+	border-left: 1px #7F8FB1 solid;
+	width: 140px;
+	text-align: right;
+}
+
+td.attributes, .fixedFont
+{
+	line-height: 15px;
+	color: #002EBE;
+	font-family: "Courier New",Courier,monospace;
+	font-size: 13px;
+}
+
+.summaryTable td.nameDescription
+{
+	text-align: left;
+	font-size: 13px;
+	line-height: 15px;
+}
+
+.summaryTable td.nameDescription, .description
+{
+	line-height: 15px;
+	padding: 4px;
+	padding-left: 4px;
+}
+
+.summaryTable { margin-bottom: 8px; }
+
+ul.inheritsList
+{
+	list-style: square;
+	margin-left: 20px;
+	padding-left: 0;
+}
+
+.detailList {
+	margin-left: 20px; 
+	line-height: 15px;
+}
+.detailList dt { margin-left: 20px; }
+
+.detailList .heading
+{
+	font-weight: bold;
+	padding-bottom: 6px;
+	margin-left: 0;
+}
+
+.light, td.attributes, .light a:link, .light a:visited
+{
+	color: #777;
+	font-style: italic;
+}
+
+.fineprint
+{
+	text-align: right;
+	font-size: 10px;
+}
+		</style>
+	</head>
+	
+	<body>
+		<div id="header">
+</div>
+		
+		<div id="index">
+			<div align="center"><a href="index.html">Class Index</a>
+| <a href="files.html">File Index</a></div>
+<hr />
+<h2>Classes</h2>
+<ul class="classList">
+	
+	<li><i><a href="symbols/_global_.html">_global_</a></i></li>
+	
+	<li><a href="symbols/jQuery.fn.minplayer.html">jQuery.fn.minplayer</a></li>
+	
+	<li><a href="symbols/jQuery.fn.osmplayer.html">jQuery.fn.osmplayer</a></li>
+	
+	<li><a href="symbols/minplayer.async.html">minplayer.async</a></li>
+	
+	<li><a href="symbols/minplayer.compatibility.html">minplayer.compatibility</a></li>
+	
+	<li><a href="symbols/minplayer.display.html">minplayer.display</a></li>
+	
+	<li><a href="symbols/minplayer.file.html">minplayer.file</a></li>
+	
+	<li><a href="symbols/minplayer.flags.html">minplayer.flags</a></li>
+	
+	<li><a href="symbols/minplayer.image.html">minplayer.image</a></li>
+	
+	<li><a href="symbols/minplayer.players.base.html">minplayer.players.base</a></li>
+	
+	<li><a href="symbols/minplayer.players.flash.html">minplayer.players.flash</a></li>
+	
+	<li><a href="symbols/minplayer.players.html5.html">minplayer.players.html5</a></li>
+	
+	<li><a href="symbols/minplayer.players.minplayer.html">minplayer.players.minplayer</a></li>
+	
+	<li><a href="symbols/minplayer.players.vimeo.html">minplayer.players.vimeo</a></li>
+	
+	<li><a href="symbols/minplayer.players.youtube.html">minplayer.players.youtube</a></li>
+	
+	<li><a href="symbols/minplayer.plugin.html">minplayer.plugin</a></li>
+	
+	<li><a href="symbols/osmplayer.html">osmplayer</a></li>
+	
+	<li><a href="symbols/osmplayer.pager.html">osmplayer.pager</a></li>
+	
+	<li><a href="symbols/osmplayer.playlist.html">osmplayer.playlist</a></li>
+	
+	<li><a href="symbols/osmplayer.teaser.html">osmplayer.teaser</a></li>
+	
+</ul>
+<hr />
+		</div>
+		
+		<div id="content">
+			<h1 class="classTitle">File Index</h1>
+			
+			
+			<div>
+				<h2><a href="symbols/src/minplayer_src_minplayer.async.js.html">minplayer/src/minplayer.async.js</a></h2>
+				
+				<dl>
+					
+					
+					
+					
+				</dl>
+			</div>
+			<hr />
+			
+			<div>
+				<h2><a href="symbols/src/minplayer_src_minplayer.compatibility.js.html">minplayer/src/minplayer.compatibility.js</a></h2>
+				
+				<dl>
+					
+					
+					
+					
+				</dl>
+			</div>
+			<hr />
+			
+			<div>
+				<h2><a href="symbols/src/minplayer_src_minplayer.controller.js.html">minplayer/src/minplayer.controller.js</a></h2>
+				
+				<dl>
+					
+					
+					
+					
+				</dl>
+			</div>
+			<hr />
+			
+			<div>
+				<h2><a href="symbols/src/minplayer_src_minplayer.display.js.html">minplayer/src/minplayer.display.js</a></h2>
+				
+				<dl>
+					
+					
+					
+					
+				</dl>
+			</div>
+			<hr />
+			
+			<div>
+				<h2><a href="symbols/src/minplayer_src_minplayer.file.js.html">minplayer/src/minplayer.file.js</a></h2>
+				
+				<dl>
+					
+					
+					
+					
+				</dl>
+			</div>
+			<hr />
+			
+			<div>
+				<h2><a href="symbols/src/minplayer_src_minplayer.flags.js.html">minplayer/src/minplayer.flags.js</a></h2>
+				
+				<dl>
+					
+					
+					
+					
+				</dl>
+			</div>
+			<hr />
+			
+			<div>
+				<h2><a href="symbols/src/minplayer_src_minplayer.image.js.html">minplayer/src/minplayer.image.js</a></h2>
+				
+				<dl>
+					
+					
+					
+					
+				</dl>
+			</div>
+			<hr />
+			
+			<div>
+				<h2><a href="symbols/src/minplayer_src_minplayer.js.html">minplayer/src/minplayer.js</a></h2>
+				
+				<dl>
+					
+					
+					
+					
+				</dl>
+			</div>
+			<hr />
+			
+			<div>
+				<h2><a href="symbols/src/minplayer_src_minplayer.players.base.js.html">minplayer/src/minplayer.players.base.js</a></h2>
+				
+				<dl>
+					
+					
+					
+					
+				</dl>
+			</div>
+			<hr />
+			
+			<div>
+				<h2><a href="symbols/src/minplayer_src_minplayer.players.flash.js.html">minplayer/src/minplayer.players.flash.js</a></h2>
+				
+				<dl>
+					
+					
+					
+					
+				</dl>
+			</div>
+			<hr />
+			
+			<div>
+				<h2><a href="symbols/src/minplayer_src_minplayer.players.html5.js.html">minplayer/src/minplayer.players.html5.js</a></h2>
+				
+				<dl>
+					
+					
+					
+					
+				</dl>
+			</div>
+			<hr />
+			
+			<div>
+				<h2><a href="symbols/src/minplayer_src_minplayer.players.minplayer.js.html">minplayer/src/minplayer.players.minplayer.js</a></h2>
+				
+				<dl>
+					
+					
+					
+					
+				</dl>
+			</div>
+			<hr />
+			
+			<div>
+				<h2><a href="symbols/src/minplayer_src_minplayer.players.vimeo.js.html">minplayer/src/minplayer.players.vimeo.js</a></h2>
+				
+				<dl>
+					
+					
+					
+					
+				</dl>
+			</div>
+			<hr />
+			
+			<div>
+				<h2><a href="symbols/src/minplayer_src_minplayer.players.youtube.js.html">minplayer/src/minplayer.players.youtube.js</a></h2>
+				
+				<dl>
+					
+					
+					
+					
+				</dl>
+			</div>
+			<hr />
+			
+			<div>
+				<h2><a href="symbols/src/minplayer_src_minplayer.playLoader.js.html">minplayer/src/minplayer.playLoader.js</a></h2>
+				
+				<dl>
+					
+					
+					
+					
+				</dl>
+			</div>
+			<hr />
+			
+			<div>
+				<h2><a href="symbols/src/minplayer_src_minplayer.plugin.js.html">minplayer/src/minplayer.plugin.js</a></h2>
+				
+				<dl>
+					
+					
+					
+					
+				</dl>
+			</div>
+			<hr />
+			
+			<div>
+				<h2><a href="symbols/src/src_osmplayer.js.html">src/osmplayer.js</a></h2>
+				
+				<dl>
+					
+					
+					
+					
+				</dl>
+			</div>
+			<hr />
+			
+			<div>
+				<h2><a href="symbols/src/src_osmplayer.pager.js.html">src/osmplayer.pager.js</a></h2>
+				
+				<dl>
+					
+					
+					
+					
+				</dl>
+			</div>
+			<hr />
+			
+			<div>
+				<h2><a href="symbols/src/src_osmplayer.parser.asx.js.html">src/osmplayer.parser.asx.js</a></h2>
+				
+				<dl>
+					
+					
+					
+					
+				</dl>
+			</div>
+			<hr />
+			
+			<div>
+				<h2><a href="symbols/src/src_osmplayer.parser.default.js.html">src/osmplayer.parser.default.js</a></h2>
+				
+				<dl>
+					
+					
+					
+					
+				</dl>
+			</div>
+			<hr />
+			
+			<div>
+				<h2><a href="symbols/src/src_osmplayer.parser.rss.js.html">src/osmplayer.parser.rss.js</a></h2>
+				
+				<dl>
+					
+					
+					
+					
+				</dl>
+			</div>
+			<hr />
+			
+			<div>
+				<h2><a href="symbols/src/src_osmplayer.parser.xspf.js.html">src/osmplayer.parser.xspf.js</a></h2>
+				
+				<dl>
+					
+					
+					
+					
+				</dl>
+			</div>
+			<hr />
+			
+			<div>
+				<h2><a href="symbols/src/src_osmplayer.parser.youtube.js.html">src/osmplayer.parser.youtube.js</a></h2>
+				
+				<dl>
+					
+					
+					
+					
+				</dl>
+			</div>
+			<hr />
+			
+			<div>
+				<h2><a href="symbols/src/src_osmplayer.playlist.js.html">src/osmplayer.playlist.js</a></h2>
+				
+				<dl>
+					
+					
+					
+					
+				</dl>
+			</div>
+			<hr />
+			
+			<div>
+				<h2><a href="symbols/src/src_osmplayer.teaser.js.html">src/osmplayer.teaser.js</a></h2>
+				
+				<dl>
+					
+					
+					
+					
+				</dl>
+			</div>
+			<hr />
+			
+			
+		</div>
+		<div class="fineprint" style="clear:both">
+			
+			Documentation generated by <a href="http://code.google.com/p/jsdoc-toolkit/" target="_blankt">JsDoc Toolkit</a> 2.4.0 on Sun Aug 19 2012 12:11:28 GMT-0500 (CDT)
+		</div>
+	</body>
+</html>
\ No newline at end of file
diff --git a/public/admin/js/osmplayer/doc/index.html b/public/admin/js/osmplayer/doc/index.html
new file mode 100644
index 00000000000..cc0c8a1987c
--- /dev/null
+++ b/public/admin/js/osmplayer/doc/index.html
@@ -0,0 +1,369 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+        "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+	<head>
+		<meta http-equiv="content-type" content="text/html; charset=utf-8" />
+		
+		<title>JsDoc Reference - Index</title>
+		<meta name="generator" content="JsDoc Toolkit" />
+		
+		<style type="text/css">
+		/* default.css */
+body
+{
+	font: 12px "Lucida Grande", Tahoma, Arial, Helvetica, sans-serif;
+	width: 800px;
+}
+
+.header
+{
+	clear: both;
+	background-color: #ccc;
+	padding: 8px;
+}
+
+h1
+{
+	font-size: 150%;
+	font-weight: bold;
+	padding: 0;
+	margin: 1em 0 0 .3em;
+}
+
+hr
+{
+	border: none 0;
+	border-top: 1px solid #7F8FB1;
+	height: 1px;
+}
+
+pre.code
+{
+	display: block;
+	padding: 8px;
+	border: 1px dashed #ccc;
+}
+
+#index
+{
+	margin-top: 24px;
+	float: left;
+	width: 160px;
+	position: absolute;
+	left: 8px;
+	background-color: #F3F3F3;
+	padding: 8px;
+}
+
+#content
+{
+	margin-left: 190px;
+	width: 600px;
+}
+
+.classList
+{
+	list-style-type: none;
+	padding: 0;
+	margin: 0 0 0 8px;
+	font-family: arial, sans-serif;
+	font-size: 1em;
+	overflow: auto;
+}
+
+.classList li
+{
+	padding: 0;
+	margin: 0 0 8px 0;
+}
+
+.summaryTable { width: 100%; }
+
+h1.classTitle
+{
+	font-size:170%;
+	line-height:130%;
+}
+
+h2 { font-size: 110%; }
+caption, div.sectionTitle
+{
+	background-color: #7F8FB1;
+	color: #fff;
+	font-size:130%;
+	text-align: left;
+	padding: 2px 6px 2px 6px;
+	border: 1px #7F8FB1 solid;
+}
+
+div.sectionTitle { margin-bottom: 8px; }
+.summaryTable thead { display: none; }
+
+.summaryTable td
+{
+	vertical-align: top;
+	padding: 4px;
+	border-bottom: 1px #7F8FB1 solid;
+	border-right: 1px #7F8FB1 solid;
+}
+
+/*col#summaryAttributes {}*/
+.summaryTable td.attributes
+{
+	border-left: 1px #7F8FB1 solid;
+	width: 140px;
+	text-align: right;
+}
+
+td.attributes, .fixedFont
+{
+	line-height: 15px;
+	color: #002EBE;
+	font-family: "Courier New",Courier,monospace;
+	font-size: 13px;
+}
+
+.summaryTable td.nameDescription
+{
+	text-align: left;
+	font-size: 13px;
+	line-height: 15px;
+}
+
+.summaryTable td.nameDescription, .description
+{
+	line-height: 15px;
+	padding: 4px;
+	padding-left: 4px;
+}
+
+.summaryTable { margin-bottom: 8px; }
+
+ul.inheritsList
+{
+	list-style: square;
+	margin-left: 20px;
+	padding-left: 0;
+}
+
+.detailList {
+	margin-left: 20px; 
+	line-height: 15px;
+}
+.detailList dt { margin-left: 20px; }
+
+.detailList .heading
+{
+	font-weight: bold;
+	padding-bottom: 6px;
+	margin-left: 0;
+}
+
+.light, td.attributes, .light a:link, .light a:visited
+{
+	color: #777;
+	font-style: italic;
+}
+
+.fineprint
+{
+	text-align: right;
+	font-size: 10px;
+}
+		</style>
+	</head>
+	
+	<body>
+		<div id="header">
+</div>
+		
+		<div id="index">
+			<div align="center"><a href="index.html">Class Index</a>
+| <a href="files.html">File Index</a></div>
+<hr />
+<h2>Classes</h2>
+<ul class="classList">
+	
+	<li><i><a href="symbols/_global_.html">_global_</a></i></li>
+	
+	<li><a href="symbols/jQuery.fn.minplayer.html">jQuery.fn.minplayer</a></li>
+	
+	<li><a href="symbols/jQuery.fn.osmplayer.html">jQuery.fn.osmplayer</a></li>
+	
+	<li><a href="symbols/minplayer.async.html">minplayer.async</a></li>
+	
+	<li><a href="symbols/minplayer.compatibility.html">minplayer.compatibility</a></li>
+	
+	<li><a href="symbols/minplayer.display.html">minplayer.display</a></li>
+	
+	<li><a href="symbols/minplayer.file.html">minplayer.file</a></li>
+	
+	<li><a href="symbols/minplayer.flags.html">minplayer.flags</a></li>
+	
+	<li><a href="symbols/minplayer.image.html">minplayer.image</a></li>
+	
+	<li><a href="symbols/minplayer.players.base.html">minplayer.players.base</a></li>
+	
+	<li><a href="symbols/minplayer.players.flash.html">minplayer.players.flash</a></li>
+	
+	<li><a href="symbols/minplayer.players.html5.html">minplayer.players.html5</a></li>
+	
+	<li><a href="symbols/minplayer.players.minplayer.html">minplayer.players.minplayer</a></li>
+	
+	<li><a href="symbols/minplayer.players.vimeo.html">minplayer.players.vimeo</a></li>
+	
+	<li><a href="symbols/minplayer.players.youtube.html">minplayer.players.youtube</a></li>
+	
+	<li><a href="symbols/minplayer.plugin.html">minplayer.plugin</a></li>
+	
+	<li><a href="symbols/osmplayer.html">osmplayer</a></li>
+	
+	<li><a href="symbols/osmplayer.pager.html">osmplayer.pager</a></li>
+	
+	<li><a href="symbols/osmplayer.playlist.html">osmplayer.playlist</a></li>
+	
+	<li><a href="symbols/osmplayer.teaser.html">osmplayer.teaser</a></li>
+	
+</ul>
+<hr />
+		</div>
+		
+		<div id="content">
+			<h1 class="classTitle">Class Index</h1>
+			
+			
+			<div>
+				<h2><a href="symbols/_global_.html">_global_</a></h2>
+				
+			</div>
+			<hr />
+			
+			<div>
+				<h2><a href="symbols/jQuery.fn.minplayer.html">jQuery.fn.minplayer</a></h2>
+				
+			</div>
+			<hr />
+			
+			<div>
+				<h2><a href="symbols/jQuery.fn.osmplayer.html">jQuery.fn.osmplayer</a></h2>
+				
+			</div>
+			<hr />
+			
+			<div>
+				<h2><a href="symbols/minplayer.async.html">minplayer.async</a></h2>
+				This class keeps track of asynchronous get requests for certain
+variables within the player.
+			</div>
+			<hr />
+			
+			<div>
+				<h2><a href="symbols/minplayer.compatibility.html">minplayer.compatibility</a></h2>
+				This class is used to define the types of media that can be played
+within the browser.
+			</div>
+			<hr />
+			
+			<div>
+				<h2><a href="symbols/minplayer.display.html">minplayer.display</a></h2>
+				Base class used to provide the display and options for any component
+deriving from this class.
+			</div>
+			<hr />
+			
+			<div>
+				<h2><a href="symbols/minplayer.file.html">minplayer.file</a></h2>
+				A wrapper class used to provide all the data necessary to control an
+individual file within this media player.
+			</div>
+			<hr />
+			
+			<div>
+				<h2><a href="symbols/minplayer.flags.html">minplayer.flags</a></h2>
+				This is a class used to keep track of flag states
+which is used to control the busy cursor, big play button, among other
+items in which multiple components can have an interest in hiding or
+showing a single element on the screen.
+			</div>
+			<hr />
+			
+			<div>
+				<h2><a href="symbols/minplayer.image.html">minplayer.image</a></h2>
+				A class to easily handle images.
+			</div>
+			<hr />
+			
+			<div>
+				<h2><a href="symbols/minplayer.players.base.html">minplayer.players.base</a></h2>
+				The base media player class where all media players derive from.
+			</div>
+			<hr />
+			
+			<div>
+				<h2><a href="symbols/minplayer.players.flash.html">minplayer.players.flash</a></h2>
+				The Flash media player class to control the flash fallback.
+			</div>
+			<hr />
+			
+			<div>
+				<h2><a href="symbols/minplayer.players.html5.html">minplayer.players.html5</a></h2>
+				The HTML5 media player implementation.
+			</div>
+			<hr />
+			
+			<div>
+				<h2><a href="symbols/minplayer.players.minplayer.html">minplayer.players.minplayer</a></h2>
+				The Flash media player class to control the flash fallback.
+			</div>
+			<hr />
+			
+			<div>
+				<h2><a href="symbols/minplayer.players.vimeo.html">minplayer.players.vimeo</a></h2>
+				The vimeo media player.
+			</div>
+			<hr />
+			
+			<div>
+				<h2><a href="symbols/minplayer.players.youtube.html">minplayer.players.youtube</a></h2>
+				The YouTube media player.
+			</div>
+			<hr />
+			
+			<div>
+				<h2><a href="symbols/minplayer.plugin.html">minplayer.plugin</a></h2>
+				The base class for all plugins.
+			</div>
+			<hr />
+			
+			<div>
+				<h2><a href="symbols/osmplayer.html">osmplayer</a></h2>
+				The main osmplayer class.
+			</div>
+			<hr />
+			
+			<div>
+				<h2><a href="symbols/osmplayer.pager.html">osmplayer.pager</a></h2>
+				This class provides pager functionality.
+			</div>
+			<hr />
+			
+			<div>
+				<h2><a href="symbols/osmplayer.playlist.html">osmplayer.playlist</a></h2>
+				This class creates the playlist functionality for the minplayer.
+			</div>
+			<hr />
+			
+			<div>
+				<h2><a href="symbols/osmplayer.teaser.html">osmplayer.teaser</a></h2>
+				This class provides teaser functionality.
+			</div>
+			<hr />
+			
+			
+		</div>
+		<div class="fineprint" style="clear:both">
+			
+			Documentation generated by <a href="http://code.google.com/p/jsdoc-toolkit/" target="_blankt">JsDoc Toolkit</a> 2.4.0 on Sun Aug 19 2012 12:11:28 GMT-0500 (CDT)
+		</div>
+	</body>
+</html>
\ No newline at end of file
diff --git a/public/admin/js/osmplayer/doc/symbols/_global_.html b/public/admin/js/osmplayer/doc/symbols/_global_.html
new file mode 100644
index 00000000000..28e8371a0ff
--- /dev/null
+++ b/public/admin/js/osmplayer/doc/symbols/_global_.html
@@ -0,0 +1,626 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+        "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+	<head>
+		<meta http-equiv="content-type" content="text/html; charset=utf-8" />
+		<meta name="generator" content="JsDoc Toolkit" />
+		
+		<title>JsDoc Reference - _global_</title>
+
+		<style type="text/css">
+			/* default.css */
+body
+{
+	font: 12px "Lucida Grande", Tahoma, Arial, Helvetica, sans-serif;
+	width: 800px;
+}
+
+.header
+{
+	clear: both;
+	background-color: #ccc;
+	padding: 8px;
+}
+
+h1
+{
+	font-size: 150%;
+	font-weight: bold;
+	padding: 0;
+	margin: 1em 0 0 .3em;
+}
+
+hr
+{
+	border: none 0;
+	border-top: 1px solid #7F8FB1;
+	height: 1px;
+}
+
+pre.code
+{
+	display: block;
+	padding: 8px;
+	border: 1px dashed #ccc;
+}
+
+#index
+{
+	margin-top: 24px;
+	float: left;
+	width: 160px;
+	position: absolute;
+	left: 8px;
+	background-color: #F3F3F3;
+	padding: 8px;
+}
+
+#content
+{
+	margin-left: 190px;
+	width: 600px;
+}
+
+.classList
+{
+	list-style-type: none;
+	padding: 0;
+	margin: 0 0 0 8px;
+	font-family: arial, sans-serif;
+	font-size: 1em;
+	overflow: auto;
+}
+
+.classList li
+{
+	padding: 0;
+	margin: 0 0 8px 0;
+}
+
+.summaryTable { width: 100%; }
+
+h1.classTitle
+{
+	font-size:170%;
+	line-height:130%;
+}
+
+h2 { font-size: 110%; }
+caption, div.sectionTitle
+{
+	background-color: #7F8FB1;
+	color: #fff;
+	font-size:130%;
+	text-align: left;
+	padding: 2px 6px 2px 6px;
+	border: 1px #7F8FB1 solid;
+}
+
+div.sectionTitle { margin-bottom: 8px; }
+.summaryTable thead { display: none; }
+
+.summaryTable td
+{
+	vertical-align: top;
+	padding: 4px;
+	border-bottom: 1px #7F8FB1 solid;
+	border-right: 1px #7F8FB1 solid;
+}
+
+/*col#summaryAttributes {}*/
+.summaryTable td.attributes
+{
+	border-left: 1px #7F8FB1 solid;
+	width: 140px;
+	text-align: right;
+}
+
+td.attributes, .fixedFont
+{
+	line-height: 15px;
+	color: #002EBE;
+	font-family: "Courier New",Courier,monospace;
+	font-size: 13px;
+}
+
+.summaryTable td.nameDescription
+{
+	text-align: left;
+	font-size: 13px;
+	line-height: 15px;
+}
+
+.summaryTable td.nameDescription, .description
+{
+	line-height: 15px;
+	padding: 4px;
+	padding-left: 4px;
+}
+
+.summaryTable { margin-bottom: 8px; }
+
+ul.inheritsList
+{
+	list-style: square;
+	margin-left: 20px;
+	padding-left: 0;
+}
+
+.detailList {
+	margin-left: 20px; 
+	line-height: 15px;
+}
+.detailList dt { margin-left: 20px; }
+
+.detailList .heading
+{
+	font-weight: bold;
+	padding-bottom: 6px;
+	margin-left: 0;
+}
+
+.light, td.attributes, .light a:link, .light a:visited
+{
+	color: #777;
+	font-style: italic;
+}
+
+.fineprint
+{
+	text-align: right;
+	font-size: 10px;
+}
+		</style>
+	</head>
+
+	<body>
+<!-- ============================== header ================================= -->	
+		<!-- begin static/header.html -->
+		<div id="header">
+</div>
+		<!-- end static/header.html -->
+
+<!-- ============================== classes index ============================ -->
+		<div id="index">
+			<!-- begin publish.classesIndex -->
+			<div align="center"><a href="../index.html">Class Index</a>
+| <a href="../files.html">File Index</a></div>
+<hr />
+<h2>Classes</h2>
+<ul class="classList">
+	
+	<li><i><a href="../symbols/_global_.html">_global_</a></i></li>
+	
+	<li><a href="../symbols/jQuery.fn.minplayer.html">jQuery.fn.minplayer</a></li>
+	
+	<li><a href="../symbols/jQuery.fn.osmplayer.html">jQuery.fn.osmplayer</a></li>
+	
+	<li><a href="../symbols/minplayer.async.html">minplayer.async</a></li>
+	
+	<li><a href="../symbols/minplayer.compatibility.html">minplayer.compatibility</a></li>
+	
+	<li><a href="../symbols/minplayer.display.html">minplayer.display</a></li>
+	
+	<li><a href="../symbols/minplayer.file.html">minplayer.file</a></li>
+	
+	<li><a href="../symbols/minplayer.flags.html">minplayer.flags</a></li>
+	
+	<li><a href="../symbols/minplayer.image.html">minplayer.image</a></li>
+	
+	<li><a href="../symbols/minplayer.players.base.html">minplayer.players.base</a></li>
+	
+	<li><a href="../symbols/minplayer.players.flash.html">minplayer.players.flash</a></li>
+	
+	<li><a href="../symbols/minplayer.players.html5.html">minplayer.players.html5</a></li>
+	
+	<li><a href="../symbols/minplayer.players.minplayer.html">minplayer.players.minplayer</a></li>
+	
+	<li><a href="../symbols/minplayer.players.vimeo.html">minplayer.players.vimeo</a></li>
+	
+	<li><a href="../symbols/minplayer.players.youtube.html">minplayer.players.youtube</a></li>
+	
+	<li><a href="../symbols/minplayer.plugin.html">minplayer.plugin</a></li>
+	
+	<li><a href="../symbols/osmplayer.html">osmplayer</a></li>
+	
+	<li><a href="../symbols/osmplayer.pager.html">osmplayer.pager</a></li>
+	
+	<li><a href="../symbols/osmplayer.playlist.html">osmplayer.playlist</a></li>
+	
+	<li><a href="../symbols/osmplayer.teaser.html">osmplayer.teaser</a></li>
+	
+</ul>
+<hr />
+			<!-- end publish.classesIndex -->
+		</div>
+		
+		<div id="content">
+<!-- ============================== class title ============================ -->
+			<h1 class="classTitle">
+				
+				Built-In Namespace _global_
+			</h1>
+
+<!-- ============================== class summary ========================== -->			
+			<p class="description">
+				
+				
+			
+				
+				
+				
+			</p>
+
+<!-- ============================== constructor summary ==================== -->			
+			
+
+<!-- ============================== properties summary ===================== -->
+			
+				
+				
+				<table class="summaryTable" cellspacing="0" summary="A summary of the fields documented in the class _global_.">
+					<caption>Field Summary</caption>
+					<thead>
+						<tr>
+							<th scope="col">Field Attributes</th>
+							<th scope="col">Field Name and Description</th>
+						</tr>
+					</thead>
+					<tbody>
+					
+						<tr>
+							<td class="attributes">&nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont">
+								<b><a href="../symbols/_global_.html#minplayer">minplayer</a></b>
+								</div>
+								<div class="description">The minplayer namespace.</div>
+							</td>
+						</tr>
+					
+					</tbody>
+				</table>
+				
+				
+				
+			
+
+<!-- ============================== methods summary ======================== -->
+			
+				
+				
+				<table class="summaryTable" cellspacing="0" summary="A summary of the methods documented in the class _global_.">
+					<caption>Method Summary</caption>
+					<thead>
+						<tr>
+							<th scope="col">Method Attributes</th>
+							<th scope="col">Method Name and Description</th>
+						</tr>
+					</thead>
+					<tbody>
+					
+						<tr>
+							<td class="attributes">&nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont"><b><a href="../symbols/_global_.html#checkPlayType">checkPlayType</a></b>(elem, playType)
+								</div>
+								<div class="description"></div>
+							</td>
+						</tr>
+					
+						<tr>
+							<td class="attributes">&nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont"><b><a href="../symbols/_global_.html#getFeed">getFeed</a></b>(feed, start, numItems)
+								</div>
+								<div class="description"></div>
+							</td>
+						</tr>
+					
+						<tr>
+							<td class="attributes">&nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont"><b><a href="../symbols/_global_.html#getType">getType</a></b>(feed)
+								</div>
+								<div class="description"></div>
+							</td>
+						</tr>
+					
+						<tr>
+							<td class="attributes">&nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont"><b><a href="../symbols/_global_.html#parse">parse</a></b>(data)
+								</div>
+								<div class="description"></div>
+							</td>
+						</tr>
+					
+						<tr>
+							<td class="attributes">&nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont"><b><a href="../symbols/_global_.html#valid">valid</a></b>(feed)
+								</div>
+								<div class="description"></div>
+							</td>
+						</tr>
+					
+					</tbody>
+				</table>
+				
+				
+				
+			
+<!-- ============================== events summary ======================== -->
+			
+
+<!-- ============================== constructor details ==================== -->		
+			
+
+<!-- ============================== field details ========================== -->		
+			
+				<div class="sectionTitle">
+					Field Detail
+				</div>
+				
+					<a name="minplayer"> </a>
+					<div class="fixedFont">
+					
+					
+					<b>minplayer</b>
+					
+					</div>
+					<div class="description">
+						The minplayer namespace.
+						
+							<br />
+							<i>Defined in: </i> <a href="../symbols/src/minplayer_src_minplayer.compatibility.js.html">minplayer.compatibility.js</a>.
+						
+						
+					</div>
+					
+					
+
+						
+						
+						
+						
+
+					
+				
+			
+
+<!-- ============================== method details ========================= -->		
+			
+				<div class="sectionTitle">
+					Method Detail
+				</div>
+				
+					<a name="checkPlayType"> </a>
+					<div class="fixedFont">
+					
+					
+					<b>checkPlayType</b>(elem, playType)
+					
+					</div>
+					<div class="description">
+						
+						
+							<br />
+							<i>Defined in: </i> <a href="../symbols/src/minplayer_src_minplayer.compatibility.js.html">minplayer.compatibility.js</a>.
+						
+						
+					</div>
+					
+					
+					
+						
+							<dl class="detailList">
+							<dt class="heading">Parameters:</dt>
+							
+								<dt>
+									<b>elem</b>
+									
+								</dt>
+								<dd></dd>
+							
+								<dt>
+									<b>playType</b>
+									
+								</dt>
+								<dd></dd>
+							
+							</dl>
+						
+						
+						
+						
+						
+						
+						
+
+					<hr />
+				
+					<a name="getFeed"> </a>
+					<div class="fixedFont">
+					
+					
+					<b>getFeed</b>(feed, start, numItems)
+					
+					</div>
+					<div class="description">
+						
+						
+							<br />
+							<i>Defined in: </i> <a href="../symbols/src/src_osmplayer.parser.default.js.html">osmplayer.parser.default.js</a>.
+						
+						
+					</div>
+					
+					
+					
+						
+							<dl class="detailList">
+							<dt class="heading">Parameters:</dt>
+							
+								<dt>
+									<b>feed</b>
+									
+								</dt>
+								<dd></dd>
+							
+								<dt>
+									<b>start</b>
+									
+								</dt>
+								<dd></dd>
+							
+								<dt>
+									<b>numItems</b>
+									
+								</dt>
+								<dd></dd>
+							
+							</dl>
+						
+						
+						
+						
+						
+						
+						
+
+					<hr />
+				
+					<a name="getType"> </a>
+					<div class="fixedFont">
+					
+					
+					<b>getType</b>(feed)
+					
+					</div>
+					<div class="description">
+						
+						
+							<br />
+							<i>Defined in: </i> <a href="../symbols/src/src_osmplayer.parser.default.js.html">osmplayer.parser.default.js</a>.
+						
+						
+					</div>
+					
+					
+					
+						
+							<dl class="detailList">
+							<dt class="heading">Parameters:</dt>
+							
+								<dt>
+									<b>feed</b>
+									
+								</dt>
+								<dd></dd>
+							
+							</dl>
+						
+						
+						
+						
+						
+						
+						
+
+					<hr />
+				
+					<a name="parse"> </a>
+					<div class="fixedFont">
+					
+					
+					<b>parse</b>(data)
+					
+					</div>
+					<div class="description">
+						
+						
+							<br />
+							<i>Defined in: </i> <a href="../symbols/src/src_osmplayer.parser.default.js.html">osmplayer.parser.default.js</a>.
+						
+						
+					</div>
+					
+					
+					
+						
+							<dl class="detailList">
+							<dt class="heading">Parameters:</dt>
+							
+								<dt>
+									<b>data</b>
+									
+								</dt>
+								<dd></dd>
+							
+							</dl>
+						
+						
+						
+						
+						
+						
+						
+
+					<hr />
+				
+					<a name="valid"> </a>
+					<div class="fixedFont">
+					
+					
+					<b>valid</b>(feed)
+					
+					</div>
+					<div class="description">
+						
+						
+							<br />
+							<i>Defined in: </i> <a href="../symbols/src/src_osmplayer.parser.default.js.html">osmplayer.parser.default.js</a>.
+						
+						
+					</div>
+					
+					
+					
+						
+							<dl class="detailList">
+							<dt class="heading">Parameters:</dt>
+							
+								<dt>
+									<b>feed</b>
+									
+								</dt>
+								<dd></dd>
+							
+							</dl>
+						
+						
+						
+						
+						
+						
+						
+
+					
+				
+			
+			
+<!-- ============================== event details ========================= -->		
+			
+			
+			<hr />
+		</div>
+
+		
+<!-- ============================== footer ================================= -->
+		<div class="fineprint" style="clear:both">
+			
+			Documentation generated by <a href="http://code.google.com/p/jsdoc-toolkit/" target="_blank">JsDoc Toolkit</a> 2.4.0 on Sun Aug 19 2012 12:11:27 GMT-0500 (CDT)
+		</div>
+	</body>
+</html>
diff --git a/public/admin/js/osmplayer/doc/symbols/jQuery.fn.minplayer.html b/public/admin/js/osmplayer/doc/symbols/jQuery.fn.minplayer.html
new file mode 100644
index 00000000000..f630c0ba1d0
--- /dev/null
+++ b/public/admin/js/osmplayer/doc/symbols/jQuery.fn.minplayer.html
@@ -0,0 +1,355 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+        "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+	<head>
+		<meta http-equiv="content-type" content="text/html; charset=utf-8" />
+		<meta name="generator" content="JsDoc Toolkit" />
+		
+		<title>JsDoc Reference - jQuery.fn.minplayer</title>
+
+		<style type="text/css">
+			/* default.css */
+body
+{
+	font: 12px "Lucida Grande", Tahoma, Arial, Helvetica, sans-serif;
+	width: 800px;
+}
+
+.header
+{
+	clear: both;
+	background-color: #ccc;
+	padding: 8px;
+}
+
+h1
+{
+	font-size: 150%;
+	font-weight: bold;
+	padding: 0;
+	margin: 1em 0 0 .3em;
+}
+
+hr
+{
+	border: none 0;
+	border-top: 1px solid #7F8FB1;
+	height: 1px;
+}
+
+pre.code
+{
+	display: block;
+	padding: 8px;
+	border: 1px dashed #ccc;
+}
+
+#index
+{
+	margin-top: 24px;
+	float: left;
+	width: 160px;
+	position: absolute;
+	left: 8px;
+	background-color: #F3F3F3;
+	padding: 8px;
+}
+
+#content
+{
+	margin-left: 190px;
+	width: 600px;
+}
+
+.classList
+{
+	list-style-type: none;
+	padding: 0;
+	margin: 0 0 0 8px;
+	font-family: arial, sans-serif;
+	font-size: 1em;
+	overflow: auto;
+}
+
+.classList li
+{
+	padding: 0;
+	margin: 0 0 8px 0;
+}
+
+.summaryTable { width: 100%; }
+
+h1.classTitle
+{
+	font-size:170%;
+	line-height:130%;
+}
+
+h2 { font-size: 110%; }
+caption, div.sectionTitle
+{
+	background-color: #7F8FB1;
+	color: #fff;
+	font-size:130%;
+	text-align: left;
+	padding: 2px 6px 2px 6px;
+	border: 1px #7F8FB1 solid;
+}
+
+div.sectionTitle { margin-bottom: 8px; }
+.summaryTable thead { display: none; }
+
+.summaryTable td
+{
+	vertical-align: top;
+	padding: 4px;
+	border-bottom: 1px #7F8FB1 solid;
+	border-right: 1px #7F8FB1 solid;
+}
+
+/*col#summaryAttributes {}*/
+.summaryTable td.attributes
+{
+	border-left: 1px #7F8FB1 solid;
+	width: 140px;
+	text-align: right;
+}
+
+td.attributes, .fixedFont
+{
+	line-height: 15px;
+	color: #002EBE;
+	font-family: "Courier New",Courier,monospace;
+	font-size: 13px;
+}
+
+.summaryTable td.nameDescription
+{
+	text-align: left;
+	font-size: 13px;
+	line-height: 15px;
+}
+
+.summaryTable td.nameDescription, .description
+{
+	line-height: 15px;
+	padding: 4px;
+	padding-left: 4px;
+}
+
+.summaryTable { margin-bottom: 8px; }
+
+ul.inheritsList
+{
+	list-style: square;
+	margin-left: 20px;
+	padding-left: 0;
+}
+
+.detailList {
+	margin-left: 20px; 
+	line-height: 15px;
+}
+.detailList dt { margin-left: 20px; }
+
+.detailList .heading
+{
+	font-weight: bold;
+	padding-bottom: 6px;
+	margin-left: 0;
+}
+
+.light, td.attributes, .light a:link, .light a:visited
+{
+	color: #777;
+	font-style: italic;
+}
+
+.fineprint
+{
+	text-align: right;
+	font-size: 10px;
+}
+		</style>
+	</head>
+
+	<body>
+<!-- ============================== header ================================= -->	
+		<!-- begin static/header.html -->
+		<div id="header">
+</div>
+		<!-- end static/header.html -->
+
+<!-- ============================== classes index ============================ -->
+		<div id="index">
+			<!-- begin publish.classesIndex -->
+			<div align="center"><a href="../index.html">Class Index</a>
+| <a href="../files.html">File Index</a></div>
+<hr />
+<h2>Classes</h2>
+<ul class="classList">
+	
+	<li><i><a href="../symbols/_global_.html">_global_</a></i></li>
+	
+	<li><a href="../symbols/jQuery.fn.minplayer.html">jQuery.fn.minplayer</a></li>
+	
+	<li><a href="../symbols/jQuery.fn.osmplayer.html">jQuery.fn.osmplayer</a></li>
+	
+	<li><a href="../symbols/minplayer.async.html">minplayer.async</a></li>
+	
+	<li><a href="../symbols/minplayer.compatibility.html">minplayer.compatibility</a></li>
+	
+	<li><a href="../symbols/minplayer.display.html">minplayer.display</a></li>
+	
+	<li><a href="../symbols/minplayer.file.html">minplayer.file</a></li>
+	
+	<li><a href="../symbols/minplayer.flags.html">minplayer.flags</a></li>
+	
+	<li><a href="../symbols/minplayer.image.html">minplayer.image</a></li>
+	
+	<li><a href="../symbols/minplayer.players.base.html">minplayer.players.base</a></li>
+	
+	<li><a href="../symbols/minplayer.players.flash.html">minplayer.players.flash</a></li>
+	
+	<li><a href="../symbols/minplayer.players.html5.html">minplayer.players.html5</a></li>
+	
+	<li><a href="../symbols/minplayer.players.minplayer.html">minplayer.players.minplayer</a></li>
+	
+	<li><a href="../symbols/minplayer.players.vimeo.html">minplayer.players.vimeo</a></li>
+	
+	<li><a href="../symbols/minplayer.players.youtube.html">minplayer.players.youtube</a></li>
+	
+	<li><a href="../symbols/minplayer.plugin.html">minplayer.plugin</a></li>
+	
+	<li><a href="../symbols/osmplayer.html">osmplayer</a></li>
+	
+	<li><a href="../symbols/osmplayer.pager.html">osmplayer.pager</a></li>
+	
+	<li><a href="../symbols/osmplayer.playlist.html">osmplayer.playlist</a></li>
+	
+	<li><a href="../symbols/osmplayer.teaser.html">osmplayer.teaser</a></li>
+	
+</ul>
+<hr />
+			<!-- end publish.classesIndex -->
+		</div>
+		
+		<div id="content">
+<!-- ============================== class title ============================ -->
+			<h1 class="classTitle">
+				
+				Class jQuery.fn.minplayer
+			</h1>
+
+<!-- ============================== class summary ========================== -->			
+			<p class="description">
+				
+				
+			
+				
+				
+				
+					<br /><i>Defined in: </i> <a href="../symbols/src/minplayer_src_minplayer.js.html">minplayer.js</a>.
+				
+			</p>
+
+<!-- ============================== constructor summary ==================== -->			
+			
+			<table class="summaryTable" cellspacing="0" summary="A summary of the constructor documented in the class jQuery.fn.minplayer.">
+				<caption>Class Summary</caption>
+				<thead>
+					<tr>
+						<th scope="col">Constructor Attributes</th>
+						<th scope="col">Constructor Name and Description</th>
+					</tr>
+				</thead>
+				<tbody>
+					<tr>
+						<td class="attributes">&nbsp;</td>
+						<td class="nameDescription" >
+							<div class="fixedFont">
+								<b><a href="../symbols/jQuery.fn.minplayer.html#constructor">jQuery.fn.minplayer</a></b>(options)
+							</div>
+							<div class="description"></div>
+						</td>
+					</tr>
+				</tbody>
+			</table>
+			
+
+<!-- ============================== properties summary ===================== -->
+			
+
+<!-- ============================== methods summary ======================== -->
+			
+<!-- ============================== events summary ======================== -->
+			
+
+<!-- ============================== constructor details ==================== -->		
+			
+			<div class="details"><a name="constructor"> </a>
+				<div class="sectionTitle">
+					Class Detail
+				</div>
+				
+				<div class="fixedFont">
+						<b>jQuery.fn.minplayer</b>(options)
+				</div>
+				
+				<div class="description">
+					
+					
+				</div>
+				
+				
+				
+				
+					
+						<dl class="detailList">
+						<dt class="heading">Parameters:</dt>
+						
+							<dt>
+								<span class="light fixedFont">{object}</span>  <b>options</b>
+								
+							</dt>
+								<dd>The options for this jQuery prototype.</dd>
+						
+						</dl>
+					
+					
+					
+					
+					
+						<dl class="detailList">
+						<dt class="heading">Returns:</dt>
+						
+								<dd><span class="light fixedFont">{Array}</span> jQuery object.</dd>
+						
+						</dl>
+					
+					
+					
+
+			</div>
+			
+
+<!-- ============================== field details ========================== -->		
+			
+
+<!-- ============================== method details ========================= -->		
+			
+			
+<!-- ============================== event details ========================= -->		
+			
+			
+			<hr />
+		</div>
+
+		
+<!-- ============================== footer ================================= -->
+		<div class="fineprint" style="clear:both">
+			
+			Documentation generated by <a href="http://code.google.com/p/jsdoc-toolkit/" target="_blank">JsDoc Toolkit</a> 2.4.0 on Sun Aug 19 2012 12:11:27 GMT-0500 (CDT)
+		</div>
+	</body>
+</html>
diff --git a/public/admin/js/osmplayer/doc/symbols/jQuery.fn.osmplayer.html b/public/admin/js/osmplayer/doc/symbols/jQuery.fn.osmplayer.html
new file mode 100644
index 00000000000..1ee35a2254c
--- /dev/null
+++ b/public/admin/js/osmplayer/doc/symbols/jQuery.fn.osmplayer.html
@@ -0,0 +1,355 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+        "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+	<head>
+		<meta http-equiv="content-type" content="text/html; charset=utf-8" />
+		<meta name="generator" content="JsDoc Toolkit" />
+		
+		<title>JsDoc Reference - jQuery.fn.osmplayer</title>
+
+		<style type="text/css">
+			/* default.css */
+body
+{
+	font: 12px "Lucida Grande", Tahoma, Arial, Helvetica, sans-serif;
+	width: 800px;
+}
+
+.header
+{
+	clear: both;
+	background-color: #ccc;
+	padding: 8px;
+}
+
+h1
+{
+	font-size: 150%;
+	font-weight: bold;
+	padding: 0;
+	margin: 1em 0 0 .3em;
+}
+
+hr
+{
+	border: none 0;
+	border-top: 1px solid #7F8FB1;
+	height: 1px;
+}
+
+pre.code
+{
+	display: block;
+	padding: 8px;
+	border: 1px dashed #ccc;
+}
+
+#index
+{
+	margin-top: 24px;
+	float: left;
+	width: 160px;
+	position: absolute;
+	left: 8px;
+	background-color: #F3F3F3;
+	padding: 8px;
+}
+
+#content
+{
+	margin-left: 190px;
+	width: 600px;
+}
+
+.classList
+{
+	list-style-type: none;
+	padding: 0;
+	margin: 0 0 0 8px;
+	font-family: arial, sans-serif;
+	font-size: 1em;
+	overflow: auto;
+}
+
+.classList li
+{
+	padding: 0;
+	margin: 0 0 8px 0;
+}
+
+.summaryTable { width: 100%; }
+
+h1.classTitle
+{
+	font-size:170%;
+	line-height:130%;
+}
+
+h2 { font-size: 110%; }
+caption, div.sectionTitle
+{
+	background-color: #7F8FB1;
+	color: #fff;
+	font-size:130%;
+	text-align: left;
+	padding: 2px 6px 2px 6px;
+	border: 1px #7F8FB1 solid;
+}
+
+div.sectionTitle { margin-bottom: 8px; }
+.summaryTable thead { display: none; }
+
+.summaryTable td
+{
+	vertical-align: top;
+	padding: 4px;
+	border-bottom: 1px #7F8FB1 solid;
+	border-right: 1px #7F8FB1 solid;
+}
+
+/*col#summaryAttributes {}*/
+.summaryTable td.attributes
+{
+	border-left: 1px #7F8FB1 solid;
+	width: 140px;
+	text-align: right;
+}
+
+td.attributes, .fixedFont
+{
+	line-height: 15px;
+	color: #002EBE;
+	font-family: "Courier New",Courier,monospace;
+	font-size: 13px;
+}
+
+.summaryTable td.nameDescription
+{
+	text-align: left;
+	font-size: 13px;
+	line-height: 15px;
+}
+
+.summaryTable td.nameDescription, .description
+{
+	line-height: 15px;
+	padding: 4px;
+	padding-left: 4px;
+}
+
+.summaryTable { margin-bottom: 8px; }
+
+ul.inheritsList
+{
+	list-style: square;
+	margin-left: 20px;
+	padding-left: 0;
+}
+
+.detailList {
+	margin-left: 20px; 
+	line-height: 15px;
+}
+.detailList dt { margin-left: 20px; }
+
+.detailList .heading
+{
+	font-weight: bold;
+	padding-bottom: 6px;
+	margin-left: 0;
+}
+
+.light, td.attributes, .light a:link, .light a:visited
+{
+	color: #777;
+	font-style: italic;
+}
+
+.fineprint
+{
+	text-align: right;
+	font-size: 10px;
+}
+		</style>
+	</head>
+
+	<body>
+<!-- ============================== header ================================= -->	
+		<!-- begin static/header.html -->
+		<div id="header">
+</div>
+		<!-- end static/header.html -->
+
+<!-- ============================== classes index ============================ -->
+		<div id="index">
+			<!-- begin publish.classesIndex -->
+			<div align="center"><a href="../index.html">Class Index</a>
+| <a href="../files.html">File Index</a></div>
+<hr />
+<h2>Classes</h2>
+<ul class="classList">
+	
+	<li><i><a href="../symbols/_global_.html">_global_</a></i></li>
+	
+	<li><a href="../symbols/jQuery.fn.minplayer.html">jQuery.fn.minplayer</a></li>
+	
+	<li><a href="../symbols/jQuery.fn.osmplayer.html">jQuery.fn.osmplayer</a></li>
+	
+	<li><a href="../symbols/minplayer.async.html">minplayer.async</a></li>
+	
+	<li><a href="../symbols/minplayer.compatibility.html">minplayer.compatibility</a></li>
+	
+	<li><a href="../symbols/minplayer.display.html">minplayer.display</a></li>
+	
+	<li><a href="../symbols/minplayer.file.html">minplayer.file</a></li>
+	
+	<li><a href="../symbols/minplayer.flags.html">minplayer.flags</a></li>
+	
+	<li><a href="../symbols/minplayer.image.html">minplayer.image</a></li>
+	
+	<li><a href="../symbols/minplayer.players.base.html">minplayer.players.base</a></li>
+	
+	<li><a href="../symbols/minplayer.players.flash.html">minplayer.players.flash</a></li>
+	
+	<li><a href="../symbols/minplayer.players.html5.html">minplayer.players.html5</a></li>
+	
+	<li><a href="../symbols/minplayer.players.minplayer.html">minplayer.players.minplayer</a></li>
+	
+	<li><a href="../symbols/minplayer.players.vimeo.html">minplayer.players.vimeo</a></li>
+	
+	<li><a href="../symbols/minplayer.players.youtube.html">minplayer.players.youtube</a></li>
+	
+	<li><a href="../symbols/minplayer.plugin.html">minplayer.plugin</a></li>
+	
+	<li><a href="../symbols/osmplayer.html">osmplayer</a></li>
+	
+	<li><a href="../symbols/osmplayer.pager.html">osmplayer.pager</a></li>
+	
+	<li><a href="../symbols/osmplayer.playlist.html">osmplayer.playlist</a></li>
+	
+	<li><a href="../symbols/osmplayer.teaser.html">osmplayer.teaser</a></li>
+	
+</ul>
+<hr />
+			<!-- end publish.classesIndex -->
+		</div>
+		
+		<div id="content">
+<!-- ============================== class title ============================ -->
+			<h1 class="classTitle">
+				
+				Class jQuery.fn.osmplayer
+			</h1>
+
+<!-- ============================== class summary ========================== -->			
+			<p class="description">
+				
+				
+			
+				
+				
+				
+					<br /><i>Defined in: </i> <a href="../symbols/src/src_osmplayer.js.html">osmplayer.js</a>.
+				
+			</p>
+
+<!-- ============================== constructor summary ==================== -->			
+			
+			<table class="summaryTable" cellspacing="0" summary="A summary of the constructor documented in the class jQuery.fn.osmplayer.">
+				<caption>Class Summary</caption>
+				<thead>
+					<tr>
+						<th scope="col">Constructor Attributes</th>
+						<th scope="col">Constructor Name and Description</th>
+					</tr>
+				</thead>
+				<tbody>
+					<tr>
+						<td class="attributes">&nbsp;</td>
+						<td class="nameDescription" >
+							<div class="fixedFont">
+								<b><a href="../symbols/jQuery.fn.osmplayer.html#constructor">jQuery.fn.osmplayer</a></b>(options)
+							</div>
+							<div class="description"></div>
+						</td>
+					</tr>
+				</tbody>
+			</table>
+			
+
+<!-- ============================== properties summary ===================== -->
+			
+
+<!-- ============================== methods summary ======================== -->
+			
+<!-- ============================== events summary ======================== -->
+			
+
+<!-- ============================== constructor details ==================== -->		
+			
+			<div class="details"><a name="constructor"> </a>
+				<div class="sectionTitle">
+					Class Detail
+				</div>
+				
+				<div class="fixedFont">
+						<b>jQuery.fn.osmplayer</b>(options)
+				</div>
+				
+				<div class="description">
+					
+					
+				</div>
+				
+				
+				
+				
+					
+						<dl class="detailList">
+						<dt class="heading">Parameters:</dt>
+						
+							<dt>
+								<span class="light fixedFont">{object}</span>  <b>options</b>
+								
+							</dt>
+								<dd>The options for this jQuery prototype.</dd>
+						
+						</dl>
+					
+					
+					
+					
+					
+						<dl class="detailList">
+						<dt class="heading">Returns:</dt>
+						
+								<dd><span class="light fixedFont">{Array}</span> jQuery object.</dd>
+						
+						</dl>
+					
+					
+					
+
+			</div>
+			
+
+<!-- ============================== field details ========================== -->		
+			
+
+<!-- ============================== method details ========================= -->		
+			
+			
+<!-- ============================== event details ========================= -->		
+			
+			
+			<hr />
+		</div>
+
+		
+<!-- ============================== footer ================================= -->
+		<div class="fineprint" style="clear:both">
+			
+			Documentation generated by <a href="http://code.google.com/p/jsdoc-toolkit/" target="_blank">JsDoc Toolkit</a> 2.4.0 on Sun Aug 19 2012 12:11:27 GMT-0500 (CDT)
+		</div>
+	</body>
+</html>
diff --git a/public/admin/js/osmplayer/doc/symbols/minplayer.async.html b/public/admin/js/osmplayer/doc/symbols/minplayer.async.html
new file mode 100644
index 00000000000..12d41d84c4a
--- /dev/null
+++ b/public/admin/js/osmplayer/doc/symbols/minplayer.async.html
@@ -0,0 +1,545 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+        "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+	<head>
+		<meta http-equiv="content-type" content="text/html; charset=utf-8" />
+		<meta name="generator" content="JsDoc Toolkit" />
+		
+		<title>JsDoc Reference - minplayer.async</title>
+
+		<style type="text/css">
+			/* default.css */
+body
+{
+	font: 12px "Lucida Grande", Tahoma, Arial, Helvetica, sans-serif;
+	width: 800px;
+}
+
+.header
+{
+	clear: both;
+	background-color: #ccc;
+	padding: 8px;
+}
+
+h1
+{
+	font-size: 150%;
+	font-weight: bold;
+	padding: 0;
+	margin: 1em 0 0 .3em;
+}
+
+hr
+{
+	border: none 0;
+	border-top: 1px solid #7F8FB1;
+	height: 1px;
+}
+
+pre.code
+{
+	display: block;
+	padding: 8px;
+	border: 1px dashed #ccc;
+}
+
+#index
+{
+	margin-top: 24px;
+	float: left;
+	width: 160px;
+	position: absolute;
+	left: 8px;
+	background-color: #F3F3F3;
+	padding: 8px;
+}
+
+#content
+{
+	margin-left: 190px;
+	width: 600px;
+}
+
+.classList
+{
+	list-style-type: none;
+	padding: 0;
+	margin: 0 0 0 8px;
+	font-family: arial, sans-serif;
+	font-size: 1em;
+	overflow: auto;
+}
+
+.classList li
+{
+	padding: 0;
+	margin: 0 0 8px 0;
+}
+
+.summaryTable { width: 100%; }
+
+h1.classTitle
+{
+	font-size:170%;
+	line-height:130%;
+}
+
+h2 { font-size: 110%; }
+caption, div.sectionTitle
+{
+	background-color: #7F8FB1;
+	color: #fff;
+	font-size:130%;
+	text-align: left;
+	padding: 2px 6px 2px 6px;
+	border: 1px #7F8FB1 solid;
+}
+
+div.sectionTitle { margin-bottom: 8px; }
+.summaryTable thead { display: none; }
+
+.summaryTable td
+{
+	vertical-align: top;
+	padding: 4px;
+	border-bottom: 1px #7F8FB1 solid;
+	border-right: 1px #7F8FB1 solid;
+}
+
+/*col#summaryAttributes {}*/
+.summaryTable td.attributes
+{
+	border-left: 1px #7F8FB1 solid;
+	width: 140px;
+	text-align: right;
+}
+
+td.attributes, .fixedFont
+{
+	line-height: 15px;
+	color: #002EBE;
+	font-family: "Courier New",Courier,monospace;
+	font-size: 13px;
+}
+
+.summaryTable td.nameDescription
+{
+	text-align: left;
+	font-size: 13px;
+	line-height: 15px;
+}
+
+.summaryTable td.nameDescription, .description
+{
+	line-height: 15px;
+	padding: 4px;
+	padding-left: 4px;
+}
+
+.summaryTable { margin-bottom: 8px; }
+
+ul.inheritsList
+{
+	list-style: square;
+	margin-left: 20px;
+	padding-left: 0;
+}
+
+.detailList {
+	margin-left: 20px; 
+	line-height: 15px;
+}
+.detailList dt { margin-left: 20px; }
+
+.detailList .heading
+{
+	font-weight: bold;
+	padding-bottom: 6px;
+	margin-left: 0;
+}
+
+.light, td.attributes, .light a:link, .light a:visited
+{
+	color: #777;
+	font-style: italic;
+}
+
+.fineprint
+{
+	text-align: right;
+	font-size: 10px;
+}
+		</style>
+	</head>
+
+	<body>
+<!-- ============================== header ================================= -->	
+		<!-- begin static/header.html -->
+		<div id="header">
+</div>
+		<!-- end static/header.html -->
+
+<!-- ============================== classes index ============================ -->
+		<div id="index">
+			<!-- begin publish.classesIndex -->
+			<div align="center"><a href="../index.html">Class Index</a>
+| <a href="../files.html">File Index</a></div>
+<hr />
+<h2>Classes</h2>
+<ul class="classList">
+	
+	<li><i><a href="../symbols/_global_.html">_global_</a></i></li>
+	
+	<li><a href="../symbols/jQuery.fn.minplayer.html">jQuery.fn.minplayer</a></li>
+	
+	<li><a href="../symbols/jQuery.fn.osmplayer.html">jQuery.fn.osmplayer</a></li>
+	
+	<li><a href="../symbols/minplayer.async.html">minplayer.async</a></li>
+	
+	<li><a href="../symbols/minplayer.compatibility.html">minplayer.compatibility</a></li>
+	
+	<li><a href="../symbols/minplayer.display.html">minplayer.display</a></li>
+	
+	<li><a href="../symbols/minplayer.file.html">minplayer.file</a></li>
+	
+	<li><a href="../symbols/minplayer.flags.html">minplayer.flags</a></li>
+	
+	<li><a href="../symbols/minplayer.image.html">minplayer.image</a></li>
+	
+	<li><a href="../symbols/minplayer.players.base.html">minplayer.players.base</a></li>
+	
+	<li><a href="../symbols/minplayer.players.flash.html">minplayer.players.flash</a></li>
+	
+	<li><a href="../symbols/minplayer.players.html5.html">minplayer.players.html5</a></li>
+	
+	<li><a href="../symbols/minplayer.players.minplayer.html">minplayer.players.minplayer</a></li>
+	
+	<li><a href="../symbols/minplayer.players.vimeo.html">minplayer.players.vimeo</a></li>
+	
+	<li><a href="../symbols/minplayer.players.youtube.html">minplayer.players.youtube</a></li>
+	
+	<li><a href="../symbols/minplayer.plugin.html">minplayer.plugin</a></li>
+	
+	<li><a href="../symbols/osmplayer.html">osmplayer</a></li>
+	
+	<li><a href="../symbols/osmplayer.pager.html">osmplayer.pager</a></li>
+	
+	<li><a href="../symbols/osmplayer.playlist.html">osmplayer.playlist</a></li>
+	
+	<li><a href="../symbols/osmplayer.teaser.html">osmplayer.teaser</a></li>
+	
+</ul>
+<hr />
+			<!-- end publish.classesIndex -->
+		</div>
+		
+		<div id="content">
+<!-- ============================== class title ============================ -->
+			<h1 class="classTitle">
+				
+				Class minplayer.async
+			</h1>
+
+<!-- ============================== class summary ========================== -->			
+			<p class="description">
+				
+				
+			
+				This class keeps track of asynchronous get requests for certain
+variables within the player.
+				
+				
+					<br /><i>Defined in: </i> <a href="../symbols/src/minplayer_src_minplayer.async.js.html">minplayer.async.js</a>.
+				
+			</p>
+
+<!-- ============================== constructor summary ==================== -->			
+			
+			<table class="summaryTable" cellspacing="0" summary="A summary of the constructor documented in the class minplayer.async.">
+				<caption>Class Summary</caption>
+				<thead>
+					<tr>
+						<th scope="col">Constructor Attributes</th>
+						<th scope="col">Constructor Name and Description</th>
+					</tr>
+				</thead>
+				<tbody>
+					<tr>
+						<td class="attributes">&nbsp;</td>
+						<td class="nameDescription" >
+							<div class="fixedFont">
+								<b><a href="../symbols/minplayer.async.html#constructor">minplayer.async</a></b>()
+							</div>
+							<div class="description"></div>
+						</td>
+					</tr>
+				</tbody>
+			</table>
+			
+
+<!-- ============================== properties summary ===================== -->
+			
+				
+				
+				<table class="summaryTable" cellspacing="0" summary="A summary of the fields documented in the class minplayer.async.">
+					<caption>Field Summary</caption>
+					<thead>
+						<tr>
+							<th scope="col">Field Attributes</th>
+							<th scope="col">Field Name and Description</th>
+						</tr>
+					</thead>
+					<tbody>
+					
+						<tr>
+							<td class="attributes">&nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont">
+								<b><a href="../symbols/minplayer.async.html#queue">queue</a></b>
+								</div>
+								<div class="description">The queue of callbacks to call when this value is determined.</div>
+							</td>
+						</tr>
+					
+						<tr>
+							<td class="attributes">&nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont">
+								<b><a href="../symbols/minplayer.async.html#value">value</a></b>
+								</div>
+								<div class="description">The final value of this asynchronous variable.</div>
+							</td>
+						</tr>
+					
+					</tbody>
+				</table>
+				
+				
+				
+			
+
+<!-- ============================== methods summary ======================== -->
+			
+				
+				
+				<table class="summaryTable" cellspacing="0" summary="A summary of the methods documented in the class minplayer.async.">
+					<caption>Method Summary</caption>
+					<thead>
+						<tr>
+							<th scope="col">Method Attributes</th>
+							<th scope="col">Method Name and Description</th>
+						</tr>
+					</thead>
+					<tbody>
+					
+						<tr>
+							<td class="attributes">&nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont"><b><a href="../symbols/minplayer.async.html#get">get</a></b>(callback, pollValue)
+								</div>
+								<div class="description">Retrieve the value of this variable.</div>
+							</td>
+						</tr>
+					
+						<tr>
+							<td class="attributes">&nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont"><b><a href="../symbols/minplayer.async.html#set">set</a></b>(val)
+								</div>
+								<div class="description">Sets the value of an asynchronous value.</div>
+							</td>
+						</tr>
+					
+					</tbody>
+				</table>
+				
+				
+				
+			
+<!-- ============================== events summary ======================== -->
+			
+
+<!-- ============================== constructor details ==================== -->		
+			
+			<div class="details"><a name="constructor"> </a>
+				<div class="sectionTitle">
+					Class Detail
+				</div>
+				
+				<div class="fixedFont">
+						<b>minplayer.async</b>()
+				</div>
+				
+				<div class="description">
+					
+					
+				</div>
+				
+				
+				
+				
+					
+					
+					
+					
+					
+					
+					
+
+			</div>
+			
+
+<!-- ============================== field details ========================== -->		
+			
+				<div class="sectionTitle">
+					Field Detail
+				</div>
+				
+					<a name="queue"> </a>
+					<div class="fixedFont">
+					
+					
+					<b>queue</b>
+					
+					</div>
+					<div class="description">
+						The queue of callbacks to call when this value is determined.
+						
+						
+					</div>
+					
+					
+
+						
+						
+						
+						
+
+					<hr />
+				
+					<a name="value"> </a>
+					<div class="fixedFont">
+					
+					
+					<b>value</b>
+					
+					</div>
+					<div class="description">
+						The final value of this asynchronous variable.
+						
+						
+					</div>
+					
+					
+
+						
+						
+						
+						
+
+					
+				
+			
+
+<!-- ============================== method details ========================= -->		
+			
+				<div class="sectionTitle">
+					Method Detail
+				</div>
+				
+					<a name="get"> </a>
+					<div class="fixedFont">
+					
+					
+					<b>get</b>(callback, pollValue)
+					
+					</div>
+					<div class="description">
+						Retrieve the value of this variable.
+						
+						
+					</div>
+					
+					
+					
+						
+							<dl class="detailList">
+							<dt class="heading">Parameters:</dt>
+							
+								<dt>
+									<span class="light fixedFont">{function}</span> <b>callback</b>
+									
+								</dt>
+								<dd>The function to call when the value is determined.</dd>
+							
+								<dt>
+									<span class="light fixedFont">{function}</span> <b>pollValue</b>
+									
+								</dt>
+								<dd>The poll function to try and get the value every
+1 second if the value is not set.</dd>
+							
+							</dl>
+						
+						
+						
+						
+						
+						
+						
+
+					<hr />
+				
+					<a name="set"> </a>
+					<div class="fixedFont">
+					
+					
+					<b>set</b>(val)
+					
+					</div>
+					<div class="description">
+						Sets the value of an asynchronous value.
+						
+						
+					</div>
+					
+					
+					
+						
+							<dl class="detailList">
+							<dt class="heading">Parameters:</dt>
+							
+								<dt>
+									<span class="light fixedFont">{void}</span> <b>val</b>
+									
+								</dt>
+								<dd>The value to set.</dd>
+							
+							</dl>
+						
+						
+						
+						
+						
+						
+						
+
+					
+				
+			
+			
+<!-- ============================== event details ========================= -->		
+			
+			
+			<hr />
+		</div>
+
+		
+<!-- ============================== footer ================================= -->
+		<div class="fineprint" style="clear:both">
+			
+			Documentation generated by <a href="http://code.google.com/p/jsdoc-toolkit/" target="_blank">JsDoc Toolkit</a> 2.4.0 on Sun Aug 19 2012 12:11:27 GMT-0500 (CDT)
+		</div>
+	</body>
+</html>
diff --git a/public/admin/js/osmplayer/doc/symbols/minplayer.compatibility.html b/public/admin/js/osmplayer/doc/symbols/minplayer.compatibility.html
new file mode 100644
index 00000000000..ed9202b2a15
--- /dev/null
+++ b/public/admin/js/osmplayer/doc/symbols/minplayer.compatibility.html
@@ -0,0 +1,582 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+        "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+	<head>
+		<meta http-equiv="content-type" content="text/html; charset=utf-8" />
+		<meta name="generator" content="JsDoc Toolkit" />
+		
+		<title>JsDoc Reference - minplayer.compatibility</title>
+
+		<style type="text/css">
+			/* default.css */
+body
+{
+	font: 12px "Lucida Grande", Tahoma, Arial, Helvetica, sans-serif;
+	width: 800px;
+}
+
+.header
+{
+	clear: both;
+	background-color: #ccc;
+	padding: 8px;
+}
+
+h1
+{
+	font-size: 150%;
+	font-weight: bold;
+	padding: 0;
+	margin: 1em 0 0 .3em;
+}
+
+hr
+{
+	border: none 0;
+	border-top: 1px solid #7F8FB1;
+	height: 1px;
+}
+
+pre.code
+{
+	display: block;
+	padding: 8px;
+	border: 1px dashed #ccc;
+}
+
+#index
+{
+	margin-top: 24px;
+	float: left;
+	width: 160px;
+	position: absolute;
+	left: 8px;
+	background-color: #F3F3F3;
+	padding: 8px;
+}
+
+#content
+{
+	margin-left: 190px;
+	width: 600px;
+}
+
+.classList
+{
+	list-style-type: none;
+	padding: 0;
+	margin: 0 0 0 8px;
+	font-family: arial, sans-serif;
+	font-size: 1em;
+	overflow: auto;
+}
+
+.classList li
+{
+	padding: 0;
+	margin: 0 0 8px 0;
+}
+
+.summaryTable { width: 100%; }
+
+h1.classTitle
+{
+	font-size:170%;
+	line-height:130%;
+}
+
+h2 { font-size: 110%; }
+caption, div.sectionTitle
+{
+	background-color: #7F8FB1;
+	color: #fff;
+	font-size:130%;
+	text-align: left;
+	padding: 2px 6px 2px 6px;
+	border: 1px #7F8FB1 solid;
+}
+
+div.sectionTitle { margin-bottom: 8px; }
+.summaryTable thead { display: none; }
+
+.summaryTable td
+{
+	vertical-align: top;
+	padding: 4px;
+	border-bottom: 1px #7F8FB1 solid;
+	border-right: 1px #7F8FB1 solid;
+}
+
+/*col#summaryAttributes {}*/
+.summaryTable td.attributes
+{
+	border-left: 1px #7F8FB1 solid;
+	width: 140px;
+	text-align: right;
+}
+
+td.attributes, .fixedFont
+{
+	line-height: 15px;
+	color: #002EBE;
+	font-family: "Courier New",Courier,monospace;
+	font-size: 13px;
+}
+
+.summaryTable td.nameDescription
+{
+	text-align: left;
+	font-size: 13px;
+	line-height: 15px;
+}
+
+.summaryTable td.nameDescription, .description
+{
+	line-height: 15px;
+	padding: 4px;
+	padding-left: 4px;
+}
+
+.summaryTable { margin-bottom: 8px; }
+
+ul.inheritsList
+{
+	list-style: square;
+	margin-left: 20px;
+	padding-left: 0;
+}
+
+.detailList {
+	margin-left: 20px; 
+	line-height: 15px;
+}
+.detailList dt { margin-left: 20px; }
+
+.detailList .heading
+{
+	font-weight: bold;
+	padding-bottom: 6px;
+	margin-left: 0;
+}
+
+.light, td.attributes, .light a:link, .light a:visited
+{
+	color: #777;
+	font-style: italic;
+}
+
+.fineprint
+{
+	text-align: right;
+	font-size: 10px;
+}
+		</style>
+	</head>
+
+	<body>
+<!-- ============================== header ================================= -->	
+		<!-- begin static/header.html -->
+		<div id="header">
+</div>
+		<!-- end static/header.html -->
+
+<!-- ============================== classes index ============================ -->
+		<div id="index">
+			<!-- begin publish.classesIndex -->
+			<div align="center"><a href="../index.html">Class Index</a>
+| <a href="../files.html">File Index</a></div>
+<hr />
+<h2>Classes</h2>
+<ul class="classList">
+	
+	<li><i><a href="../symbols/_global_.html">_global_</a></i></li>
+	
+	<li><a href="../symbols/jQuery.fn.minplayer.html">jQuery.fn.minplayer</a></li>
+	
+	<li><a href="../symbols/jQuery.fn.osmplayer.html">jQuery.fn.osmplayer</a></li>
+	
+	<li><a href="../symbols/minplayer.async.html">minplayer.async</a></li>
+	
+	<li><a href="../symbols/minplayer.compatibility.html">minplayer.compatibility</a></li>
+	
+	<li><a href="../symbols/minplayer.display.html">minplayer.display</a></li>
+	
+	<li><a href="../symbols/minplayer.file.html">minplayer.file</a></li>
+	
+	<li><a href="../symbols/minplayer.flags.html">minplayer.flags</a></li>
+	
+	<li><a href="../symbols/minplayer.image.html">minplayer.image</a></li>
+	
+	<li><a href="../symbols/minplayer.players.base.html">minplayer.players.base</a></li>
+	
+	<li><a href="../symbols/minplayer.players.flash.html">minplayer.players.flash</a></li>
+	
+	<li><a href="../symbols/minplayer.players.html5.html">minplayer.players.html5</a></li>
+	
+	<li><a href="../symbols/minplayer.players.minplayer.html">minplayer.players.minplayer</a></li>
+	
+	<li><a href="../symbols/minplayer.players.vimeo.html">minplayer.players.vimeo</a></li>
+	
+	<li><a href="../symbols/minplayer.players.youtube.html">minplayer.players.youtube</a></li>
+	
+	<li><a href="../symbols/minplayer.plugin.html">minplayer.plugin</a></li>
+	
+	<li><a href="../symbols/osmplayer.html">osmplayer</a></li>
+	
+	<li><a href="../symbols/osmplayer.pager.html">osmplayer.pager</a></li>
+	
+	<li><a href="../symbols/osmplayer.playlist.html">osmplayer.playlist</a></li>
+	
+	<li><a href="../symbols/osmplayer.teaser.html">osmplayer.teaser</a></li>
+	
+</ul>
+<hr />
+			<!-- end publish.classesIndex -->
+		</div>
+		
+		<div id="content">
+<!-- ============================== class title ============================ -->
+			<h1 class="classTitle">
+				
+				Class minplayer.compatibility
+			</h1>
+
+<!-- ============================== class summary ========================== -->			
+			<p class="description">
+				
+				
+			
+				This class is used to define the types of media that can be played
+within the browser.
+<p>
+<strong>Usage:</strong>
+<pre><code>
+  var playTypes = new minplayer.compatibility();
+
+  if (playTypes.videoOGG) {
+    console.log("This browser can play OGG video");
+  }
+
+  if (playTypes.videoH264) {
+    console.log("This browser can play H264 video");
+  }
+
+  if (playTypes.videoWEBM) {
+    console.log("This browser can play WebM video");
+  }
+
+  if (playTypes.audioOGG) {
+    console.log("This browser can play OGG audio");
+  }
+
+  if (playTypes.audioMP3) {
+    console.log("This browser can play MP3 audio");
+  }
+
+  if (playTypes.audioMP4) {
+    console.log("This browser can play MP4 audio");
+  }
+</code></pre>
+				
+				
+					<br /><i>Defined in: </i> <a href="../symbols/src/minplayer_src_minplayer.compatibility.js.html">minplayer.compatibility.js</a>.
+				
+			</p>
+
+<!-- ============================== constructor summary ==================== -->			
+			
+			<table class="summaryTable" cellspacing="0" summary="A summary of the constructor documented in the class minplayer.compatibility.">
+				<caption>Class Summary</caption>
+				<thead>
+					<tr>
+						<th scope="col">Constructor Attributes</th>
+						<th scope="col">Constructor Name and Description</th>
+					</tr>
+				</thead>
+				<tbody>
+					<tr>
+						<td class="attributes">&nbsp;</td>
+						<td class="nameDescription" >
+							<div class="fixedFont">
+								<b><a href="../symbols/minplayer.compatibility.html#constructor">minplayer.compatibility</a></b>()
+							</div>
+							<div class="description"></div>
+						</td>
+					</tr>
+				</tbody>
+			</table>
+			
+
+<!-- ============================== properties summary ===================== -->
+			
+				
+				
+				<table class="summaryTable" cellspacing="0" summary="A summary of the fields documented in the class minplayer.compatibility.">
+					<caption>Field Summary</caption>
+					<thead>
+						<tr>
+							<th scope="col">Field Attributes</th>
+							<th scope="col">Field Name and Description</th>
+						</tr>
+					</thead>
+					<tbody>
+					
+						<tr>
+							<td class="attributes">&nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont">
+								<b><a href="../symbols/minplayer.compatibility.html#audioMP3">audioMP3</a></b>
+								</div>
+								<div class="description">Can play audio MP3</div>
+							</td>
+						</tr>
+					
+						<tr>
+							<td class="attributes">&nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont">
+								<b><a href="../symbols/minplayer.compatibility.html#audioMP4">audioMP4</a></b>
+								</div>
+								<div class="description">Can play audio MP4</div>
+							</td>
+						</tr>
+					
+						<tr>
+							<td class="attributes">&nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont">
+								<b><a href="../symbols/minplayer.compatibility.html#audioOGG">audioOGG</a></b>
+								</div>
+								<div class="description">Can play audio OGG</div>
+							</td>
+						</tr>
+					
+						<tr>
+							<td class="attributes">&nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont">
+								<b><a href="../symbols/minplayer.compatibility.html#videoH264">videoH264</a></b>
+								</div>
+								<div class="description">Can play H264 video</div>
+							</td>
+						</tr>
+					
+						<tr>
+							<td class="attributes">&nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont">
+								<b><a href="../symbols/minplayer.compatibility.html#videoOGG">videoOGG</a></b>
+								</div>
+								<div class="description">Can play OGG video</div>
+							</td>
+						</tr>
+					
+						<tr>
+							<td class="attributes">&nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont">
+								<b><a href="../symbols/minplayer.compatibility.html#videoWEBM">videoWEBM</a></b>
+								</div>
+								<div class="description">Can play WEBM video</div>
+							</td>
+						</tr>
+					
+					</tbody>
+				</table>
+				
+				
+				
+			
+
+<!-- ============================== methods summary ======================== -->
+			
+<!-- ============================== events summary ======================== -->
+			
+
+<!-- ============================== constructor details ==================== -->		
+			
+			<div class="details"><a name="constructor"> </a>
+				<div class="sectionTitle">
+					Class Detail
+				</div>
+				
+				<div class="fixedFont">
+						<b>minplayer.compatibility</b>()
+				</div>
+				
+				<div class="description">
+					
+					
+				</div>
+				
+				
+				
+				
+					
+					
+					
+					
+					
+					
+					
+
+			</div>
+			
+
+<!-- ============================== field details ========================== -->		
+			
+				<div class="sectionTitle">
+					Field Detail
+				</div>
+				
+					<a name="audioMP3"> </a>
+					<div class="fixedFont">
+					
+					
+					<b>audioMP3</b>
+					
+					</div>
+					<div class="description">
+						Can play audio MP3
+						
+						
+					</div>
+					
+					
+
+						
+						
+						
+						
+
+					<hr />
+				
+					<a name="audioMP4"> </a>
+					<div class="fixedFont">
+					
+					
+					<b>audioMP4</b>
+					
+					</div>
+					<div class="description">
+						Can play audio MP4
+						
+						
+					</div>
+					
+					
+
+						
+						
+						
+						
+
+					<hr />
+				
+					<a name="audioOGG"> </a>
+					<div class="fixedFont">
+					
+					
+					<b>audioOGG</b>
+					
+					</div>
+					<div class="description">
+						Can play audio OGG
+						
+						
+					</div>
+					
+					
+
+						
+						
+						
+						
+
+					<hr />
+				
+					<a name="videoH264"> </a>
+					<div class="fixedFont">
+					
+					
+					<b>videoH264</b>
+					
+					</div>
+					<div class="description">
+						Can play H264 video
+						
+						
+					</div>
+					
+					
+
+						
+						
+						
+						
+
+					<hr />
+				
+					<a name="videoOGG"> </a>
+					<div class="fixedFont">
+					
+					
+					<b>videoOGG</b>
+					
+					</div>
+					<div class="description">
+						Can play OGG video
+						
+						
+					</div>
+					
+					
+
+						
+						
+						
+						
+
+					<hr />
+				
+					<a name="videoWEBM"> </a>
+					<div class="fixedFont">
+					
+					
+					<b>videoWEBM</b>
+					
+					</div>
+					<div class="description">
+						Can play WEBM video
+						
+						
+					</div>
+					
+					
+
+						
+						
+						
+						
+
+					
+				
+			
+
+<!-- ============================== method details ========================= -->		
+			
+			
+<!-- ============================== event details ========================= -->		
+			
+			
+			<hr />
+		</div>
+
+		
+<!-- ============================== footer ================================= -->
+		<div class="fineprint" style="clear:both">
+			
+			Documentation generated by <a href="http://code.google.com/p/jsdoc-toolkit/" target="_blank">JsDoc Toolkit</a> 2.4.0 on Sun Aug 19 2012 12:11:27 GMT-0500 (CDT)
+		</div>
+	</body>
+</html>
diff --git a/public/admin/js/osmplayer/doc/symbols/minplayer.display.html b/public/admin/js/osmplayer/doc/symbols/minplayer.display.html
new file mode 100644
index 00000000000..4d5932830d5
--- /dev/null
+++ b/public/admin/js/osmplayer/doc/symbols/minplayer.display.html
@@ -0,0 +1,921 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+        "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+	<head>
+		<meta http-equiv="content-type" content="text/html; charset=utf-8" />
+		<meta name="generator" content="JsDoc Toolkit" />
+		
+		<title>JsDoc Reference - minplayer.display</title>
+
+		<style type="text/css">
+			/* default.css */
+body
+{
+	font: 12px "Lucida Grande", Tahoma, Arial, Helvetica, sans-serif;
+	width: 800px;
+}
+
+.header
+{
+	clear: both;
+	background-color: #ccc;
+	padding: 8px;
+}
+
+h1
+{
+	font-size: 150%;
+	font-weight: bold;
+	padding: 0;
+	margin: 1em 0 0 .3em;
+}
+
+hr
+{
+	border: none 0;
+	border-top: 1px solid #7F8FB1;
+	height: 1px;
+}
+
+pre.code
+{
+	display: block;
+	padding: 8px;
+	border: 1px dashed #ccc;
+}
+
+#index
+{
+	margin-top: 24px;
+	float: left;
+	width: 160px;
+	position: absolute;
+	left: 8px;
+	background-color: #F3F3F3;
+	padding: 8px;
+}
+
+#content
+{
+	margin-left: 190px;
+	width: 600px;
+}
+
+.classList
+{
+	list-style-type: none;
+	padding: 0;
+	margin: 0 0 0 8px;
+	font-family: arial, sans-serif;
+	font-size: 1em;
+	overflow: auto;
+}
+
+.classList li
+{
+	padding: 0;
+	margin: 0 0 8px 0;
+}
+
+.summaryTable { width: 100%; }
+
+h1.classTitle
+{
+	font-size:170%;
+	line-height:130%;
+}
+
+h2 { font-size: 110%; }
+caption, div.sectionTitle
+{
+	background-color: #7F8FB1;
+	color: #fff;
+	font-size:130%;
+	text-align: left;
+	padding: 2px 6px 2px 6px;
+	border: 1px #7F8FB1 solid;
+}
+
+div.sectionTitle { margin-bottom: 8px; }
+.summaryTable thead { display: none; }
+
+.summaryTable td
+{
+	vertical-align: top;
+	padding: 4px;
+	border-bottom: 1px #7F8FB1 solid;
+	border-right: 1px #7F8FB1 solid;
+}
+
+/*col#summaryAttributes {}*/
+.summaryTable td.attributes
+{
+	border-left: 1px #7F8FB1 solid;
+	width: 140px;
+	text-align: right;
+}
+
+td.attributes, .fixedFont
+{
+	line-height: 15px;
+	color: #002EBE;
+	font-family: "Courier New",Courier,monospace;
+	font-size: 13px;
+}
+
+.summaryTable td.nameDescription
+{
+	text-align: left;
+	font-size: 13px;
+	line-height: 15px;
+}
+
+.summaryTable td.nameDescription, .description
+{
+	line-height: 15px;
+	padding: 4px;
+	padding-left: 4px;
+}
+
+.summaryTable { margin-bottom: 8px; }
+
+ul.inheritsList
+{
+	list-style: square;
+	margin-left: 20px;
+	padding-left: 0;
+}
+
+.detailList {
+	margin-left: 20px; 
+	line-height: 15px;
+}
+.detailList dt { margin-left: 20px; }
+
+.detailList .heading
+{
+	font-weight: bold;
+	padding-bottom: 6px;
+	margin-left: 0;
+}
+
+.light, td.attributes, .light a:link, .light a:visited
+{
+	color: #777;
+	font-style: italic;
+}
+
+.fineprint
+{
+	text-align: right;
+	font-size: 10px;
+}
+		</style>
+	</head>
+
+	<body>
+<!-- ============================== header ================================= -->	
+		<!-- begin static/header.html -->
+		<div id="header">
+</div>
+		<!-- end static/header.html -->
+
+<!-- ============================== classes index ============================ -->
+		<div id="index">
+			<!-- begin publish.classesIndex -->
+			<div align="center"><a href="../index.html">Class Index</a>
+| <a href="../files.html">File Index</a></div>
+<hr />
+<h2>Classes</h2>
+<ul class="classList">
+	
+	<li><i><a href="../symbols/_global_.html">_global_</a></i></li>
+	
+	<li><a href="../symbols/jQuery.fn.minplayer.html">jQuery.fn.minplayer</a></li>
+	
+	<li><a href="../symbols/jQuery.fn.osmplayer.html">jQuery.fn.osmplayer</a></li>
+	
+	<li><a href="../symbols/minplayer.async.html">minplayer.async</a></li>
+	
+	<li><a href="../symbols/minplayer.compatibility.html">minplayer.compatibility</a></li>
+	
+	<li><a href="../symbols/minplayer.display.html">minplayer.display</a></li>
+	
+	<li><a href="../symbols/minplayer.file.html">minplayer.file</a></li>
+	
+	<li><a href="../symbols/minplayer.flags.html">minplayer.flags</a></li>
+	
+	<li><a href="../symbols/minplayer.image.html">minplayer.image</a></li>
+	
+	<li><a href="../symbols/minplayer.players.base.html">minplayer.players.base</a></li>
+	
+	<li><a href="../symbols/minplayer.players.flash.html">minplayer.players.flash</a></li>
+	
+	<li><a href="../symbols/minplayer.players.html5.html">minplayer.players.html5</a></li>
+	
+	<li><a href="../symbols/minplayer.players.minplayer.html">minplayer.players.minplayer</a></li>
+	
+	<li><a href="../symbols/minplayer.players.vimeo.html">minplayer.players.vimeo</a></li>
+	
+	<li><a href="../symbols/minplayer.players.youtube.html">minplayer.players.youtube</a></li>
+	
+	<li><a href="../symbols/minplayer.plugin.html">minplayer.plugin</a></li>
+	
+	<li><a href="../symbols/osmplayer.html">osmplayer</a></li>
+	
+	<li><a href="../symbols/osmplayer.pager.html">osmplayer.pager</a></li>
+	
+	<li><a href="../symbols/osmplayer.playlist.html">osmplayer.playlist</a></li>
+	
+	<li><a href="../symbols/osmplayer.teaser.html">osmplayer.teaser</a></li>
+	
+</ul>
+<hr />
+			<!-- end publish.classesIndex -->
+		</div>
+		
+		<div id="content">
+<!-- ============================== class title ============================ -->
+			<h1 class="classTitle">
+				
+				Class minplayer.display
+			</h1>
+
+<!-- ============================== class summary ========================== -->			
+			<p class="description">
+				
+				<br />Extends
+					<a href="../symbols/minplayer.plugin.html">minplayer.plugin</a>.<br />
+				
+			
+				Base class used to provide the display and options for any component
+deriving from this class.  Components who derive are expected to provide
+the elements that they define by implementing the getElements method.
+				
+				
+					<br /><i>Defined in: </i> <a href="../symbols/src/minplayer_src_minplayer.display.js.html">minplayer.display.js</a>.
+				
+			</p>
+
+<!-- ============================== constructor summary ==================== -->			
+			
+			<table class="summaryTable" cellspacing="0" summary="A summary of the constructor documented in the class minplayer.display.">
+				<caption>Class Summary</caption>
+				<thead>
+					<tr>
+						<th scope="col">Constructor Attributes</th>
+						<th scope="col">Constructor Name and Description</th>
+					</tr>
+				</thead>
+				<tbody>
+					<tr>
+						<td class="attributes">&nbsp;</td>
+						<td class="nameDescription" >
+							<div class="fixedFont">
+								<b><a href="../symbols/minplayer.display.html#constructor">minplayer.display</a></b>(name, context, options, queue)
+							</div>
+							<div class="description"></div>
+						</td>
+					</tr>
+				</tbody>
+			</table>
+			
+
+<!-- ============================== properties summary ===================== -->
+			
+				
+				
+				<table class="summaryTable" cellspacing="0" summary="A summary of the fields documented in the class minplayer.display.">
+					<caption>Field Summary</caption>
+					<thead>
+						<tr>
+							<th scope="col">Field Attributes</th>
+							<th scope="col">Field Name and Description</th>
+						</tr>
+					</thead>
+					<tbody>
+					
+						<tr>
+							<td class="attributes">&nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont">
+								<b><a href="../symbols/minplayer.display.html#constructor">constructor</a></b>
+								</div>
+								<div class="description">Reset the constructor.</div>
+							</td>
+						</tr>
+					
+						<tr>
+							<td class="attributes">&nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont">
+								<b><a href="../symbols/minplayer.display.html#onResize">onResize</a></b>
+								</div>
+								<div class="description">Called when the window resizes.</div>
+							</td>
+						</tr>
+					
+					</tbody>
+				</table>
+				
+				
+				
+				<dl class="inheritsList">
+				<dt>Fields borrowed from class <a href="../symbols/minplayer.plugin.html">minplayer.plugin</a>: </dt><dd><a href="../symbols/minplayer.plugin.html#active">active</a>, <a href="../symbols/minplayer.plugin.html#context">context</a>, <a href="../symbols/minplayer.plugin.html#lock">lock</a>, <a href="../symbols/minplayer.plugin.html#name">name</a>, <a href="../symbols/minplayer.plugin.html#options">options</a>, <a href="../symbols/minplayer.plugin.html#pluginReady">pluginReady</a>, <a href="../symbols/minplayer.plugin.html#queue">queue</a>, <a href="../symbols/minplayer.plugin.html#triggered">triggered</a></dd>
+				</dl>
+				
+			
+
+<!-- ============================== methods summary ======================== -->
+			
+				
+				
+				<table class="summaryTable" cellspacing="0" summary="A summary of the methods documented in the class minplayer.display.">
+					<caption>Method Summary</caption>
+					<thead>
+						<tr>
+							<th scope="col">Method Attributes</th>
+							<th scope="col">Method Name and Description</th>
+						</tr>
+					</thead>
+					<tbody>
+					
+						<tr>
+							<td class="attributes">&nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont"><b><a href="../symbols/minplayer.display.html#construct">construct</a></b>()
+								</div>
+								<div class="description"></div>
+							</td>
+						</tr>
+					
+						<tr>
+							<td class="attributes">&nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont"><b><a href="../symbols/minplayer.display.html#fullscreen">fullscreen</a></b>(full)
+								</div>
+								<div class="description">Make this display element go fullscreen.</div>
+							</td>
+						</tr>
+					
+						<tr>
+							<td class="attributes">&nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont"><b><a href="../symbols/minplayer.display.html#fullScreenElement">fullScreenElement</a></b>()
+								</div>
+								<div class="description">Gets the full screen element.</div>
+							</td>
+						</tr>
+					
+						<tr>
+							<td class="attributes">&nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont"><b><a href="../symbols/minplayer.display.html#getDisplay">getDisplay</a></b>()
+								</div>
+								<div class="description">Returns the display for this component.</div>
+							</td>
+						</tr>
+					
+						<tr>
+							<td class="attributes">&nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont"><b><a href="../symbols/minplayer.display.html#getElements">getElements</a></b>()
+								</div>
+								<div class="description">Returns all the jQuery elements that this component uses.</div>
+							</td>
+						</tr>
+					
+						<tr>
+							<td class="attributes">&nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont"><b><a href="../symbols/minplayer.display.html#getScaledRect">getScaledRect</a></b>(ratio, rect)
+								</div>
+								<div class="description">Returns a scaled rectangle provided a ratio and the container rect.</div>
+							</td>
+						</tr>
+					
+						<tr>
+							<td class="attributes">&nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont"><b><a href="../symbols/minplayer.display.html#hide">hide</a></b>(element)
+								</div>
+								<div class="description">Wrapper around hide that will always not show.</div>
+							</td>
+						</tr>
+					
+						<tr>
+							<td class="attributes">&nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont"><b><a href="../symbols/minplayer.display.html#isFullScreen">isFullScreen</a></b>()
+								</div>
+								<div class="description">Checks to see if we are in fullscreen mode.</div>
+							</td>
+						</tr>
+					
+						<tr>
+							<td class="attributes">&nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont"><b><a href="../symbols/minplayer.display.html#onFocus">onFocus</a></b>(focus)
+								</div>
+								<div class="description">Determines if the player is in focus or not.</div>
+							</td>
+						</tr>
+					
+						<tr>
+							<td class="attributes">&nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont"><b><a href="../symbols/minplayer.display.html#toggleFullScreen">toggleFullScreen</a></b>()
+								</div>
+								<div class="description">Toggle fullscreen.</div>
+							</td>
+						</tr>
+					
+					</tbody>
+				</table>
+				
+				
+				
+				<dl class="inheritsList">
+				<dt>Methods borrowed from class <a href="../symbols/minplayer.plugin.html">minplayer.plugin</a>: </dt><dd><a href="../symbols/minplayer.plugin.html#addPlugin">addPlugin</a>, <a href="../symbols/minplayer.plugin.html#bind">bind</a>, <a href="../symbols/minplayer.plugin.html#checkQueue">checkQueue</a>, <a href="../symbols/minplayer.plugin.html#create">create</a>, <a href="../symbols/minplayer.plugin.html#destroy">destroy</a>, <a href="../symbols/minplayer.plugin.html#get">get</a>, <a href="../symbols/minplayer.plugin.html#isValid">isValid</a>, <a href="../symbols/minplayer.plugin.html#poll">poll</a>, <a href="../symbols/minplayer.plugin.html#ready">ready</a>, <a href="../symbols/minplayer.plugin.html#trigger">trigger</a>, <a href="../symbols/minplayer.plugin.html#unbind">unbind</a></dd>
+				</dl>
+				
+			
+<!-- ============================== events summary ======================== -->
+			
+
+<!-- ============================== constructor details ==================== -->		
+			
+			<div class="details"><a name="constructor"> </a>
+				<div class="sectionTitle">
+					Class Detail
+				</div>
+				
+				<div class="fixedFont">
+						<b>minplayer.display</b>(name, context, options, queue)
+				</div>
+				
+				<div class="description">
+					
+					
+				</div>
+				
+				
+				
+				
+					
+						<dl class="detailList">
+						<dt class="heading">Parameters:</dt>
+						
+							<dt>
+								<span class="light fixedFont">{string}</span>  <b>name</b>
+								
+							</dt>
+								<dd>The name of this plugin.</dd>
+						
+							<dt>
+								<span class="light fixedFont">{object}</span>  <b>context</b>
+								
+							</dt>
+								<dd>The jQuery context this component resides.</dd>
+						
+							<dt>
+								<span class="light fixedFont">{object}</span>  <b>options</b>
+								
+							</dt>
+								<dd>The options for this component.</dd>
+						
+							<dt>
+								<span class="light fixedFont">{object}</span>  <b>queue</b>
+								
+							</dt>
+								<dd>The event queue to pass events around.</dd>
+						
+						</dl>
+					
+					
+					
+					
+					
+					
+					
+
+			</div>
+			
+
+<!-- ============================== field details ========================== -->		
+			
+				<div class="sectionTitle">
+					Field Detail
+				</div>
+				
+					<a name="constructor"> </a>
+					<div class="fixedFont">
+					
+					
+					<b>constructor</b>
+					
+					</div>
+					<div class="description">
+						Reset the constructor.
+						
+						
+					</div>
+					
+					
+
+						
+						
+						
+						
+
+					<hr />
+				
+					<a name="onResize"> </a>
+					<div class="fixedFont">
+					
+					
+					<b>onResize</b>
+					
+					</div>
+					<div class="description">
+						Called when the window resizes.
+						
+						
+					</div>
+					
+					
+
+						
+						
+						
+						
+
+					
+				
+			
+
+<!-- ============================== method details ========================= -->		
+			
+				<div class="sectionTitle">
+					Method Detail
+				</div>
+				
+					<a name="construct"> </a>
+					<div class="fixedFont">
+					
+					
+					<b>construct</b>()
+					
+					</div>
+					<div class="description">
+						
+						
+						
+					</div>
+					
+					
+					
+						
+						
+						
+						
+						
+						
+						
+							<dl class="detailList">
+							<dt class="heading">See:</dt>
+							
+								<dd>minplayer.plugin.construct</dd>
+							
+							</dl>
+						
+
+					<hr />
+				
+					<a name="fullscreen"> </a>
+					<div class="fixedFont">
+					
+					
+					<b>fullscreen</b>(full)
+					
+					</div>
+					<div class="description">
+						Make this display element go fullscreen.
+						
+						
+					</div>
+					
+					
+					
+						
+							<dl class="detailList">
+							<dt class="heading">Parameters:</dt>
+							
+								<dt>
+									<span class="light fixedFont">{boolean}</span> <b>full</b>
+									
+								</dt>
+								<dd>Tell the player to go into fullscreen or not.</dd>
+							
+							</dl>
+						
+						
+						
+						
+						
+						
+						
+
+					<hr />
+				
+					<a name="fullScreenElement"> </a>
+					<div class="fixedFont">
+					
+					<span class="light">{object}</span>
+					<b>fullScreenElement</b>()
+					
+					</div>
+					<div class="description">
+						Gets the full screen element.
+						
+						
+					</div>
+					
+					
+					
+						
+						
+						
+						
+						
+							<dl class="detailList">
+							<dt class="heading">Returns:</dt>
+							
+								<dd><span class="light fixedFont">{object}</span> The display to be used for full screen support.</dd>
+							
+							</dl>
+						
+						
+						
+
+					<hr />
+				
+					<a name="getDisplay"> </a>
+					<div class="fixedFont">
+					
+					<span class="light">{object}</span>
+					<b>getDisplay</b>()
+					
+					</div>
+					<div class="description">
+						Returns the display for this component.
+						
+						
+					</div>
+					
+					
+					
+						
+						
+						
+						
+						
+							<dl class="detailList">
+							<dt class="heading">Returns:</dt>
+							
+								<dd><span class="light fixedFont">{object}</span> The jQuery context for this display.</dd>
+							
+							</dl>
+						
+						
+						
+
+					<hr />
+				
+					<a name="getElements"> </a>
+					<div class="fixedFont">
+					
+					<span class="light">{object}</span>
+					<b>getElements</b>()
+					
+					</div>
+					<div class="description">
+						Returns all the jQuery elements that this component uses.
+						
+						
+					</div>
+					
+					
+					
+						
+						
+						
+						
+						
+							<dl class="detailList">
+							<dt class="heading">Returns:</dt>
+							
+								<dd><span class="light fixedFont">{object}</span> An object which defines all the jQuery elements that
+this component uses.</dd>
+							
+							</dl>
+						
+						
+						
+
+					<hr />
+				
+					<a name="getScaledRect"> </a>
+					<div class="fixedFont">
+					
+					<span class="light">{object}</span>
+					<b>getScaledRect</b>(ratio, rect)
+					
+					</div>
+					<div class="description">
+						Returns a scaled rectangle provided a ratio and the container rect.
+						
+						
+					</div>
+					
+					
+					
+						
+							<dl class="detailList">
+							<dt class="heading">Parameters:</dt>
+							
+								<dt>
+									<span class="light fixedFont">{number}</span> <b>ratio</b>
+									
+								</dt>
+								<dd>The width/height ratio of what is being scaled.</dd>
+							
+								<dt>
+									<span class="light fixedFont">{object}</span> <b>rect</b>
+									
+								</dt>
+								<dd>The bounding rectangle for scaling.</dd>
+							
+							</dl>
+						
+						
+						
+						
+						
+							<dl class="detailList">
+							<dt class="heading">Returns:</dt>
+							
+								<dd><span class="light fixedFont">{object}</span> The Rectangle object of the scaled rectangle.</dd>
+							
+							</dl>
+						
+						
+						
+
+					<hr />
+				
+					<a name="hide"> </a>
+					<div class="fixedFont">
+					
+					
+					<b>hide</b>(element)
+					
+					</div>
+					<div class="description">
+						Wrapper around hide that will always not show.
+						
+						
+					</div>
+					
+					
+					
+						
+							<dl class="detailList">
+							<dt class="heading">Parameters:</dt>
+							
+								<dt>
+									<span class="light fixedFont">{object}</span> <b>element</b>
+									
+								</dt>
+								<dd>The element you wish to hide.</dd>
+							
+							</dl>
+						
+						
+						
+						
+						
+						
+						
+
+					<hr />
+				
+					<a name="isFullScreen"> </a>
+					<div class="fixedFont">
+					
+					<span class="light">{boolean}</span>
+					<b>isFullScreen</b>()
+					
+					</div>
+					<div class="description">
+						Checks to see if we are in fullscreen mode.
+						
+						
+					</div>
+					
+					
+					
+						
+						
+						
+						
+						
+							<dl class="detailList">
+							<dt class="heading">Returns:</dt>
+							
+								<dd><span class="light fixedFont">{boolean}</span> TRUE - fullscreen, FALSE - otherwise.</dd>
+							
+							</dl>
+						
+						
+						
+
+					<hr />
+				
+					<a name="onFocus"> </a>
+					<div class="fixedFont">
+					
+					
+					<b>onFocus</b>(focus)
+					
+					</div>
+					<div class="description">
+						Determines if the player is in focus or not.
+						
+						
+					</div>
+					
+					
+					
+						
+							<dl class="detailList">
+							<dt class="heading">Parameters:</dt>
+							
+								<dt>
+									<span class="light fixedFont">{boolean}</span> <b>focus</b>
+									
+								</dt>
+								<dd>If the player is in focus.</dd>
+							
+							</dl>
+						
+						
+						
+						
+						
+						
+						
+
+					<hr />
+				
+					<a name="toggleFullScreen"> </a>
+					<div class="fixedFont">
+					
+					
+					<b>toggleFullScreen</b>()
+					
+					</div>
+					<div class="description">
+						Toggle fullscreen.
+						
+						
+					</div>
+					
+					
+					
+						
+						
+						
+						
+						
+						
+						
+
+					
+				
+			
+			
+<!-- ============================== event details ========================= -->		
+			
+			
+			<hr />
+		</div>
+
+		
+<!-- ============================== footer ================================= -->
+		<div class="fineprint" style="clear:both">
+			
+			Documentation generated by <a href="http://code.google.com/p/jsdoc-toolkit/" target="_blank">JsDoc Toolkit</a> 2.4.0 on Sun Aug 19 2012 12:11:27 GMT-0500 (CDT)
+		</div>
+	</body>
+</html>
diff --git a/public/admin/js/osmplayer/doc/symbols/minplayer.file.html b/public/admin/js/osmplayer/doc/symbols/minplayer.file.html
new file mode 100644
index 00000000000..6bdc65a2ae6
--- /dev/null
+++ b/public/admin/js/osmplayer/doc/symbols/minplayer.file.html
@@ -0,0 +1,621 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+        "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+	<head>
+		<meta http-equiv="content-type" content="text/html; charset=utf-8" />
+		<meta name="generator" content="JsDoc Toolkit" />
+		
+		<title>JsDoc Reference - minplayer.file</title>
+
+		<style type="text/css">
+			/* default.css */
+body
+{
+	font: 12px "Lucida Grande", Tahoma, Arial, Helvetica, sans-serif;
+	width: 800px;
+}
+
+.header
+{
+	clear: both;
+	background-color: #ccc;
+	padding: 8px;
+}
+
+h1
+{
+	font-size: 150%;
+	font-weight: bold;
+	padding: 0;
+	margin: 1em 0 0 .3em;
+}
+
+hr
+{
+	border: none 0;
+	border-top: 1px solid #7F8FB1;
+	height: 1px;
+}
+
+pre.code
+{
+	display: block;
+	padding: 8px;
+	border: 1px dashed #ccc;
+}
+
+#index
+{
+	margin-top: 24px;
+	float: left;
+	width: 160px;
+	position: absolute;
+	left: 8px;
+	background-color: #F3F3F3;
+	padding: 8px;
+}
+
+#content
+{
+	margin-left: 190px;
+	width: 600px;
+}
+
+.classList
+{
+	list-style-type: none;
+	padding: 0;
+	margin: 0 0 0 8px;
+	font-family: arial, sans-serif;
+	font-size: 1em;
+	overflow: auto;
+}
+
+.classList li
+{
+	padding: 0;
+	margin: 0 0 8px 0;
+}
+
+.summaryTable { width: 100%; }
+
+h1.classTitle
+{
+	font-size:170%;
+	line-height:130%;
+}
+
+h2 { font-size: 110%; }
+caption, div.sectionTitle
+{
+	background-color: #7F8FB1;
+	color: #fff;
+	font-size:130%;
+	text-align: left;
+	padding: 2px 6px 2px 6px;
+	border: 1px #7F8FB1 solid;
+}
+
+div.sectionTitle { margin-bottom: 8px; }
+.summaryTable thead { display: none; }
+
+.summaryTable td
+{
+	vertical-align: top;
+	padding: 4px;
+	border-bottom: 1px #7F8FB1 solid;
+	border-right: 1px #7F8FB1 solid;
+}
+
+/*col#summaryAttributes {}*/
+.summaryTable td.attributes
+{
+	border-left: 1px #7F8FB1 solid;
+	width: 140px;
+	text-align: right;
+}
+
+td.attributes, .fixedFont
+{
+	line-height: 15px;
+	color: #002EBE;
+	font-family: "Courier New",Courier,monospace;
+	font-size: 13px;
+}
+
+.summaryTable td.nameDescription
+{
+	text-align: left;
+	font-size: 13px;
+	line-height: 15px;
+}
+
+.summaryTable td.nameDescription, .description
+{
+	line-height: 15px;
+	padding: 4px;
+	padding-left: 4px;
+}
+
+.summaryTable { margin-bottom: 8px; }
+
+ul.inheritsList
+{
+	list-style: square;
+	margin-left: 20px;
+	padding-left: 0;
+}
+
+.detailList {
+	margin-left: 20px; 
+	line-height: 15px;
+}
+.detailList dt { margin-left: 20px; }
+
+.detailList .heading
+{
+	font-weight: bold;
+	padding-bottom: 6px;
+	margin-left: 0;
+}
+
+.light, td.attributes, .light a:link, .light a:visited
+{
+	color: #777;
+	font-style: italic;
+}
+
+.fineprint
+{
+	text-align: right;
+	font-size: 10px;
+}
+		</style>
+	</head>
+
+	<body>
+<!-- ============================== header ================================= -->	
+		<!-- begin static/header.html -->
+		<div id="header">
+</div>
+		<!-- end static/header.html -->
+
+<!-- ============================== classes index ============================ -->
+		<div id="index">
+			<!-- begin publish.classesIndex -->
+			<div align="center"><a href="../index.html">Class Index</a>
+| <a href="../files.html">File Index</a></div>
+<hr />
+<h2>Classes</h2>
+<ul class="classList">
+	
+	<li><i><a href="../symbols/_global_.html">_global_</a></i></li>
+	
+	<li><a href="../symbols/jQuery.fn.minplayer.html">jQuery.fn.minplayer</a></li>
+	
+	<li><a href="../symbols/jQuery.fn.osmplayer.html">jQuery.fn.osmplayer</a></li>
+	
+	<li><a href="../symbols/minplayer.async.html">minplayer.async</a></li>
+	
+	<li><a href="../symbols/minplayer.compatibility.html">minplayer.compatibility</a></li>
+	
+	<li><a href="../symbols/minplayer.display.html">minplayer.display</a></li>
+	
+	<li><a href="../symbols/minplayer.file.html">minplayer.file</a></li>
+	
+	<li><a href="../symbols/minplayer.flags.html">minplayer.flags</a></li>
+	
+	<li><a href="../symbols/minplayer.image.html">minplayer.image</a></li>
+	
+	<li><a href="../symbols/minplayer.players.base.html">minplayer.players.base</a></li>
+	
+	<li><a href="../symbols/minplayer.players.flash.html">minplayer.players.flash</a></li>
+	
+	<li><a href="../symbols/minplayer.players.html5.html">minplayer.players.html5</a></li>
+	
+	<li><a href="../symbols/minplayer.players.minplayer.html">minplayer.players.minplayer</a></li>
+	
+	<li><a href="../symbols/minplayer.players.vimeo.html">minplayer.players.vimeo</a></li>
+	
+	<li><a href="../symbols/minplayer.players.youtube.html">minplayer.players.youtube</a></li>
+	
+	<li><a href="../symbols/minplayer.plugin.html">minplayer.plugin</a></li>
+	
+	<li><a href="../symbols/osmplayer.html">osmplayer</a></li>
+	
+	<li><a href="../symbols/osmplayer.pager.html">osmplayer.pager</a></li>
+	
+	<li><a href="../symbols/osmplayer.playlist.html">osmplayer.playlist</a></li>
+	
+	<li><a href="../symbols/osmplayer.teaser.html">osmplayer.teaser</a></li>
+	
+</ul>
+<hr />
+			<!-- end publish.classesIndex -->
+		</div>
+		
+		<div id="content">
+<!-- ============================== class title ============================ -->
+			<h1 class="classTitle">
+				
+				Class minplayer.file
+			</h1>
+
+<!-- ============================== class summary ========================== -->			
+			<p class="description">
+				
+				
+			
+				A wrapper class used to provide all the data necessary to control an
+individual file within this media player.
+				
+				
+					<br /><i>Defined in: </i> <a href="../symbols/src/minplayer_src_minplayer.file.js.html">minplayer.file.js</a>.
+				
+			</p>
+
+<!-- ============================== constructor summary ==================== -->			
+			
+			<table class="summaryTable" cellspacing="0" summary="A summary of the constructor documented in the class minplayer.file.">
+				<caption>Class Summary</caption>
+				<thead>
+					<tr>
+						<th scope="col">Constructor Attributes</th>
+						<th scope="col">Constructor Name and Description</th>
+					</tr>
+				</thead>
+				<tbody>
+					<tr>
+						<td class="attributes">&nbsp;</td>
+						<td class="nameDescription" >
+							<div class="fixedFont">
+								<b><a href="../symbols/minplayer.file.html#constructor">minplayer.file</a></b>(file)
+							</div>
+							<div class="description"></div>
+						</td>
+					</tr>
+				</tbody>
+			</table>
+			
+
+<!-- ============================== properties summary ===================== -->
+			
+
+<!-- ============================== methods summary ======================== -->
+			
+				
+				
+				<table class="summaryTable" cellspacing="0" summary="A summary of the methods documented in the class minplayer.file.">
+					<caption>Method Summary</caption>
+					<thead>
+						<tr>
+							<th scope="col">Method Attributes</th>
+							<th scope="col">Method Name and Description</th>
+						</tr>
+					</thead>
+					<tbody>
+					
+						<tr>
+							<td class="attributes">&nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont"><b><a href="../symbols/minplayer.file.html#getBestPlayer">getBestPlayer</a></b>()
+								</div>
+								<div class="description">Returns the best player for the job.</div>
+							</td>
+						</tr>
+					
+						<tr>
+							<td class="attributes">&nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont"><b><a href="../symbols/minplayer.file.html#getFileExtension">getFileExtension</a></b>()
+								</div>
+								<div class="description">Returns the file extension of the file path.</div>
+							</td>
+						</tr>
+					
+						<tr>
+							<td class="attributes">&nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont"><b><a href="../symbols/minplayer.file.html#getId">getId</a></b>()
+								</div>
+								<div class="description">Returns the ID for this media file.</div>
+							</td>
+						</tr>
+					
+						<tr>
+							<td class="attributes">&nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont"><b><a href="../symbols/minplayer.file.html#getMimeType">getMimeType</a></b>()
+								</div>
+								<div class="description">Returns the proper mimetype based off of the extension.</div>
+							</td>
+						</tr>
+					
+						<tr>
+							<td class="attributes">&nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont"><b><a href="../symbols/minplayer.file.html#getPriority">getPriority</a></b>()
+								</div>
+								<div class="description">The priority of this file is determined by the priority of the best
+player multiplied by the priority of the mimetype.</div>
+							</td>
+						</tr>
+					
+						<tr>
+							<td class="attributes">&nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont"><b><a href="../symbols/minplayer.file.html#getType">getType</a></b>()
+								</div>
+								<div class="description">The type of media this is: video or audio.</div>
+							</td>
+						</tr>
+					
+					</tbody>
+				</table>
+				
+				
+				
+			
+<!-- ============================== events summary ======================== -->
+			
+
+<!-- ============================== constructor details ==================== -->		
+			
+			<div class="details"><a name="constructor"> </a>
+				<div class="sectionTitle">
+					Class Detail
+				</div>
+				
+				<div class="fixedFont">
+						<b>minplayer.file</b>(file)
+				</div>
+				
+				<div class="description">
+					
+					
+				</div>
+				
+				
+				
+				
+					
+						<dl class="detailList">
+						<dt class="heading">Parameters:</dt>
+						
+							<dt>
+								<span class="light fixedFont">{object}</span>  <b>file</b>
+								
+							</dt>
+								<dd>A media file object with minimal required information.</dd>
+						
+						</dl>
+					
+					
+					
+					
+					
+					
+					
+
+			</div>
+			
+
+<!-- ============================== field details ========================== -->		
+			
+
+<!-- ============================== method details ========================= -->		
+			
+				<div class="sectionTitle">
+					Method Detail
+				</div>
+				
+					<a name="getBestPlayer"> </a>
+					<div class="fixedFont">
+					
+					<span class="light">{string}</span>
+					<b>getBestPlayer</b>()
+					
+					</div>
+					<div class="description">
+						Returns the best player for the job.
+						
+						
+					</div>
+					
+					
+					
+						
+						
+						
+						
+						
+							<dl class="detailList">
+							<dt class="heading">Returns:</dt>
+							
+								<dd><span class="light fixedFont">{string}</span> The best player to play the media file.</dd>
+							
+							</dl>
+						
+						
+						
+
+					<hr />
+				
+					<a name="getFileExtension"> </a>
+					<div class="fixedFont">
+					
+					<span class="light">{string}</span>
+					<b>getFileExtension</b>()
+					
+					</div>
+					<div class="description">
+						Returns the file extension of the file path.
+						
+						
+					</div>
+					
+					
+					
+						
+						
+						
+						
+						
+							<dl class="detailList">
+							<dt class="heading">Returns:</dt>
+							
+								<dd><span class="light fixedFont">{string}</span> The file extension.</dd>
+							
+							</dl>
+						
+						
+						
+
+					<hr />
+				
+					<a name="getId"> </a>
+					<div class="fixedFont">
+					
+					<span class="light">{string}</span>
+					<b>getId</b>()
+					
+					</div>
+					<div class="description">
+						Returns the ID for this media file.
+						
+						
+					</div>
+					
+					
+					
+						
+						
+						
+						
+						
+							<dl class="detailList">
+							<dt class="heading">Returns:</dt>
+							
+								<dd><span class="light fixedFont">{string}</span> The id for this media file which is provided by the player.</dd>
+							
+							</dl>
+						
+						
+						
+
+					<hr />
+				
+					<a name="getMimeType"> </a>
+					<div class="fixedFont">
+					
+					<span class="light">{string}</span>
+					<b>getMimeType</b>()
+					
+					</div>
+					<div class="description">
+						Returns the proper mimetype based off of the extension.
+						
+						
+					</div>
+					
+					
+					
+						
+						
+						
+						
+						
+							<dl class="detailList">
+							<dt class="heading">Returns:</dt>
+							
+								<dd><span class="light fixedFont">{string}</span> The mimetype of the file based off of extension.</dd>
+							
+							</dl>
+						
+						
+						
+
+					<hr />
+				
+					<a name="getPriority"> </a>
+					<div class="fixedFont">
+					
+					<span class="light">{integer}</span>
+					<b>getPriority</b>()
+					
+					</div>
+					<div class="description">
+						The priority of this file is determined by the priority of the best
+player multiplied by the priority of the mimetype.
+						
+						
+					</div>
+					
+					
+					
+						
+						
+						
+						
+						
+							<dl class="detailList">
+							<dt class="heading">Returns:</dt>
+							
+								<dd><span class="light fixedFont">{integer}</span> The priority of the media file.</dd>
+							
+							</dl>
+						
+						
+						
+
+					<hr />
+				
+					<a name="getType"> </a>
+					<div class="fixedFont">
+					
+					<span class="light">{string}</span>
+					<b>getType</b>()
+					
+					</div>
+					<div class="description">
+						The type of media this is: video or audio.
+						
+						
+					</div>
+					
+					
+					
+						
+						
+						
+						
+						
+							<dl class="detailList">
+							<dt class="heading">Returns:</dt>
+							
+								<dd><span class="light fixedFont">{string}</span> "video" or "audio" based on what the type of media this
+is.</dd>
+							
+							</dl>
+						
+						
+						
+
+					
+				
+			
+			
+<!-- ============================== event details ========================= -->		
+			
+			
+			<hr />
+		</div>
+
+		
+<!-- ============================== footer ================================= -->
+		<div class="fineprint" style="clear:both">
+			
+			Documentation generated by <a href="http://code.google.com/p/jsdoc-toolkit/" target="_blank">JsDoc Toolkit</a> 2.4.0 on Sun Aug 19 2012 12:11:27 GMT-0500 (CDT)
+		</div>
+	</body>
+</html>
diff --git a/public/admin/js/osmplayer/doc/symbols/minplayer.flags.html b/public/admin/js/osmplayer/doc/symbols/minplayer.flags.html
new file mode 100644
index 00000000000..ddb2d62283c
--- /dev/null
+++ b/public/admin/js/osmplayer/doc/symbols/minplayer.flags.html
@@ -0,0 +1,560 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+        "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+	<head>
+		<meta http-equiv="content-type" content="text/html; charset=utf-8" />
+		<meta name="generator" content="JsDoc Toolkit" />
+		
+		<title>JsDoc Reference - minplayer.flags</title>
+
+		<style type="text/css">
+			/* default.css */
+body
+{
+	font: 12px "Lucida Grande", Tahoma, Arial, Helvetica, sans-serif;
+	width: 800px;
+}
+
+.header
+{
+	clear: both;
+	background-color: #ccc;
+	padding: 8px;
+}
+
+h1
+{
+	font-size: 150%;
+	font-weight: bold;
+	padding: 0;
+	margin: 1em 0 0 .3em;
+}
+
+hr
+{
+	border: none 0;
+	border-top: 1px solid #7F8FB1;
+	height: 1px;
+}
+
+pre.code
+{
+	display: block;
+	padding: 8px;
+	border: 1px dashed #ccc;
+}
+
+#index
+{
+	margin-top: 24px;
+	float: left;
+	width: 160px;
+	position: absolute;
+	left: 8px;
+	background-color: #F3F3F3;
+	padding: 8px;
+}
+
+#content
+{
+	margin-left: 190px;
+	width: 600px;
+}
+
+.classList
+{
+	list-style-type: none;
+	padding: 0;
+	margin: 0 0 0 8px;
+	font-family: arial, sans-serif;
+	font-size: 1em;
+	overflow: auto;
+}
+
+.classList li
+{
+	padding: 0;
+	margin: 0 0 8px 0;
+}
+
+.summaryTable { width: 100%; }
+
+h1.classTitle
+{
+	font-size:170%;
+	line-height:130%;
+}
+
+h2 { font-size: 110%; }
+caption, div.sectionTitle
+{
+	background-color: #7F8FB1;
+	color: #fff;
+	font-size:130%;
+	text-align: left;
+	padding: 2px 6px 2px 6px;
+	border: 1px #7F8FB1 solid;
+}
+
+div.sectionTitle { margin-bottom: 8px; }
+.summaryTable thead { display: none; }
+
+.summaryTable td
+{
+	vertical-align: top;
+	padding: 4px;
+	border-bottom: 1px #7F8FB1 solid;
+	border-right: 1px #7F8FB1 solid;
+}
+
+/*col#summaryAttributes {}*/
+.summaryTable td.attributes
+{
+	border-left: 1px #7F8FB1 solid;
+	width: 140px;
+	text-align: right;
+}
+
+td.attributes, .fixedFont
+{
+	line-height: 15px;
+	color: #002EBE;
+	font-family: "Courier New",Courier,monospace;
+	font-size: 13px;
+}
+
+.summaryTable td.nameDescription
+{
+	text-align: left;
+	font-size: 13px;
+	line-height: 15px;
+}
+
+.summaryTable td.nameDescription, .description
+{
+	line-height: 15px;
+	padding: 4px;
+	padding-left: 4px;
+}
+
+.summaryTable { margin-bottom: 8px; }
+
+ul.inheritsList
+{
+	list-style: square;
+	margin-left: 20px;
+	padding-left: 0;
+}
+
+.detailList {
+	margin-left: 20px; 
+	line-height: 15px;
+}
+.detailList dt { margin-left: 20px; }
+
+.detailList .heading
+{
+	font-weight: bold;
+	padding-bottom: 6px;
+	margin-left: 0;
+}
+
+.light, td.attributes, .light a:link, .light a:visited
+{
+	color: #777;
+	font-style: italic;
+}
+
+.fineprint
+{
+	text-align: right;
+	font-size: 10px;
+}
+		</style>
+	</head>
+
+	<body>
+<!-- ============================== header ================================= -->	
+		<!-- begin static/header.html -->
+		<div id="header">
+</div>
+		<!-- end static/header.html -->
+
+<!-- ============================== classes index ============================ -->
+		<div id="index">
+			<!-- begin publish.classesIndex -->
+			<div align="center"><a href="../index.html">Class Index</a>
+| <a href="../files.html">File Index</a></div>
+<hr />
+<h2>Classes</h2>
+<ul class="classList">
+	
+	<li><i><a href="../symbols/_global_.html">_global_</a></i></li>
+	
+	<li><a href="../symbols/jQuery.fn.minplayer.html">jQuery.fn.minplayer</a></li>
+	
+	<li><a href="../symbols/jQuery.fn.osmplayer.html">jQuery.fn.osmplayer</a></li>
+	
+	<li><a href="../symbols/minplayer.async.html">minplayer.async</a></li>
+	
+	<li><a href="../symbols/minplayer.compatibility.html">minplayer.compatibility</a></li>
+	
+	<li><a href="../symbols/minplayer.display.html">minplayer.display</a></li>
+	
+	<li><a href="../symbols/minplayer.file.html">minplayer.file</a></li>
+	
+	<li><a href="../symbols/minplayer.flags.html">minplayer.flags</a></li>
+	
+	<li><a href="../symbols/minplayer.image.html">minplayer.image</a></li>
+	
+	<li><a href="../symbols/minplayer.players.base.html">minplayer.players.base</a></li>
+	
+	<li><a href="../symbols/minplayer.players.flash.html">minplayer.players.flash</a></li>
+	
+	<li><a href="../symbols/minplayer.players.html5.html">minplayer.players.html5</a></li>
+	
+	<li><a href="../symbols/minplayer.players.minplayer.html">minplayer.players.minplayer</a></li>
+	
+	<li><a href="../symbols/minplayer.players.vimeo.html">minplayer.players.vimeo</a></li>
+	
+	<li><a href="../symbols/minplayer.players.youtube.html">minplayer.players.youtube</a></li>
+	
+	<li><a href="../symbols/minplayer.plugin.html">minplayer.plugin</a></li>
+	
+	<li><a href="../symbols/osmplayer.html">osmplayer</a></li>
+	
+	<li><a href="../symbols/osmplayer.pager.html">osmplayer.pager</a></li>
+	
+	<li><a href="../symbols/osmplayer.playlist.html">osmplayer.playlist</a></li>
+	
+	<li><a href="../symbols/osmplayer.teaser.html">osmplayer.teaser</a></li>
+	
+</ul>
+<hr />
+			<!-- end publish.classesIndex -->
+		</div>
+		
+		<div id="content">
+<!-- ============================== class title ============================ -->
+			<h1 class="classTitle">
+				
+				Class minplayer.flags
+			</h1>
+
+<!-- ============================== class summary ========================== -->			
+			<p class="description">
+				
+				
+			
+				This is a class used to keep track of flag states
+which is used to control the busy cursor, big play button, among other
+items in which multiple components can have an interest in hiding or
+showing a single element on the screen.
+
+<p>
+<strong>Usage:</strong>
+<pre><code>
+  // Declare a flags variable.
+  var flags = new minplayer.flags();
+
+  // Set the flag based on two components interested in the flag.
+  flags.setFlag("component1", true);
+  flags.setFlag("component2", true);
+
+  // Print out the value of the flags. ( Prints 3 )
+  console.log(flags.flags);
+
+  // Now unset a single components flag.
+  flags.setFlag("component1", false);
+
+  // Print out the value of the flags.
+  console.log(flags.flags);
+
+  // Unset the other components flag.
+  flags.setFlag("component2", false);
+
+  // Print out the value of the flags.
+  console.log(flags.flags);
+</code></pre>
+</p>
+				
+				
+					<br /><i>Defined in: </i> <a href="../symbols/src/minplayer_src_minplayer.flags.js.html">minplayer.flags.js</a>.
+				
+			</p>
+
+<!-- ============================== constructor summary ==================== -->			
+			
+			<table class="summaryTable" cellspacing="0" summary="A summary of the constructor documented in the class minplayer.flags.">
+				<caption>Class Summary</caption>
+				<thead>
+					<tr>
+						<th scope="col">Constructor Attributes</th>
+						<th scope="col">Constructor Name and Description</th>
+					</tr>
+				</thead>
+				<tbody>
+					<tr>
+						<td class="attributes">&nbsp;</td>
+						<td class="nameDescription" >
+							<div class="fixedFont">
+								<b><a href="../symbols/minplayer.flags.html#constructor">minplayer.flags</a></b>()
+							</div>
+							<div class="description"></div>
+						</td>
+					</tr>
+				</tbody>
+			</table>
+			
+
+<!-- ============================== properties summary ===================== -->
+			
+				
+				
+				<table class="summaryTable" cellspacing="0" summary="A summary of the fields documented in the class minplayer.flags.">
+					<caption>Field Summary</caption>
+					<thead>
+						<tr>
+							<th scope="col">Field Attributes</th>
+							<th scope="col">Field Name and Description</th>
+						</tr>
+					</thead>
+					<tbody>
+					
+						<tr>
+							<td class="attributes">&nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont">
+								<b><a href="../symbols/minplayer.flags.html#flag">flag</a></b>
+								</div>
+								<div class="description">The flag.</div>
+							</td>
+						</tr>
+					
+						<tr>
+							<td class="attributes">&nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont">
+								<b><a href="../symbols/minplayer.flags.html#ids">ids</a></b>
+								</div>
+								<div class="description">Id map to reference id with the flag index.</div>
+							</td>
+						</tr>
+					
+						<tr>
+							<td class="attributes">&nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont">
+								<b><a href="../symbols/minplayer.flags.html#numFlags">numFlags</a></b>
+								</div>
+								<div class="description">The number of flags.</div>
+							</td>
+						</tr>
+					
+					</tbody>
+				</table>
+				
+				
+				
+			
+
+<!-- ============================== methods summary ======================== -->
+			
+				
+				
+				<table class="summaryTable" cellspacing="0" summary="A summary of the methods documented in the class minplayer.flags.">
+					<caption>Method Summary</caption>
+					<thead>
+						<tr>
+							<th scope="col">Method Attributes</th>
+							<th scope="col">Method Name and Description</th>
+						</tr>
+					</thead>
+					<tbody>
+					
+						<tr>
+							<td class="attributes">&nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont"><b><a href="../symbols/minplayer.flags.html#setFlag">setFlag</a></b>(id, value)
+								</div>
+								<div class="description">Sets a flag based on boolean logic operators.</div>
+							</td>
+						</tr>
+					
+					</tbody>
+				</table>
+				
+				
+				
+			
+<!-- ============================== events summary ======================== -->
+			
+
+<!-- ============================== constructor details ==================== -->		
+			
+			<div class="details"><a name="constructor"> </a>
+				<div class="sectionTitle">
+					Class Detail
+				</div>
+				
+				<div class="fixedFont">
+						<b>minplayer.flags</b>()
+				</div>
+				
+				<div class="description">
+					
+					
+				</div>
+				
+				
+				
+				
+					
+					
+					
+					
+					
+					
+					
+
+			</div>
+			
+
+<!-- ============================== field details ========================== -->		
+			
+				<div class="sectionTitle">
+					Field Detail
+				</div>
+				
+					<a name="flag"> </a>
+					<div class="fixedFont">
+					
+					
+					<b>flag</b>
+					
+					</div>
+					<div class="description">
+						The flag.
+						
+						
+					</div>
+					
+					
+
+						
+						
+						
+						
+
+					<hr />
+				
+					<a name="ids"> </a>
+					<div class="fixedFont">
+					
+					
+					<b>ids</b>
+					
+					</div>
+					<div class="description">
+						Id map to reference id with the flag index.
+						
+						
+					</div>
+					
+					
+
+						
+						
+						
+						
+
+					<hr />
+				
+					<a name="numFlags"> </a>
+					<div class="fixedFont">
+					
+					
+					<b>numFlags</b>
+					
+					</div>
+					<div class="description">
+						The number of flags.
+						
+						
+					</div>
+					
+					
+
+						
+						
+						
+						
+
+					
+				
+			
+
+<!-- ============================== method details ========================= -->		
+			
+				<div class="sectionTitle">
+					Method Detail
+				</div>
+				
+					<a name="setFlag"> </a>
+					<div class="fixedFont">
+					
+					
+					<b>setFlag</b>(id, value)
+					
+					</div>
+					<div class="description">
+						Sets a flag based on boolean logic operators.
+						
+						
+					</div>
+					
+					
+					
+						
+							<dl class="detailList">
+							<dt class="heading">Parameters:</dt>
+							
+								<dt>
+									<span class="light fixedFont">{string}</span> <b>id</b>
+									
+								</dt>
+								<dd>The id of the controller interested in this flag.</dd>
+							
+								<dt>
+									<span class="light fixedFont">{boolean}</span> <b>value</b>
+									
+								</dt>
+								<dd>The value of this flag ( true or false ).</dd>
+							
+							</dl>
+						
+						
+						
+						
+						
+						
+						
+
+					
+				
+			
+			
+<!-- ============================== event details ========================= -->		
+			
+			
+			<hr />
+		</div>
+
+		
+<!-- ============================== footer ================================= -->
+		<div class="fineprint" style="clear:both">
+			
+			Documentation generated by <a href="http://code.google.com/p/jsdoc-toolkit/" target="_blank">JsDoc Toolkit</a> 2.4.0 on Sun Aug 19 2012 12:11:27 GMT-0500 (CDT)
+		</div>
+	</body>
+</html>
diff --git a/public/admin/js/osmplayer/doc/symbols/minplayer.image.html b/public/admin/js/osmplayer/doc/symbols/minplayer.image.html
new file mode 100644
index 00000000000..7374165fda9
--- /dev/null
+++ b/public/admin/js/osmplayer/doc/symbols/minplayer.image.html
@@ -0,0 +1,687 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+        "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+	<head>
+		<meta http-equiv="content-type" content="text/html; charset=utf-8" />
+		<meta name="generator" content="JsDoc Toolkit" />
+		
+		<title>JsDoc Reference - minplayer.image</title>
+
+		<style type="text/css">
+			/* default.css */
+body
+{
+	font: 12px "Lucida Grande", Tahoma, Arial, Helvetica, sans-serif;
+	width: 800px;
+}
+
+.header
+{
+	clear: both;
+	background-color: #ccc;
+	padding: 8px;
+}
+
+h1
+{
+	font-size: 150%;
+	font-weight: bold;
+	padding: 0;
+	margin: 1em 0 0 .3em;
+}
+
+hr
+{
+	border: none 0;
+	border-top: 1px solid #7F8FB1;
+	height: 1px;
+}
+
+pre.code
+{
+	display: block;
+	padding: 8px;
+	border: 1px dashed #ccc;
+}
+
+#index
+{
+	margin-top: 24px;
+	float: left;
+	width: 160px;
+	position: absolute;
+	left: 8px;
+	background-color: #F3F3F3;
+	padding: 8px;
+}
+
+#content
+{
+	margin-left: 190px;
+	width: 600px;
+}
+
+.classList
+{
+	list-style-type: none;
+	padding: 0;
+	margin: 0 0 0 8px;
+	font-family: arial, sans-serif;
+	font-size: 1em;
+	overflow: auto;
+}
+
+.classList li
+{
+	padding: 0;
+	margin: 0 0 8px 0;
+}
+
+.summaryTable { width: 100%; }
+
+h1.classTitle
+{
+	font-size:170%;
+	line-height:130%;
+}
+
+h2 { font-size: 110%; }
+caption, div.sectionTitle
+{
+	background-color: #7F8FB1;
+	color: #fff;
+	font-size:130%;
+	text-align: left;
+	padding: 2px 6px 2px 6px;
+	border: 1px #7F8FB1 solid;
+}
+
+div.sectionTitle { margin-bottom: 8px; }
+.summaryTable thead { display: none; }
+
+.summaryTable td
+{
+	vertical-align: top;
+	padding: 4px;
+	border-bottom: 1px #7F8FB1 solid;
+	border-right: 1px #7F8FB1 solid;
+}
+
+/*col#summaryAttributes {}*/
+.summaryTable td.attributes
+{
+	border-left: 1px #7F8FB1 solid;
+	width: 140px;
+	text-align: right;
+}
+
+td.attributes, .fixedFont
+{
+	line-height: 15px;
+	color: #002EBE;
+	font-family: "Courier New",Courier,monospace;
+	font-size: 13px;
+}
+
+.summaryTable td.nameDescription
+{
+	text-align: left;
+	font-size: 13px;
+	line-height: 15px;
+}
+
+.summaryTable td.nameDescription, .description
+{
+	line-height: 15px;
+	padding: 4px;
+	padding-left: 4px;
+}
+
+.summaryTable { margin-bottom: 8px; }
+
+ul.inheritsList
+{
+	list-style: square;
+	margin-left: 20px;
+	padding-left: 0;
+}
+
+.detailList {
+	margin-left: 20px; 
+	line-height: 15px;
+}
+.detailList dt { margin-left: 20px; }
+
+.detailList .heading
+{
+	font-weight: bold;
+	padding-bottom: 6px;
+	margin-left: 0;
+}
+
+.light, td.attributes, .light a:link, .light a:visited
+{
+	color: #777;
+	font-style: italic;
+}
+
+.fineprint
+{
+	text-align: right;
+	font-size: 10px;
+}
+		</style>
+	</head>
+
+	<body>
+<!-- ============================== header ================================= -->	
+		<!-- begin static/header.html -->
+		<div id="header">
+</div>
+		<!-- end static/header.html -->
+
+<!-- ============================== classes index ============================ -->
+		<div id="index">
+			<!-- begin publish.classesIndex -->
+			<div align="center"><a href="../index.html">Class Index</a>
+| <a href="../files.html">File Index</a></div>
+<hr />
+<h2>Classes</h2>
+<ul class="classList">
+	
+	<li><i><a href="../symbols/_global_.html">_global_</a></i></li>
+	
+	<li><a href="../symbols/jQuery.fn.minplayer.html">jQuery.fn.minplayer</a></li>
+	
+	<li><a href="../symbols/jQuery.fn.osmplayer.html">jQuery.fn.osmplayer</a></li>
+	
+	<li><a href="../symbols/minplayer.async.html">minplayer.async</a></li>
+	
+	<li><a href="../symbols/minplayer.compatibility.html">minplayer.compatibility</a></li>
+	
+	<li><a href="../symbols/minplayer.display.html">minplayer.display</a></li>
+	
+	<li><a href="../symbols/minplayer.file.html">minplayer.file</a></li>
+	
+	<li><a href="../symbols/minplayer.flags.html">minplayer.flags</a></li>
+	
+	<li><a href="../symbols/minplayer.image.html">minplayer.image</a></li>
+	
+	<li><a href="../symbols/minplayer.players.base.html">minplayer.players.base</a></li>
+	
+	<li><a href="../symbols/minplayer.players.flash.html">minplayer.players.flash</a></li>
+	
+	<li><a href="../symbols/minplayer.players.html5.html">minplayer.players.html5</a></li>
+	
+	<li><a href="../symbols/minplayer.players.minplayer.html">minplayer.players.minplayer</a></li>
+	
+	<li><a href="../symbols/minplayer.players.vimeo.html">minplayer.players.vimeo</a></li>
+	
+	<li><a href="../symbols/minplayer.players.youtube.html">minplayer.players.youtube</a></li>
+	
+	<li><a href="../symbols/minplayer.plugin.html">minplayer.plugin</a></li>
+	
+	<li><a href="../symbols/osmplayer.html">osmplayer</a></li>
+	
+	<li><a href="../symbols/osmplayer.pager.html">osmplayer.pager</a></li>
+	
+	<li><a href="../symbols/osmplayer.playlist.html">osmplayer.playlist</a></li>
+	
+	<li><a href="../symbols/osmplayer.teaser.html">osmplayer.teaser</a></li>
+	
+</ul>
+<hr />
+			<!-- end publish.classesIndex -->
+		</div>
+		
+		<div id="content">
+<!-- ============================== class title ============================ -->
+			<h1 class="classTitle">
+				
+				Class minplayer.image
+			</h1>
+
+<!-- ============================== class summary ========================== -->			
+			<p class="description">
+				
+				
+			
+				A class to easily handle images.
+				
+				
+					<br /><i>Defined in: </i> <a href="../symbols/src/minplayer_src_minplayer.image.js.html">minplayer.image.js</a>.
+				
+			</p>
+
+<!-- ============================== constructor summary ==================== -->			
+			
+			<table class="summaryTable" cellspacing="0" summary="A summary of the constructor documented in the class minplayer.image.">
+				<caption>Class Summary</caption>
+				<thead>
+					<tr>
+						<th scope="col">Constructor Attributes</th>
+						<th scope="col">Constructor Name and Description</th>
+					</tr>
+				</thead>
+				<tbody>
+					<tr>
+						<td class="attributes">&nbsp;</td>
+						<td class="nameDescription" >
+							<div class="fixedFont">
+								<b><a href="../symbols/minplayer.image.html#constructor">minplayer.image</a></b>(context, options)
+							</div>
+							<div class="description"></div>
+						</td>
+					</tr>
+				</tbody>
+			</table>
+			
+
+<!-- ============================== properties summary ===================== -->
+			
+				
+				
+				<table class="summaryTable" cellspacing="0" summary="A summary of the fields documented in the class minplayer.image.">
+					<caption>Field Summary</caption>
+					<thead>
+						<tr>
+							<th scope="col">Field Attributes</th>
+							<th scope="col">Field Name and Description</th>
+						</tr>
+					</thead>
+					<tbody>
+					
+						<tr>
+							<td class="attributes">&nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont">
+								<b><a href="../symbols/minplayer.image.html#constructor">constructor</a></b>
+								</div>
+								<div class="description">Reset the constructor.</div>
+							</td>
+						</tr>
+					
+						<tr>
+							<td class="attributes">&nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont">
+								<b><a href="../symbols/minplayer.image.html#loader">loader</a></b>
+								</div>
+								<div class="description">The loader for the image.</div>
+							</td>
+						</tr>
+					
+					</tbody>
+				</table>
+				
+				
+				
+			
+
+<!-- ============================== methods summary ======================== -->
+			
+				
+				
+				<table class="summaryTable" cellspacing="0" summary="A summary of the methods documented in the class minplayer.image.">
+					<caption>Method Summary</caption>
+					<thead>
+						<tr>
+							<th scope="col">Method Attributes</th>
+							<th scope="col">Method Name and Description</th>
+						</tr>
+					</thead>
+					<tbody>
+					
+						<tr>
+							<td class="attributes">&nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont"><b><a href="../symbols/minplayer.image.html#clear">clear</a></b>(callback)
+								</div>
+								<div class="description">Clears an image.</div>
+							</td>
+						</tr>
+					
+						<tr>
+							<td class="attributes">&nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont"><b><a href="../symbols/minplayer.image.html#construct">construct</a></b>()
+								</div>
+								<div class="description"></div>
+							</td>
+						</tr>
+					
+						<tr>
+							<td class="attributes">&nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont"><b><a href="../symbols/minplayer.image.html#load">load</a></b>(src)
+								</div>
+								<div class="description">Loads an image.</div>
+							</td>
+						</tr>
+					
+						<tr>
+							<td class="attributes">&nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont"><b><a href="../symbols/minplayer.image.html#onResize">onResize</a></b>()
+								</div>
+								<div class="description"></div>
+							</td>
+						</tr>
+					
+						<tr>
+							<td class="attributes">&nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont"><b><a href="../symbols/minplayer.image.html#resize">resize</a></b>(width, height)
+								</div>
+								<div class="description">Resize the image provided a width and height or nothing.</div>
+							</td>
+						</tr>
+					
+					</tbody>
+				</table>
+				
+				
+				
+			
+<!-- ============================== events summary ======================== -->
+			
+
+<!-- ============================== constructor details ==================== -->		
+			
+			<div class="details"><a name="constructor"> </a>
+				<div class="sectionTitle">
+					Class Detail
+				</div>
+				
+				<div class="fixedFont">
+						<b>minplayer.image</b>(context, options)
+				</div>
+				
+				<div class="description">
+					
+					
+				</div>
+				
+				
+				
+				
+					
+						<dl class="detailList">
+						<dt class="heading">Parameters:</dt>
+						
+							<dt>
+								<span class="light fixedFont">{object}</span>  <b>context</b>
+								
+							</dt>
+								<dd>The jQuery context.</dd>
+						
+							<dt>
+								<span class="light fixedFont">{object}</span>  <b>options</b>
+								
+							</dt>
+								<dd>This components options.</dd>
+						
+						</dl>
+					
+					
+					
+					
+					
+					
+					
+
+			</div>
+			
+
+<!-- ============================== field details ========================== -->		
+			
+				<div class="sectionTitle">
+					Field Detail
+				</div>
+				
+					<a name="constructor"> </a>
+					<div class="fixedFont">
+					
+					
+					<b>constructor</b>
+					
+					</div>
+					<div class="description">
+						Reset the constructor.
+						
+						
+					</div>
+					
+					
+
+						
+						
+						
+						
+
+					<hr />
+				
+					<a name="loader"> </a>
+					<div class="fixedFont">
+					
+					
+					<b>loader</b>
+					
+					</div>
+					<div class="description">
+						The loader for the image.
+						
+						
+					</div>
+					
+					
+
+						
+						
+						
+						
+
+					
+				
+			
+
+<!-- ============================== method details ========================= -->		
+			
+				<div class="sectionTitle">
+					Method Detail
+				</div>
+				
+					<a name="clear"> </a>
+					<div class="fixedFont">
+					
+					
+					<b>clear</b>(callback)
+					
+					</div>
+					<div class="description">
+						Clears an image.
+						
+						
+					</div>
+					
+					
+					
+						
+							<dl class="detailList">
+							<dt class="heading">Parameters:</dt>
+							
+								<dt>
+									<span class="light fixedFont">{function}</span> <b>callback</b>
+									
+								</dt>
+								<dd>Called when the image is done clearing.</dd>
+							
+							</dl>
+						
+						
+						
+						
+						
+						
+						
+
+					<hr />
+				
+					<a name="construct"> </a>
+					<div class="fixedFont">
+					
+					
+					<b>construct</b>()
+					
+					</div>
+					<div class="description">
+						
+						
+						
+					</div>
+					
+					
+					
+						
+						
+						
+						
+						
+						
+						
+							<dl class="detailList">
+							<dt class="heading">See:</dt>
+							
+								<dd>minplayer.plugin.construct</dd>
+							
+							</dl>
+						
+
+					<hr />
+				
+					<a name="load"> </a>
+					<div class="fixedFont">
+					
+					
+					<b>load</b>(src)
+					
+					</div>
+					<div class="description">
+						Loads an image.
+						
+						
+					</div>
+					
+					
+					
+						
+							<dl class="detailList">
+							<dt class="heading">Parameters:</dt>
+							
+								<dt>
+									<span class="light fixedFont">{string}</span> <b>src</b>
+									
+								</dt>
+								<dd>The source of the image to load.</dd>
+							
+							</dl>
+						
+						
+						
+						
+						
+						
+						
+
+					<hr />
+				
+					<a name="onResize"> </a>
+					<div class="fixedFont">
+					
+					
+					<b>onResize</b>()
+					
+					</div>
+					<div class="description">
+						
+						
+						
+					</div>
+					
+					
+					
+						
+						
+						
+						
+						
+						
+						
+							<dl class="detailList">
+							<dt class="heading">See:</dt>
+							
+								<dd><a href="../symbols/minplayer.display.html#onResize">minplayer.display#onResize</a></dd>
+							
+							</dl>
+						
+
+					<hr />
+				
+					<a name="resize"> </a>
+					<div class="fixedFont">
+					
+					
+					<b>resize</b>(width, height)
+					
+					</div>
+					<div class="description">
+						Resize the image provided a width and height or nothing.
+						
+						
+					</div>
+					
+					
+					
+						
+							<dl class="detailList">
+							<dt class="heading">Parameters:</dt>
+							
+								<dt>
+									<span class="light fixedFont">{integer}</span> <b>width</b>
+									
+								</dt>
+								<dd>(optional) The width of the container.</dd>
+							
+								<dt>
+									<span class="light fixedFont">{integer}</span> <b>height</b>
+									
+								</dt>
+								<dd>(optional) The height of the container.</dd>
+							
+							</dl>
+						
+						
+						
+						
+						
+						
+						
+
+					
+				
+			
+			
+<!-- ============================== event details ========================= -->		
+			
+			
+			<hr />
+		</div>
+
+		
+<!-- ============================== footer ================================= -->
+		<div class="fineprint" style="clear:both">
+			
+			Documentation generated by <a href="http://code.google.com/p/jsdoc-toolkit/" target="_blank">JsDoc Toolkit</a> 2.4.0 on Sun Aug 19 2012 12:11:27 GMT-0500 (CDT)
+		</div>
+	</body>
+</html>
diff --git a/public/admin/js/osmplayer/doc/symbols/minplayer.players.base.html b/public/admin/js/osmplayer/doc/symbols/minplayer.players.base.html
new file mode 100644
index 00000000000..07a45cf8248
--- /dev/null
+++ b/public/admin/js/osmplayer/doc/symbols/minplayer.players.base.html
@@ -0,0 +1,2102 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+        "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+	<head>
+		<meta http-equiv="content-type" content="text/html; charset=utf-8" />
+		<meta name="generator" content="JsDoc Toolkit" />
+		
+		<title>JsDoc Reference - minplayer.players.base</title>
+
+		<style type="text/css">
+			/* default.css */
+body
+{
+	font: 12px "Lucida Grande", Tahoma, Arial, Helvetica, sans-serif;
+	width: 800px;
+}
+
+.header
+{
+	clear: both;
+	background-color: #ccc;
+	padding: 8px;
+}
+
+h1
+{
+	font-size: 150%;
+	font-weight: bold;
+	padding: 0;
+	margin: 1em 0 0 .3em;
+}
+
+hr
+{
+	border: none 0;
+	border-top: 1px solid #7F8FB1;
+	height: 1px;
+}
+
+pre.code
+{
+	display: block;
+	padding: 8px;
+	border: 1px dashed #ccc;
+}
+
+#index
+{
+	margin-top: 24px;
+	float: left;
+	width: 160px;
+	position: absolute;
+	left: 8px;
+	background-color: #F3F3F3;
+	padding: 8px;
+}
+
+#content
+{
+	margin-left: 190px;
+	width: 600px;
+}
+
+.classList
+{
+	list-style-type: none;
+	padding: 0;
+	margin: 0 0 0 8px;
+	font-family: arial, sans-serif;
+	font-size: 1em;
+	overflow: auto;
+}
+
+.classList li
+{
+	padding: 0;
+	margin: 0 0 8px 0;
+}
+
+.summaryTable { width: 100%; }
+
+h1.classTitle
+{
+	font-size:170%;
+	line-height:130%;
+}
+
+h2 { font-size: 110%; }
+caption, div.sectionTitle
+{
+	background-color: #7F8FB1;
+	color: #fff;
+	font-size:130%;
+	text-align: left;
+	padding: 2px 6px 2px 6px;
+	border: 1px #7F8FB1 solid;
+}
+
+div.sectionTitle { margin-bottom: 8px; }
+.summaryTable thead { display: none; }
+
+.summaryTable td
+{
+	vertical-align: top;
+	padding: 4px;
+	border-bottom: 1px #7F8FB1 solid;
+	border-right: 1px #7F8FB1 solid;
+}
+
+/*col#summaryAttributes {}*/
+.summaryTable td.attributes
+{
+	border-left: 1px #7F8FB1 solid;
+	width: 140px;
+	text-align: right;
+}
+
+td.attributes, .fixedFont
+{
+	line-height: 15px;
+	color: #002EBE;
+	font-family: "Courier New",Courier,monospace;
+	font-size: 13px;
+}
+
+.summaryTable td.nameDescription
+{
+	text-align: left;
+	font-size: 13px;
+	line-height: 15px;
+}
+
+.summaryTable td.nameDescription, .description
+{
+	line-height: 15px;
+	padding: 4px;
+	padding-left: 4px;
+}
+
+.summaryTable { margin-bottom: 8px; }
+
+ul.inheritsList
+{
+	list-style: square;
+	margin-left: 20px;
+	padding-left: 0;
+}
+
+.detailList {
+	margin-left: 20px; 
+	line-height: 15px;
+}
+.detailList dt { margin-left: 20px; }
+
+.detailList .heading
+{
+	font-weight: bold;
+	padding-bottom: 6px;
+	margin-left: 0;
+}
+
+.light, td.attributes, .light a:link, .light a:visited
+{
+	color: #777;
+	font-style: italic;
+}
+
+.fineprint
+{
+	text-align: right;
+	font-size: 10px;
+}
+		</style>
+	</head>
+
+	<body>
+<!-- ============================== header ================================= -->	
+		<!-- begin static/header.html -->
+		<div id="header">
+</div>
+		<!-- end static/header.html -->
+
+<!-- ============================== classes index ============================ -->
+		<div id="index">
+			<!-- begin publish.classesIndex -->
+			<div align="center"><a href="../index.html">Class Index</a>
+| <a href="../files.html">File Index</a></div>
+<hr />
+<h2>Classes</h2>
+<ul class="classList">
+	
+	<li><i><a href="../symbols/_global_.html">_global_</a></i></li>
+	
+	<li><a href="../symbols/jQuery.fn.minplayer.html">jQuery.fn.minplayer</a></li>
+	
+	<li><a href="../symbols/jQuery.fn.osmplayer.html">jQuery.fn.osmplayer</a></li>
+	
+	<li><a href="../symbols/minplayer.async.html">minplayer.async</a></li>
+	
+	<li><a href="../symbols/minplayer.compatibility.html">minplayer.compatibility</a></li>
+	
+	<li><a href="../symbols/minplayer.display.html">minplayer.display</a></li>
+	
+	<li><a href="../symbols/minplayer.file.html">minplayer.file</a></li>
+	
+	<li><a href="../symbols/minplayer.flags.html">minplayer.flags</a></li>
+	
+	<li><a href="../symbols/minplayer.image.html">minplayer.image</a></li>
+	
+	<li><a href="../symbols/minplayer.players.base.html">minplayer.players.base</a></li>
+	
+	<li><a href="../symbols/minplayer.players.flash.html">minplayer.players.flash</a></li>
+	
+	<li><a href="../symbols/minplayer.players.html5.html">minplayer.players.html5</a></li>
+	
+	<li><a href="../symbols/minplayer.players.minplayer.html">minplayer.players.minplayer</a></li>
+	
+	<li><a href="../symbols/minplayer.players.vimeo.html">minplayer.players.vimeo</a></li>
+	
+	<li><a href="../symbols/minplayer.players.youtube.html">minplayer.players.youtube</a></li>
+	
+	<li><a href="../symbols/minplayer.plugin.html">minplayer.plugin</a></li>
+	
+	<li><a href="../symbols/osmplayer.html">osmplayer</a></li>
+	
+	<li><a href="../symbols/osmplayer.pager.html">osmplayer.pager</a></li>
+	
+	<li><a href="../symbols/osmplayer.playlist.html">osmplayer.playlist</a></li>
+	
+	<li><a href="../symbols/osmplayer.teaser.html">osmplayer.teaser</a></li>
+	
+</ul>
+<hr />
+			<!-- end publish.classesIndex -->
+		</div>
+		
+		<div id="content">
+<!-- ============================== class title ============================ -->
+			<h1 class="classTitle">
+				
+				Class minplayer.players.base
+			</h1>
+
+<!-- ============================== class summary ========================== -->			
+			<p class="description">
+				
+				<br />Extends
+					<a href="../symbols/minplayer.display.html">minplayer.display</a>.<br />
+				
+			
+				The base media player class where all media players derive from.
+				
+				
+					<br /><i>Defined in: </i> <a href="../symbols/src/minplayer_src_minplayer.players.base.js.html">minplayer.players.base.js</a>.
+				
+			</p>
+
+<!-- ============================== constructor summary ==================== -->			
+			
+			<table class="summaryTable" cellspacing="0" summary="A summary of the constructor documented in the class minplayer.players.base.">
+				<caption>Class Summary</caption>
+				<thead>
+					<tr>
+						<th scope="col">Constructor Attributes</th>
+						<th scope="col">Constructor Name and Description</th>
+					</tr>
+				</thead>
+				<tbody>
+					<tr>
+						<td class="attributes">&nbsp;</td>
+						<td class="nameDescription" >
+							<div class="fixedFont">
+								<b><a href="../symbols/minplayer.players.base.html#constructor">minplayer.players.base</a></b>(context, options, queue)
+							</div>
+							<div class="description"></div>
+						</td>
+					</tr>
+				</tbody>
+			</table>
+			
+
+<!-- ============================== properties summary ===================== -->
+			
+				
+				
+				<table class="summaryTable" cellspacing="0" summary="A summary of the fields documented in the class minplayer.players.base.">
+					<caption>Field Summary</caption>
+					<thead>
+						<tr>
+							<th scope="col">Field Attributes</th>
+							<th scope="col">Field Name and Description</th>
+						</tr>
+					</thead>
+					<tbody>
+					
+						<tr>
+							<td class="attributes">&nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont">
+								<b><a href="../symbols/minplayer.players.base.html#constructor">constructor</a></b>
+								</div>
+								<div class="description">Reset the constructor.</div>
+							</td>
+						</tr>
+					
+						<tr>
+							<td class="attributes">&nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont">
+								<b><a href="../symbols/minplayer.players.base.html#mediaFile">mediaFile</a></b>
+								</div>
+								<div class="description">The currently loaded media file.</div>
+							</td>
+						</tr>
+					
+					</tbody>
+				</table>
+				
+				
+				
+				<dl class="inheritsList">
+				<dt>Fields borrowed from class <a href="../symbols/minplayer.display.html">minplayer.display</a>: </dt><dd><a href="../symbols/minplayer.display.html#onResize">onResize</a></dd><dt>Fields borrowed from class <a href="../symbols/minplayer.plugin.html">minplayer.plugin</a>: </dt><dd><a href="../symbols/minplayer.plugin.html#active">active</a>, <a href="../symbols/minplayer.plugin.html#context">context</a>, <a href="../symbols/minplayer.plugin.html#lock">lock</a>, <a href="../symbols/minplayer.plugin.html#name">name</a>, <a href="../symbols/minplayer.plugin.html#options">options</a>, <a href="../symbols/minplayer.plugin.html#pluginReady">pluginReady</a>, <a href="../symbols/minplayer.plugin.html#queue">queue</a>, <a href="../symbols/minplayer.plugin.html#triggered">triggered</a></dd>
+				</dl>
+				
+			
+
+<!-- ============================== methods summary ======================== -->
+			
+				
+				
+				<table class="summaryTable" cellspacing="0" summary="A summary of the methods documented in the class minplayer.players.base.">
+					<caption>Method Summary</caption>
+					<thead>
+						<tr>
+							<th scope="col">Method Attributes</th>
+							<th scope="col">Method Name and Description</th>
+						</tr>
+					</thead>
+					<tbody>
+					
+						<tr>
+							<td class="attributes">&nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont"><b><a href="../symbols/minplayer.players.base.html#addPlayer">addPlayer</a></b>()
+								</div>
+								<div class="description">Adds the media player.</div>
+							</td>
+						</tr>
+					
+						<tr>
+							<td class="attributes">&lt;static&gt; &nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont">minplayer.players.base.<b><a href="../symbols/minplayer.players.base.html#.canPlay">canPlay</a></b>(file)
+								</div>
+								<div class="description">Determine if we can play the media file.</div>
+							</td>
+						</tr>
+					
+						<tr>
+							<td class="attributes">&nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont"><b><a href="../symbols/minplayer.players.base.html#clear">clear</a></b>()
+								</div>
+								<div class="description">Clears the media player.</div>
+							</td>
+						</tr>
+					
+						<tr>
+							<td class="attributes">&nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont"><b><a href="../symbols/minplayer.players.base.html#construct">construct</a></b>()
+								</div>
+								<div class="description"></div>
+							</td>
+						</tr>
+					
+						<tr>
+							<td class="attributes">&nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont"><b><a href="../symbols/minplayer.players.base.html#create">create</a></b>()
+								</div>
+								<div class="description">Creates the media player and inserts it in the DOM.</div>
+							</td>
+						</tr>
+					
+						<tr>
+							<td class="attributes">&nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont"><b><a href="../symbols/minplayer.players.base.html#destroy">destroy</a></b>()
+								</div>
+								<div class="description"></div>
+							</td>
+						</tr>
+					
+						<tr>
+							<td class="attributes">&nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont"><b><a href="../symbols/minplayer.players.base.html#getBytesLoaded">getBytesLoaded</a></b>(callback)
+								</div>
+								<div class="description">Return the bytes of media loaded.</div>
+							</td>
+						</tr>
+					
+						<tr>
+							<td class="attributes">&nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont"><b><a href="../symbols/minplayer.players.base.html#getBytesStart">getBytesStart</a></b>(callback)
+								</div>
+								<div class="description">Return the start bytes for the loaded media.</div>
+							</td>
+						</tr>
+					
+						<tr>
+							<td class="attributes">&nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont"><b><a href="../symbols/minplayer.players.base.html#getBytesTotal">getBytesTotal</a></b>(callback)
+								</div>
+								<div class="description">Return the total amount of bytes.</div>
+							</td>
+						</tr>
+					
+						<tr>
+							<td class="attributes">&nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont"><b><a href="../symbols/minplayer.players.base.html#getCurrentTime">getCurrentTime</a></b>(callback)
+								</div>
+								<div class="description">Get the current time for the media being played.</div>
+							</td>
+						</tr>
+					
+						<tr>
+							<td class="attributes">&nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont"><b><a href="../symbols/minplayer.players.base.html#getDuration">getDuration</a></b>(callback)
+								</div>
+								<div class="description">Return the duration of the loaded media.</div>
+							</td>
+						</tr>
+					
+						<tr>
+							<td class="attributes">&nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont"><b><a href="../symbols/minplayer.players.base.html#getElements">getElements</a></b>()
+								</div>
+								<div class="description"></div>
+							</td>
+						</tr>
+					
+						<tr>
+							<td class="attributes">&lt;static&gt; &nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont">minplayer.players.base.<b><a href="../symbols/minplayer.players.base.html#.getMediaId">getMediaId</a></b>(file)
+								</div>
+								<div class="description">Returns the ID for the media being played.</div>
+							</td>
+						</tr>
+					
+						<tr>
+							<td class="attributes">&nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont"><b><a href="../symbols/minplayer.players.base.html#getPlayer">getPlayer</a></b>()
+								</div>
+								<div class="description">Returns the media player object.</div>
+							</td>
+						</tr>
+					
+						<tr>
+							<td class="attributes">&lt;static&gt; &nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont">minplayer.players.base.<b><a href="../symbols/minplayer.players.base.html#.getPriority">getPriority</a></b>()
+								</div>
+								<div class="description">Get the priority of this media player.</div>
+							</td>
+						</tr>
+					
+						<tr>
+							<td class="attributes">&nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont"><b><a href="../symbols/minplayer.players.base.html#getValue">getValue</a></b>(getter, callback)
+								</div>
+								<div class="description">Gets a value from the player.</div>
+							</td>
+						</tr>
+					
+						<tr>
+							<td class="attributes">&nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont"><b><a href="../symbols/minplayer.players.base.html#getVolume">getVolume</a></b>(callback)
+								</div>
+								<div class="description">Get the volume from the loaded media.</div>
+							</td>
+						</tr>
+					
+						<tr>
+							<td class="attributes">&nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont"><b><a href="../symbols/minplayer.players.base.html#hasController">hasController</a></b>()
+								</div>
+								<div class="description">Determines if the player should show the controller.</div>
+							</td>
+						</tr>
+					
+						<tr>
+							<td class="attributes">&nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont"><b><a href="../symbols/minplayer.players.base.html#hasPlayLoader">hasPlayLoader</a></b>(preview)
+								</div>
+								<div class="description">Determines if the player should show the playloader.</div>
+							</td>
+						</tr>
+					
+						<tr>
+							<td class="attributes">&nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont"><b><a href="../symbols/minplayer.players.base.html#isReady">isReady</a></b>()
+								</div>
+								<div class="description"></div>
+							</td>
+						</tr>
+					
+						<tr>
+							<td class="attributes">&nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont"><b><a href="../symbols/minplayer.players.base.html#load">load</a></b>(file)
+								</div>
+								<div class="description">Loads a new media player.</div>
+							</td>
+						</tr>
+					
+						<tr>
+							<td class="attributes">&nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont"><b><a href="../symbols/minplayer.players.base.html#onComplete">onComplete</a></b>()
+								</div>
+								<div class="description">Should be called when the media is complete.</div>
+							</td>
+						</tr>
+					
+						<tr>
+							<td class="attributes">&nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont"><b><a href="../symbols/minplayer.players.base.html#onError">onError</a></b>(errorCode)
+								</div>
+								<div class="description">Called when an error occurs.</div>
+							</td>
+						</tr>
+					
+						<tr>
+							<td class="attributes">&nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont"><b><a href="../symbols/minplayer.players.base.html#onLoaded">onLoaded</a></b>()
+								</div>
+								<div class="description">Should be called when the media is done loading.</div>
+							</td>
+						</tr>
+					
+						<tr>
+							<td class="attributes">&nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont"><b><a href="../symbols/minplayer.players.base.html#onPaused">onPaused</a></b>()
+								</div>
+								<div class="description">Should be called when the media is paused.</div>
+							</td>
+						</tr>
+					
+						<tr>
+							<td class="attributes">&nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont"><b><a href="../symbols/minplayer.players.base.html#onPlaying">onPlaying</a></b>()
+								</div>
+								<div class="description">Should be called when the media is playing.</div>
+							</td>
+						</tr>
+					
+						<tr>
+							<td class="attributes">&nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont"><b><a href="../symbols/minplayer.players.base.html#onReady">onReady</a></b>()
+								</div>
+								<div class="description">Called when the player is ready to recieve events and commands.</div>
+							</td>
+						</tr>
+					
+						<tr>
+							<td class="attributes">&nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont"><b><a href="../symbols/minplayer.players.base.html#onWaiting">onWaiting</a></b>()
+								</div>
+								<div class="description">Should be called when the player is waiting.</div>
+							</td>
+						</tr>
+					
+						<tr>
+							<td class="attributes">&nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont"><b><a href="../symbols/minplayer.players.base.html#pause">pause</a></b>()
+								</div>
+								<div class="description">Pause the loaded media file.</div>
+							</td>
+						</tr>
+					
+						<tr>
+							<td class="attributes">&nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont"><b><a href="../symbols/minplayer.players.base.html#play">play</a></b>()
+								</div>
+								<div class="description">Play the loaded media file.</div>
+							</td>
+						</tr>
+					
+						<tr>
+							<td class="attributes">&nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont"><b><a href="../symbols/minplayer.players.base.html#playerFound">playerFound</a></b>()
+								</div>
+								<div class="description">Returns if the media player is already within the DOM.</div>
+							</td>
+						</tr>
+					
+						<tr>
+							<td class="attributes">&nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont"><b><a href="../symbols/minplayer.players.base.html#reset">reset</a></b>()
+								</div>
+								<div class="description">Resets all variables.</div>
+							</td>
+						</tr>
+					
+						<tr>
+							<td class="attributes">&nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont"><b><a href="../symbols/minplayer.players.base.html#seek">seek</a></b>(pos)
+								</div>
+								<div class="description">Seek the loaded media.</div>
+							</td>
+						</tr>
+					
+						<tr>
+							<td class="attributes">&nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont"><b><a href="../symbols/minplayer.players.base.html#seekRelative">seekRelative</a></b>(pos)
+								</div>
+								<div class="description">Seeks to relative position.</div>
+							</td>
+						</tr>
+					
+						<tr>
+							<td class="attributes">&nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont"><b><a href="../symbols/minplayer.players.base.html#setVolume">setVolume</a></b>(vol)
+								</div>
+								<div class="description">Set the volume of the loaded minplayer.</div>
+							</td>
+						</tr>
+					
+						<tr>
+							<td class="attributes">&nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont"><b><a href="../symbols/minplayer.players.base.html#setVolumeRelative">setVolumeRelative</a></b>(vol)
+								</div>
+								<div class="description">Set the volume of the loaded minplayer.</div>
+							</td>
+						</tr>
+					
+						<tr>
+							<td class="attributes">&nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont"><b><a href="../symbols/minplayer.players.base.html#stop">stop</a></b>()
+								</div>
+								<div class="description">Stop the loaded media file.</div>
+							</td>
+						</tr>
+					
+					</tbody>
+				</table>
+				
+				
+				
+				<dl class="inheritsList">
+				<dt>Methods borrowed from class <a href="../symbols/minplayer.display.html">minplayer.display</a>: </dt><dd><a href="../symbols/minplayer.display.html#fullscreen">fullscreen</a>, <a href="../symbols/minplayer.display.html#fullScreenElement">fullScreenElement</a>, <a href="../symbols/minplayer.display.html#getDisplay">getDisplay</a>, <a href="../symbols/minplayer.display.html#getScaledRect">getScaledRect</a>, <a href="../symbols/minplayer.display.html#hide">hide</a>, <a href="../symbols/minplayer.display.html#isFullScreen">isFullScreen</a>, <a href="../symbols/minplayer.display.html#onFocus">onFocus</a>, <a href="../symbols/minplayer.display.html#toggleFullScreen">toggleFullScreen</a></dd><dt>Methods borrowed from class <a href="../symbols/minplayer.plugin.html">minplayer.plugin</a>: </dt><dd><a href="../symbols/minplayer.plugin.html#addPlugin">addPlugin</a>, <a href="../symbols/minplayer.plugin.html#bind">bind</a>, <a href="../symbols/minplayer.plugin.html#checkQueue">checkQueue</a>, <a href="../symbols/minplayer.plugin.html#get">get</a>, <a href="../symbols/minplayer.plugin.html#isValid">isValid</a>, <a href="../symbols/minplayer.plugin.html#poll">poll</a>, <a href="../symbols/minplayer.plugin.html#ready">ready</a>, <a href="../symbols/minplayer.plugin.html#trigger">trigger</a>, <a href="../symbols/minplayer.plugin.html#unbind">unbind</a></dd>
+				</dl>
+				
+			
+<!-- ============================== events summary ======================== -->
+			
+
+<!-- ============================== constructor details ==================== -->		
+			
+			<div class="details"><a name="constructor"> </a>
+				<div class="sectionTitle">
+					Class Detail
+				</div>
+				
+				<div class="fixedFont">
+						<b>minplayer.players.base</b>(context, options, queue)
+				</div>
+				
+				<div class="description">
+					
+					
+				</div>
+				
+				
+				
+				
+					
+						<dl class="detailList">
+						<dt class="heading">Parameters:</dt>
+						
+							<dt>
+								<span class="light fixedFont">{object}</span>  <b>context</b>
+								
+							</dt>
+								<dd>The jQuery context.</dd>
+						
+							<dt>
+								<span class="light fixedFont">{object}</span>  <b>options</b>
+								
+							</dt>
+								<dd>This components options.</dd>
+						
+							<dt>
+								<span class="light fixedFont">{object}</span>  <b>queue</b>
+								
+							</dt>
+								<dd>The event queue to pass events around.</dd>
+						
+						</dl>
+					
+					
+					
+					
+					
+					
+					
+
+			</div>
+			
+
+<!-- ============================== field details ========================== -->		
+			
+				<div class="sectionTitle">
+					Field Detail
+				</div>
+				
+					<a name="constructor"> </a>
+					<div class="fixedFont">
+					
+					
+					<b>constructor</b>
+					
+					</div>
+					<div class="description">
+						Reset the constructor.
+						
+						
+					</div>
+					
+					
+
+						
+						
+						
+						
+
+					<hr />
+				
+					<a name="mediaFile"> </a>
+					<div class="fixedFont">
+					
+					
+					<b>mediaFile</b>
+					
+					</div>
+					<div class="description">
+						The currently loaded media file.
+						
+						
+					</div>
+					
+					
+
+						
+						
+						
+						
+
+					
+				
+			
+
+<!-- ============================== method details ========================= -->		
+			
+				<div class="sectionTitle">
+					Method Detail
+				</div>
+				
+					<a name="addPlayer"> </a>
+					<div class="fixedFont">
+					
+					
+					<b>addPlayer</b>()
+					
+					</div>
+					<div class="description">
+						Adds the media player.
+						
+						
+					</div>
+					
+					
+					
+						
+						
+						
+						
+						
+						
+						
+
+					<hr />
+				
+					<a name=".canPlay"> </a>
+					<div class="fixedFont">&lt;static&gt; 
+					
+					<span class="light">{boolean}</span>
+					<span class="light">minplayer.players.base.</span><b>canPlay</b>(file)
+					
+					</div>
+					<div class="description">
+						Determine if we can play the media file.
+						
+						
+					</div>
+					
+					
+					
+						
+							<dl class="detailList">
+							<dt class="heading">Parameters:</dt>
+							
+								<dt>
+									<span class="light fixedFont">{object}</span> <b>file</b>
+									
+								</dt>
+								<dd>A <a href="../symbols/minplayer.file.html">minplayer.file</a> object.</dd>
+							
+							</dl>
+						
+						
+						
+						
+						
+							<dl class="detailList">
+							<dt class="heading">Returns:</dt>
+							
+								<dd><span class="light fixedFont">{boolean}</span> If this player can play this media type.</dd>
+							
+							</dl>
+						
+						
+						
+
+					<hr />
+				
+					<a name="clear"> </a>
+					<div class="fixedFont">
+					
+					
+					<b>clear</b>()
+					
+					</div>
+					<div class="description">
+						Clears the media player.
+						
+						
+					</div>
+					
+					
+					
+						
+						
+						
+						
+						
+						
+						
+
+					<hr />
+				
+					<a name="construct"> </a>
+					<div class="fixedFont">
+					
+					
+					<b>construct</b>()
+					
+					</div>
+					<div class="description">
+						
+						
+						
+					</div>
+					
+					
+					
+						
+						
+						
+						
+						
+						
+						
+							<dl class="detailList">
+							<dt class="heading">See:</dt>
+							
+								<dd>minplayer.plugin.construct</dd>
+							
+							</dl>
+						
+
+					<hr />
+				
+					<a name="create"> </a>
+					<div class="fixedFont">
+					
+					<span class="light">{object}</span>
+					<b>create</b>()
+					
+					</div>
+					<div class="description">
+						Creates the media player and inserts it in the DOM.
+						
+						
+					</div>
+					
+					
+					
+						
+						
+						
+						
+						
+							<dl class="detailList">
+							<dt class="heading">Returns:</dt>
+							
+								<dd><span class="light fixedFont">{object}</span> The media player entity.</dd>
+							
+							</dl>
+						
+						
+						
+
+					<hr />
+				
+					<a name="destroy"> </a>
+					<div class="fixedFont">
+					
+					
+					<b>destroy</b>()
+					
+					</div>
+					<div class="description">
+						
+						
+						
+					</div>
+					
+					
+					
+						
+						
+						
+						
+						
+						
+						
+							<dl class="detailList">
+							<dt class="heading">See:</dt>
+							
+								<dd>minplayer.plugin.destroy.</dd>
+							
+							</dl>
+						
+
+					<hr />
+				
+					<a name="getBytesLoaded"> </a>
+					<div class="fixedFont">
+					
+					<span class="light">{int}</span>
+					<b>getBytesLoaded</b>(callback)
+					
+					</div>
+					<div class="description">
+						Return the bytes of media loaded.
+						
+						
+					</div>
+					
+					
+					
+						
+							<dl class="detailList">
+							<dt class="heading">Parameters:</dt>
+							
+								<dt>
+									<span class="light fixedFont">{function}</span> <b>callback</b>
+									
+								</dt>
+								<dd>Called when the bytes loaded is determined.</dd>
+							
+							</dl>
+						
+						
+						
+						
+						
+							<dl class="detailList">
+							<dt class="heading">Returns:</dt>
+							
+								<dd><span class="light fixedFont">{int}</span> The amount of bytes loaded.</dd>
+							
+							</dl>
+						
+						
+						
+
+					<hr />
+				
+					<a name="getBytesStart"> </a>
+					<div class="fixedFont">
+					
+					<span class="light">{int}</span>
+					<b>getBytesStart</b>(callback)
+					
+					</div>
+					<div class="description">
+						Return the start bytes for the loaded media.
+						
+						
+					</div>
+					
+					
+					
+						
+							<dl class="detailList">
+							<dt class="heading">Parameters:</dt>
+							
+								<dt>
+									<span class="light fixedFont">{function}</span> <b>callback</b>
+									
+								</dt>
+								<dd>Called when the start bytes is determined.</dd>
+							
+							</dl>
+						
+						
+						
+						
+						
+							<dl class="detailList">
+							<dt class="heading">Returns:</dt>
+							
+								<dd><span class="light fixedFont">{int}</span> The bytes that were started.</dd>
+							
+							</dl>
+						
+						
+						
+
+					<hr />
+				
+					<a name="getBytesTotal"> </a>
+					<div class="fixedFont">
+					
+					<span class="light">{int}</span>
+					<b>getBytesTotal</b>(callback)
+					
+					</div>
+					<div class="description">
+						Return the total amount of bytes.
+						
+						
+					</div>
+					
+					
+					
+						
+							<dl class="detailList">
+							<dt class="heading">Parameters:</dt>
+							
+								<dt>
+									<span class="light fixedFont">{function}</span> <b>callback</b>
+									
+								</dt>
+								<dd>Called when the bytes total is determined.</dd>
+							
+							</dl>
+						
+						
+						
+						
+						
+							<dl class="detailList">
+							<dt class="heading">Returns:</dt>
+							
+								<dd><span class="light fixedFont">{int}</span> The total amount of bytes for this media.</dd>
+							
+							</dl>
+						
+						
+						
+
+					<hr />
+				
+					<a name="getCurrentTime"> </a>
+					<div class="fixedFont">
+					
+					<span class="light">{number}</span>
+					<b>getCurrentTime</b>(callback)
+					
+					</div>
+					<div class="description">
+						Get the current time for the media being played.
+						
+						
+					</div>
+					
+					
+					
+						
+							<dl class="detailList">
+							<dt class="heading">Parameters:</dt>
+							
+								<dt>
+									<span class="light fixedFont">{function}</span> <b>callback</b>
+									
+								</dt>
+								<dd>Called when the time is determined.</dd>
+							
+							</dl>
+						
+						
+						
+						
+						
+							<dl class="detailList">
+							<dt class="heading">Returns:</dt>
+							
+								<dd><span class="light fixedFont">{number}</span> The volume of the media; 0 to 1.</dd>
+							
+							</dl>
+						
+						
+						
+
+					<hr />
+				
+					<a name="getDuration"> </a>
+					<div class="fixedFont">
+					
+					<span class="light">{number}</span>
+					<b>getDuration</b>(callback)
+					
+					</div>
+					<div class="description">
+						Return the duration of the loaded media.
+						
+						
+					</div>
+					
+					
+					
+						
+							<dl class="detailList">
+							<dt class="heading">Parameters:</dt>
+							
+								<dt>
+									<span class="light fixedFont">{function}</span> <b>callback</b>
+									
+								</dt>
+								<dd>Called when the duration is determined.</dd>
+							
+							</dl>
+						
+						
+						
+						
+						
+							<dl class="detailList">
+							<dt class="heading">Returns:</dt>
+							
+								<dd><span class="light fixedFont">{number}</span> The duration of the loaded media.</dd>
+							
+							</dl>
+						
+						
+						
+
+					<hr />
+				
+					<a name="getElements"> </a>
+					<div class="fixedFont">
+					
+					<span class="light">{object}</span>
+					<b>getElements</b>()
+					
+					</div>
+					<div class="description">
+						
+						
+						
+					</div>
+					
+					
+					
+						
+						
+						
+						
+						
+							<dl class="detailList">
+							<dt class="heading">Returns:</dt>
+							
+								<dd><span class="light fixedFont">{object}</span> The elements for this display.</dd>
+							
+							</dl>
+						
+						
+						
+							<dl class="detailList">
+							<dt class="heading">See:</dt>
+							
+								<dd>minplayer.display.getElements</dd>
+							
+							</dl>
+						
+
+					<hr />
+				
+					<a name=".getMediaId"> </a>
+					<div class="fixedFont">&lt;static&gt; 
+					
+					<span class="light">{string}</span>
+					<span class="light">minplayer.players.base.</span><b>getMediaId</b>(file)
+					
+					</div>
+					<div class="description">
+						Returns the ID for the media being played.
+						
+						
+					</div>
+					
+					
+					
+						
+							<dl class="detailList">
+							<dt class="heading">Parameters:</dt>
+							
+								<dt>
+									<span class="light fixedFont">{object}</span> <b>file</b>
+									
+								</dt>
+								<dd>A <a href="../symbols/minplayer.file.html">minplayer.file</a> object.</dd>
+							
+							</dl>
+						
+						
+						
+						
+						
+							<dl class="detailList">
+							<dt class="heading">Returns:</dt>
+							
+								<dd><span class="light fixedFont">{string}</span> The ID for the provided media.</dd>
+							
+							</dl>
+						
+						
+						
+
+					<hr />
+				
+					<a name="getPlayer"> </a>
+					<div class="fixedFont">
+					
+					<span class="light">{object}</span>
+					<b>getPlayer</b>()
+					
+					</div>
+					<div class="description">
+						Returns the media player object.
+						
+						
+					</div>
+					
+					
+					
+						
+						
+						
+						
+						
+							<dl class="detailList">
+							<dt class="heading">Returns:</dt>
+							
+								<dd><span class="light fixedFont">{object}</span> The media player object.</dd>
+							
+							</dl>
+						
+						
+						
+
+					<hr />
+				
+					<a name=".getPriority"> </a>
+					<div class="fixedFont">&lt;static&gt; 
+					
+					<span class="light">{number}</span>
+					<span class="light">minplayer.players.base.</span><b>getPriority</b>()
+					
+					</div>
+					<div class="description">
+						Get the priority of this media player.
+						
+						
+					</div>
+					
+					
+					
+						
+						
+						
+						
+						
+							<dl class="detailList">
+							<dt class="heading">Returns:</dt>
+							
+								<dd><span class="light fixedFont">{number}</span> The priority of this media player.</dd>
+							
+							</dl>
+						
+						
+						
+
+					<hr />
+				
+					<a name="getValue"> </a>
+					<div class="fixedFont">
+					
+					
+					<b>getValue</b>(getter, callback)
+					
+					</div>
+					<div class="description">
+						Gets a value from the player.
+						
+						
+					</div>
+					
+					
+					
+						
+							<dl class="detailList">
+							<dt class="heading">Parameters:</dt>
+							
+								<dt>
+									<span class="light fixedFont">{string}</span> <b>getter</b>
+									
+								</dt>
+								<dd>The getter method on the player.</dd>
+							
+								<dt>
+									<span class="light fixedFont">{function}</span> <b>callback</b>
+									
+								</dt>
+								<dd>The callback function.</dd>
+							
+							</dl>
+						
+						
+						
+						
+						
+						
+						
+
+					<hr />
+				
+					<a name="getVolume"> </a>
+					<div class="fixedFont">
+					
+					<span class="light">{number}</span>
+					<b>getVolume</b>(callback)
+					
+					</div>
+					<div class="description">
+						Get the volume from the loaded media.
+						
+						
+					</div>
+					
+					
+					
+						
+							<dl class="detailList">
+							<dt class="heading">Parameters:</dt>
+							
+								<dt>
+									<span class="light fixedFont">{function}</span> <b>callback</b>
+									
+								</dt>
+								<dd>Called when the volume is determined.</dd>
+							
+							</dl>
+						
+						
+						
+						
+						
+							<dl class="detailList">
+							<dt class="heading">Returns:</dt>
+							
+								<dd><span class="light fixedFont">{number}</span> The volume of the media; 0 to 1.</dd>
+							
+							</dl>
+						
+						
+						
+
+					<hr />
+				
+					<a name="hasController"> </a>
+					<div class="fixedFont">
+					
+					<span class="light">{bool}</span>
+					<b>hasController</b>()
+					
+					</div>
+					<div class="description">
+						Determines if the player should show the controller.
+						
+						
+					</div>
+					
+					
+					
+						
+						
+						
+						
+						
+							<dl class="detailList">
+							<dt class="heading">Returns:</dt>
+							
+								<dd><span class="light fixedFont">{bool}</span> If this player implements its own controller.</dd>
+							
+							</dl>
+						
+						
+						
+
+					<hr />
+				
+					<a name="hasPlayLoader"> </a>
+					<div class="fixedFont">
+					
+					<span class="light">{bool}</span>
+					<b>hasPlayLoader</b>(preview)
+					
+					</div>
+					<div class="description">
+						Determines if the player should show the playloader.
+						
+						
+					</div>
+					
+					
+					
+						
+							<dl class="detailList">
+							<dt class="heading">Parameters:</dt>
+							
+								<dt>
+									<span class="light fixedFont">{string}</span> <b>preview</b>
+									
+								</dt>
+								<dd>The preview image.</dd>
+							
+							</dl>
+						
+						
+						
+						
+						
+							<dl class="detailList">
+							<dt class="heading">Returns:</dt>
+							
+								<dd><span class="light fixedFont">{bool}</span> If this player implements its own playLoader.</dd>
+							
+							</dl>
+						
+						
+						
+
+					<hr />
+				
+					<a name="isReady"> </a>
+					<div class="fixedFont">
+					
+					<span class="light">{boolean}</span>
+					<b>isReady</b>()
+					
+					</div>
+					<div class="description">
+						
+						
+						
+					</div>
+					
+					
+					
+						
+						
+						
+						
+						
+							<dl class="detailList">
+							<dt class="heading">Returns:</dt>
+							
+								<dd><span class="light fixedFont">{boolean}</span> Checks to see if the Flash is ready.</dd>
+							
+							</dl>
+						
+						
+						
+							<dl class="detailList">
+							<dt class="heading">See:</dt>
+							
+								<dd><a href="../symbols/minplayer.players.base.html#isReady">minplayer.players.base#isReady</a></dd>
+							
+							</dl>
+						
+
+					<hr />
+				
+					<a name="load"> </a>
+					<div class="fixedFont">
+					
+					<span class="light">{boolean}</span>
+					<b>load</b>(file)
+					
+					</div>
+					<div class="description">
+						Loads a new media player.
+						
+						
+					</div>
+					
+					
+					
+						
+							<dl class="detailList">
+							<dt class="heading">Parameters:</dt>
+							
+								<dt>
+									<span class="light fixedFont">{object}</span> <b>file</b>
+									
+								</dt>
+								<dd>A <a href="../symbols/minplayer.file.html">minplayer.file</a> object.</dd>
+							
+							</dl>
+						
+						
+						
+						
+						
+							<dl class="detailList">
+							<dt class="heading">Returns:</dt>
+							
+								<dd><span class="light fixedFont">{boolean}</span> If this action was performed.</dd>
+							
+							</dl>
+						
+						
+						
+
+					<hr />
+				
+					<a name="onComplete"> </a>
+					<div class="fixedFont">
+					
+					
+					<b>onComplete</b>()
+					
+					</div>
+					<div class="description">
+						Should be called when the media is complete.
+						
+						
+					</div>
+					
+					
+					
+						
+						
+						
+						
+						
+						
+						
+
+					<hr />
+				
+					<a name="onError"> </a>
+					<div class="fixedFont">
+					
+					
+					<b>onError</b>(errorCode)
+					
+					</div>
+					<div class="description">
+						Called when an error occurs.
+						
+						
+					</div>
+					
+					
+					
+						
+							<dl class="detailList">
+							<dt class="heading">Parameters:</dt>
+							
+								<dt>
+									<span class="light fixedFont">{string}</span> <b>errorCode</b>
+									
+								</dt>
+								<dd>The error that was triggered.</dd>
+							
+							</dl>
+						
+						
+						
+						
+						
+						
+						
+
+					<hr />
+				
+					<a name="onLoaded"> </a>
+					<div class="fixedFont">
+					
+					
+					<b>onLoaded</b>()
+					
+					</div>
+					<div class="description">
+						Should be called when the media is done loading.
+						
+						
+					</div>
+					
+					
+					
+						
+						
+						
+						
+						
+						
+						
+
+					<hr />
+				
+					<a name="onPaused"> </a>
+					<div class="fixedFont">
+					
+					
+					<b>onPaused</b>()
+					
+					</div>
+					<div class="description">
+						Should be called when the media is paused.
+						
+						
+					</div>
+					
+					
+					
+						
+						
+						
+						
+						
+						
+						
+
+					<hr />
+				
+					<a name="onPlaying"> </a>
+					<div class="fixedFont">
+					
+					
+					<b>onPlaying</b>()
+					
+					</div>
+					<div class="description">
+						Should be called when the media is playing.
+						
+						
+					</div>
+					
+					
+					
+						
+						
+						
+						
+						
+						
+						
+
+					<hr />
+				
+					<a name="onReady"> </a>
+					<div class="fixedFont">
+					
+					
+					<b>onReady</b>()
+					
+					</div>
+					<div class="description">
+						Called when the player is ready to recieve events and commands.
+						
+						
+					</div>
+					
+					
+					
+						
+						
+						
+						
+						
+						
+						
+
+					<hr />
+				
+					<a name="onWaiting"> </a>
+					<div class="fixedFont">
+					
+					
+					<b>onWaiting</b>()
+					
+					</div>
+					<div class="description">
+						Should be called when the player is waiting.
+						
+						
+					</div>
+					
+					
+					
+						
+						
+						
+						
+						
+						
+						
+
+					<hr />
+				
+					<a name="pause"> </a>
+					<div class="fixedFont">
+					
+					<span class="light">{boolean}</span>
+					<b>pause</b>()
+					
+					</div>
+					<div class="description">
+						Pause the loaded media file.
+						
+						
+					</div>
+					
+					
+					
+						
+						
+						
+						
+						
+							<dl class="detailList">
+							<dt class="heading">Returns:</dt>
+							
+								<dd><span class="light fixedFont">{boolean}</span> If this action was performed.</dd>
+							
+							</dl>
+						
+						
+						
+
+					<hr />
+				
+					<a name="play"> </a>
+					<div class="fixedFont">
+					
+					<span class="light">{boolean}</span>
+					<b>play</b>()
+					
+					</div>
+					<div class="description">
+						Play the loaded media file.
+						
+						
+					</div>
+					
+					
+					
+						
+						
+						
+						
+						
+							<dl class="detailList">
+							<dt class="heading">Returns:</dt>
+							
+								<dd><span class="light fixedFont">{boolean}</span> If this action was performed.</dd>
+							
+							</dl>
+						
+						
+						
+
+					<hr />
+				
+					<a name="playerFound"> </a>
+					<div class="fixedFont">
+					
+					<span class="light">{boolean}</span>
+					<b>playerFound</b>()
+					
+					</div>
+					<div class="description">
+						Returns if the media player is already within the DOM.
+						
+						
+					</div>
+					
+					
+					
+						
+						
+						
+						
+						
+							<dl class="detailList">
+							<dt class="heading">Returns:</dt>
+							
+								<dd><span class="light fixedFont">{boolean}</span> TRUE - if the player is in the DOM, FALSE otherwise.</dd>
+							
+							</dl>
+						
+						
+						
+
+					<hr />
+				
+					<a name="reset"> </a>
+					<div class="fixedFont">
+					
+					
+					<b>reset</b>()
+					
+					</div>
+					<div class="description">
+						Resets all variables.
+						
+						
+					</div>
+					
+					
+					
+						
+						
+						
+						
+						
+						
+						
+
+					<hr />
+				
+					<a name="seek"> </a>
+					<div class="fixedFont">
+					
+					<span class="light">{boolean}</span>
+					<b>seek</b>(pos)
+					
+					</div>
+					<div class="description">
+						Seek the loaded media.
+						
+						
+					</div>
+					
+					
+					
+						
+							<dl class="detailList">
+							<dt class="heading">Parameters:</dt>
+							
+								<dt>
+									<span class="light fixedFont">{number}</span> <b>pos</b>
+									
+								</dt>
+								<dd>The position to seek the minplayer. 0 to 1.</dd>
+							
+							</dl>
+						
+						
+						
+						
+						
+							<dl class="detailList">
+							<dt class="heading">Returns:</dt>
+							
+								<dd><span class="light fixedFont">{boolean}</span> If this action was performed.</dd>
+							
+							</dl>
+						
+						
+						
+
+					<hr />
+				
+					<a name="seekRelative"> </a>
+					<div class="fixedFont">
+					
+					
+					<b>seekRelative</b>(pos)
+					
+					</div>
+					<div class="description">
+						Seeks to relative position.
+						
+						
+					</div>
+					
+					
+					
+						
+							<dl class="detailList">
+							<dt class="heading">Parameters:</dt>
+							
+								<dt>
+									<span class="light fixedFont">{number}</span> <b>pos</b>
+									
+								</dt>
+								<dd>Relative position.  -1 to 1 (percent), > 1 (seconds).</dd>
+							
+							</dl>
+						
+						
+						
+						
+						
+						
+						
+
+					<hr />
+				
+					<a name="setVolume"> </a>
+					<div class="fixedFont">
+					
+					<span class="light">{boolean}</span>
+					<b>setVolume</b>(vol)
+					
+					</div>
+					<div class="description">
+						Set the volume of the loaded minplayer.
+						
+						
+					</div>
+					
+					
+					
+						
+							<dl class="detailList">
+							<dt class="heading">Parameters:</dt>
+							
+								<dt>
+									<span class="light fixedFont">{number}</span> <b>vol</b>
+									
+								</dt>
+								<dd>The volume to set the media. 0 to 1.</dd>
+							
+							</dl>
+						
+						
+						
+						
+						
+							<dl class="detailList">
+							<dt class="heading">Returns:</dt>
+							
+								<dd><span class="light fixedFont">{boolean}</span> If this action was performed.</dd>
+							
+							</dl>
+						
+						
+						
+
+					<hr />
+				
+					<a name="setVolumeRelative"> </a>
+					<div class="fixedFont">
+					
+					
+					<b>setVolumeRelative</b>(vol)
+					
+					</div>
+					<div class="description">
+						Set the volume of the loaded minplayer.
+						
+						
+					</div>
+					
+					
+					
+						
+							<dl class="detailList">
+							<dt class="heading">Parameters:</dt>
+							
+								<dt>
+									<span class="light fixedFont">{number}</span> <b>vol</b>
+									
+								</dt>
+								<dd>-1 to 1 - The relative amount to increase or decrease.</dd>
+							
+							</dl>
+						
+						
+						
+						
+						
+						
+						
+
+					<hr />
+				
+					<a name="stop"> </a>
+					<div class="fixedFont">
+					
+					<span class="light">{boolean}</span>
+					<b>stop</b>()
+					
+					</div>
+					<div class="description">
+						Stop the loaded media file.
+						
+						
+					</div>
+					
+					
+					
+						
+						
+						
+						
+						
+							<dl class="detailList">
+							<dt class="heading">Returns:</dt>
+							
+								<dd><span class="light fixedFont">{boolean}</span> If this action was performed.</dd>
+							
+							</dl>
+						
+						
+						
+
+					
+				
+			
+			
+<!-- ============================== event details ========================= -->		
+			
+			
+			<hr />
+		</div>
+
+		
+<!-- ============================== footer ================================= -->
+		<div class="fineprint" style="clear:both">
+			
+			Documentation generated by <a href="http://code.google.com/p/jsdoc-toolkit/" target="_blank">JsDoc Toolkit</a> 2.4.0 on Sun Aug 19 2012 12:11:27 GMT-0500 (CDT)
+		</div>
+	</body>
+</html>
diff --git a/public/admin/js/osmplayer/doc/symbols/minplayer.players.flash.html b/public/admin/js/osmplayer/doc/symbols/minplayer.players.flash.html
new file mode 100644
index 00000000000..3fc78e1aff8
--- /dev/null
+++ b/public/admin/js/osmplayer/doc/symbols/minplayer.players.flash.html
@@ -0,0 +1,696 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+        "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+	<head>
+		<meta http-equiv="content-type" content="text/html; charset=utf-8" />
+		<meta name="generator" content="JsDoc Toolkit" />
+		
+		<title>JsDoc Reference - minplayer.players.flash</title>
+
+		<style type="text/css">
+			/* default.css */
+body
+{
+	font: 12px "Lucida Grande", Tahoma, Arial, Helvetica, sans-serif;
+	width: 800px;
+}
+
+.header
+{
+	clear: both;
+	background-color: #ccc;
+	padding: 8px;
+}
+
+h1
+{
+	font-size: 150%;
+	font-weight: bold;
+	padding: 0;
+	margin: 1em 0 0 .3em;
+}
+
+hr
+{
+	border: none 0;
+	border-top: 1px solid #7F8FB1;
+	height: 1px;
+}
+
+pre.code
+{
+	display: block;
+	padding: 8px;
+	border: 1px dashed #ccc;
+}
+
+#index
+{
+	margin-top: 24px;
+	float: left;
+	width: 160px;
+	position: absolute;
+	left: 8px;
+	background-color: #F3F3F3;
+	padding: 8px;
+}
+
+#content
+{
+	margin-left: 190px;
+	width: 600px;
+}
+
+.classList
+{
+	list-style-type: none;
+	padding: 0;
+	margin: 0 0 0 8px;
+	font-family: arial, sans-serif;
+	font-size: 1em;
+	overflow: auto;
+}
+
+.classList li
+{
+	padding: 0;
+	margin: 0 0 8px 0;
+}
+
+.summaryTable { width: 100%; }
+
+h1.classTitle
+{
+	font-size:170%;
+	line-height:130%;
+}
+
+h2 { font-size: 110%; }
+caption, div.sectionTitle
+{
+	background-color: #7F8FB1;
+	color: #fff;
+	font-size:130%;
+	text-align: left;
+	padding: 2px 6px 2px 6px;
+	border: 1px #7F8FB1 solid;
+}
+
+div.sectionTitle { margin-bottom: 8px; }
+.summaryTable thead { display: none; }
+
+.summaryTable td
+{
+	vertical-align: top;
+	padding: 4px;
+	border-bottom: 1px #7F8FB1 solid;
+	border-right: 1px #7F8FB1 solid;
+}
+
+/*col#summaryAttributes {}*/
+.summaryTable td.attributes
+{
+	border-left: 1px #7F8FB1 solid;
+	width: 140px;
+	text-align: right;
+}
+
+td.attributes, .fixedFont
+{
+	line-height: 15px;
+	color: #002EBE;
+	font-family: "Courier New",Courier,monospace;
+	font-size: 13px;
+}
+
+.summaryTable td.nameDescription
+{
+	text-align: left;
+	font-size: 13px;
+	line-height: 15px;
+}
+
+.summaryTable td.nameDescription, .description
+{
+	line-height: 15px;
+	padding: 4px;
+	padding-left: 4px;
+}
+
+.summaryTable { margin-bottom: 8px; }
+
+ul.inheritsList
+{
+	list-style: square;
+	margin-left: 20px;
+	padding-left: 0;
+}
+
+.detailList {
+	margin-left: 20px; 
+	line-height: 15px;
+}
+.detailList dt { margin-left: 20px; }
+
+.detailList .heading
+{
+	font-weight: bold;
+	padding-bottom: 6px;
+	margin-left: 0;
+}
+
+.light, td.attributes, .light a:link, .light a:visited
+{
+	color: #777;
+	font-style: italic;
+}
+
+.fineprint
+{
+	text-align: right;
+	font-size: 10px;
+}
+		</style>
+	</head>
+
+	<body>
+<!-- ============================== header ================================= -->	
+		<!-- begin static/header.html -->
+		<div id="header">
+</div>
+		<!-- end static/header.html -->
+
+<!-- ============================== classes index ============================ -->
+		<div id="index">
+			<!-- begin publish.classesIndex -->
+			<div align="center"><a href="../index.html">Class Index</a>
+| <a href="../files.html">File Index</a></div>
+<hr />
+<h2>Classes</h2>
+<ul class="classList">
+	
+	<li><i><a href="../symbols/_global_.html">_global_</a></i></li>
+	
+	<li><a href="../symbols/jQuery.fn.minplayer.html">jQuery.fn.minplayer</a></li>
+	
+	<li><a href="../symbols/jQuery.fn.osmplayer.html">jQuery.fn.osmplayer</a></li>
+	
+	<li><a href="../symbols/minplayer.async.html">minplayer.async</a></li>
+	
+	<li><a href="../symbols/minplayer.compatibility.html">minplayer.compatibility</a></li>
+	
+	<li><a href="../symbols/minplayer.display.html">minplayer.display</a></li>
+	
+	<li><a href="../symbols/minplayer.file.html">minplayer.file</a></li>
+	
+	<li><a href="../symbols/minplayer.flags.html">minplayer.flags</a></li>
+	
+	<li><a href="../symbols/minplayer.image.html">minplayer.image</a></li>
+	
+	<li><a href="../symbols/minplayer.players.base.html">minplayer.players.base</a></li>
+	
+	<li><a href="../symbols/minplayer.players.flash.html">minplayer.players.flash</a></li>
+	
+	<li><a href="../symbols/minplayer.players.html5.html">minplayer.players.html5</a></li>
+	
+	<li><a href="../symbols/minplayer.players.minplayer.html">minplayer.players.minplayer</a></li>
+	
+	<li><a href="../symbols/minplayer.players.vimeo.html">minplayer.players.vimeo</a></li>
+	
+	<li><a href="../symbols/minplayer.players.youtube.html">minplayer.players.youtube</a></li>
+	
+	<li><a href="../symbols/minplayer.plugin.html">minplayer.plugin</a></li>
+	
+	<li><a href="../symbols/osmplayer.html">osmplayer</a></li>
+	
+	<li><a href="../symbols/osmplayer.pager.html">osmplayer.pager</a></li>
+	
+	<li><a href="../symbols/osmplayer.playlist.html">osmplayer.playlist</a></li>
+	
+	<li><a href="../symbols/osmplayer.teaser.html">osmplayer.teaser</a></li>
+	
+</ul>
+<hr />
+			<!-- end publish.classesIndex -->
+		</div>
+		
+		<div id="content">
+<!-- ============================== class title ============================ -->
+			<h1 class="classTitle">
+				
+				Class minplayer.players.flash
+			</h1>
+
+<!-- ============================== class summary ========================== -->			
+			<p class="description">
+				
+				<br />Extends
+					<a href="../symbols/minplayer.display.html">minplayer.display</a>.<br />
+				
+			
+				The Flash media player class to control the flash fallback.
+				
+				
+					<br /><i>Defined in: </i> <a href="../symbols/src/minplayer_src_minplayer.players.flash.js.html">minplayer.players.flash.js</a>.
+				
+			</p>
+
+<!-- ============================== constructor summary ==================== -->			
+			
+			<table class="summaryTable" cellspacing="0" summary="A summary of the constructor documented in the class minplayer.players.flash.">
+				<caption>Class Summary</caption>
+				<thead>
+					<tr>
+						<th scope="col">Constructor Attributes</th>
+						<th scope="col">Constructor Name and Description</th>
+					</tr>
+				</thead>
+				<tbody>
+					<tr>
+						<td class="attributes">&nbsp;</td>
+						<td class="nameDescription" >
+							<div class="fixedFont">
+								<b><a href="../symbols/minplayer.players.flash.html#constructor">minplayer.players.flash</a></b>(context, options, queue)
+							</div>
+							<div class="description"></div>
+						</td>
+					</tr>
+				</tbody>
+			</table>
+			
+
+<!-- ============================== properties summary ===================== -->
+			
+				
+				
+				<table class="summaryTable" cellspacing="0" summary="A summary of the fields documented in the class minplayer.players.flash.">
+					<caption>Field Summary</caption>
+					<thead>
+						<tr>
+							<th scope="col">Field Attributes</th>
+							<th scope="col">Field Name and Description</th>
+						</tr>
+					</thead>
+					<tbody>
+					
+						<tr>
+							<td class="attributes">&nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont">
+								<b><a href="../symbols/minplayer.players.flash.html#constructor">constructor</a></b>
+								</div>
+								<div class="description">Reset the constructor.</div>
+							</td>
+						</tr>
+					
+					</tbody>
+				</table>
+				
+				
+				
+				<dl class="inheritsList">
+				<dt>Fields borrowed from class <a href="../symbols/minplayer.display.html">minplayer.display</a>: </dt><dd><a href="../symbols/minplayer.display.html#onResize">onResize</a></dd><dt>Fields borrowed from class <a href="../symbols/minplayer.plugin.html">minplayer.plugin</a>: </dt><dd><a href="../symbols/minplayer.plugin.html#active">active</a>, <a href="../symbols/minplayer.plugin.html#context">context</a>, <a href="../symbols/minplayer.plugin.html#lock">lock</a>, <a href="../symbols/minplayer.plugin.html#name">name</a>, <a href="../symbols/minplayer.plugin.html#options">options</a>, <a href="../symbols/minplayer.plugin.html#pluginReady">pluginReady</a>, <a href="../symbols/minplayer.plugin.html#queue">queue</a>, <a href="../symbols/minplayer.plugin.html#triggered">triggered</a></dd>
+				</dl>
+				
+			
+
+<!-- ============================== methods summary ======================== -->
+			
+				
+				
+				<table class="summaryTable" cellspacing="0" summary="A summary of the methods documented in the class minplayer.players.flash.">
+					<caption>Method Summary</caption>
+					<thead>
+						<tr>
+							<th scope="col">Method Attributes</th>
+							<th scope="col">Method Name and Description</th>
+						</tr>
+					</thead>
+					<tbody>
+					
+						<tr>
+							<td class="attributes">&lt;static&gt; &nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont">minplayer.players.flash.<b><a href="../symbols/minplayer.players.flash.html#.canPlay">canPlay</a></b>(file)
+								</div>
+								<div class="description"></div>
+							</td>
+						</tr>
+					
+						<tr>
+							<td class="attributes">&nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont"><b><a href="../symbols/minplayer.players.flash.html#construct">construct</a></b>()
+								</div>
+								<div class="description"></div>
+							</td>
+						</tr>
+					
+						<tr>
+							<td class="attributes">&nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont"><b><a href="../symbols/minplayer.players.flash.html#getFlash">getFlash</a></b>(params)
+								</div>
+								<div class="description">API to return the Flash player code provided params.</div>
+							</td>
+						</tr>
+					
+						<tr>
+							<td class="attributes">&lt;static&gt; &nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont">minplayer.players.flash.<b><a href="../symbols/minplayer.players.flash.html#.getPriority">getPriority</a></b>()
+								</div>
+								<div class="description"></div>
+							</td>
+						</tr>
+					
+						<tr>
+							<td class="attributes">&nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont"><b><a href="../symbols/minplayer.players.flash.html#playerFound">playerFound</a></b>()
+								</div>
+								<div class="description"></div>
+							</td>
+						</tr>
+					
+					</tbody>
+				</table>
+				
+				
+				
+				<dl class="inheritsList">
+				<dt>Methods borrowed from class <a href="../symbols/minplayer.display.html">minplayer.display</a>: </dt><dd><a href="../symbols/minplayer.display.html#fullscreen">fullscreen</a>, <a href="../symbols/minplayer.display.html#fullScreenElement">fullScreenElement</a>, <a href="../symbols/minplayer.display.html#getDisplay">getDisplay</a>, <a href="../symbols/minplayer.display.html#getElements">getElements</a>, <a href="../symbols/minplayer.display.html#getScaledRect">getScaledRect</a>, <a href="../symbols/minplayer.display.html#hide">hide</a>, <a href="../symbols/minplayer.display.html#isFullScreen">isFullScreen</a>, <a href="../symbols/minplayer.display.html#onFocus">onFocus</a>, <a href="../symbols/minplayer.display.html#toggleFullScreen">toggleFullScreen</a></dd><dt>Methods borrowed from class <a href="../symbols/minplayer.plugin.html">minplayer.plugin</a>: </dt><dd><a href="../symbols/minplayer.plugin.html#addPlugin">addPlugin</a>, <a href="../symbols/minplayer.plugin.html#bind">bind</a>, <a href="../symbols/minplayer.plugin.html#checkQueue">checkQueue</a>, <a href="../symbols/minplayer.plugin.html#create">create</a>, <a href="../symbols/minplayer.plugin.html#destroy">destroy</a>, <a href="../symbols/minplayer.plugin.html#get">get</a>, <a href="../symbols/minplayer.plugin.html#isValid">isValid</a>, <a href="../symbols/minplayer.plugin.html#poll">poll</a>, <a href="../symbols/minplayer.plugin.html#ready">ready</a>, <a href="../symbols/minplayer.plugin.html#trigger">trigger</a>, <a href="../symbols/minplayer.plugin.html#unbind">unbind</a></dd>
+				</dl>
+				
+			
+<!-- ============================== events summary ======================== -->
+			
+
+<!-- ============================== constructor details ==================== -->		
+			
+			<div class="details"><a name="constructor"> </a>
+				<div class="sectionTitle">
+					Class Detail
+				</div>
+				
+				<div class="fixedFont">
+						<b>minplayer.players.flash</b>(context, options, queue)
+				</div>
+				
+				<div class="description">
+					
+					
+				</div>
+				
+				
+				
+				
+					
+						<dl class="detailList">
+						<dt class="heading">Parameters:</dt>
+						
+							<dt>
+								<span class="light fixedFont">{object}</span>  <b>context</b>
+								
+							</dt>
+								<dd>The jQuery context.</dd>
+						
+							<dt>
+								<span class="light fixedFont">{object}</span>  <b>options</b>
+								
+							</dt>
+								<dd>This components options.</dd>
+						
+							<dt>
+								<span class="light fixedFont">{object}</span>  <b>queue</b>
+								
+							</dt>
+								<dd>The event queue to pass events around.</dd>
+						
+						</dl>
+					
+					
+					
+					
+					
+					
+					
+
+			</div>
+			
+
+<!-- ============================== field details ========================== -->		
+			
+				<div class="sectionTitle">
+					Field Detail
+				</div>
+				
+					<a name="constructor"> </a>
+					<div class="fixedFont">
+					
+					
+					<b>constructor</b>
+					
+					</div>
+					<div class="description">
+						Reset the constructor.
+						
+						
+					</div>
+					
+					
+
+						
+						
+						
+						
+
+					
+				
+			
+
+<!-- ============================== method details ========================= -->		
+			
+				<div class="sectionTitle">
+					Method Detail
+				</div>
+				
+					<a name=".canPlay"> </a>
+					<div class="fixedFont">&lt;static&gt; 
+					
+					<span class="light">{boolean}</span>
+					<span class="light">minplayer.players.flash.</span><b>canPlay</b>(file)
+					
+					</div>
+					<div class="description">
+						
+						
+						
+					</div>
+					
+					
+					
+						
+							<dl class="detailList">
+							<dt class="heading">Parameters:</dt>
+							
+								<dt>
+									<b>file</b>
+									
+								</dt>
+								<dd></dd>
+							
+							</dl>
+						
+						
+						
+						
+						
+							<dl class="detailList">
+							<dt class="heading">Returns:</dt>
+							
+								<dd><span class="light fixedFont">{boolean}</span> If this player can play this media type.</dd>
+							
+							</dl>
+						
+						
+						
+							<dl class="detailList">
+							<dt class="heading">See:</dt>
+							
+								<dd>minplayer.players.base#canPlay</dd>
+							
+							</dl>
+						
+
+					<hr />
+				
+					<a name="construct"> </a>
+					<div class="fixedFont">
+					
+					
+					<b>construct</b>()
+					
+					</div>
+					<div class="description">
+						
+						
+						
+					</div>
+					
+					
+					
+						
+						
+						
+						
+						
+						
+						
+							<dl class="detailList">
+							<dt class="heading">See:</dt>
+							
+								<dd>minplayer.plugin.construct</dd>
+							
+							</dl>
+						
+
+					<hr />
+				
+					<a name="getFlash"> </a>
+					<div class="fixedFont">
+					
+					<span class="light">{object}</span>
+					<b>getFlash</b>(params)
+					
+					</div>
+					<div class="description">
+						API to return the Flash player code provided params.
+						
+						
+					</div>
+					
+					
+					
+						
+							<dl class="detailList">
+							<dt class="heading">Parameters:</dt>
+							
+								<dt>
+									<span class="light fixedFont">{object}</span> <b>params</b>
+									
+								</dt>
+								<dd>The params used to populate the Flash code.</dd>
+							
+							</dl>
+						
+						
+						
+						
+						
+							<dl class="detailList">
+							<dt class="heading">Returns:</dt>
+							
+								<dd><span class="light fixedFont">{object}</span> A Flash DOM element.</dd>
+							
+							</dl>
+						
+						
+						
+
+					<hr />
+				
+					<a name=".getPriority"> </a>
+					<div class="fixedFont">&lt;static&gt; 
+					
+					<span class="light">{number}</span>
+					<span class="light">minplayer.players.flash.</span><b>getPriority</b>()
+					
+					</div>
+					<div class="description">
+						
+						
+						
+					</div>
+					
+					
+					
+						
+						
+						
+						
+						
+							<dl class="detailList">
+							<dt class="heading">Returns:</dt>
+							
+								<dd><span class="light fixedFont">{number}</span> The priority of this media player.</dd>
+							
+							</dl>
+						
+						
+						
+							<dl class="detailList">
+							<dt class="heading">See:</dt>
+							
+								<dd>minplayer.players.base#getPriority</dd>
+							
+							</dl>
+						
+
+					<hr />
+				
+					<a name="playerFound"> </a>
+					<div class="fixedFont">
+					
+					<span class="light">{boolean}</span>
+					<b>playerFound</b>()
+					
+					</div>
+					<div class="description">
+						
+						
+						
+					</div>
+					
+					
+					
+						
+						
+						
+						
+						
+							<dl class="detailList">
+							<dt class="heading">Returns:</dt>
+							
+								<dd><span class="light fixedFont">{boolean}</span> TRUE - if the player is in the DOM, FALSE otherwise.</dd>
+							
+							</dl>
+						
+						
+						
+							<dl class="detailList">
+							<dt class="heading">See:</dt>
+							
+								<dd><a href="../symbols/minplayer.players.base.html#playerFound">minplayer.players.base#playerFound</a></dd>
+							
+							</dl>
+						
+
+					
+				
+			
+			
+<!-- ============================== event details ========================= -->		
+			
+			
+			<hr />
+		</div>
+
+		
+<!-- ============================== footer ================================= -->
+		<div class="fineprint" style="clear:both">
+			
+			Documentation generated by <a href="http://code.google.com/p/jsdoc-toolkit/" target="_blank">JsDoc Toolkit</a> 2.4.0 on Sun Aug 19 2012 12:11:27 GMT-0500 (CDT)
+		</div>
+	</body>
+</html>
diff --git a/public/admin/js/osmplayer/doc/symbols/minplayer.players.html5.html b/public/admin/js/osmplayer/doc/symbols/minplayer.players.html5.html
new file mode 100644
index 00000000000..45528bec360
--- /dev/null
+++ b/public/admin/js/osmplayer/doc/symbols/minplayer.players.html5.html
@@ -0,0 +1,1454 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+        "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+	<head>
+		<meta http-equiv="content-type" content="text/html; charset=utf-8" />
+		<meta name="generator" content="JsDoc Toolkit" />
+		
+		<title>JsDoc Reference - minplayer.players.html5</title>
+
+		<style type="text/css">
+			/* default.css */
+body
+{
+	font: 12px "Lucida Grande", Tahoma, Arial, Helvetica, sans-serif;
+	width: 800px;
+}
+
+.header
+{
+	clear: both;
+	background-color: #ccc;
+	padding: 8px;
+}
+
+h1
+{
+	font-size: 150%;
+	font-weight: bold;
+	padding: 0;
+	margin: 1em 0 0 .3em;
+}
+
+hr
+{
+	border: none 0;
+	border-top: 1px solid #7F8FB1;
+	height: 1px;
+}
+
+pre.code
+{
+	display: block;
+	padding: 8px;
+	border: 1px dashed #ccc;
+}
+
+#index
+{
+	margin-top: 24px;
+	float: left;
+	width: 160px;
+	position: absolute;
+	left: 8px;
+	background-color: #F3F3F3;
+	padding: 8px;
+}
+
+#content
+{
+	margin-left: 190px;
+	width: 600px;
+}
+
+.classList
+{
+	list-style-type: none;
+	padding: 0;
+	margin: 0 0 0 8px;
+	font-family: arial, sans-serif;
+	font-size: 1em;
+	overflow: auto;
+}
+
+.classList li
+{
+	padding: 0;
+	margin: 0 0 8px 0;
+}
+
+.summaryTable { width: 100%; }
+
+h1.classTitle
+{
+	font-size:170%;
+	line-height:130%;
+}
+
+h2 { font-size: 110%; }
+caption, div.sectionTitle
+{
+	background-color: #7F8FB1;
+	color: #fff;
+	font-size:130%;
+	text-align: left;
+	padding: 2px 6px 2px 6px;
+	border: 1px #7F8FB1 solid;
+}
+
+div.sectionTitle { margin-bottom: 8px; }
+.summaryTable thead { display: none; }
+
+.summaryTable td
+{
+	vertical-align: top;
+	padding: 4px;
+	border-bottom: 1px #7F8FB1 solid;
+	border-right: 1px #7F8FB1 solid;
+}
+
+/*col#summaryAttributes {}*/
+.summaryTable td.attributes
+{
+	border-left: 1px #7F8FB1 solid;
+	width: 140px;
+	text-align: right;
+}
+
+td.attributes, .fixedFont
+{
+	line-height: 15px;
+	color: #002EBE;
+	font-family: "Courier New",Courier,monospace;
+	font-size: 13px;
+}
+
+.summaryTable td.nameDescription
+{
+	text-align: left;
+	font-size: 13px;
+	line-height: 15px;
+}
+
+.summaryTable td.nameDescription, .description
+{
+	line-height: 15px;
+	padding: 4px;
+	padding-left: 4px;
+}
+
+.summaryTable { margin-bottom: 8px; }
+
+ul.inheritsList
+{
+	list-style: square;
+	margin-left: 20px;
+	padding-left: 0;
+}
+
+.detailList {
+	margin-left: 20px; 
+	line-height: 15px;
+}
+.detailList dt { margin-left: 20px; }
+
+.detailList .heading
+{
+	font-weight: bold;
+	padding-bottom: 6px;
+	margin-left: 0;
+}
+
+.light, td.attributes, .light a:link, .light a:visited
+{
+	color: #777;
+	font-style: italic;
+}
+
+.fineprint
+{
+	text-align: right;
+	font-size: 10px;
+}
+		</style>
+	</head>
+
+	<body>
+<!-- ============================== header ================================= -->	
+		<!-- begin static/header.html -->
+		<div id="header">
+</div>
+		<!-- end static/header.html -->
+
+<!-- ============================== classes index ============================ -->
+		<div id="index">
+			<!-- begin publish.classesIndex -->
+			<div align="center"><a href="../index.html">Class Index</a>
+| <a href="../files.html">File Index</a></div>
+<hr />
+<h2>Classes</h2>
+<ul class="classList">
+	
+	<li><i><a href="../symbols/_global_.html">_global_</a></i></li>
+	
+	<li><a href="../symbols/jQuery.fn.minplayer.html">jQuery.fn.minplayer</a></li>
+	
+	<li><a href="../symbols/jQuery.fn.osmplayer.html">jQuery.fn.osmplayer</a></li>
+	
+	<li><a href="../symbols/minplayer.async.html">minplayer.async</a></li>
+	
+	<li><a href="../symbols/minplayer.compatibility.html">minplayer.compatibility</a></li>
+	
+	<li><a href="../symbols/minplayer.display.html">minplayer.display</a></li>
+	
+	<li><a href="../symbols/minplayer.file.html">minplayer.file</a></li>
+	
+	<li><a href="../symbols/minplayer.flags.html">minplayer.flags</a></li>
+	
+	<li><a href="../symbols/minplayer.image.html">minplayer.image</a></li>
+	
+	<li><a href="../symbols/minplayer.players.base.html">minplayer.players.base</a></li>
+	
+	<li><a href="../symbols/minplayer.players.flash.html">minplayer.players.flash</a></li>
+	
+	<li><a href="../symbols/minplayer.players.html5.html">minplayer.players.html5</a></li>
+	
+	<li><a href="../symbols/minplayer.players.minplayer.html">minplayer.players.minplayer</a></li>
+	
+	<li><a href="../symbols/minplayer.players.vimeo.html">minplayer.players.vimeo</a></li>
+	
+	<li><a href="../symbols/minplayer.players.youtube.html">minplayer.players.youtube</a></li>
+	
+	<li><a href="../symbols/minplayer.plugin.html">minplayer.plugin</a></li>
+	
+	<li><a href="../symbols/osmplayer.html">osmplayer</a></li>
+	
+	<li><a href="../symbols/osmplayer.pager.html">osmplayer.pager</a></li>
+	
+	<li><a href="../symbols/osmplayer.playlist.html">osmplayer.playlist</a></li>
+	
+	<li><a href="../symbols/osmplayer.teaser.html">osmplayer.teaser</a></li>
+	
+</ul>
+<hr />
+			<!-- end publish.classesIndex -->
+		</div>
+		
+		<div id="content">
+<!-- ============================== class title ============================ -->
+			<h1 class="classTitle">
+				
+				Class minplayer.players.html5
+			</h1>
+
+<!-- ============================== class summary ========================== -->			
+			<p class="description">
+				
+				<br />Extends
+					<a href="../symbols/minplayer.display.html">minplayer.display</a>.<br />
+				
+			
+				The HTML5 media player implementation.
+				
+				
+					<br /><i>Defined in: </i> <a href="../symbols/src/minplayer_src_minplayer.players.html5.js.html">minplayer.players.html5.js</a>.
+				
+			</p>
+
+<!-- ============================== constructor summary ==================== -->			
+			
+			<table class="summaryTable" cellspacing="0" summary="A summary of the constructor documented in the class minplayer.players.html5.">
+				<caption>Class Summary</caption>
+				<thead>
+					<tr>
+						<th scope="col">Constructor Attributes</th>
+						<th scope="col">Constructor Name and Description</th>
+					</tr>
+				</thead>
+				<tbody>
+					<tr>
+						<td class="attributes">&nbsp;</td>
+						<td class="nameDescription" >
+							<div class="fixedFont">
+								<b><a href="../symbols/minplayer.players.html5.html#constructor">minplayer.players.html5</a></b>(context, options, queue)
+							</div>
+							<div class="description"></div>
+						</td>
+					</tr>
+				</tbody>
+			</table>
+			
+
+<!-- ============================== properties summary ===================== -->
+			
+				
+				
+				<table class="summaryTable" cellspacing="0" summary="A summary of the fields documented in the class minplayer.players.html5.">
+					<caption>Field Summary</caption>
+					<thead>
+						<tr>
+							<th scope="col">Field Attributes</th>
+							<th scope="col">Field Name and Description</th>
+						</tr>
+					</thead>
+					<tbody>
+					
+						<tr>
+							<td class="attributes">&nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont">
+								<b><a href="../symbols/minplayer.players.html5.html#constructor">constructor</a></b>
+								</div>
+								<div class="description">Reset the constructor.</div>
+							</td>
+						</tr>
+					
+					</tbody>
+				</table>
+				
+				
+				
+				<dl class="inheritsList">
+				<dt>Fields borrowed from class <a href="../symbols/minplayer.display.html">minplayer.display</a>: </dt><dd><a href="../symbols/minplayer.display.html#onResize">onResize</a></dd><dt>Fields borrowed from class <a href="../symbols/minplayer.plugin.html">minplayer.plugin</a>: </dt><dd><a href="../symbols/minplayer.plugin.html#active">active</a>, <a href="../symbols/minplayer.plugin.html#context">context</a>, <a href="../symbols/minplayer.plugin.html#lock">lock</a>, <a href="../symbols/minplayer.plugin.html#name">name</a>, <a href="../symbols/minplayer.plugin.html#options">options</a>, <a href="../symbols/minplayer.plugin.html#pluginReady">pluginReady</a>, <a href="../symbols/minplayer.plugin.html#queue">queue</a>, <a href="../symbols/minplayer.plugin.html#triggered">triggered</a></dd>
+				</dl>
+				
+			
+
+<!-- ============================== methods summary ======================== -->
+			
+				
+				
+				<table class="summaryTable" cellspacing="0" summary="A summary of the methods documented in the class minplayer.players.html5.">
+					<caption>Method Summary</caption>
+					<thead>
+						<tr>
+							<th scope="col">Method Attributes</th>
+							<th scope="col">Method Name and Description</th>
+						</tr>
+					</thead>
+					<tbody>
+					
+						<tr>
+							<td class="attributes">&nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont"><b><a href="../symbols/minplayer.players.html5.html#addPlayerEvent">addPlayerEvent</a></b>(type, callback)
+								</div>
+								<div class="description">Adds a new player event.</div>
+							</td>
+						</tr>
+					
+						<tr>
+							<td class="attributes">&nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont"><b><a href="../symbols/minplayer.players.html5.html#addPlayerEvents">addPlayerEvents</a></b>()
+								</div>
+								<div class="description">Add events.</div>
+							</td>
+						</tr>
+					
+						<tr>
+							<td class="attributes">&lt;static&gt; &nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont">minplayer.players.html5.<b><a href="../symbols/minplayer.players.html5.html#.canPlay">canPlay</a></b>(file)
+								</div>
+								<div class="description"></div>
+							</td>
+						</tr>
+					
+						<tr>
+							<td class="attributes">&nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont"><b><a href="../symbols/minplayer.players.html5.html#construct">construct</a></b>()
+								</div>
+								<div class="description"></div>
+							</td>
+						</tr>
+					
+						<tr>
+							<td class="attributes">&nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont"><b><a href="../symbols/minplayer.players.html5.html#create">create</a></b>()
+								</div>
+								<div class="description"></div>
+							</td>
+						</tr>
+					
+						<tr>
+							<td class="attributes">&nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont"><b><a href="../symbols/minplayer.players.html5.html#getBytesLoaded">getBytesLoaded</a></b>(callback)
+								</div>
+								<div class="description"></div>
+							</td>
+						</tr>
+					
+						<tr>
+							<td class="attributes">&nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont"><b><a href="../symbols/minplayer.players.html5.html#getBytesTotal">getBytesTotal</a></b>(callback)
+								</div>
+								<div class="description"></div>
+							</td>
+						</tr>
+					
+						<tr>
+							<td class="attributes">&nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont"><b><a href="../symbols/minplayer.players.html5.html#getCurrentTime">getCurrentTime</a></b>(callback)
+								</div>
+								<div class="description"></div>
+							</td>
+						</tr>
+					
+						<tr>
+							<td class="attributes">&nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont"><b><a href="../symbols/minplayer.players.html5.html#getDuration">getDuration</a></b>(callback)
+								</div>
+								<div class="description"></div>
+							</td>
+						</tr>
+					
+						<tr>
+							<td class="attributes">&nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont"><b><a href="../symbols/minplayer.players.html5.html#getPlayer">getPlayer</a></b>()
+								</div>
+								<div class="description"></div>
+							</td>
+						</tr>
+					
+						<tr>
+							<td class="attributes">&lt;static&gt; &nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont">minplayer.players.html5.<b><a href="../symbols/minplayer.players.html5.html#.getPriority">getPriority</a></b>()
+								</div>
+								<div class="description"></div>
+							</td>
+						</tr>
+					
+						<tr>
+							<td class="attributes">&nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont"><b><a href="../symbols/minplayer.players.html5.html#getVolume">getVolume</a></b>(callback)
+								</div>
+								<div class="description"></div>
+							</td>
+						</tr>
+					
+						<tr>
+							<td class="attributes">&nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont"><b><a href="../symbols/minplayer.players.html5.html#load">load</a></b>(file)
+								</div>
+								<div class="description"></div>
+							</td>
+						</tr>
+					
+						<tr>
+							<td class="attributes">&nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont"><b><a href="../symbols/minplayer.players.html5.html#onReady">onReady</a></b>()
+								</div>
+								<div class="description"></div>
+							</td>
+						</tr>
+					
+						<tr>
+							<td class="attributes">&nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont"><b><a href="../symbols/minplayer.players.html5.html#pause">pause</a></b>()
+								</div>
+								<div class="description"></div>
+							</td>
+						</tr>
+					
+						<tr>
+							<td class="attributes">&nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont"><b><a href="../symbols/minplayer.players.html5.html#play">play</a></b>()
+								</div>
+								<div class="description"></div>
+							</td>
+						</tr>
+					
+						<tr>
+							<td class="attributes">&nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont"><b><a href="../symbols/minplayer.players.html5.html#playerFound">playerFound</a></b>()
+								</div>
+								<div class="description"></div>
+							</td>
+						</tr>
+					
+						<tr>
+							<td class="attributes">&nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont"><b><a href="../symbols/minplayer.players.html5.html#seek">seek</a></b>(pos)
+								</div>
+								<div class="description"></div>
+							</td>
+						</tr>
+					
+						<tr>
+							<td class="attributes">&nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont"><b><a href="../symbols/minplayer.players.html5.html#setVolume">setVolume</a></b>(vol)
+								</div>
+								<div class="description"></div>
+							</td>
+						</tr>
+					
+						<tr>
+							<td class="attributes">&nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont"><b><a href="../symbols/minplayer.players.html5.html#stop">stop</a></b>()
+								</div>
+								<div class="description"></div>
+							</td>
+						</tr>
+					
+					</tbody>
+				</table>
+				
+				
+				
+				<dl class="inheritsList">
+				<dt>Methods borrowed from class <a href="../symbols/minplayer.display.html">minplayer.display</a>: </dt><dd><a href="../symbols/minplayer.display.html#fullscreen">fullscreen</a>, <a href="../symbols/minplayer.display.html#fullScreenElement">fullScreenElement</a>, <a href="../symbols/minplayer.display.html#getDisplay">getDisplay</a>, <a href="../symbols/minplayer.display.html#getElements">getElements</a>, <a href="../symbols/minplayer.display.html#getScaledRect">getScaledRect</a>, <a href="../symbols/minplayer.display.html#hide">hide</a>, <a href="../symbols/minplayer.display.html#isFullScreen">isFullScreen</a>, <a href="../symbols/minplayer.display.html#onFocus">onFocus</a>, <a href="../symbols/minplayer.display.html#toggleFullScreen">toggleFullScreen</a></dd><dt>Methods borrowed from class <a href="../symbols/minplayer.plugin.html">minplayer.plugin</a>: </dt><dd><a href="../symbols/minplayer.plugin.html#addPlugin">addPlugin</a>, <a href="../symbols/minplayer.plugin.html#bind">bind</a>, <a href="../symbols/minplayer.plugin.html#checkQueue">checkQueue</a>, <a href="../symbols/minplayer.plugin.html#destroy">destroy</a>, <a href="../symbols/minplayer.plugin.html#get">get</a>, <a href="../symbols/minplayer.plugin.html#isValid">isValid</a>, <a href="../symbols/minplayer.plugin.html#poll">poll</a>, <a href="../symbols/minplayer.plugin.html#ready">ready</a>, <a href="../symbols/minplayer.plugin.html#trigger">trigger</a>, <a href="../symbols/minplayer.plugin.html#unbind">unbind</a></dd>
+				</dl>
+				
+			
+<!-- ============================== events summary ======================== -->
+			
+
+<!-- ============================== constructor details ==================== -->		
+			
+			<div class="details"><a name="constructor"> </a>
+				<div class="sectionTitle">
+					Class Detail
+				</div>
+				
+				<div class="fixedFont">
+						<b>minplayer.players.html5</b>(context, options, queue)
+				</div>
+				
+				<div class="description">
+					
+					
+				</div>
+				
+				
+				
+				
+					
+						<dl class="detailList">
+						<dt class="heading">Parameters:</dt>
+						
+							<dt>
+								<span class="light fixedFont">{object}</span>  <b>context</b>
+								
+							</dt>
+								<dd>The jQuery context.</dd>
+						
+							<dt>
+								<span class="light fixedFont">{object}</span>  <b>options</b>
+								
+							</dt>
+								<dd>This components options.</dd>
+						
+							<dt>
+								<span class="light fixedFont">{object}</span>  <b>queue</b>
+								
+							</dt>
+								<dd>The event queue to pass events around.</dd>
+						
+						</dl>
+					
+					
+					
+					
+					
+					
+					
+
+			</div>
+			
+
+<!-- ============================== field details ========================== -->		
+			
+				<div class="sectionTitle">
+					Field Detail
+				</div>
+				
+					<a name="constructor"> </a>
+					<div class="fixedFont">
+					
+					
+					<b>constructor</b>
+					
+					</div>
+					<div class="description">
+						Reset the constructor.
+						
+						
+					</div>
+					
+					
+
+						
+						
+						
+						
+
+					
+				
+			
+
+<!-- ============================== method details ========================= -->		
+			
+				<div class="sectionTitle">
+					Method Detail
+				</div>
+				
+					<a name="addPlayerEvent"> </a>
+					<div class="fixedFont">
+					
+					
+					<b>addPlayerEvent</b>(type, callback)
+					
+					</div>
+					<div class="description">
+						Adds a new player event.
+						
+						
+					</div>
+					
+					
+					
+						
+							<dl class="detailList">
+							<dt class="heading">Parameters:</dt>
+							
+								<dt>
+									<span class="light fixedFont">{string}</span> <b>type</b>
+									
+								</dt>
+								<dd>The type of event being fired.</dd>
+							
+								<dt>
+									<span class="light fixedFont">{function}</span> <b>callback</b>
+									
+								</dt>
+								<dd>Called when the event is fired.</dd>
+							
+							</dl>
+						
+						
+						
+						
+						
+						
+						
+
+					<hr />
+				
+					<a name="addPlayerEvents"> </a>
+					<div class="fixedFont">
+					
+					<span class="light">{boolean}</span>
+					<b>addPlayerEvents</b>()
+					
+					</div>
+					<div class="description">
+						Add events.
+						
+						
+					</div>
+					
+					
+					
+						
+						
+						
+						
+						
+							<dl class="detailList">
+							<dt class="heading">Returns:</dt>
+							
+								<dd><span class="light fixedFont">{boolean}</span> If this action was performed.</dd>
+							
+							</dl>
+						
+						
+						
+
+					<hr />
+				
+					<a name=".canPlay"> </a>
+					<div class="fixedFont">&lt;static&gt; 
+					
+					<span class="light">{boolean}</span>
+					<span class="light">minplayer.players.html5.</span><b>canPlay</b>(file)
+					
+					</div>
+					<div class="description">
+						
+						
+						
+					</div>
+					
+					
+					
+						
+							<dl class="detailList">
+							<dt class="heading">Parameters:</dt>
+							
+								<dt>
+									<b>file</b>
+									
+								</dt>
+								<dd></dd>
+							
+							</dl>
+						
+						
+						
+						
+						
+							<dl class="detailList">
+							<dt class="heading">Returns:</dt>
+							
+								<dd><span class="light fixedFont">{boolean}</span> If this player can play this media type.</dd>
+							
+							</dl>
+						
+						
+						
+							<dl class="detailList">
+							<dt class="heading">See:</dt>
+							
+								<dd>minplayer.players.base#canPlay</dd>
+							
+							</dl>
+						
+
+					<hr />
+				
+					<a name="construct"> </a>
+					<div class="fixedFont">
+					
+					
+					<b>construct</b>()
+					
+					</div>
+					<div class="description">
+						
+						
+						
+					</div>
+					
+					
+					
+						
+						
+						
+						
+						
+						
+						
+							<dl class="detailList">
+							<dt class="heading">See:</dt>
+							
+								<dd>minplayer.plugin.construct</dd>
+							
+							</dl>
+						
+
+					<hr />
+				
+					<a name="create"> </a>
+					<div class="fixedFont">
+					
+					<span class="light">{object}</span>
+					<b>create</b>()
+					
+					</div>
+					<div class="description">
+						
+						
+						
+					</div>
+					
+					
+					
+						
+						
+						
+						
+						
+							<dl class="detailList">
+							<dt class="heading">Returns:</dt>
+							
+								<dd><span class="light fixedFont">{object}</span> The media player entity.</dd>
+							
+							</dl>
+						
+						
+						
+							<dl class="detailList">
+							<dt class="heading">See:</dt>
+							
+								<dd><a href="../symbols/minplayer.players.base.html#create">minplayer.players.base#create</a></dd>
+							
+							</dl>
+						
+
+					<hr />
+				
+					<a name="getBytesLoaded"> </a>
+					<div class="fixedFont">
+					
+					
+					<b>getBytesLoaded</b>(callback)
+					
+					</div>
+					<div class="description">
+						
+						
+						
+					</div>
+					
+					
+					
+						
+							<dl class="detailList">
+							<dt class="heading">Parameters:</dt>
+							
+								<dt>
+									<b>callback</b>
+									
+								</dt>
+								<dd></dd>
+							
+							</dl>
+						
+						
+						
+						
+						
+						
+						
+							<dl class="detailList">
+							<dt class="heading">See:</dt>
+							
+								<dd><a href="../symbols/minplayer.players.base.html#getBytesLoaded">minplayer.players.base#getBytesLoaded</a></dd>
+							
+							</dl>
+						
+
+					<hr />
+				
+					<a name="getBytesTotal"> </a>
+					<div class="fixedFont">
+					
+					
+					<b>getBytesTotal</b>(callback)
+					
+					</div>
+					<div class="description">
+						
+						
+						
+					</div>
+					
+					
+					
+						
+							<dl class="detailList">
+							<dt class="heading">Parameters:</dt>
+							
+								<dt>
+									<b>callback</b>
+									
+								</dt>
+								<dd></dd>
+							
+							</dl>
+						
+						
+						
+						
+						
+						
+						
+							<dl class="detailList">
+							<dt class="heading">See:</dt>
+							
+								<dd><a href="../symbols/minplayer.players.base.html#getBytesTotal">minplayer.players.base#getBytesTotal</a></dd>
+							
+							</dl>
+						
+
+					<hr />
+				
+					<a name="getCurrentTime"> </a>
+					<div class="fixedFont">
+					
+					
+					<b>getCurrentTime</b>(callback)
+					
+					</div>
+					<div class="description">
+						
+						
+						
+					</div>
+					
+					
+					
+						
+							<dl class="detailList">
+							<dt class="heading">Parameters:</dt>
+							
+								<dt>
+									<b>callback</b>
+									
+								</dt>
+								<dd></dd>
+							
+							</dl>
+						
+						
+						
+						
+						
+						
+						
+							<dl class="detailList">
+							<dt class="heading">See:</dt>
+							
+								<dd><a href="../symbols/minplayer.players.base.html#getCurrentTime">minplayer.players.base#getCurrentTime</a></dd>
+							
+							</dl>
+						
+
+					<hr />
+				
+					<a name="getDuration"> </a>
+					<div class="fixedFont">
+					
+					
+					<b>getDuration</b>(callback)
+					
+					</div>
+					<div class="description">
+						
+						
+						
+					</div>
+					
+					
+					
+						
+							<dl class="detailList">
+							<dt class="heading">Parameters:</dt>
+							
+								<dt>
+									<b>callback</b>
+									
+								</dt>
+								<dd></dd>
+							
+							</dl>
+						
+						
+						
+						
+						
+						
+						
+							<dl class="detailList">
+							<dt class="heading">See:</dt>
+							
+								<dd><a href="../symbols/minplayer.players.base.html#getDuration">minplayer.players.base#getDuration</a></dd>
+							
+							</dl>
+						
+
+					<hr />
+				
+					<a name="getPlayer"> </a>
+					<div class="fixedFont">
+					
+					<span class="light">{object}</span>
+					<b>getPlayer</b>()
+					
+					</div>
+					<div class="description">
+						
+						
+						
+					</div>
+					
+					
+					
+						
+						
+						
+						
+						
+							<dl class="detailList">
+							<dt class="heading">Returns:</dt>
+							
+								<dd><span class="light fixedFont">{object}</span> The media player object.</dd>
+							
+							</dl>
+						
+						
+						
+							<dl class="detailList">
+							<dt class="heading">See:</dt>
+							
+								<dd><a href="../symbols/minplayer.players.base.html#getPlayer">minplayer.players.base#getPlayer</a></dd>
+							
+							</dl>
+						
+
+					<hr />
+				
+					<a name=".getPriority"> </a>
+					<div class="fixedFont">&lt;static&gt; 
+					
+					<span class="light">{number}</span>
+					<span class="light">minplayer.players.html5.</span><b>getPriority</b>()
+					
+					</div>
+					<div class="description">
+						
+						
+						
+					</div>
+					
+					
+					
+						
+						
+						
+						
+						
+							<dl class="detailList">
+							<dt class="heading">Returns:</dt>
+							
+								<dd><span class="light fixedFont">{number}</span> The priority of this media player.</dd>
+							
+							</dl>
+						
+						
+						
+							<dl class="detailList">
+							<dt class="heading">See:</dt>
+							
+								<dd>minplayer.players.base#getPriority</dd>
+							
+							</dl>
+						
+
+					<hr />
+				
+					<a name="getVolume"> </a>
+					<div class="fixedFont">
+					
+					
+					<b>getVolume</b>(callback)
+					
+					</div>
+					<div class="description">
+						
+						
+						
+					</div>
+					
+					
+					
+						
+							<dl class="detailList">
+							<dt class="heading">Parameters:</dt>
+							
+								<dt>
+									<b>callback</b>
+									
+								</dt>
+								<dd></dd>
+							
+							</dl>
+						
+						
+						
+						
+						
+						
+						
+							<dl class="detailList">
+							<dt class="heading">See:</dt>
+							
+								<dd><a href="../symbols/minplayer.players.base.html#getVolume">minplayer.players.base#getVolume</a></dd>
+							
+							</dl>
+						
+
+					<hr />
+				
+					<a name="load"> </a>
+					<div class="fixedFont">
+					
+					<span class="light">{boolean}</span>
+					<b>load</b>(file)
+					
+					</div>
+					<div class="description">
+						
+						
+						
+					</div>
+					
+					
+					
+						
+							<dl class="detailList">
+							<dt class="heading">Parameters:</dt>
+							
+								<dt>
+									<b>file</b>
+									
+								</dt>
+								<dd></dd>
+							
+							</dl>
+						
+						
+						
+						
+						
+							<dl class="detailList">
+							<dt class="heading">Returns:</dt>
+							
+								<dd><span class="light fixedFont">{boolean}</span> If this action was performed.</dd>
+							
+							</dl>
+						
+						
+						
+							<dl class="detailList">
+							<dt class="heading">See:</dt>
+							
+								<dd><a href="../symbols/minplayer.players.base.html#load">minplayer.players.base#load</a></dd>
+							
+							</dl>
+						
+
+					<hr />
+				
+					<a name="onReady"> </a>
+					<div class="fixedFont">
+					
+					
+					<b>onReady</b>()
+					
+					</div>
+					<div class="description">
+						
+						
+						
+					</div>
+					
+					
+					
+						
+						
+						
+						
+						
+						
+						
+							<dl class="detailList">
+							<dt class="heading">See:</dt>
+							
+								<dd><a href="../symbols/minplayer.players.base.html#onReady">minplayer.players.base#onReady</a></dd>
+							
+							</dl>
+						
+
+					<hr />
+				
+					<a name="pause"> </a>
+					<div class="fixedFont">
+					
+					<span class="light">{boolean}</span>
+					<b>pause</b>()
+					
+					</div>
+					<div class="description">
+						
+						
+						
+					</div>
+					
+					
+					
+						
+						
+						
+						
+						
+							<dl class="detailList">
+							<dt class="heading">Returns:</dt>
+							
+								<dd><span class="light fixedFont">{boolean}</span> If this action was performed.</dd>
+							
+							</dl>
+						
+						
+						
+							<dl class="detailList">
+							<dt class="heading">See:</dt>
+							
+								<dd><a href="../symbols/minplayer.players.base.html#pause">minplayer.players.base#pause</a></dd>
+							
+							</dl>
+						
+
+					<hr />
+				
+					<a name="play"> </a>
+					<div class="fixedFont">
+					
+					<span class="light">{boolean}</span>
+					<b>play</b>()
+					
+					</div>
+					<div class="description">
+						
+						
+						
+					</div>
+					
+					
+					
+						
+						
+						
+						
+						
+							<dl class="detailList">
+							<dt class="heading">Returns:</dt>
+							
+								<dd><span class="light fixedFont">{boolean}</span> If this action was performed.</dd>
+							
+							</dl>
+						
+						
+						
+							<dl class="detailList">
+							<dt class="heading">See:</dt>
+							
+								<dd><a href="../symbols/minplayer.players.base.html#play">minplayer.players.base#play</a></dd>
+							
+							</dl>
+						
+
+					<hr />
+				
+					<a name="playerFound"> </a>
+					<div class="fixedFont">
+					
+					<span class="light">{boolean}</span>
+					<b>playerFound</b>()
+					
+					</div>
+					<div class="description">
+						
+						
+						
+					</div>
+					
+					
+					
+						
+						
+						
+						
+						
+							<dl class="detailList">
+							<dt class="heading">Returns:</dt>
+							
+								<dd><span class="light fixedFont">{boolean}</span> TRUE - if the player is in the DOM, FALSE otherwise.</dd>
+							
+							</dl>
+						
+						
+						
+							<dl class="detailList">
+							<dt class="heading">See:</dt>
+							
+								<dd><a href="../symbols/minplayer.players.base.html#playerFound">minplayer.players.base#playerFound</a></dd>
+							
+							</dl>
+						
+
+					<hr />
+				
+					<a name="seek"> </a>
+					<div class="fixedFont">
+					
+					<span class="light">{boolean}</span>
+					<b>seek</b>(pos)
+					
+					</div>
+					<div class="description">
+						
+						
+						
+					</div>
+					
+					
+					
+						
+							<dl class="detailList">
+							<dt class="heading">Parameters:</dt>
+							
+								<dt>
+									<b>pos</b>
+									
+								</dt>
+								<dd></dd>
+							
+							</dl>
+						
+						
+						
+						
+						
+							<dl class="detailList">
+							<dt class="heading">Returns:</dt>
+							
+								<dd><span class="light fixedFont">{boolean}</span> If this action was performed.</dd>
+							
+							</dl>
+						
+						
+						
+							<dl class="detailList">
+							<dt class="heading">See:</dt>
+							
+								<dd><a href="../symbols/minplayer.players.base.html#seek">minplayer.players.base#seek</a></dd>
+							
+							</dl>
+						
+
+					<hr />
+				
+					<a name="setVolume"> </a>
+					<div class="fixedFont">
+					
+					<span class="light">{boolean}</span>
+					<b>setVolume</b>(vol)
+					
+					</div>
+					<div class="description">
+						
+						
+						
+					</div>
+					
+					
+					
+						
+							<dl class="detailList">
+							<dt class="heading">Parameters:</dt>
+							
+								<dt>
+									<b>vol</b>
+									
+								</dt>
+								<dd></dd>
+							
+							</dl>
+						
+						
+						
+						
+						
+							<dl class="detailList">
+							<dt class="heading">Returns:</dt>
+							
+								<dd><span class="light fixedFont">{boolean}</span> If this action was performed.</dd>
+							
+							</dl>
+						
+						
+						
+							<dl class="detailList">
+							<dt class="heading">See:</dt>
+							
+								<dd><a href="../symbols/minplayer.players.base.html#setVolume">minplayer.players.base#setVolume</a></dd>
+							
+							</dl>
+						
+
+					<hr />
+				
+					<a name="stop"> </a>
+					<div class="fixedFont">
+					
+					<span class="light">{boolean}</span>
+					<b>stop</b>()
+					
+					</div>
+					<div class="description">
+						
+						
+						
+					</div>
+					
+					
+					
+						
+						
+						
+						
+						
+							<dl class="detailList">
+							<dt class="heading">Returns:</dt>
+							
+								<dd><span class="light fixedFont">{boolean}</span> If this action was performed.</dd>
+							
+							</dl>
+						
+						
+						
+							<dl class="detailList">
+							<dt class="heading">See:</dt>
+							
+								<dd><a href="../symbols/minplayer.players.base.html#stop">minplayer.players.base#stop</a></dd>
+							
+							</dl>
+						
+
+					
+				
+			
+			
+<!-- ============================== event details ========================= -->		
+			
+			
+			<hr />
+		</div>
+
+		
+<!-- ============================== footer ================================= -->
+		<div class="fineprint" style="clear:both">
+			
+			Documentation generated by <a href="http://code.google.com/p/jsdoc-toolkit/" target="_blank">JsDoc Toolkit</a> 2.4.0 on Sun Aug 19 2012 12:11:28 GMT-0500 (CDT)
+		</div>
+	</body>
+</html>
diff --git a/public/admin/js/osmplayer/doc/symbols/minplayer.players.minplayer.html b/public/admin/js/osmplayer/doc/symbols/minplayer.players.minplayer.html
new file mode 100644
index 00000000000..1882f53f42c
--- /dev/null
+++ b/public/admin/js/osmplayer/doc/symbols/minplayer.players.minplayer.html
@@ -0,0 +1,1304 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+        "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+	<head>
+		<meta http-equiv="content-type" content="text/html; charset=utf-8" />
+		<meta name="generator" content="JsDoc Toolkit" />
+		
+		<title>JsDoc Reference - minplayer.players.minplayer</title>
+
+		<style type="text/css">
+			/* default.css */
+body
+{
+	font: 12px "Lucida Grande", Tahoma, Arial, Helvetica, sans-serif;
+	width: 800px;
+}
+
+.header
+{
+	clear: both;
+	background-color: #ccc;
+	padding: 8px;
+}
+
+h1
+{
+	font-size: 150%;
+	font-weight: bold;
+	padding: 0;
+	margin: 1em 0 0 .3em;
+}
+
+hr
+{
+	border: none 0;
+	border-top: 1px solid #7F8FB1;
+	height: 1px;
+}
+
+pre.code
+{
+	display: block;
+	padding: 8px;
+	border: 1px dashed #ccc;
+}
+
+#index
+{
+	margin-top: 24px;
+	float: left;
+	width: 160px;
+	position: absolute;
+	left: 8px;
+	background-color: #F3F3F3;
+	padding: 8px;
+}
+
+#content
+{
+	margin-left: 190px;
+	width: 600px;
+}
+
+.classList
+{
+	list-style-type: none;
+	padding: 0;
+	margin: 0 0 0 8px;
+	font-family: arial, sans-serif;
+	font-size: 1em;
+	overflow: auto;
+}
+
+.classList li
+{
+	padding: 0;
+	margin: 0 0 8px 0;
+}
+
+.summaryTable { width: 100%; }
+
+h1.classTitle
+{
+	font-size:170%;
+	line-height:130%;
+}
+
+h2 { font-size: 110%; }
+caption, div.sectionTitle
+{
+	background-color: #7F8FB1;
+	color: #fff;
+	font-size:130%;
+	text-align: left;
+	padding: 2px 6px 2px 6px;
+	border: 1px #7F8FB1 solid;
+}
+
+div.sectionTitle { margin-bottom: 8px; }
+.summaryTable thead { display: none; }
+
+.summaryTable td
+{
+	vertical-align: top;
+	padding: 4px;
+	border-bottom: 1px #7F8FB1 solid;
+	border-right: 1px #7F8FB1 solid;
+}
+
+/*col#summaryAttributes {}*/
+.summaryTable td.attributes
+{
+	border-left: 1px #7F8FB1 solid;
+	width: 140px;
+	text-align: right;
+}
+
+td.attributes, .fixedFont
+{
+	line-height: 15px;
+	color: #002EBE;
+	font-family: "Courier New",Courier,monospace;
+	font-size: 13px;
+}
+
+.summaryTable td.nameDescription
+{
+	text-align: left;
+	font-size: 13px;
+	line-height: 15px;
+}
+
+.summaryTable td.nameDescription, .description
+{
+	line-height: 15px;
+	padding: 4px;
+	padding-left: 4px;
+}
+
+.summaryTable { margin-bottom: 8px; }
+
+ul.inheritsList
+{
+	list-style: square;
+	margin-left: 20px;
+	padding-left: 0;
+}
+
+.detailList {
+	margin-left: 20px; 
+	line-height: 15px;
+}
+.detailList dt { margin-left: 20px; }
+
+.detailList .heading
+{
+	font-weight: bold;
+	padding-bottom: 6px;
+	margin-left: 0;
+}
+
+.light, td.attributes, .light a:link, .light a:visited
+{
+	color: #777;
+	font-style: italic;
+}
+
+.fineprint
+{
+	text-align: right;
+	font-size: 10px;
+}
+		</style>
+	</head>
+
+	<body>
+<!-- ============================== header ================================= -->	
+		<!-- begin static/header.html -->
+		<div id="header">
+</div>
+		<!-- end static/header.html -->
+
+<!-- ============================== classes index ============================ -->
+		<div id="index">
+			<!-- begin publish.classesIndex -->
+			<div align="center"><a href="../index.html">Class Index</a>
+| <a href="../files.html">File Index</a></div>
+<hr />
+<h2>Classes</h2>
+<ul class="classList">
+	
+	<li><i><a href="../symbols/_global_.html">_global_</a></i></li>
+	
+	<li><a href="../symbols/jQuery.fn.minplayer.html">jQuery.fn.minplayer</a></li>
+	
+	<li><a href="../symbols/jQuery.fn.osmplayer.html">jQuery.fn.osmplayer</a></li>
+	
+	<li><a href="../symbols/minplayer.async.html">minplayer.async</a></li>
+	
+	<li><a href="../symbols/minplayer.compatibility.html">minplayer.compatibility</a></li>
+	
+	<li><a href="../symbols/minplayer.display.html">minplayer.display</a></li>
+	
+	<li><a href="../symbols/minplayer.file.html">minplayer.file</a></li>
+	
+	<li><a href="../symbols/minplayer.flags.html">minplayer.flags</a></li>
+	
+	<li><a href="../symbols/minplayer.image.html">minplayer.image</a></li>
+	
+	<li><a href="../symbols/minplayer.players.base.html">minplayer.players.base</a></li>
+	
+	<li><a href="../symbols/minplayer.players.flash.html">minplayer.players.flash</a></li>
+	
+	<li><a href="../symbols/minplayer.players.html5.html">minplayer.players.html5</a></li>
+	
+	<li><a href="../symbols/minplayer.players.minplayer.html">minplayer.players.minplayer</a></li>
+	
+	<li><a href="../symbols/minplayer.players.vimeo.html">minplayer.players.vimeo</a></li>
+	
+	<li><a href="../symbols/minplayer.players.youtube.html">minplayer.players.youtube</a></li>
+	
+	<li><a href="../symbols/minplayer.plugin.html">minplayer.plugin</a></li>
+	
+	<li><a href="../symbols/osmplayer.html">osmplayer</a></li>
+	
+	<li><a href="../symbols/osmplayer.pager.html">osmplayer.pager</a></li>
+	
+	<li><a href="../symbols/osmplayer.playlist.html">osmplayer.playlist</a></li>
+	
+	<li><a href="../symbols/osmplayer.teaser.html">osmplayer.teaser</a></li>
+	
+</ul>
+<hr />
+			<!-- end publish.classesIndex -->
+		</div>
+		
+		<div id="content">
+<!-- ============================== class title ============================ -->
+			<h1 class="classTitle">
+				
+				Class minplayer.players.minplayer
+			</h1>
+
+<!-- ============================== class summary ========================== -->			
+			<p class="description">
+				
+				<br />Extends
+					<a href="../symbols/minplayer.display.html">minplayer.display</a>.<br />
+				
+			
+				The Flash media player class to control the flash fallback.
+				
+				
+					<br /><i>Defined in: </i> <a href="../symbols/src/minplayer_src_minplayer.players.minplayer.js.html">minplayer.players.minplayer.js</a>.
+				
+			</p>
+
+<!-- ============================== constructor summary ==================== -->			
+			
+			<table class="summaryTable" cellspacing="0" summary="A summary of the constructor documented in the class minplayer.players.minplayer.">
+				<caption>Class Summary</caption>
+				<thead>
+					<tr>
+						<th scope="col">Constructor Attributes</th>
+						<th scope="col">Constructor Name and Description</th>
+					</tr>
+				</thead>
+				<tbody>
+					<tr>
+						<td class="attributes">&nbsp;</td>
+						<td class="nameDescription" >
+							<div class="fixedFont">
+								<b><a href="../symbols/minplayer.players.minplayer.html#constructor">minplayer.players.minplayer</a></b>(context, options, queue)
+							</div>
+							<div class="description"></div>
+						</td>
+					</tr>
+				</tbody>
+			</table>
+			
+
+<!-- ============================== properties summary ===================== -->
+			
+				
+				
+				<table class="summaryTable" cellspacing="0" summary="A summary of the fields documented in the class minplayer.players.minplayer.">
+					<caption>Field Summary</caption>
+					<thead>
+						<tr>
+							<th scope="col">Field Attributes</th>
+							<th scope="col">Field Name and Description</th>
+						</tr>
+					</thead>
+					<tbody>
+					
+						<tr>
+							<td class="attributes">&nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont">
+								<b><a href="../symbols/minplayer.players.minplayer.html#constructor">constructor</a></b>
+								</div>
+								<div class="description">Reset the constructor.</div>
+							</td>
+						</tr>
+					
+					</tbody>
+				</table>
+				
+				
+				
+				<dl class="inheritsList">
+				<dt>Fields borrowed from class <a href="../symbols/minplayer.display.html">minplayer.display</a>: </dt><dd><a href="../symbols/minplayer.display.html#onResize">onResize</a></dd><dt>Fields borrowed from class <a href="../symbols/minplayer.plugin.html">minplayer.plugin</a>: </dt><dd><a href="../symbols/minplayer.plugin.html#active">active</a>, <a href="../symbols/minplayer.plugin.html#context">context</a>, <a href="../symbols/minplayer.plugin.html#lock">lock</a>, <a href="../symbols/minplayer.plugin.html#name">name</a>, <a href="../symbols/minplayer.plugin.html#options">options</a>, <a href="../symbols/minplayer.plugin.html#pluginReady">pluginReady</a>, <a href="../symbols/minplayer.plugin.html#queue">queue</a>, <a href="../symbols/minplayer.plugin.html#triggered">triggered</a></dd>
+				</dl>
+				
+			
+
+<!-- ============================== methods summary ======================== -->
+			
+				
+				
+				<table class="summaryTable" cellspacing="0" summary="A summary of the methods documented in the class minplayer.players.minplayer.">
+					<caption>Method Summary</caption>
+					<thead>
+						<tr>
+							<th scope="col">Method Attributes</th>
+							<th scope="col">Method Name and Description</th>
+						</tr>
+					</thead>
+					<tbody>
+					
+						<tr>
+							<td class="attributes">&lt;static&gt; &nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont">minplayer.players.minplayer.<b><a href="../symbols/minplayer.players.minplayer.html#.canPlay">canPlay</a></b>(file)
+								</div>
+								<div class="description"></div>
+							</td>
+						</tr>
+					
+						<tr>
+							<td class="attributes">&nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont"><b><a href="../symbols/minplayer.players.minplayer.html#clear">clear</a></b>()
+								</div>
+								<div class="description">Resets all variables.</div>
+							</td>
+						</tr>
+					
+						<tr>
+							<td class="attributes">&nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont"><b><a href="../symbols/minplayer.players.minplayer.html#construct">construct</a></b>()
+								</div>
+								<div class="description"></div>
+							</td>
+						</tr>
+					
+						<tr>
+							<td class="attributes">&nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont"><b><a href="../symbols/minplayer.players.minplayer.html#create">create</a></b>()
+								</div>
+								<div class="description"></div>
+							</td>
+						</tr>
+					
+						<tr>
+							<td class="attributes">&nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont"><b><a href="../symbols/minplayer.players.minplayer.html#getBytesLoaded">getBytesLoaded</a></b>(callback)
+								</div>
+								<div class="description"></div>
+							</td>
+						</tr>
+					
+						<tr>
+							<td class="attributes">&nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont"><b><a href="../symbols/minplayer.players.minplayer.html#getBytesTotal">getBytesTotal</a></b>(callback)
+								</div>
+								<div class="description"></div>
+							</td>
+						</tr>
+					
+						<tr>
+							<td class="attributes">&nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont"><b><a href="../symbols/minplayer.players.minplayer.html#getCurrentTime">getCurrentTime</a></b>(callback)
+								</div>
+								<div class="description"></div>
+							</td>
+						</tr>
+					
+						<tr>
+							<td class="attributes">&nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont"><b><a href="../symbols/minplayer.players.minplayer.html#getDuration">getDuration</a></b>(callback)
+								</div>
+								<div class="description"></div>
+							</td>
+						</tr>
+					
+						<tr>
+							<td class="attributes">&lt;static&gt; &nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont">minplayer.players.minplayer.<b><a href="../symbols/minplayer.players.minplayer.html#.getPriority">getPriority</a></b>()
+								</div>
+								<div class="description"></div>
+							</td>
+						</tr>
+					
+						<tr>
+							<td class="attributes">&nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont"><b><a href="../symbols/minplayer.players.minplayer.html#getVolume">getVolume</a></b>(callback)
+								</div>
+								<div class="description"></div>
+							</td>
+						</tr>
+					
+						<tr>
+							<td class="attributes">&nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont"><b><a href="../symbols/minplayer.players.minplayer.html#load">load</a></b>(file)
+								</div>
+								<div class="description"></div>
+							</td>
+						</tr>
+					
+						<tr>
+							<td class="attributes">&nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont"><b><a href="../symbols/minplayer.players.minplayer.html#onMediaUpdate">onMediaUpdate</a></b>(eventType)
+								</div>
+								<div class="description">Called when the Flash player has an update.</div>
+							</td>
+						</tr>
+					
+						<tr>
+							<td class="attributes">&nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont"><b><a href="../symbols/minplayer.players.minplayer.html#pause">pause</a></b>()
+								</div>
+								<div class="description"></div>
+							</td>
+						</tr>
+					
+						<tr>
+							<td class="attributes">&nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont"><b><a href="../symbols/minplayer.players.minplayer.html#play">play</a></b>()
+								</div>
+								<div class="description"></div>
+							</td>
+						</tr>
+					
+						<tr>
+							<td class="attributes">&nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont"><b><a href="../symbols/minplayer.players.minplayer.html#seek">seek</a></b>(pos)
+								</div>
+								<div class="description"></div>
+							</td>
+						</tr>
+					
+						<tr>
+							<td class="attributes">&nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont"><b><a href="../symbols/minplayer.players.minplayer.html#setVolume">setVolume</a></b>(vol)
+								</div>
+								<div class="description"></div>
+							</td>
+						</tr>
+					
+						<tr>
+							<td class="attributes">&nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont"><b><a href="../symbols/minplayer.players.minplayer.html#stop">stop</a></b>()
+								</div>
+								<div class="description"></div>
+							</td>
+						</tr>
+					
+					</tbody>
+				</table>
+				
+				
+				
+				<dl class="inheritsList">
+				<dt>Methods borrowed from class <a href="../symbols/minplayer.display.html">minplayer.display</a>: </dt><dd><a href="../symbols/minplayer.display.html#fullscreen">fullscreen</a>, <a href="../symbols/minplayer.display.html#fullScreenElement">fullScreenElement</a>, <a href="../symbols/minplayer.display.html#getDisplay">getDisplay</a>, <a href="../symbols/minplayer.display.html#getElements">getElements</a>, <a href="../symbols/minplayer.display.html#getScaledRect">getScaledRect</a>, <a href="../symbols/minplayer.display.html#hide">hide</a>, <a href="../symbols/minplayer.display.html#isFullScreen">isFullScreen</a>, <a href="../symbols/minplayer.display.html#onFocus">onFocus</a>, <a href="../symbols/minplayer.display.html#toggleFullScreen">toggleFullScreen</a></dd><dt>Methods borrowed from class <a href="../symbols/minplayer.plugin.html">minplayer.plugin</a>: </dt><dd><a href="../symbols/minplayer.plugin.html#addPlugin">addPlugin</a>, <a href="../symbols/minplayer.plugin.html#bind">bind</a>, <a href="../symbols/minplayer.plugin.html#checkQueue">checkQueue</a>, <a href="../symbols/minplayer.plugin.html#destroy">destroy</a>, <a href="../symbols/minplayer.plugin.html#get">get</a>, <a href="../symbols/minplayer.plugin.html#isValid">isValid</a>, <a href="../symbols/minplayer.plugin.html#poll">poll</a>, <a href="../symbols/minplayer.plugin.html#ready">ready</a>, <a href="../symbols/minplayer.plugin.html#trigger">trigger</a>, <a href="../symbols/minplayer.plugin.html#unbind">unbind</a></dd>
+				</dl>
+				
+			
+<!-- ============================== events summary ======================== -->
+			
+
+<!-- ============================== constructor details ==================== -->		
+			
+			<div class="details"><a name="constructor"> </a>
+				<div class="sectionTitle">
+					Class Detail
+				</div>
+				
+				<div class="fixedFont">
+						<b>minplayer.players.minplayer</b>(context, options, queue)
+				</div>
+				
+				<div class="description">
+					
+					
+				</div>
+				
+				
+				
+				
+					
+						<dl class="detailList">
+						<dt class="heading">Parameters:</dt>
+						
+							<dt>
+								<span class="light fixedFont">{object}</span>  <b>context</b>
+								
+							</dt>
+								<dd>The jQuery context.</dd>
+						
+							<dt>
+								<span class="light fixedFont">{object}</span>  <b>options</b>
+								
+							</dt>
+								<dd>This components options.</dd>
+						
+							<dt>
+								<span class="light fixedFont">{object}</span>  <b>queue</b>
+								
+							</dt>
+								<dd>The event queue to pass events around.</dd>
+						
+						</dl>
+					
+					
+					
+					
+					
+					
+					
+
+			</div>
+			
+
+<!-- ============================== field details ========================== -->		
+			
+				<div class="sectionTitle">
+					Field Detail
+				</div>
+				
+					<a name="constructor"> </a>
+					<div class="fixedFont">
+					
+					
+					<b>constructor</b>
+					
+					</div>
+					<div class="description">
+						Reset the constructor.
+						
+						
+					</div>
+					
+					
+
+						
+						
+						
+						
+
+					
+				
+			
+
+<!-- ============================== method details ========================= -->		
+			
+				<div class="sectionTitle">
+					Method Detail
+				</div>
+				
+					<a name=".canPlay"> </a>
+					<div class="fixedFont">&lt;static&gt; 
+					
+					<span class="light">{boolean}</span>
+					<span class="light">minplayer.players.minplayer.</span><b>canPlay</b>(file)
+					
+					</div>
+					<div class="description">
+						
+						
+						
+					</div>
+					
+					
+					
+						
+							<dl class="detailList">
+							<dt class="heading">Parameters:</dt>
+							
+								<dt>
+									<b>file</b>
+									
+								</dt>
+								<dd></dd>
+							
+							</dl>
+						
+						
+						
+						
+						
+							<dl class="detailList">
+							<dt class="heading">Returns:</dt>
+							
+								<dd><span class="light fixedFont">{boolean}</span> If this player can play this media type.</dd>
+							
+							</dl>
+						
+						
+						
+							<dl class="detailList">
+							<dt class="heading">See:</dt>
+							
+								<dd>minplayer.players.base#canPlay</dd>
+							
+							</dl>
+						
+
+					<hr />
+				
+					<a name="clear"> </a>
+					<div class="fixedFont">
+					
+					
+					<b>clear</b>()
+					
+					</div>
+					<div class="description">
+						Resets all variables.
+						
+						
+					</div>
+					
+					
+					
+						
+						
+						
+						
+						
+						
+						
+
+					<hr />
+				
+					<a name="construct"> </a>
+					<div class="fixedFont">
+					
+					
+					<b>construct</b>()
+					
+					</div>
+					<div class="description">
+						
+						
+						
+					</div>
+					
+					
+					
+						
+						
+						
+						
+						
+						
+						
+							<dl class="detailList">
+							<dt class="heading">See:</dt>
+							
+								<dd>minplayer.plugin.construct</dd>
+							
+							</dl>
+						
+
+					<hr />
+				
+					<a name="create"> </a>
+					<div class="fixedFont">
+					
+					<span class="light">{object}</span>
+					<b>create</b>()
+					
+					</div>
+					<div class="description">
+						
+						
+						
+					</div>
+					
+					
+					
+						
+						
+						
+						
+						
+							<dl class="detailList">
+							<dt class="heading">Returns:</dt>
+							
+								<dd><span class="light fixedFont">{object}</span> The media player entity.</dd>
+							
+							</dl>
+						
+						
+						
+							<dl class="detailList">
+							<dt class="heading">See:</dt>
+							
+								<dd><a href="../symbols/minplayer.players.base.html#create">minplayer.players.base#create</a></dd>
+							
+							</dl>
+						
+
+					<hr />
+				
+					<a name="getBytesLoaded"> </a>
+					<div class="fixedFont">
+					
+					
+					<b>getBytesLoaded</b>(callback)
+					
+					</div>
+					<div class="description">
+						
+						
+						
+					</div>
+					
+					
+					
+						
+							<dl class="detailList">
+							<dt class="heading">Parameters:</dt>
+							
+								<dt>
+									<b>callback</b>
+									
+								</dt>
+								<dd></dd>
+							
+							</dl>
+						
+						
+						
+						
+						
+						
+						
+							<dl class="detailList">
+							<dt class="heading">See:</dt>
+							
+								<dd><a href="../symbols/minplayer.players.base.html#getBytesLoaded">minplayer.players.base#getBytesLoaded</a></dd>
+							
+							</dl>
+						
+
+					<hr />
+				
+					<a name="getBytesTotal"> </a>
+					<div class="fixedFont">
+					
+					
+					<b>getBytesTotal</b>(callback)
+					
+					</div>
+					<div class="description">
+						
+						
+						
+					</div>
+					
+					
+					
+						
+							<dl class="detailList">
+							<dt class="heading">Parameters:</dt>
+							
+								<dt>
+									<b>callback</b>
+									
+								</dt>
+								<dd></dd>
+							
+							</dl>
+						
+						
+						
+						
+						
+						
+						
+							<dl class="detailList">
+							<dt class="heading">See:</dt>
+							
+								<dd>minplayer.players.base#getBytesTotal.</dd>
+							
+							</dl>
+						
+
+					<hr />
+				
+					<a name="getCurrentTime"> </a>
+					<div class="fixedFont">
+					
+					
+					<b>getCurrentTime</b>(callback)
+					
+					</div>
+					<div class="description">
+						
+						
+						
+					</div>
+					
+					
+					
+						
+							<dl class="detailList">
+							<dt class="heading">Parameters:</dt>
+							
+								<dt>
+									<b>callback</b>
+									
+								</dt>
+								<dd></dd>
+							
+							</dl>
+						
+						
+						
+						
+						
+						
+						
+							<dl class="detailList">
+							<dt class="heading">See:</dt>
+							
+								<dd><a href="../symbols/minplayer.players.base.html#getCurrentTime">minplayer.players.base#getCurrentTime</a></dd>
+							
+							</dl>
+						
+
+					<hr />
+				
+					<a name="getDuration"> </a>
+					<div class="fixedFont">
+					
+					
+					<b>getDuration</b>(callback)
+					
+					</div>
+					<div class="description">
+						
+						
+						
+					</div>
+					
+					
+					
+						
+							<dl class="detailList">
+							<dt class="heading">Parameters:</dt>
+							
+								<dt>
+									<b>callback</b>
+									
+								</dt>
+								<dd></dd>
+							
+							</dl>
+						
+						
+						
+						
+						
+						
+						
+							<dl class="detailList">
+							<dt class="heading">See:</dt>
+							
+								<dd>minplayer.players.flash#getDuration</dd>
+							
+							</dl>
+						
+
+					<hr />
+				
+					<a name=".getPriority"> </a>
+					<div class="fixedFont">&lt;static&gt; 
+					
+					<span class="light">{number}</span>
+					<span class="light">minplayer.players.minplayer.</span><b>getPriority</b>()
+					
+					</div>
+					<div class="description">
+						
+						
+						
+					</div>
+					
+					
+					
+						
+						
+						
+						
+						
+							<dl class="detailList">
+							<dt class="heading">Returns:</dt>
+							
+								<dd><span class="light fixedFont">{number}</span> The priority of this media player.</dd>
+							
+							</dl>
+						
+						
+						
+							<dl class="detailList">
+							<dt class="heading">See:</dt>
+							
+								<dd>minplayer.players.base#getPriority</dd>
+							
+							</dl>
+						
+
+					<hr />
+				
+					<a name="getVolume"> </a>
+					<div class="fixedFont">
+					
+					
+					<b>getVolume</b>(callback)
+					
+					</div>
+					<div class="description">
+						
+						
+						
+					</div>
+					
+					
+					
+						
+							<dl class="detailList">
+							<dt class="heading">Parameters:</dt>
+							
+								<dt>
+									<b>callback</b>
+									
+								</dt>
+								<dd></dd>
+							
+							</dl>
+						
+						
+						
+						
+						
+						
+						
+							<dl class="detailList">
+							<dt class="heading">See:</dt>
+							
+								<dd><a href="../symbols/minplayer.players.base.html#getVolume">minplayer.players.base#getVolume</a></dd>
+							
+							</dl>
+						
+
+					<hr />
+				
+					<a name="load"> </a>
+					<div class="fixedFont">
+					
+					<span class="light">{boolean}</span>
+					<b>load</b>(file)
+					
+					</div>
+					<div class="description">
+						
+						
+						
+					</div>
+					
+					
+					
+						
+							<dl class="detailList">
+							<dt class="heading">Parameters:</dt>
+							
+								<dt>
+									<b>file</b>
+									
+								</dt>
+								<dd></dd>
+							
+							</dl>
+						
+						
+						
+						
+						
+							<dl class="detailList">
+							<dt class="heading">Returns:</dt>
+							
+								<dd><span class="light fixedFont">{boolean}</span> If this action was performed.</dd>
+							
+							</dl>
+						
+						
+						
+							<dl class="detailList">
+							<dt class="heading">See:</dt>
+							
+								<dd><a href="../symbols/minplayer.players.base.html#load">minplayer.players.base#load</a></dd>
+							
+							</dl>
+						
+
+					<hr />
+				
+					<a name="onMediaUpdate"> </a>
+					<div class="fixedFont">
+					
+					
+					<b>onMediaUpdate</b>(eventType)
+					
+					</div>
+					<div class="description">
+						Called when the Flash player has an update.
+						
+						
+					</div>
+					
+					
+					
+						
+							<dl class="detailList">
+							<dt class="heading">Parameters:</dt>
+							
+								<dt>
+									<span class="light fixedFont">{string}</span> <b>eventType</b>
+									
+								</dt>
+								<dd>The event that was triggered in the player.</dd>
+							
+							</dl>
+						
+						
+						
+						
+						
+						
+						
+
+					<hr />
+				
+					<a name="pause"> </a>
+					<div class="fixedFont">
+					
+					<span class="light">{boolean}</span>
+					<b>pause</b>()
+					
+					</div>
+					<div class="description">
+						
+						
+						
+					</div>
+					
+					
+					
+						
+						
+						
+						
+						
+							<dl class="detailList">
+							<dt class="heading">Returns:</dt>
+							
+								<dd><span class="light fixedFont">{boolean}</span> If this action was performed.</dd>
+							
+							</dl>
+						
+						
+						
+							<dl class="detailList">
+							<dt class="heading">See:</dt>
+							
+								<dd><a href="../symbols/minplayer.players.base.html#pause">minplayer.players.base#pause</a></dd>
+							
+							</dl>
+						
+
+					<hr />
+				
+					<a name="play"> </a>
+					<div class="fixedFont">
+					
+					<span class="light">{boolean}</span>
+					<b>play</b>()
+					
+					</div>
+					<div class="description">
+						
+						
+						
+					</div>
+					
+					
+					
+						
+						
+						
+						
+						
+							<dl class="detailList">
+							<dt class="heading">Returns:</dt>
+							
+								<dd><span class="light fixedFont">{boolean}</span> If this action was performed.</dd>
+							
+							</dl>
+						
+						
+						
+							<dl class="detailList">
+							<dt class="heading">See:</dt>
+							
+								<dd><a href="../symbols/minplayer.players.base.html#play">minplayer.players.base#play</a></dd>
+							
+							</dl>
+						
+
+					<hr />
+				
+					<a name="seek"> </a>
+					<div class="fixedFont">
+					
+					<span class="light">{boolean}</span>
+					<b>seek</b>(pos)
+					
+					</div>
+					<div class="description">
+						
+						
+						
+					</div>
+					
+					
+					
+						
+							<dl class="detailList">
+							<dt class="heading">Parameters:</dt>
+							
+								<dt>
+									<b>pos</b>
+									
+								</dt>
+								<dd></dd>
+							
+							</dl>
+						
+						
+						
+						
+						
+							<dl class="detailList">
+							<dt class="heading">Returns:</dt>
+							
+								<dd><span class="light fixedFont">{boolean}</span> If this action was performed.</dd>
+							
+							</dl>
+						
+						
+						
+							<dl class="detailList">
+							<dt class="heading">See:</dt>
+							
+								<dd><a href="../symbols/minplayer.players.base.html#seek">minplayer.players.base#seek</a></dd>
+							
+							</dl>
+						
+
+					<hr />
+				
+					<a name="setVolume"> </a>
+					<div class="fixedFont">
+					
+					<span class="light">{boolean}</span>
+					<b>setVolume</b>(vol)
+					
+					</div>
+					<div class="description">
+						
+						
+						
+					</div>
+					
+					
+					
+						
+							<dl class="detailList">
+							<dt class="heading">Parameters:</dt>
+							
+								<dt>
+									<b>vol</b>
+									
+								</dt>
+								<dd></dd>
+							
+							</dl>
+						
+						
+						
+						
+						
+							<dl class="detailList">
+							<dt class="heading">Returns:</dt>
+							
+								<dd><span class="light fixedFont">{boolean}</span> If this action was performed.</dd>
+							
+							</dl>
+						
+						
+						
+							<dl class="detailList">
+							<dt class="heading">See:</dt>
+							
+								<dd><a href="../symbols/minplayer.players.base.html#setVolume">minplayer.players.base#setVolume</a></dd>
+							
+							</dl>
+						
+
+					<hr />
+				
+					<a name="stop"> </a>
+					<div class="fixedFont">
+					
+					<span class="light">{boolean}</span>
+					<b>stop</b>()
+					
+					</div>
+					<div class="description">
+						
+						
+						
+					</div>
+					
+					
+					
+						
+						
+						
+						
+						
+							<dl class="detailList">
+							<dt class="heading">Returns:</dt>
+							
+								<dd><span class="light fixedFont">{boolean}</span> If this action was performed.</dd>
+							
+							</dl>
+						
+						
+						
+							<dl class="detailList">
+							<dt class="heading">See:</dt>
+							
+								<dd><a href="../symbols/minplayer.players.base.html#stop">minplayer.players.base#stop</a></dd>
+							
+							</dl>
+						
+
+					
+				
+			
+			
+<!-- ============================== event details ========================= -->		
+			
+			
+			<hr />
+		</div>
+
+		
+<!-- ============================== footer ================================= -->
+		<div class="fineprint" style="clear:both">
+			
+			Documentation generated by <a href="http://code.google.com/p/jsdoc-toolkit/" target="_blank">JsDoc Toolkit</a> 2.4.0 on Sun Aug 19 2012 12:11:28 GMT-0500 (CDT)
+		</div>
+	</body>
+</html>
diff --git a/public/admin/js/osmplayer/doc/symbols/minplayer.players.vimeo.html b/public/admin/js/osmplayer/doc/symbols/minplayer.players.vimeo.html
new file mode 100644
index 00000000000..2ef794b4db2
--- /dev/null
+++ b/public/admin/js/osmplayer/doc/symbols/minplayer.players.vimeo.html
@@ -0,0 +1,1398 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+        "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+	<head>
+		<meta http-equiv="content-type" content="text/html; charset=utf-8" />
+		<meta name="generator" content="JsDoc Toolkit" />
+		
+		<title>JsDoc Reference - minplayer.players.vimeo</title>
+
+		<style type="text/css">
+			/* default.css */
+body
+{
+	font: 12px "Lucida Grande", Tahoma, Arial, Helvetica, sans-serif;
+	width: 800px;
+}
+
+.header
+{
+	clear: both;
+	background-color: #ccc;
+	padding: 8px;
+}
+
+h1
+{
+	font-size: 150%;
+	font-weight: bold;
+	padding: 0;
+	margin: 1em 0 0 .3em;
+}
+
+hr
+{
+	border: none 0;
+	border-top: 1px solid #7F8FB1;
+	height: 1px;
+}
+
+pre.code
+{
+	display: block;
+	padding: 8px;
+	border: 1px dashed #ccc;
+}
+
+#index
+{
+	margin-top: 24px;
+	float: left;
+	width: 160px;
+	position: absolute;
+	left: 8px;
+	background-color: #F3F3F3;
+	padding: 8px;
+}
+
+#content
+{
+	margin-left: 190px;
+	width: 600px;
+}
+
+.classList
+{
+	list-style-type: none;
+	padding: 0;
+	margin: 0 0 0 8px;
+	font-family: arial, sans-serif;
+	font-size: 1em;
+	overflow: auto;
+}
+
+.classList li
+{
+	padding: 0;
+	margin: 0 0 8px 0;
+}
+
+.summaryTable { width: 100%; }
+
+h1.classTitle
+{
+	font-size:170%;
+	line-height:130%;
+}
+
+h2 { font-size: 110%; }
+caption, div.sectionTitle
+{
+	background-color: #7F8FB1;
+	color: #fff;
+	font-size:130%;
+	text-align: left;
+	padding: 2px 6px 2px 6px;
+	border: 1px #7F8FB1 solid;
+}
+
+div.sectionTitle { margin-bottom: 8px; }
+.summaryTable thead { display: none; }
+
+.summaryTable td
+{
+	vertical-align: top;
+	padding: 4px;
+	border-bottom: 1px #7F8FB1 solid;
+	border-right: 1px #7F8FB1 solid;
+}
+
+/*col#summaryAttributes {}*/
+.summaryTable td.attributes
+{
+	border-left: 1px #7F8FB1 solid;
+	width: 140px;
+	text-align: right;
+}
+
+td.attributes, .fixedFont
+{
+	line-height: 15px;
+	color: #002EBE;
+	font-family: "Courier New",Courier,monospace;
+	font-size: 13px;
+}
+
+.summaryTable td.nameDescription
+{
+	text-align: left;
+	font-size: 13px;
+	line-height: 15px;
+}
+
+.summaryTable td.nameDescription, .description
+{
+	line-height: 15px;
+	padding: 4px;
+	padding-left: 4px;
+}
+
+.summaryTable { margin-bottom: 8px; }
+
+ul.inheritsList
+{
+	list-style: square;
+	margin-left: 20px;
+	padding-left: 0;
+}
+
+.detailList {
+	margin-left: 20px; 
+	line-height: 15px;
+}
+.detailList dt { margin-left: 20px; }
+
+.detailList .heading
+{
+	font-weight: bold;
+	padding-bottom: 6px;
+	margin-left: 0;
+}
+
+.light, td.attributes, .light a:link, .light a:visited
+{
+	color: #777;
+	font-style: italic;
+}
+
+.fineprint
+{
+	text-align: right;
+	font-size: 10px;
+}
+		</style>
+	</head>
+
+	<body>
+<!-- ============================== header ================================= -->	
+		<!-- begin static/header.html -->
+		<div id="header">
+</div>
+		<!-- end static/header.html -->
+
+<!-- ============================== classes index ============================ -->
+		<div id="index">
+			<!-- begin publish.classesIndex -->
+			<div align="center"><a href="../index.html">Class Index</a>
+| <a href="../files.html">File Index</a></div>
+<hr />
+<h2>Classes</h2>
+<ul class="classList">
+	
+	<li><i><a href="../symbols/_global_.html">_global_</a></i></li>
+	
+	<li><a href="../symbols/jQuery.fn.minplayer.html">jQuery.fn.minplayer</a></li>
+	
+	<li><a href="../symbols/jQuery.fn.osmplayer.html">jQuery.fn.osmplayer</a></li>
+	
+	<li><a href="../symbols/minplayer.async.html">minplayer.async</a></li>
+	
+	<li><a href="../symbols/minplayer.compatibility.html">minplayer.compatibility</a></li>
+	
+	<li><a href="../symbols/minplayer.display.html">minplayer.display</a></li>
+	
+	<li><a href="../symbols/minplayer.file.html">minplayer.file</a></li>
+	
+	<li><a href="../symbols/minplayer.flags.html">minplayer.flags</a></li>
+	
+	<li><a href="../symbols/minplayer.image.html">minplayer.image</a></li>
+	
+	<li><a href="../symbols/minplayer.players.base.html">minplayer.players.base</a></li>
+	
+	<li><a href="../symbols/minplayer.players.flash.html">minplayer.players.flash</a></li>
+	
+	<li><a href="../symbols/minplayer.players.html5.html">minplayer.players.html5</a></li>
+	
+	<li><a href="../symbols/minplayer.players.minplayer.html">minplayer.players.minplayer</a></li>
+	
+	<li><a href="../symbols/minplayer.players.vimeo.html">minplayer.players.vimeo</a></li>
+	
+	<li><a href="../symbols/minplayer.players.youtube.html">minplayer.players.youtube</a></li>
+	
+	<li><a href="../symbols/minplayer.plugin.html">minplayer.plugin</a></li>
+	
+	<li><a href="../symbols/osmplayer.html">osmplayer</a></li>
+	
+	<li><a href="../symbols/osmplayer.pager.html">osmplayer.pager</a></li>
+	
+	<li><a href="../symbols/osmplayer.playlist.html">osmplayer.playlist</a></li>
+	
+	<li><a href="../symbols/osmplayer.teaser.html">osmplayer.teaser</a></li>
+	
+</ul>
+<hr />
+			<!-- end publish.classesIndex -->
+		</div>
+		
+		<div id="content">
+<!-- ============================== class title ============================ -->
+			<h1 class="classTitle">
+				
+				Class minplayer.players.vimeo
+			</h1>
+
+<!-- ============================== class summary ========================== -->			
+			<p class="description">
+				
+				<br />Extends
+					<a href="../symbols/minplayer.players.base.html">minplayer.players.base</a>.<br />
+				
+			
+				The vimeo media player.
+				
+				
+					<br /><i>Defined in: </i> <a href="../symbols/src/minplayer_src_minplayer.players.vimeo.js.html">minplayer.players.vimeo.js</a>.
+				
+			</p>
+
+<!-- ============================== constructor summary ==================== -->			
+			
+			<table class="summaryTable" cellspacing="0" summary="A summary of the constructor documented in the class minplayer.players.vimeo.">
+				<caption>Class Summary</caption>
+				<thead>
+					<tr>
+						<th scope="col">Constructor Attributes</th>
+						<th scope="col">Constructor Name and Description</th>
+					</tr>
+				</thead>
+				<tbody>
+					<tr>
+						<td class="attributes">&nbsp;</td>
+						<td class="nameDescription" >
+							<div class="fixedFont">
+								<b><a href="../symbols/minplayer.players.vimeo.html#constructor">minplayer.players.vimeo</a></b>(context, options, queue)
+							</div>
+							<div class="description"></div>
+						</td>
+					</tr>
+				</tbody>
+			</table>
+			
+
+<!-- ============================== properties summary ===================== -->
+			
+				
+				
+				<table class="summaryTable" cellspacing="0" summary="A summary of the fields documented in the class minplayer.players.vimeo.">
+					<caption>Field Summary</caption>
+					<thead>
+						<tr>
+							<th scope="col">Field Attributes</th>
+							<th scope="col">Field Name and Description</th>
+						</tr>
+					</thead>
+					<tbody>
+					
+						<tr>
+							<td class="attributes">&nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont">
+								<b><a href="../symbols/minplayer.players.vimeo.html#constructor">constructor</a></b>
+								</div>
+								<div class="description">Reset the constructor.</div>
+							</td>
+						</tr>
+					
+					</tbody>
+				</table>
+				
+				
+				
+				<dl class="inheritsList">
+				<dt>Fields borrowed from class <a href="../symbols/minplayer.players.base.html">minplayer.players.base</a>: </dt><dd><a href="../symbols/minplayer.players.base.html#mediaFile">mediaFile</a></dd><dt>Fields borrowed from class <a href="../symbols/minplayer.display.html">minplayer.display</a>: </dt><dd><a href="../symbols/minplayer.display.html#onResize">onResize</a></dd><dt>Fields borrowed from class <a href="../symbols/minplayer.plugin.html">minplayer.plugin</a>: </dt><dd><a href="../symbols/minplayer.plugin.html#active">active</a>, <a href="../symbols/minplayer.plugin.html#context">context</a>, <a href="../symbols/minplayer.plugin.html#lock">lock</a>, <a href="../symbols/minplayer.plugin.html#name">name</a>, <a href="../symbols/minplayer.plugin.html#options">options</a>, <a href="../symbols/minplayer.plugin.html#pluginReady">pluginReady</a>, <a href="../symbols/minplayer.plugin.html#queue">queue</a>, <a href="../symbols/minplayer.plugin.html#triggered">triggered</a></dd>
+				</dl>
+				
+			
+
+<!-- ============================== methods summary ======================== -->
+			
+				
+				
+				<table class="summaryTable" cellspacing="0" summary="A summary of the methods documented in the class minplayer.players.vimeo.">
+					<caption>Method Summary</caption>
+					<thead>
+						<tr>
+							<th scope="col">Method Attributes</th>
+							<th scope="col">Method Name and Description</th>
+						</tr>
+					</thead>
+					<tbody>
+					
+						<tr>
+							<td class="attributes">&lt;static&gt; &nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont">minplayer.players.vimeo.<b><a href="../symbols/minplayer.players.vimeo.html#.canPlay">canPlay</a></b>(file)
+								</div>
+								<div class="description"></div>
+							</td>
+						</tr>
+					
+						<tr>
+							<td class="attributes">&nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont"><b><a href="../symbols/minplayer.players.vimeo.html#clear">clear</a></b>()
+								</div>
+								<div class="description">Clears the media player.</div>
+							</td>
+						</tr>
+					
+						<tr>
+							<td class="attributes">&nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont"><b><a href="../symbols/minplayer.players.vimeo.html#construct">construct</a></b>()
+								</div>
+								<div class="description"></div>
+							</td>
+						</tr>
+					
+						<tr>
+							<td class="attributes">&nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont"><b><a href="../symbols/minplayer.players.vimeo.html#create">create</a></b>()
+								</div>
+								<div class="description"></div>
+							</td>
+						</tr>
+					
+						<tr>
+							<td class="attributes">&nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont"><b><a href="../symbols/minplayer.players.vimeo.html#getDuration">getDuration</a></b>(callback)
+								</div>
+								<div class="description"></div>
+							</td>
+						</tr>
+					
+						<tr>
+							<td class="attributes">&lt;static&gt; &nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont">minplayer.players.vimeo.<b><a href="../symbols/minplayer.players.vimeo.html#.getImage">getImage</a></b>(file, type, callback)
+								</div>
+								<div class="description">Returns a preview image for this media player.</div>
+							</td>
+						</tr>
+					
+						<tr>
+							<td class="attributes">&lt;static&gt; &nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont">minplayer.players.vimeo.<b><a href="../symbols/minplayer.players.vimeo.html#.getMediaId">getMediaId</a></b>(file)
+								</div>
+								<div class="description">Return the ID for a provided media file.</div>
+							</td>
+						</tr>
+					
+						<tr>
+							<td class="attributes">&lt;static&gt; &nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont">minplayer.players.vimeo.<b><a href="../symbols/minplayer.players.vimeo.html#.getPriority">getPriority</a></b>()
+								</div>
+								<div class="description"></div>
+							</td>
+						</tr>
+					
+						<tr>
+							<td class="attributes">&nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont"><b><a href="../symbols/minplayer.players.vimeo.html#getVolume">getVolume</a></b>(callback)
+								</div>
+								<div class="description"></div>
+							</td>
+						</tr>
+					
+						<tr>
+							<td class="attributes">&nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont"><b><a href="../symbols/minplayer.players.vimeo.html#hasController">hasController</a></b>()
+								</div>
+								<div class="description">Determines if the player should show the playloader.</div>
+							</td>
+						</tr>
+					
+						<tr>
+							<td class="attributes">&nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont"><b><a href="../symbols/minplayer.players.vimeo.html#hasPlayLoader">hasPlayLoader</a></b>(preview)
+								</div>
+								<div class="description">Determines if the player should show the playloader.</div>
+							</td>
+						</tr>
+					
+						<tr>
+							<td class="attributes">&nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont"><b><a href="../symbols/minplayer.players.vimeo.html#load">load</a></b>(file)
+								</div>
+								<div class="description"></div>
+							</td>
+						</tr>
+					
+						<tr>
+							<td class="attributes">&nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont"><b><a href="../symbols/minplayer.players.vimeo.html#onReady">onReady</a></b>(player_id)
+								</div>
+								<div class="description"></div>
+							</td>
+						</tr>
+					
+						<tr>
+							<td class="attributes">&nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont"><b><a href="../symbols/minplayer.players.vimeo.html#pause">pause</a></b>()
+								</div>
+								<div class="description"></div>
+							</td>
+						</tr>
+					
+						<tr>
+							<td class="attributes">&nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont"><b><a href="../symbols/minplayer.players.vimeo.html#play">play</a></b>()
+								</div>
+								<div class="description"></div>
+							</td>
+						</tr>
+					
+						<tr>
+							<td class="attributes">&nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont"><b><a href="../symbols/minplayer.players.vimeo.html#reset">reset</a></b>()
+								</div>
+								<div class="description"></div>
+							</td>
+						</tr>
+					
+						<tr>
+							<td class="attributes">&nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont"><b><a href="../symbols/minplayer.players.vimeo.html#seek">seek</a></b>(pos)
+								</div>
+								<div class="description"></div>
+							</td>
+						</tr>
+					
+						<tr>
+							<td class="attributes">&nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont"><b><a href="../symbols/minplayer.players.vimeo.html#setVolume">setVolume</a></b>(vol)
+								</div>
+								<div class="description"></div>
+							</td>
+						</tr>
+					
+						<tr>
+							<td class="attributes">&nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont"><b><a href="../symbols/minplayer.players.vimeo.html#stop">stop</a></b>()
+								</div>
+								<div class="description"></div>
+							</td>
+						</tr>
+					
+					</tbody>
+				</table>
+				
+				
+				
+				<dl class="inheritsList">
+				<dt>Methods borrowed from class <a href="../symbols/minplayer.players.base.html">minplayer.players.base</a>: </dt><dd><a href="../symbols/minplayer.players.base.html#addPlayer">addPlayer</a>, <a href="../symbols/minplayer.players.base.html#destroy">destroy</a>, <a href="../symbols/minplayer.players.base.html#getBytesLoaded">getBytesLoaded</a>, <a href="../symbols/minplayer.players.base.html#getBytesStart">getBytesStart</a>, <a href="../symbols/minplayer.players.base.html#getBytesTotal">getBytesTotal</a>, <a href="../symbols/minplayer.players.base.html#getCurrentTime">getCurrentTime</a>, <a href="../symbols/minplayer.players.base.html#getElements">getElements</a>, <a href="../symbols/minplayer.players.base.html#getPlayer">getPlayer</a>, <a href="../symbols/minplayer.players.base.html#getValue">getValue</a>, <a href="../symbols/minplayer.players.base.html#isReady">isReady</a>, <a href="../symbols/minplayer.players.base.html#onComplete">onComplete</a>, <a href="../symbols/minplayer.players.base.html#onError">onError</a>, <a href="../symbols/minplayer.players.base.html#onLoaded">onLoaded</a>, <a href="../symbols/minplayer.players.base.html#onPaused">onPaused</a>, <a href="../symbols/minplayer.players.base.html#onPlaying">onPlaying</a>, <a href="../symbols/minplayer.players.base.html#onWaiting">onWaiting</a>, <a href="../symbols/minplayer.players.base.html#playerFound">playerFound</a>, <a href="../symbols/minplayer.players.base.html#seekRelative">seekRelative</a>, <a href="../symbols/minplayer.players.base.html#setVolumeRelative">setVolumeRelative</a></dd><dt>Methods borrowed from class <a href="../symbols/minplayer.display.html">minplayer.display</a>: </dt><dd><a href="../symbols/minplayer.display.html#fullscreen">fullscreen</a>, <a href="../symbols/minplayer.display.html#fullScreenElement">fullScreenElement</a>, <a href="../symbols/minplayer.display.html#getDisplay">getDisplay</a>, <a href="../symbols/minplayer.display.html#getScaledRect">getScaledRect</a>, <a href="../symbols/minplayer.display.html#hide">hide</a>, <a href="../symbols/minplayer.display.html#isFullScreen">isFullScreen</a>, <a href="../symbols/minplayer.display.html#onFocus">onFocus</a>, <a href="../symbols/minplayer.display.html#toggleFullScreen">toggleFullScreen</a></dd><dt>Methods borrowed from class <a href="../symbols/minplayer.plugin.html">minplayer.plugin</a>: </dt><dd><a href="../symbols/minplayer.plugin.html#addPlugin">addPlugin</a>, <a href="../symbols/minplayer.plugin.html#bind">bind</a>, <a href="../symbols/minplayer.plugin.html#checkQueue">checkQueue</a>, <a href="../symbols/minplayer.plugin.html#get">get</a>, <a href="../symbols/minplayer.plugin.html#isValid">isValid</a>, <a href="../symbols/minplayer.plugin.html#poll">poll</a>, <a href="../symbols/minplayer.plugin.html#ready">ready</a>, <a href="../symbols/minplayer.plugin.html#trigger">trigger</a>, <a href="../symbols/minplayer.plugin.html#unbind">unbind</a></dd>
+				</dl>
+				
+			
+<!-- ============================== events summary ======================== -->
+			
+
+<!-- ============================== constructor details ==================== -->		
+			
+			<div class="details"><a name="constructor"> </a>
+				<div class="sectionTitle">
+					Class Detail
+				</div>
+				
+				<div class="fixedFont">
+						<b>minplayer.players.vimeo</b>(context, options, queue)
+				</div>
+				
+				<div class="description">
+					
+					
+				</div>
+				
+				
+				
+				
+					
+						<dl class="detailList">
+						<dt class="heading">Parameters:</dt>
+						
+							<dt>
+								<span class="light fixedFont">{object}</span>  <b>context</b>
+								
+							</dt>
+								<dd>The jQuery context.</dd>
+						
+							<dt>
+								<span class="light fixedFont">{object}</span>  <b>options</b>
+								
+							</dt>
+								<dd>This components options.</dd>
+						
+							<dt>
+								<span class="light fixedFont">{object}</span>  <b>queue</b>
+								
+							</dt>
+								<dd>The event queue to pass events around.</dd>
+						
+						</dl>
+					
+					
+					
+					
+					
+					
+					
+
+			</div>
+			
+
+<!-- ============================== field details ========================== -->		
+			
+				<div class="sectionTitle">
+					Field Detail
+				</div>
+				
+					<a name="constructor"> </a>
+					<div class="fixedFont">
+					
+					
+					<b>constructor</b>
+					
+					</div>
+					<div class="description">
+						Reset the constructor.
+						
+						
+					</div>
+					
+					
+
+						
+						
+						
+						
+
+					
+				
+			
+
+<!-- ============================== method details ========================= -->		
+			
+				<div class="sectionTitle">
+					Method Detail
+				</div>
+				
+					<a name=".canPlay"> </a>
+					<div class="fixedFont">&lt;static&gt; 
+					
+					<span class="light">{boolean}</span>
+					<span class="light">minplayer.players.vimeo.</span><b>canPlay</b>(file)
+					
+					</div>
+					<div class="description">
+						
+						
+						
+					</div>
+					
+					
+					
+						
+							<dl class="detailList">
+							<dt class="heading">Parameters:</dt>
+							
+								<dt>
+									<b>file</b>
+									
+								</dt>
+								<dd></dd>
+							
+							</dl>
+						
+						
+						
+						
+						
+							<dl class="detailList">
+							<dt class="heading">Returns:</dt>
+							
+								<dd><span class="light fixedFont">{boolean}</span> If this player can play this media type.</dd>
+							
+							</dl>
+						
+						
+						
+							<dl class="detailList">
+							<dt class="heading">See:</dt>
+							
+								<dd>minplayer.players.base#canPlay</dd>
+							
+							</dl>
+						
+
+					<hr />
+				
+					<a name="clear"> </a>
+					<div class="fixedFont">
+					
+					
+					<b>clear</b>()
+					
+					</div>
+					<div class="description">
+						Clears the media player.
+						
+						
+					</div>
+					
+					
+					
+						
+						
+						
+						
+						
+						
+						
+
+					<hr />
+				
+					<a name="construct"> </a>
+					<div class="fixedFont">
+					
+					
+					<b>construct</b>()
+					
+					</div>
+					<div class="description">
+						
+						
+						
+					</div>
+					
+					
+					
+						
+						
+						
+						
+						
+						
+						
+							<dl class="detailList">
+							<dt class="heading">See:</dt>
+							
+								<dd>minplayer.plugin.construct</dd>
+							
+							</dl>
+						
+
+					<hr />
+				
+					<a name="create"> </a>
+					<div class="fixedFont">
+					
+					<span class="light">{object}</span>
+					<b>create</b>()
+					
+					</div>
+					<div class="description">
+						
+						
+						
+					</div>
+					
+					
+					
+						
+						
+						
+						
+						
+							<dl class="detailList">
+							<dt class="heading">Returns:</dt>
+							
+								<dd><span class="light fixedFont">{object}</span> The media player entity.</dd>
+							
+							</dl>
+						
+						
+						
+							<dl class="detailList">
+							<dt class="heading">See:</dt>
+							
+								<dd><a href="../symbols/minplayer.players.base.html#create">minplayer.players.base#create</a></dd>
+							
+							</dl>
+						
+
+					<hr />
+				
+					<a name="getDuration"> </a>
+					<div class="fixedFont">
+					
+					
+					<b>getDuration</b>(callback)
+					
+					</div>
+					<div class="description">
+						
+						
+						
+					</div>
+					
+					
+					
+						
+							<dl class="detailList">
+							<dt class="heading">Parameters:</dt>
+							
+								<dt>
+									<b>callback</b>
+									
+								</dt>
+								<dd></dd>
+							
+							</dl>
+						
+						
+						
+						
+						
+						
+						
+							<dl class="detailList">
+							<dt class="heading">See:</dt>
+							
+								<dd>minplayer.players.base#getDuration.</dd>
+							
+							</dl>
+						
+
+					<hr />
+				
+					<a name=".getImage"> </a>
+					<div class="fixedFont">&lt;static&gt; 
+					
+					
+					<span class="light">minplayer.players.vimeo.</span><b>getImage</b>(file, type, callback)
+					
+					</div>
+					<div class="description">
+						Returns a preview image for this media player.
+						
+						
+					</div>
+					
+					
+					
+						
+							<dl class="detailList">
+							<dt class="heading">Parameters:</dt>
+							
+								<dt>
+									<span class="light fixedFont">{object}</span> <b>file</b>
+									
+								</dt>
+								<dd>A <a href="../symbols/minplayer.file.html">minplayer.file</a> object.</dd>
+							
+								<dt>
+									<span class="light fixedFont">{string}</span> <b>type</b>
+									
+								</dt>
+								<dd>The type of image.</dd>
+							
+								<dt>
+									<span class="light fixedFont">{function}</span> <b>callback</b>
+									
+								</dt>
+								<dd>Called when the image is retrieved.</dd>
+							
+							</dl>
+						
+						
+						
+						
+						
+						
+						
+
+					<hr />
+				
+					<a name=".getMediaId"> </a>
+					<div class="fixedFont">&lt;static&gt; 
+					
+					<span class="light">{string}</span>
+					<span class="light">minplayer.players.vimeo.</span><b>getMediaId</b>(file)
+					
+					</div>
+					<div class="description">
+						Return the ID for a provided media file.
+						
+						
+					</div>
+					
+					
+					
+						
+							<dl class="detailList">
+							<dt class="heading">Parameters:</dt>
+							
+								<dt>
+									<span class="light fixedFont">{object}</span> <b>file</b>
+									
+								</dt>
+								<dd>A <a href="../symbols/minplayer.file.html">minplayer.file</a> object.</dd>
+							
+							</dl>
+						
+						
+						
+						
+						
+							<dl class="detailList">
+							<dt class="heading">Returns:</dt>
+							
+								<dd><span class="light fixedFont">{string}</span> The ID for the provided media.</dd>
+							
+							</dl>
+						
+						
+						
+
+					<hr />
+				
+					<a name=".getPriority"> </a>
+					<div class="fixedFont">&lt;static&gt; 
+					
+					<span class="light">{number}</span>
+					<span class="light">minplayer.players.vimeo.</span><b>getPriority</b>()
+					
+					</div>
+					<div class="description">
+						
+						
+						
+					</div>
+					
+					
+					
+						
+						
+						
+						
+						
+							<dl class="detailList">
+							<dt class="heading">Returns:</dt>
+							
+								<dd><span class="light fixedFont">{number}</span> The priority of this media player.</dd>
+							
+							</dl>
+						
+						
+						
+							<dl class="detailList">
+							<dt class="heading">See:</dt>
+							
+								<dd>minplayer.players.base#getPriority</dd>
+							
+							</dl>
+						
+
+					<hr />
+				
+					<a name="getVolume"> </a>
+					<div class="fixedFont">
+					
+					
+					<b>getVolume</b>(callback)
+					
+					</div>
+					<div class="description">
+						
+						
+						
+					</div>
+					
+					
+					
+						
+							<dl class="detailList">
+							<dt class="heading">Parameters:</dt>
+							
+								<dt>
+									<b>callback</b>
+									
+								</dt>
+								<dd></dd>
+							
+							</dl>
+						
+						
+						
+						
+						
+						
+						
+							<dl class="detailList">
+							<dt class="heading">See:</dt>
+							
+								<dd><a href="../symbols/minplayer.players.base.html#getVolume">minplayer.players.base#getVolume</a></dd>
+							
+							</dl>
+						
+
+					<hr />
+				
+					<a name="hasController"> </a>
+					<div class="fixedFont">
+					
+					<span class="light">{bool}</span>
+					<b>hasController</b>()
+					
+					</div>
+					<div class="description">
+						Determines if the player should show the playloader.
+						
+						
+					</div>
+					
+					
+					
+						
+						
+						
+						
+						
+							<dl class="detailList">
+							<dt class="heading">Returns:</dt>
+							
+								<dd><span class="light fixedFont">{bool}</span> If this player implements its own playLoader.</dd>
+							
+							</dl>
+						
+						
+						
+
+					<hr />
+				
+					<a name="hasPlayLoader"> </a>
+					<div class="fixedFont">
+					
+					<span class="light">{bool}</span>
+					<b>hasPlayLoader</b>(preview)
+					
+					</div>
+					<div class="description">
+						Determines if the player should show the playloader.
+						
+						
+					</div>
+					
+					
+					
+						
+							<dl class="detailList">
+							<dt class="heading">Parameters:</dt>
+							
+								<dt>
+									<span class="light fixedFont">{string}</span> <b>preview</b>
+									
+								</dt>
+								<dd>The preview image.</dd>
+							
+							</dl>
+						
+						
+						
+						
+						
+							<dl class="detailList">
+							<dt class="heading">Returns:</dt>
+							
+								<dd><span class="light fixedFont">{bool}</span> If this player implements its own playLoader.</dd>
+							
+							</dl>
+						
+						
+						
+
+					<hr />
+				
+					<a name="load"> </a>
+					<div class="fixedFont">
+					
+					<span class="light">{boolean}</span>
+					<b>load</b>(file)
+					
+					</div>
+					<div class="description">
+						
+						
+						
+					</div>
+					
+					
+					
+						
+							<dl class="detailList">
+							<dt class="heading">Parameters:</dt>
+							
+								<dt>
+									<b>file</b>
+									
+								</dt>
+								<dd></dd>
+							
+							</dl>
+						
+						
+						
+						
+						
+							<dl class="detailList">
+							<dt class="heading">Returns:</dt>
+							
+								<dd><span class="light fixedFont">{boolean}</span> If this action was performed.</dd>
+							
+							</dl>
+						
+						
+						
+							<dl class="detailList">
+							<dt class="heading">See:</dt>
+							
+								<dd><a href="../symbols/minplayer.players.base.html#load">minplayer.players.base#load</a></dd>
+							
+							</dl>
+						
+
+					<hr />
+				
+					<a name="onReady"> </a>
+					<div class="fixedFont">
+					
+					
+					<b>onReady</b>(player_id)
+					
+					</div>
+					<div class="description">
+						
+						
+						
+					</div>
+					
+					
+					
+						
+							<dl class="detailList">
+							<dt class="heading">Parameters:</dt>
+							
+								<dt>
+									<b>player_id</b>
+									
+								</dt>
+								<dd></dd>
+							
+							</dl>
+						
+						
+						
+						
+						
+						
+						
+							<dl class="detailList">
+							<dt class="heading">See:</dt>
+							
+								<dd><a href="../symbols/minplayer.players.base.html#onReady">minplayer.players.base#onReady</a></dd>
+							
+							</dl>
+						
+
+					<hr />
+				
+					<a name="pause"> </a>
+					<div class="fixedFont">
+					
+					<span class="light">{boolean}</span>
+					<b>pause</b>()
+					
+					</div>
+					<div class="description">
+						
+						
+						
+					</div>
+					
+					
+					
+						
+						
+						
+						
+						
+							<dl class="detailList">
+							<dt class="heading">Returns:</dt>
+							
+								<dd><span class="light fixedFont">{boolean}</span> If this action was performed.</dd>
+							
+							</dl>
+						
+						
+						
+							<dl class="detailList">
+							<dt class="heading">See:</dt>
+							
+								<dd><a href="../symbols/minplayer.players.base.html#pause">minplayer.players.base#pause</a></dd>
+							
+							</dl>
+						
+
+					<hr />
+				
+					<a name="play"> </a>
+					<div class="fixedFont">
+					
+					<span class="light">{boolean}</span>
+					<b>play</b>()
+					
+					</div>
+					<div class="description">
+						
+						
+						
+					</div>
+					
+					
+					
+						
+						
+						
+						
+						
+							<dl class="detailList">
+							<dt class="heading">Returns:</dt>
+							
+								<dd><span class="light fixedFont">{boolean}</span> If this action was performed.</dd>
+							
+							</dl>
+						
+						
+						
+							<dl class="detailList">
+							<dt class="heading">See:</dt>
+							
+								<dd><a href="../symbols/minplayer.players.base.html#play">minplayer.players.base#play</a></dd>
+							
+							</dl>
+						
+
+					<hr />
+				
+					<a name="reset"> </a>
+					<div class="fixedFont">
+					
+					
+					<b>reset</b>()
+					
+					</div>
+					<div class="description">
+						
+						
+						
+					</div>
+					
+					
+					
+						
+						
+						
+						
+						
+						
+						
+							<dl class="detailList">
+							<dt class="heading">See:</dt>
+							
+								<dd><a href="../symbols/minplayer.players.base.html#reset">minplayer.players.base#reset</a></dd>
+							
+							</dl>
+						
+
+					<hr />
+				
+					<a name="seek"> </a>
+					<div class="fixedFont">
+					
+					<span class="light">{boolean}</span>
+					<b>seek</b>(pos)
+					
+					</div>
+					<div class="description">
+						
+						
+						
+					</div>
+					
+					
+					
+						
+							<dl class="detailList">
+							<dt class="heading">Parameters:</dt>
+							
+								<dt>
+									<b>pos</b>
+									
+								</dt>
+								<dd></dd>
+							
+							</dl>
+						
+						
+						
+						
+						
+							<dl class="detailList">
+							<dt class="heading">Returns:</dt>
+							
+								<dd><span class="light fixedFont">{boolean}</span> If this action was performed.</dd>
+							
+							</dl>
+						
+						
+						
+							<dl class="detailList">
+							<dt class="heading">See:</dt>
+							
+								<dd><a href="../symbols/minplayer.players.base.html#seek">minplayer.players.base#seek</a></dd>
+							
+							</dl>
+						
+
+					<hr />
+				
+					<a name="setVolume"> </a>
+					<div class="fixedFont">
+					
+					<span class="light">{boolean}</span>
+					<b>setVolume</b>(vol)
+					
+					</div>
+					<div class="description">
+						
+						
+						
+					</div>
+					
+					
+					
+						
+							<dl class="detailList">
+							<dt class="heading">Parameters:</dt>
+							
+								<dt>
+									<b>vol</b>
+									
+								</dt>
+								<dd></dd>
+							
+							</dl>
+						
+						
+						
+						
+						
+							<dl class="detailList">
+							<dt class="heading">Returns:</dt>
+							
+								<dd><span class="light fixedFont">{boolean}</span> If this action was performed.</dd>
+							
+							</dl>
+						
+						
+						
+							<dl class="detailList">
+							<dt class="heading">See:</dt>
+							
+								<dd><a href="../symbols/minplayer.players.base.html#setVolume">minplayer.players.base#setVolume</a></dd>
+							
+							</dl>
+						
+
+					<hr />
+				
+					<a name="stop"> </a>
+					<div class="fixedFont">
+					
+					<span class="light">{boolean}</span>
+					<b>stop</b>()
+					
+					</div>
+					<div class="description">
+						
+						
+						
+					</div>
+					
+					
+					
+						
+						
+						
+						
+						
+							<dl class="detailList">
+							<dt class="heading">Returns:</dt>
+							
+								<dd><span class="light fixedFont">{boolean}</span> If this action was performed.</dd>
+							
+							</dl>
+						
+						
+						
+							<dl class="detailList">
+							<dt class="heading">See:</dt>
+							
+								<dd><a href="../symbols/minplayer.players.base.html#stop">minplayer.players.base#stop</a></dd>
+							
+							</dl>
+						
+
+					
+				
+			
+			
+<!-- ============================== event details ========================= -->		
+			
+			
+			<hr />
+		</div>
+
+		
+<!-- ============================== footer ================================= -->
+		<div class="fineprint" style="clear:both">
+			
+			Documentation generated by <a href="http://code.google.com/p/jsdoc-toolkit/" target="_blank">JsDoc Toolkit</a> 2.4.0 on Sun Aug 19 2012 12:11:28 GMT-0500 (CDT)
+		</div>
+	</body>
+</html>
diff --git a/public/admin/js/osmplayer/doc/symbols/minplayer.players.youtube.html b/public/admin/js/osmplayer/doc/symbols/minplayer.players.youtube.html
new file mode 100644
index 00000000000..b8d644f0c2b
--- /dev/null
+++ b/public/admin/js/osmplayer/doc/symbols/minplayer.players.youtube.html
@@ -0,0 +1,1732 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+        "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+	<head>
+		<meta http-equiv="content-type" content="text/html; charset=utf-8" />
+		<meta name="generator" content="JsDoc Toolkit" />
+		
+		<title>JsDoc Reference - minplayer.players.youtube</title>
+
+		<style type="text/css">
+			/* default.css */
+body
+{
+	font: 12px "Lucida Grande", Tahoma, Arial, Helvetica, sans-serif;
+	width: 800px;
+}
+
+.header
+{
+	clear: both;
+	background-color: #ccc;
+	padding: 8px;
+}
+
+h1
+{
+	font-size: 150%;
+	font-weight: bold;
+	padding: 0;
+	margin: 1em 0 0 .3em;
+}
+
+hr
+{
+	border: none 0;
+	border-top: 1px solid #7F8FB1;
+	height: 1px;
+}
+
+pre.code
+{
+	display: block;
+	padding: 8px;
+	border: 1px dashed #ccc;
+}
+
+#index
+{
+	margin-top: 24px;
+	float: left;
+	width: 160px;
+	position: absolute;
+	left: 8px;
+	background-color: #F3F3F3;
+	padding: 8px;
+}
+
+#content
+{
+	margin-left: 190px;
+	width: 600px;
+}
+
+.classList
+{
+	list-style-type: none;
+	padding: 0;
+	margin: 0 0 0 8px;
+	font-family: arial, sans-serif;
+	font-size: 1em;
+	overflow: auto;
+}
+
+.classList li
+{
+	padding: 0;
+	margin: 0 0 8px 0;
+}
+
+.summaryTable { width: 100%; }
+
+h1.classTitle
+{
+	font-size:170%;
+	line-height:130%;
+}
+
+h2 { font-size: 110%; }
+caption, div.sectionTitle
+{
+	background-color: #7F8FB1;
+	color: #fff;
+	font-size:130%;
+	text-align: left;
+	padding: 2px 6px 2px 6px;
+	border: 1px #7F8FB1 solid;
+}
+
+div.sectionTitle { margin-bottom: 8px; }
+.summaryTable thead { display: none; }
+
+.summaryTable td
+{
+	vertical-align: top;
+	padding: 4px;
+	border-bottom: 1px #7F8FB1 solid;
+	border-right: 1px #7F8FB1 solid;
+}
+
+/*col#summaryAttributes {}*/
+.summaryTable td.attributes
+{
+	border-left: 1px #7F8FB1 solid;
+	width: 140px;
+	text-align: right;
+}
+
+td.attributes, .fixedFont
+{
+	line-height: 15px;
+	color: #002EBE;
+	font-family: "Courier New",Courier,monospace;
+	font-size: 13px;
+}
+
+.summaryTable td.nameDescription
+{
+	text-align: left;
+	font-size: 13px;
+	line-height: 15px;
+}
+
+.summaryTable td.nameDescription, .description
+{
+	line-height: 15px;
+	padding: 4px;
+	padding-left: 4px;
+}
+
+.summaryTable { margin-bottom: 8px; }
+
+ul.inheritsList
+{
+	list-style: square;
+	margin-left: 20px;
+	padding-left: 0;
+}
+
+.detailList {
+	margin-left: 20px; 
+	line-height: 15px;
+}
+.detailList dt { margin-left: 20px; }
+
+.detailList .heading
+{
+	font-weight: bold;
+	padding-bottom: 6px;
+	margin-left: 0;
+}
+
+.light, td.attributes, .light a:link, .light a:visited
+{
+	color: #777;
+	font-style: italic;
+}
+
+.fineprint
+{
+	text-align: right;
+	font-size: 10px;
+}
+		</style>
+	</head>
+
+	<body>
+<!-- ============================== header ================================= -->	
+		<!-- begin static/header.html -->
+		<div id="header">
+</div>
+		<!-- end static/header.html -->
+
+<!-- ============================== classes index ============================ -->
+		<div id="index">
+			<!-- begin publish.classesIndex -->
+			<div align="center"><a href="../index.html">Class Index</a>
+| <a href="../files.html">File Index</a></div>
+<hr />
+<h2>Classes</h2>
+<ul class="classList">
+	
+	<li><i><a href="../symbols/_global_.html">_global_</a></i></li>
+	
+	<li><a href="../symbols/jQuery.fn.minplayer.html">jQuery.fn.minplayer</a></li>
+	
+	<li><a href="../symbols/jQuery.fn.osmplayer.html">jQuery.fn.osmplayer</a></li>
+	
+	<li><a href="../symbols/minplayer.async.html">minplayer.async</a></li>
+	
+	<li><a href="../symbols/minplayer.compatibility.html">minplayer.compatibility</a></li>
+	
+	<li><a href="../symbols/minplayer.display.html">minplayer.display</a></li>
+	
+	<li><a href="../symbols/minplayer.file.html">minplayer.file</a></li>
+	
+	<li><a href="../symbols/minplayer.flags.html">minplayer.flags</a></li>
+	
+	<li><a href="../symbols/minplayer.image.html">minplayer.image</a></li>
+	
+	<li><a href="../symbols/minplayer.players.base.html">minplayer.players.base</a></li>
+	
+	<li><a href="../symbols/minplayer.players.flash.html">minplayer.players.flash</a></li>
+	
+	<li><a href="../symbols/minplayer.players.html5.html">minplayer.players.html5</a></li>
+	
+	<li><a href="../symbols/minplayer.players.minplayer.html">minplayer.players.minplayer</a></li>
+	
+	<li><a href="../symbols/minplayer.players.vimeo.html">minplayer.players.vimeo</a></li>
+	
+	<li><a href="../symbols/minplayer.players.youtube.html">minplayer.players.youtube</a></li>
+	
+	<li><a href="../symbols/minplayer.plugin.html">minplayer.plugin</a></li>
+	
+	<li><a href="../symbols/osmplayer.html">osmplayer</a></li>
+	
+	<li><a href="../symbols/osmplayer.pager.html">osmplayer.pager</a></li>
+	
+	<li><a href="../symbols/osmplayer.playlist.html">osmplayer.playlist</a></li>
+	
+	<li><a href="../symbols/osmplayer.teaser.html">osmplayer.teaser</a></li>
+	
+</ul>
+<hr />
+			<!-- end publish.classesIndex -->
+		</div>
+		
+		<div id="content">
+<!-- ============================== class title ============================ -->
+			<h1 class="classTitle">
+				
+				Class minplayer.players.youtube
+			</h1>
+
+<!-- ============================== class summary ========================== -->			
+			<p class="description">
+				
+				<br />Extends
+					<a href="../symbols/minplayer.players.base.html">minplayer.players.base</a>.<br />
+				
+			
+				The YouTube media player.
+				
+				
+					<br /><i>Defined in: </i> <a href="../symbols/src/minplayer_src_minplayer.players.youtube.js.html">minplayer.players.youtube.js</a>.
+				
+			</p>
+
+<!-- ============================== constructor summary ==================== -->			
+			
+			<table class="summaryTable" cellspacing="0" summary="A summary of the constructor documented in the class minplayer.players.youtube.">
+				<caption>Class Summary</caption>
+				<thead>
+					<tr>
+						<th scope="col">Constructor Attributes</th>
+						<th scope="col">Constructor Name and Description</th>
+					</tr>
+				</thead>
+				<tbody>
+					<tr>
+						<td class="attributes">&nbsp;</td>
+						<td class="nameDescription" >
+							<div class="fixedFont">
+								<b><a href="../symbols/minplayer.players.youtube.html#constructor">minplayer.players.youtube</a></b>(context, options, queue)
+							</div>
+							<div class="description"></div>
+						</td>
+					</tr>
+				</tbody>
+			</table>
+			
+
+<!-- ============================== properties summary ===================== -->
+			
+				
+				
+				<table class="summaryTable" cellspacing="0" summary="A summary of the fields documented in the class minplayer.players.youtube.">
+					<caption>Field Summary</caption>
+					<thead>
+						<tr>
+							<th scope="col">Field Attributes</th>
+							<th scope="col">Field Name and Description</th>
+						</tr>
+					</thead>
+					<tbody>
+					
+						<tr>
+							<td class="attributes">&nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont">
+								<b><a href="../symbols/minplayer.players.youtube.html#constructor">constructor</a></b>
+								</div>
+								<div class="description">Reset the constructor.</div>
+							</td>
+						</tr>
+					
+						<tr>
+							<td class="attributes">&nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont">
+								<b><a href="../symbols/minplayer.players.youtube.html#quality">quality</a></b>
+								</div>
+								<div class="description">The quality of the YouTube stream.</div>
+							</td>
+						</tr>
+					
+					</tbody>
+				</table>
+				
+				
+				
+				<dl class="inheritsList">
+				<dt>Fields borrowed from class <a href="../symbols/minplayer.players.base.html">minplayer.players.base</a>: </dt><dd><a href="../symbols/minplayer.players.base.html#mediaFile">mediaFile</a></dd><dt>Fields borrowed from class <a href="../symbols/minplayer.display.html">minplayer.display</a>: </dt><dd><a href="../symbols/minplayer.display.html#onResize">onResize</a></dd><dt>Fields borrowed from class <a href="../symbols/minplayer.plugin.html">minplayer.plugin</a>: </dt><dd><a href="../symbols/minplayer.plugin.html#active">active</a>, <a href="../symbols/minplayer.plugin.html#context">context</a>, <a href="../symbols/minplayer.plugin.html#lock">lock</a>, <a href="../symbols/minplayer.plugin.html#name">name</a>, <a href="../symbols/minplayer.plugin.html#options">options</a>, <a href="../symbols/minplayer.plugin.html#pluginReady">pluginReady</a>, <a href="../symbols/minplayer.plugin.html#queue">queue</a>, <a href="../symbols/minplayer.plugin.html#triggered">triggered</a></dd>
+				</dl>
+				
+			
+
+<!-- ============================== methods summary ======================== -->
+			
+				
+				
+				<table class="summaryTable" cellspacing="0" summary="A summary of the methods documented in the class minplayer.players.youtube.">
+					<caption>Method Summary</caption>
+					<thead>
+						<tr>
+							<th scope="col">Method Attributes</th>
+							<th scope="col">Method Name and Description</th>
+						</tr>
+					</thead>
+					<tbody>
+					
+						<tr>
+							<td class="attributes">&lt;static&gt; &nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont">minplayer.players.youtube.<b><a href="../symbols/minplayer.players.youtube.html#.canPlay">canPlay</a></b>(file)
+								</div>
+								<div class="description"></div>
+							</td>
+						</tr>
+					
+						<tr>
+							<td class="attributes">&nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont"><b><a href="../symbols/minplayer.players.youtube.html#construct">construct</a></b>()
+								</div>
+								<div class="description"></div>
+							</td>
+						</tr>
+					
+						<tr>
+							<td class="attributes">&nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont"><b><a href="../symbols/minplayer.players.youtube.html#create">create</a></b>()
+								</div>
+								<div class="description"></div>
+							</td>
+						</tr>
+					
+						<tr>
+							<td class="attributes">&nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont"><b><a href="../symbols/minplayer.players.youtube.html#getBytesLoaded">getBytesLoaded</a></b>(callback)
+								</div>
+								<div class="description"></div>
+							</td>
+						</tr>
+					
+						<tr>
+							<td class="attributes">&nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont"><b><a href="../symbols/minplayer.players.youtube.html#getBytesStart">getBytesStart</a></b>(callback)
+								</div>
+								<div class="description"></div>
+							</td>
+						</tr>
+					
+						<tr>
+							<td class="attributes">&nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont"><b><a href="../symbols/minplayer.players.youtube.html#getBytesTotal">getBytesTotal</a></b>(callback)
+								</div>
+								<div class="description"></div>
+							</td>
+						</tr>
+					
+						<tr>
+							<td class="attributes">&nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont"><b><a href="../symbols/minplayer.players.youtube.html#getCurrentTime">getCurrentTime</a></b>(callback)
+								</div>
+								<div class="description"></div>
+							</td>
+						</tr>
+					
+						<tr>
+							<td class="attributes">&nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont"><b><a href="../symbols/minplayer.players.youtube.html#getDuration">getDuration</a></b>(callback)
+								</div>
+								<div class="description"></div>
+							</td>
+						</tr>
+					
+						<tr>
+							<td class="attributes">&lt;static&gt; &nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont">minplayer.players.youtube.<b><a href="../symbols/minplayer.players.youtube.html#.getImage">getImage</a></b>(file, type, callback)
+								</div>
+								<div class="description">Returns a preview image for this media player.</div>
+							</td>
+						</tr>
+					
+						<tr>
+							<td class="attributes">&lt;static&gt; &nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont">minplayer.players.youtube.<b><a href="../symbols/minplayer.players.youtube.html#.getMediaId">getMediaId</a></b>(file)
+								</div>
+								<div class="description">Return the ID for a provided media file.</div>
+							</td>
+						</tr>
+					
+						<tr>
+							<td class="attributes">&lt;static&gt; &nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont">minplayer.players.youtube.<b><a href="../symbols/minplayer.players.youtube.html#.getPriority">getPriority</a></b>()
+								</div>
+								<div class="description"></div>
+							</td>
+						</tr>
+					
+						<tr>
+							<td class="attributes">&nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont"><b><a href="../symbols/minplayer.players.youtube.html#getVolume">getVolume</a></b>(callback)
+								</div>
+								<div class="description"></div>
+							</td>
+						</tr>
+					
+						<tr>
+							<td class="attributes">&nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont"><b><a href="../symbols/minplayer.players.youtube.html#hasController">hasController</a></b>()
+								</div>
+								<div class="description">Determines if the player should show the controller.</div>
+							</td>
+						</tr>
+					
+						<tr>
+							<td class="attributes">&nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont"><b><a href="../symbols/minplayer.players.youtube.html#hasPlayLoader">hasPlayLoader</a></b>(preview)
+								</div>
+								<div class="description">Determines if the player should show the playloader.</div>
+							</td>
+						</tr>
+					
+						<tr>
+							<td class="attributes">&nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont"><b><a href="../symbols/minplayer.players.youtube.html#load">load</a></b>(file)
+								</div>
+								<div class="description"></div>
+							</td>
+						</tr>
+					
+						<tr>
+							<td class="attributes">&nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont"><b><a href="../symbols/minplayer.players.youtube.html#onPlayerStateChange">onPlayerStateChange</a></b>(event)
+								</div>
+								<div class="description">Called when the player state changes.</div>
+							</td>
+						</tr>
+					
+						<tr>
+							<td class="attributes">&nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont"><b><a href="../symbols/minplayer.players.youtube.html#onQualityChange">onQualityChange</a></b>(newQuality)
+								</div>
+								<div class="description">Called when the player quality changes.</div>
+							</td>
+						</tr>
+					
+						<tr>
+							<td class="attributes">&nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont"><b><a href="../symbols/minplayer.players.youtube.html#onReady">onReady</a></b>(event)
+								</div>
+								<div class="description">Called when an error occurs.</div>
+							</td>
+						</tr>
+					
+						<tr>
+							<td class="attributes">&nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont"><b><a href="../symbols/minplayer.players.youtube.html#pause">pause</a></b>()
+								</div>
+								<div class="description"></div>
+							</td>
+						</tr>
+					
+						<tr>
+							<td class="attributes">&nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont"><b><a href="../symbols/minplayer.players.youtube.html#play">play</a></b>()
+								</div>
+								<div class="description"></div>
+							</td>
+						</tr>
+					
+						<tr>
+							<td class="attributes">&nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont"><b><a href="../symbols/minplayer.players.youtube.html#playerFound">playerFound</a></b>()
+								</div>
+								<div class="description">Checks to see if this player can be found.</div>
+							</td>
+						</tr>
+					
+						<tr>
+							<td class="attributes">&nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont"><b><a href="../symbols/minplayer.players.youtube.html#seek">seek</a></b>(pos)
+								</div>
+								<div class="description"></div>
+							</td>
+						</tr>
+					
+						<tr>
+							<td class="attributes">&nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont"><b><a href="../symbols/minplayer.players.youtube.html#setPlayerState">setPlayerState</a></b>(playerState)
+								</div>
+								<div class="description">Translates the player state for the YouTube API player.</div>
+							</td>
+						</tr>
+					
+						<tr>
+							<td class="attributes">&nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont"><b><a href="../symbols/minplayer.players.youtube.html#setVolume">setVolume</a></b>(vol)
+								</div>
+								<div class="description"></div>
+							</td>
+						</tr>
+					
+						<tr>
+							<td class="attributes">&nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont"><b><a href="../symbols/minplayer.players.youtube.html#stop">stop</a></b>()
+								</div>
+								<div class="description"></div>
+							</td>
+						</tr>
+					
+					</tbody>
+				</table>
+				
+				
+				
+				<dl class="inheritsList">
+				<dt>Methods borrowed from class <a href="../symbols/minplayer.players.base.html">minplayer.players.base</a>: </dt><dd><a href="../symbols/minplayer.players.base.html#addPlayer">addPlayer</a>, <a href="../symbols/minplayer.players.base.html#clear">clear</a>, <a href="../symbols/minplayer.players.base.html#destroy">destroy</a>, <a href="../symbols/minplayer.players.base.html#getElements">getElements</a>, <a href="../symbols/minplayer.players.base.html#getPlayer">getPlayer</a>, <a href="../symbols/minplayer.players.base.html#getValue">getValue</a>, <a href="../symbols/minplayer.players.base.html#isReady">isReady</a>, <a href="../symbols/minplayer.players.base.html#onComplete">onComplete</a>, <a href="../symbols/minplayer.players.base.html#onError">onError</a>, <a href="../symbols/minplayer.players.base.html#onLoaded">onLoaded</a>, <a href="../symbols/minplayer.players.base.html#onPaused">onPaused</a>, <a href="../symbols/minplayer.players.base.html#onPlaying">onPlaying</a>, <a href="../symbols/minplayer.players.base.html#onWaiting">onWaiting</a>, <a href="../symbols/minplayer.players.base.html#reset">reset</a>, <a href="../symbols/minplayer.players.base.html#seekRelative">seekRelative</a>, <a href="../symbols/minplayer.players.base.html#setVolumeRelative">setVolumeRelative</a></dd><dt>Methods borrowed from class <a href="../symbols/minplayer.display.html">minplayer.display</a>: </dt><dd><a href="../symbols/minplayer.display.html#fullscreen">fullscreen</a>, <a href="../symbols/minplayer.display.html#fullScreenElement">fullScreenElement</a>, <a href="../symbols/minplayer.display.html#getDisplay">getDisplay</a>, <a href="../symbols/minplayer.display.html#getScaledRect">getScaledRect</a>, <a href="../symbols/minplayer.display.html#hide">hide</a>, <a href="../symbols/minplayer.display.html#isFullScreen">isFullScreen</a>, <a href="../symbols/minplayer.display.html#onFocus">onFocus</a>, <a href="../symbols/minplayer.display.html#toggleFullScreen">toggleFullScreen</a></dd><dt>Methods borrowed from class <a href="../symbols/minplayer.plugin.html">minplayer.plugin</a>: </dt><dd><a href="../symbols/minplayer.plugin.html#addPlugin">addPlugin</a>, <a href="../symbols/minplayer.plugin.html#bind">bind</a>, <a href="../symbols/minplayer.plugin.html#checkQueue">checkQueue</a>, <a href="../symbols/minplayer.plugin.html#get">get</a>, <a href="../symbols/minplayer.plugin.html#isValid">isValid</a>, <a href="../symbols/minplayer.plugin.html#poll">poll</a>, <a href="../symbols/minplayer.plugin.html#ready">ready</a>, <a href="../symbols/minplayer.plugin.html#trigger">trigger</a>, <a href="../symbols/minplayer.plugin.html#unbind">unbind</a></dd>
+				</dl>
+				
+			
+<!-- ============================== events summary ======================== -->
+			
+
+<!-- ============================== constructor details ==================== -->		
+			
+			<div class="details"><a name="constructor"> </a>
+				<div class="sectionTitle">
+					Class Detail
+				</div>
+				
+				<div class="fixedFont">
+						<b>minplayer.players.youtube</b>(context, options, queue)
+				</div>
+				
+				<div class="description">
+					
+					
+				</div>
+				
+				
+				
+				
+					
+						<dl class="detailList">
+						<dt class="heading">Parameters:</dt>
+						
+							<dt>
+								<span class="light fixedFont">{object}</span>  <b>context</b>
+								
+							</dt>
+								<dd>The jQuery context.</dd>
+						
+							<dt>
+								<span class="light fixedFont">{object}</span>  <b>options</b>
+								
+							</dt>
+								<dd>This components options.</dd>
+						
+							<dt>
+								<span class="light fixedFont">{object}</span>  <b>queue</b>
+								
+							</dt>
+								<dd>The event queue to pass events around.</dd>
+						
+						</dl>
+					
+					
+					
+					
+					
+					
+					
+
+			</div>
+			
+
+<!-- ============================== field details ========================== -->		
+			
+				<div class="sectionTitle">
+					Field Detail
+				</div>
+				
+					<a name="constructor"> </a>
+					<div class="fixedFont">
+					
+					
+					<b>constructor</b>
+					
+					</div>
+					<div class="description">
+						Reset the constructor.
+						
+						
+					</div>
+					
+					
+
+						
+						
+						
+						
+
+					<hr />
+				
+					<a name="quality"> </a>
+					<div class="fixedFont">
+					
+					
+					<b>quality</b>
+					
+					</div>
+					<div class="description">
+						The quality of the YouTube stream.
+						
+						
+					</div>
+					
+					
+
+						
+						
+						
+						
+
+					
+				
+			
+
+<!-- ============================== method details ========================= -->		
+			
+				<div class="sectionTitle">
+					Method Detail
+				</div>
+				
+					<a name=".canPlay"> </a>
+					<div class="fixedFont">&lt;static&gt; 
+					
+					<span class="light">{boolean}</span>
+					<span class="light">minplayer.players.youtube.</span><b>canPlay</b>(file)
+					
+					</div>
+					<div class="description">
+						
+						
+						
+					</div>
+					
+					
+					
+						
+							<dl class="detailList">
+							<dt class="heading">Parameters:</dt>
+							
+								<dt>
+									<b>file</b>
+									
+								</dt>
+								<dd></dd>
+							
+							</dl>
+						
+						
+						
+						
+						
+							<dl class="detailList">
+							<dt class="heading">Returns:</dt>
+							
+								<dd><span class="light fixedFont">{boolean}</span> If this player can play this media type.</dd>
+							
+							</dl>
+						
+						
+						
+							<dl class="detailList">
+							<dt class="heading">See:</dt>
+							
+								<dd>minplayer.players.base#canPlay</dd>
+							
+							</dl>
+						
+
+					<hr />
+				
+					<a name="construct"> </a>
+					<div class="fixedFont">
+					
+					
+					<b>construct</b>()
+					
+					</div>
+					<div class="description">
+						
+						
+						
+					</div>
+					
+					
+					
+						
+						
+						
+						
+						
+						
+						
+							<dl class="detailList">
+							<dt class="heading">See:</dt>
+							
+								<dd>minplayer.plugin.construct</dd>
+							
+							</dl>
+						
+
+					<hr />
+				
+					<a name="create"> </a>
+					<div class="fixedFont">
+					
+					<span class="light">{object}</span>
+					<b>create</b>()
+					
+					</div>
+					<div class="description">
+						
+						
+						
+					</div>
+					
+					
+					
+						
+						
+						
+						
+						
+							<dl class="detailList">
+							<dt class="heading">Returns:</dt>
+							
+								<dd><span class="light fixedFont">{object}</span> The media player entity.</dd>
+							
+							</dl>
+						
+						
+						
+							<dl class="detailList">
+							<dt class="heading">See:</dt>
+							
+								<dd><a href="../symbols/minplayer.players.base.html#create">minplayer.players.base#create</a></dd>
+							
+							</dl>
+						
+
+					<hr />
+				
+					<a name="getBytesLoaded"> </a>
+					<div class="fixedFont">
+					
+					
+					<b>getBytesLoaded</b>(callback)
+					
+					</div>
+					<div class="description">
+						
+						
+						
+					</div>
+					
+					
+					
+						
+							<dl class="detailList">
+							<dt class="heading">Parameters:</dt>
+							
+								<dt>
+									<b>callback</b>
+									
+								</dt>
+								<dd></dd>
+							
+							</dl>
+						
+						
+						
+						
+						
+						
+						
+							<dl class="detailList">
+							<dt class="heading">See:</dt>
+							
+								<dd>minplayer.players.base#getBytesLoaded.</dd>
+							
+							</dl>
+						
+
+					<hr />
+				
+					<a name="getBytesStart"> </a>
+					<div class="fixedFont">
+					
+					
+					<b>getBytesStart</b>(callback)
+					
+					</div>
+					<div class="description">
+						
+						
+						
+					</div>
+					
+					
+					
+						
+							<dl class="detailList">
+							<dt class="heading">Parameters:</dt>
+							
+								<dt>
+									<b>callback</b>
+									
+								</dt>
+								<dd></dd>
+							
+							</dl>
+						
+						
+						
+						
+						
+						
+						
+							<dl class="detailList">
+							<dt class="heading">See:</dt>
+							
+								<dd>minplayer.players.base#getBytesStart.</dd>
+							
+							</dl>
+						
+
+					<hr />
+				
+					<a name="getBytesTotal"> </a>
+					<div class="fixedFont">
+					
+					
+					<b>getBytesTotal</b>(callback)
+					
+					</div>
+					<div class="description">
+						
+						
+						
+					</div>
+					
+					
+					
+						
+							<dl class="detailList">
+							<dt class="heading">Parameters:</dt>
+							
+								<dt>
+									<b>callback</b>
+									
+								</dt>
+								<dd></dd>
+							
+							</dl>
+						
+						
+						
+						
+						
+						
+						
+							<dl class="detailList">
+							<dt class="heading">See:</dt>
+							
+								<dd>minplayer.players.base#getBytesTotal.</dd>
+							
+							</dl>
+						
+
+					<hr />
+				
+					<a name="getCurrentTime"> </a>
+					<div class="fixedFont">
+					
+					
+					<b>getCurrentTime</b>(callback)
+					
+					</div>
+					<div class="description">
+						
+						
+						
+					</div>
+					
+					
+					
+						
+							<dl class="detailList">
+							<dt class="heading">Parameters:</dt>
+							
+								<dt>
+									<b>callback</b>
+									
+								</dt>
+								<dd></dd>
+							
+							</dl>
+						
+						
+						
+						
+						
+						
+						
+							<dl class="detailList">
+							<dt class="heading">See:</dt>
+							
+								<dd><a href="../symbols/minplayer.players.base.html#getCurrentTime">minplayer.players.base#getCurrentTime</a></dd>
+							
+							</dl>
+						
+
+					<hr />
+				
+					<a name="getDuration"> </a>
+					<div class="fixedFont">
+					
+					
+					<b>getDuration</b>(callback)
+					
+					</div>
+					<div class="description">
+						
+						
+						
+					</div>
+					
+					
+					
+						
+							<dl class="detailList">
+							<dt class="heading">Parameters:</dt>
+							
+								<dt>
+									<b>callback</b>
+									
+								</dt>
+								<dd></dd>
+							
+							</dl>
+						
+						
+						
+						
+						
+						
+						
+							<dl class="detailList">
+							<dt class="heading">See:</dt>
+							
+								<dd>minplayer.players.base#getDuration.</dd>
+							
+							</dl>
+						
+
+					<hr />
+				
+					<a name=".getImage"> </a>
+					<div class="fixedFont">&lt;static&gt; 
+					
+					
+					<span class="light">minplayer.players.youtube.</span><b>getImage</b>(file, type, callback)
+					
+					</div>
+					<div class="description">
+						Returns a preview image for this media player.
+						
+						
+					</div>
+					
+					
+					
+						
+							<dl class="detailList">
+							<dt class="heading">Parameters:</dt>
+							
+								<dt>
+									<span class="light fixedFont">{object}</span> <b>file</b>
+									
+								</dt>
+								<dd>A <a href="../symbols/minplayer.file.html">minplayer.file</a> object.</dd>
+							
+								<dt>
+									<span class="light fixedFont">{string}</span> <b>type</b>
+									
+								</dt>
+								<dd>The type of image.</dd>
+							
+								<dt>
+									<span class="light fixedFont">{function}</span> <b>callback</b>
+									
+								</dt>
+								<dd>Called when the image is retrieved.</dd>
+							
+							</dl>
+						
+						
+						
+						
+						
+						
+						
+
+					<hr />
+				
+					<a name=".getMediaId"> </a>
+					<div class="fixedFont">&lt;static&gt; 
+					
+					<span class="light">{string}</span>
+					<span class="light">minplayer.players.youtube.</span><b>getMediaId</b>(file)
+					
+					</div>
+					<div class="description">
+						Return the ID for a provided media file.
+						
+						
+					</div>
+					
+					
+					
+						
+							<dl class="detailList">
+							<dt class="heading">Parameters:</dt>
+							
+								<dt>
+									<span class="light fixedFont">{object}</span> <b>file</b>
+									
+								</dt>
+								<dd>A <a href="../symbols/minplayer.file.html">minplayer.file</a> object.</dd>
+							
+							</dl>
+						
+						
+						
+						
+						
+							<dl class="detailList">
+							<dt class="heading">Returns:</dt>
+							
+								<dd><span class="light fixedFont">{string}</span> The ID for the provided media.</dd>
+							
+							</dl>
+						
+						
+						
+
+					<hr />
+				
+					<a name=".getPriority"> </a>
+					<div class="fixedFont">&lt;static&gt; 
+					
+					<span class="light">{number}</span>
+					<span class="light">minplayer.players.youtube.</span><b>getPriority</b>()
+					
+					</div>
+					<div class="description">
+						
+						
+						
+					</div>
+					
+					
+					
+						
+						
+						
+						
+						
+							<dl class="detailList">
+							<dt class="heading">Returns:</dt>
+							
+								<dd><span class="light fixedFont">{number}</span> The priority of this media player.</dd>
+							
+							</dl>
+						
+						
+						
+							<dl class="detailList">
+							<dt class="heading">See:</dt>
+							
+								<dd>minplayer.players.base#getPriority</dd>
+							
+							</dl>
+						
+
+					<hr />
+				
+					<a name="getVolume"> </a>
+					<div class="fixedFont">
+					
+					
+					<b>getVolume</b>(callback)
+					
+					</div>
+					<div class="description">
+						
+						
+						
+					</div>
+					
+					
+					
+						
+							<dl class="detailList">
+							<dt class="heading">Parameters:</dt>
+							
+								<dt>
+									<b>callback</b>
+									
+								</dt>
+								<dd></dd>
+							
+							</dl>
+						
+						
+						
+						
+						
+						
+						
+							<dl class="detailList">
+							<dt class="heading">See:</dt>
+							
+								<dd><a href="../symbols/minplayer.players.base.html#getVolume">minplayer.players.base#getVolume</a></dd>
+							
+							</dl>
+						
+
+					<hr />
+				
+					<a name="hasController"> </a>
+					<div class="fixedFont">
+					
+					<span class="light">{bool}</span>
+					<b>hasController</b>()
+					
+					</div>
+					<div class="description">
+						Determines if the player should show the controller.
+						
+						
+					</div>
+					
+					
+					
+						
+						
+						
+						
+						
+							<dl class="detailList">
+							<dt class="heading">Returns:</dt>
+							
+								<dd><span class="light fixedFont">{bool}</span> If this player implements its own playLoader.</dd>
+							
+							</dl>
+						
+						
+						
+
+					<hr />
+				
+					<a name="hasPlayLoader"> </a>
+					<div class="fixedFont">
+					
+					<span class="light">{bool}</span>
+					<b>hasPlayLoader</b>(preview)
+					
+					</div>
+					<div class="description">
+						Determines if the player should show the playloader.
+						
+						
+					</div>
+					
+					
+					
+						
+							<dl class="detailList">
+							<dt class="heading">Parameters:</dt>
+							
+								<dt>
+									<span class="light fixedFont">{string}</span> <b>preview</b>
+									
+								</dt>
+								<dd>The preview image.</dd>
+							
+							</dl>
+						
+						
+						
+						
+						
+							<dl class="detailList">
+							<dt class="heading">Returns:</dt>
+							
+								<dd><span class="light fixedFont">{bool}</span> If this player implements its own playLoader.</dd>
+							
+							</dl>
+						
+						
+						
+
+					<hr />
+				
+					<a name="load"> </a>
+					<div class="fixedFont">
+					
+					<span class="light">{boolean}</span>
+					<b>load</b>(file)
+					
+					</div>
+					<div class="description">
+						
+						
+						
+					</div>
+					
+					
+					
+						
+							<dl class="detailList">
+							<dt class="heading">Parameters:</dt>
+							
+								<dt>
+									<b>file</b>
+									
+								</dt>
+								<dd></dd>
+							
+							</dl>
+						
+						
+						
+						
+						
+							<dl class="detailList">
+							<dt class="heading">Returns:</dt>
+							
+								<dd><span class="light fixedFont">{boolean}</span> If this action was performed.</dd>
+							
+							</dl>
+						
+						
+						
+							<dl class="detailList">
+							<dt class="heading">See:</dt>
+							
+								<dd><a href="../symbols/minplayer.players.base.html#load">minplayer.players.base#load</a></dd>
+							
+							</dl>
+						
+
+					<hr />
+				
+					<a name="onPlayerStateChange"> </a>
+					<div class="fixedFont">
+					
+					
+					<b>onPlayerStateChange</b>(event)
+					
+					</div>
+					<div class="description">
+						Called when the player state changes.
+						
+						
+					</div>
+					
+					
+					
+						
+							<dl class="detailList">
+							<dt class="heading">Parameters:</dt>
+							
+								<dt>
+									<span class="light fixedFont">{object}</span> <b>event</b>
+									
+								</dt>
+								<dd>A JavaScript Event.</dd>
+							
+							</dl>
+						
+						
+						
+						
+						
+						
+						
+
+					<hr />
+				
+					<a name="onQualityChange"> </a>
+					<div class="fixedFont">
+					
+					
+					<b>onQualityChange</b>(newQuality)
+					
+					</div>
+					<div class="description">
+						Called when the player quality changes.
+						
+						
+					</div>
+					
+					
+					
+						
+							<dl class="detailList">
+							<dt class="heading">Parameters:</dt>
+							
+								<dt>
+									<span class="light fixedFont">{string}</span> <b>newQuality</b>
+									
+								</dt>
+								<dd>The new quality for the change.</dd>
+							
+							</dl>
+						
+						
+						
+						
+						
+						
+						
+
+					<hr />
+				
+					<a name="onReady"> </a>
+					<div class="fixedFont">
+					
+					
+					<b>onReady</b>(event)
+					
+					</div>
+					<div class="description">
+						Called when an error occurs.
+						
+						
+					</div>
+					
+					
+					
+						
+							<dl class="detailList">
+							<dt class="heading">Parameters:</dt>
+							
+								<dt>
+									<span class="light fixedFont">{string}</span> <b>event</b>
+									
+								</dt>
+								<dd>The onReady event that was triggered.</dd>
+							
+							</dl>
+						
+						
+						
+						
+						
+						
+						
+
+					<hr />
+				
+					<a name="pause"> </a>
+					<div class="fixedFont">
+					
+					<span class="light">{boolean}</span>
+					<b>pause</b>()
+					
+					</div>
+					<div class="description">
+						
+						
+						
+					</div>
+					
+					
+					
+						
+						
+						
+						
+						
+							<dl class="detailList">
+							<dt class="heading">Returns:</dt>
+							
+								<dd><span class="light fixedFont">{boolean}</span> If this action was performed.</dd>
+							
+							</dl>
+						
+						
+						
+							<dl class="detailList">
+							<dt class="heading">See:</dt>
+							
+								<dd><a href="../symbols/minplayer.players.base.html#pause">minplayer.players.base#pause</a></dd>
+							
+							</dl>
+						
+
+					<hr />
+				
+					<a name="play"> </a>
+					<div class="fixedFont">
+					
+					<span class="light">{boolean}</span>
+					<b>play</b>()
+					
+					</div>
+					<div class="description">
+						
+						
+						
+					</div>
+					
+					
+					
+						
+						
+						
+						
+						
+							<dl class="detailList">
+							<dt class="heading">Returns:</dt>
+							
+								<dd><span class="light fixedFont">{boolean}</span> If this action was performed.</dd>
+							
+							</dl>
+						
+						
+						
+							<dl class="detailList">
+							<dt class="heading">See:</dt>
+							
+								<dd><a href="../symbols/minplayer.players.base.html#play">minplayer.players.base#play</a></dd>
+							
+							</dl>
+						
+
+					<hr />
+				
+					<a name="playerFound"> </a>
+					<div class="fixedFont">
+					
+					<span class="light">{bool}</span>
+					<b>playerFound</b>()
+					
+					</div>
+					<div class="description">
+						Checks to see if this player can be found.
+						
+						
+					</div>
+					
+					
+					
+						
+						
+						
+						
+						
+							<dl class="detailList">
+							<dt class="heading">Returns:</dt>
+							
+								<dd><span class="light fixedFont">{bool}</span> TRUE - Player is found, FALSE - otherwise.</dd>
+							
+							</dl>
+						
+						
+						
+
+					<hr />
+				
+					<a name="seek"> </a>
+					<div class="fixedFont">
+					
+					<span class="light">{boolean}</span>
+					<b>seek</b>(pos)
+					
+					</div>
+					<div class="description">
+						
+						
+						
+					</div>
+					
+					
+					
+						
+							<dl class="detailList">
+							<dt class="heading">Parameters:</dt>
+							
+								<dt>
+									<b>pos</b>
+									
+								</dt>
+								<dd></dd>
+							
+							</dl>
+						
+						
+						
+						
+						
+							<dl class="detailList">
+							<dt class="heading">Returns:</dt>
+							
+								<dd><span class="light fixedFont">{boolean}</span> If this action was performed.</dd>
+							
+							</dl>
+						
+						
+						
+							<dl class="detailList">
+							<dt class="heading">See:</dt>
+							
+								<dd><a href="../symbols/minplayer.players.base.html#seek">minplayer.players.base#seek</a></dd>
+							
+							</dl>
+						
+
+					<hr />
+				
+					<a name="setPlayerState"> </a>
+					<div class="fixedFont">
+					
+					
+					<b>setPlayerState</b>(playerState)
+					
+					</div>
+					<div class="description">
+						Translates the player state for the YouTube API player.
+						
+						
+					</div>
+					
+					
+					
+						
+							<dl class="detailList">
+							<dt class="heading">Parameters:</dt>
+							
+								<dt>
+									<span class="light fixedFont">{number}</span> <b>playerState</b>
+									
+								</dt>
+								<dd>The YouTube player state.</dd>
+							
+							</dl>
+						
+						
+						
+						
+						
+						
+						
+
+					<hr />
+				
+					<a name="setVolume"> </a>
+					<div class="fixedFont">
+					
+					<span class="light">{boolean}</span>
+					<b>setVolume</b>(vol)
+					
+					</div>
+					<div class="description">
+						
+						
+						
+					</div>
+					
+					
+					
+						
+							<dl class="detailList">
+							<dt class="heading">Parameters:</dt>
+							
+								<dt>
+									<b>vol</b>
+									
+								</dt>
+								<dd></dd>
+							
+							</dl>
+						
+						
+						
+						
+						
+							<dl class="detailList">
+							<dt class="heading">Returns:</dt>
+							
+								<dd><span class="light fixedFont">{boolean}</span> If this action was performed.</dd>
+							
+							</dl>
+						
+						
+						
+							<dl class="detailList">
+							<dt class="heading">See:</dt>
+							
+								<dd><a href="../symbols/minplayer.players.base.html#setVolume">minplayer.players.base#setVolume</a></dd>
+							
+							</dl>
+						
+
+					<hr />
+				
+					<a name="stop"> </a>
+					<div class="fixedFont">
+					
+					<span class="light">{boolean}</span>
+					<b>stop</b>()
+					
+					</div>
+					<div class="description">
+						
+						
+						
+					</div>
+					
+					
+					
+						
+						
+						
+						
+						
+							<dl class="detailList">
+							<dt class="heading">Returns:</dt>
+							
+								<dd><span class="light fixedFont">{boolean}</span> If this action was performed.</dd>
+							
+							</dl>
+						
+						
+						
+							<dl class="detailList">
+							<dt class="heading">See:</dt>
+							
+								<dd><a href="../symbols/minplayer.players.base.html#stop">minplayer.players.base#stop</a></dd>
+							
+							</dl>
+						
+
+					
+				
+			
+			
+<!-- ============================== event details ========================= -->		
+			
+			
+			<hr />
+		</div>
+
+		
+<!-- ============================== footer ================================= -->
+		<div class="fineprint" style="clear:both">
+			
+			Documentation generated by <a href="http://code.google.com/p/jsdoc-toolkit/" target="_blank">JsDoc Toolkit</a> 2.4.0 on Sun Aug 19 2012 12:11:28 GMT-0500 (CDT)
+		</div>
+	</body>
+</html>
diff --git a/public/admin/js/osmplayer/doc/symbols/minplayer.plugin.html b/public/admin/js/osmplayer/doc/symbols/minplayer.plugin.html
new file mode 100644
index 00000000000..a52d5837d20
--- /dev/null
+++ b/public/admin/js/osmplayer/doc/symbols/minplayer.plugin.html
@@ -0,0 +1,1264 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+        "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+	<head>
+		<meta http-equiv="content-type" content="text/html; charset=utf-8" />
+		<meta name="generator" content="JsDoc Toolkit" />
+		
+		<title>JsDoc Reference - minplayer.plugin</title>
+
+		<style type="text/css">
+			/* default.css */
+body
+{
+	font: 12px "Lucida Grande", Tahoma, Arial, Helvetica, sans-serif;
+	width: 800px;
+}
+
+.header
+{
+	clear: both;
+	background-color: #ccc;
+	padding: 8px;
+}
+
+h1
+{
+	font-size: 150%;
+	font-weight: bold;
+	padding: 0;
+	margin: 1em 0 0 .3em;
+}
+
+hr
+{
+	border: none 0;
+	border-top: 1px solid #7F8FB1;
+	height: 1px;
+}
+
+pre.code
+{
+	display: block;
+	padding: 8px;
+	border: 1px dashed #ccc;
+}
+
+#index
+{
+	margin-top: 24px;
+	float: left;
+	width: 160px;
+	position: absolute;
+	left: 8px;
+	background-color: #F3F3F3;
+	padding: 8px;
+}
+
+#content
+{
+	margin-left: 190px;
+	width: 600px;
+}
+
+.classList
+{
+	list-style-type: none;
+	padding: 0;
+	margin: 0 0 0 8px;
+	font-family: arial, sans-serif;
+	font-size: 1em;
+	overflow: auto;
+}
+
+.classList li
+{
+	padding: 0;
+	margin: 0 0 8px 0;
+}
+
+.summaryTable { width: 100%; }
+
+h1.classTitle
+{
+	font-size:170%;
+	line-height:130%;
+}
+
+h2 { font-size: 110%; }
+caption, div.sectionTitle
+{
+	background-color: #7F8FB1;
+	color: #fff;
+	font-size:130%;
+	text-align: left;
+	padding: 2px 6px 2px 6px;
+	border: 1px #7F8FB1 solid;
+}
+
+div.sectionTitle { margin-bottom: 8px; }
+.summaryTable thead { display: none; }
+
+.summaryTable td
+{
+	vertical-align: top;
+	padding: 4px;
+	border-bottom: 1px #7F8FB1 solid;
+	border-right: 1px #7F8FB1 solid;
+}
+
+/*col#summaryAttributes {}*/
+.summaryTable td.attributes
+{
+	border-left: 1px #7F8FB1 solid;
+	width: 140px;
+	text-align: right;
+}
+
+td.attributes, .fixedFont
+{
+	line-height: 15px;
+	color: #002EBE;
+	font-family: "Courier New",Courier,monospace;
+	font-size: 13px;
+}
+
+.summaryTable td.nameDescription
+{
+	text-align: left;
+	font-size: 13px;
+	line-height: 15px;
+}
+
+.summaryTable td.nameDescription, .description
+{
+	line-height: 15px;
+	padding: 4px;
+	padding-left: 4px;
+}
+
+.summaryTable { margin-bottom: 8px; }
+
+ul.inheritsList
+{
+	list-style: square;
+	margin-left: 20px;
+	padding-left: 0;
+}
+
+.detailList {
+	margin-left: 20px; 
+	line-height: 15px;
+}
+.detailList dt { margin-left: 20px; }
+
+.detailList .heading
+{
+	font-weight: bold;
+	padding-bottom: 6px;
+	margin-left: 0;
+}
+
+.light, td.attributes, .light a:link, .light a:visited
+{
+	color: #777;
+	font-style: italic;
+}
+
+.fineprint
+{
+	text-align: right;
+	font-size: 10px;
+}
+		</style>
+	</head>
+
+	<body>
+<!-- ============================== header ================================= -->	
+		<!-- begin static/header.html -->
+		<div id="header">
+</div>
+		<!-- end static/header.html -->
+
+<!-- ============================== classes index ============================ -->
+		<div id="index">
+			<!-- begin publish.classesIndex -->
+			<div align="center"><a href="../index.html">Class Index</a>
+| <a href="../files.html">File Index</a></div>
+<hr />
+<h2>Classes</h2>
+<ul class="classList">
+	
+	<li><i><a href="../symbols/_global_.html">_global_</a></i></li>
+	
+	<li><a href="../symbols/jQuery.fn.minplayer.html">jQuery.fn.minplayer</a></li>
+	
+	<li><a href="../symbols/jQuery.fn.osmplayer.html">jQuery.fn.osmplayer</a></li>
+	
+	<li><a href="../symbols/minplayer.async.html">minplayer.async</a></li>
+	
+	<li><a href="../symbols/minplayer.compatibility.html">minplayer.compatibility</a></li>
+	
+	<li><a href="../symbols/minplayer.display.html">minplayer.display</a></li>
+	
+	<li><a href="../symbols/minplayer.file.html">minplayer.file</a></li>
+	
+	<li><a href="../symbols/minplayer.flags.html">minplayer.flags</a></li>
+	
+	<li><a href="../symbols/minplayer.image.html">minplayer.image</a></li>
+	
+	<li><a href="../symbols/minplayer.players.base.html">minplayer.players.base</a></li>
+	
+	<li><a href="../symbols/minplayer.players.flash.html">minplayer.players.flash</a></li>
+	
+	<li><a href="../symbols/minplayer.players.html5.html">minplayer.players.html5</a></li>
+	
+	<li><a href="../symbols/minplayer.players.minplayer.html">minplayer.players.minplayer</a></li>
+	
+	<li><a href="../symbols/minplayer.players.vimeo.html">minplayer.players.vimeo</a></li>
+	
+	<li><a href="../symbols/minplayer.players.youtube.html">minplayer.players.youtube</a></li>
+	
+	<li><a href="../symbols/minplayer.plugin.html">minplayer.plugin</a></li>
+	
+	<li><a href="../symbols/osmplayer.html">osmplayer</a></li>
+	
+	<li><a href="../symbols/osmplayer.pager.html">osmplayer.pager</a></li>
+	
+	<li><a href="../symbols/osmplayer.playlist.html">osmplayer.playlist</a></li>
+	
+	<li><a href="../symbols/osmplayer.teaser.html">osmplayer.teaser</a></li>
+	
+</ul>
+<hr />
+			<!-- end publish.classesIndex -->
+		</div>
+		
+		<div id="content">
+<!-- ============================== class title ============================ -->
+			<h1 class="classTitle">
+				
+				Class minplayer.plugin
+			</h1>
+
+<!-- ============================== class summary ========================== -->			
+			<p class="description">
+				
+				
+			
+				The base class for all plugins.
+				
+				
+					<br /><i>Defined in: </i> <a href="../symbols/src/minplayer_src_minplayer.plugin.js.html">minplayer.plugin.js</a>.
+				
+			</p>
+
+<!-- ============================== constructor summary ==================== -->			
+			
+			<table class="summaryTable" cellspacing="0" summary="A summary of the constructor documented in the class minplayer.plugin.">
+				<caption>Class Summary</caption>
+				<thead>
+					<tr>
+						<th scope="col">Constructor Attributes</th>
+						<th scope="col">Constructor Name and Description</th>
+					</tr>
+				</thead>
+				<tbody>
+					<tr>
+						<td class="attributes">&nbsp;</td>
+						<td class="nameDescription" >
+							<div class="fixedFont">
+								<b><a href="../symbols/minplayer.plugin.html#constructor">minplayer.plugin</a></b>(name, context, options, queue)
+							</div>
+							<div class="description"></div>
+						</td>
+					</tr>
+				</tbody>
+			</table>
+			
+
+<!-- ============================== properties summary ===================== -->
+			
+				
+				
+				<table class="summaryTable" cellspacing="0" summary="A summary of the fields documented in the class minplayer.plugin.">
+					<caption>Field Summary</caption>
+					<thead>
+						<tr>
+							<th scope="col">Field Attributes</th>
+							<th scope="col">Field Name and Description</th>
+						</tr>
+					</thead>
+					<tbody>
+					
+						<tr>
+							<td class="attributes">&nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont">
+								<b><a href="../symbols/minplayer.plugin.html#active">active</a></b>
+								</div>
+								<div class="description">Say that we are active.</div>
+							</td>
+						</tr>
+					
+						<tr>
+							<td class="attributes">&nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont">
+								<b><a href="../symbols/minplayer.plugin.html#context">context</a></b>
+								</div>
+								<div class="description">Keep track of the context.</div>
+							</td>
+						</tr>
+					
+						<tr>
+							<td class="attributes">&nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont">
+								<b><a href="../symbols/minplayer.plugin.html#lock">lock</a></b>
+								</div>
+								<div class="description">Create a queue lock.</div>
+							</td>
+						</tr>
+					
+						<tr>
+							<td class="attributes">&nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont">
+								<b><a href="../symbols/minplayer.plugin.html#name">name</a></b>
+								</div>
+								<div class="description">The name of this plugin.</div>
+							</td>
+						</tr>
+					
+						<tr>
+							<td class="attributes">&nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont">
+								<b><a href="../symbols/minplayer.plugin.html#options">options</a></b>
+								</div>
+								<div class="description">The options for this plugin.</div>
+							</td>
+						</tr>
+					
+						<tr>
+							<td class="attributes">&nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont">
+								<b><a href="../symbols/minplayer.plugin.html#pluginReady">pluginReady</a></b>
+								</div>
+								<div class="description">The ready flag.</div>
+							</td>
+						</tr>
+					
+						<tr>
+							<td class="attributes">&nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont">
+								<b><a href="../symbols/minplayer.plugin.html#queue">queue</a></b>
+								</div>
+								<div class="description">The event queue.</div>
+							</td>
+						</tr>
+					
+						<tr>
+							<td class="attributes">&nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont">
+								<b><a href="../symbols/minplayer.plugin.html#triggered">triggered</a></b>
+								</div>
+								<div class="description">Keep track of already triggered events.</div>
+							</td>
+						</tr>
+					
+					</tbody>
+				</table>
+				
+				
+				
+			
+
+<!-- ============================== methods summary ======================== -->
+			
+				
+				
+				<table class="summaryTable" cellspacing="0" summary="A summary of the methods documented in the class minplayer.plugin.">
+					<caption>Method Summary</caption>
+					<thead>
+						<tr>
+							<th scope="col">Method Attributes</th>
+							<th scope="col">Method Name and Description</th>
+						</tr>
+					</thead>
+					<tbody>
+					
+						<tr>
+							<td class="attributes">&nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont"><b><a href="../symbols/minplayer.plugin.html#addPlugin">addPlugin</a></b>(name, plugin)
+								</div>
+								<div class="description">Adds a new plugin to this player.</div>
+							</td>
+						</tr>
+					
+						<tr>
+							<td class="attributes">&nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont"><b><a href="../symbols/minplayer.plugin.html#bind">bind</a></b>(type, data, fn)
+								</div>
+								<div class="description">Bind to a media event.</div>
+							</td>
+						</tr>
+					
+						<tr>
+							<td class="attributes">&nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont"><b><a href="../symbols/minplayer.plugin.html#checkQueue">checkQueue</a></b>(plugin)
+								</div>
+								<div class="description">Check the queue and execute it.</div>
+							</td>
+						</tr>
+					
+						<tr>
+							<td class="attributes">&nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont"><b><a href="../symbols/minplayer.plugin.html#construct">construct</a></b>()
+								</div>
+								<div class="description">The constructor which is called once the context is set.</div>
+							</td>
+						</tr>
+					
+						<tr>
+							<td class="attributes">&nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont"><b><a href="../symbols/minplayer.plugin.html#create">create</a></b>(name, base, context)
+								</div>
+								<div class="description">Creates a new plugin within this context.</div>
+							</td>
+						</tr>
+					
+						<tr>
+							<td class="attributes">&nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont"><b><a href="../symbols/minplayer.plugin.html#destroy">destroy</a></b>()
+								</div>
+								<div class="description">Destructor.</div>
+							</td>
+						</tr>
+					
+						<tr>
+							<td class="attributes">&nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont"><b><a href="../symbols/minplayer.plugin.html#get">get</a></b>(plugin, callback)
+								</div>
+								<div class="description">Gets a plugin by name and calls callback when it is ready.</div>
+							</td>
+						</tr>
+					
+						<tr>
+							<td class="attributes">&nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont"><b><a href="../symbols/minplayer.plugin.html#isValid">isValid</a></b>()
+								</div>
+								<div class="description">Returns if this component is valid.</div>
+							</td>
+						</tr>
+					
+						<tr>
+							<td class="attributes">&nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont"><b><a href="../symbols/minplayer.plugin.html#poll">poll</a></b>(callback, interval)
+								</div>
+								<div class="description">Create a polling timer.</div>
+							</td>
+						</tr>
+					
+						<tr>
+							<td class="attributes">&nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont"><b><a href="../symbols/minplayer.plugin.html#ready">ready</a></b>()
+								</div>
+								<div class="description">Plugins should call this method when they are ready.</div>
+							</td>
+						</tr>
+					
+						<tr>
+							<td class="attributes">&nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont"><b><a href="../symbols/minplayer.plugin.html#trigger">trigger</a></b>(type, data)
+								</div>
+								<div class="description">Trigger a media event.</div>
+							</td>
+						</tr>
+					
+						<tr>
+							<td class="attributes">&nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont"><b><a href="../symbols/minplayer.plugin.html#unbind">unbind</a></b>(type, fn)
+								</div>
+								<div class="description">Unbind a media event.</div>
+							</td>
+						</tr>
+					
+					</tbody>
+				</table>
+				
+				
+				
+			
+<!-- ============================== events summary ======================== -->
+			
+
+<!-- ============================== constructor details ==================== -->		
+			
+			<div class="details"><a name="constructor"> </a>
+				<div class="sectionTitle">
+					Class Detail
+				</div>
+				
+				<div class="fixedFont">
+						<b>minplayer.plugin</b>(name, context, options, queue)
+				</div>
+				
+				<div class="description">
+					
+					
+				</div>
+				
+				
+				
+				
+					
+						<dl class="detailList">
+						<dt class="heading">Parameters:</dt>
+						
+							<dt>
+								<span class="light fixedFont">{string}</span>  <b>name</b>
+								
+							</dt>
+								<dd>The name of this plugin.</dd>
+						
+							<dt>
+								<span class="light fixedFont">{object}</span>  <b>context</b>
+								
+							</dt>
+								<dd>The jQuery context.</dd>
+						
+							<dt>
+								<span class="light fixedFont">{object}</span>  <b>options</b>
+								
+							</dt>
+								<dd>This components options.</dd>
+						
+							<dt>
+								<span class="light fixedFont">{object}</span>  <b>queue</b>
+								
+							</dt>
+								<dd>The event queue to pass events around.</dd>
+						
+						</dl>
+					
+					
+					
+					
+					
+					
+					
+
+			</div>
+			
+
+<!-- ============================== field details ========================== -->		
+			
+				<div class="sectionTitle">
+					Field Detail
+				</div>
+				
+					<a name="active"> </a>
+					<div class="fixedFont">
+					
+					
+					<b>active</b>
+					
+					</div>
+					<div class="description">
+						Say that we are active.
+						
+						
+					</div>
+					
+					
+
+						
+						
+						
+						
+
+					<hr />
+				
+					<a name="context"> </a>
+					<div class="fixedFont">
+					
+					
+					<b>context</b>
+					
+					</div>
+					<div class="description">
+						Keep track of the context.
+						
+						
+					</div>
+					
+					
+
+						
+						
+						
+						
+
+					<hr />
+				
+					<a name="lock"> </a>
+					<div class="fixedFont">
+					
+					
+					<b>lock</b>
+					
+					</div>
+					<div class="description">
+						Create a queue lock.
+						
+						
+					</div>
+					
+					
+
+						
+						
+						
+						
+
+					<hr />
+				
+					<a name="name"> </a>
+					<div class="fixedFont">
+					
+					
+					<b>name</b>
+					
+					</div>
+					<div class="description">
+						The name of this plugin.
+						
+						
+					</div>
+					
+					
+
+						
+						
+						
+						
+
+					<hr />
+				
+					<a name="options"> </a>
+					<div class="fixedFont">
+					
+					
+					<b>options</b>
+					
+					</div>
+					<div class="description">
+						The options for this plugin.
+						
+						
+					</div>
+					
+					
+
+						
+						
+						
+						
+
+					<hr />
+				
+					<a name="pluginReady"> </a>
+					<div class="fixedFont">
+					
+					
+					<b>pluginReady</b>
+					
+					</div>
+					<div class="description">
+						The ready flag.
+						
+						
+					</div>
+					
+					
+
+						
+						
+						
+						
+
+					<hr />
+				
+					<a name="queue"> </a>
+					<div class="fixedFont">
+					
+					
+					<b>queue</b>
+					
+					</div>
+					<div class="description">
+						The event queue.
+						
+						
+					</div>
+					
+					
+
+						
+						
+						
+						
+
+					<hr />
+				
+					<a name="triggered"> </a>
+					<div class="fixedFont">
+					
+					
+					<b>triggered</b>
+					
+					</div>
+					<div class="description">
+						Keep track of already triggered events.
+						
+						
+					</div>
+					
+					
+
+						
+						
+						
+						
+
+					
+				
+			
+
+<!-- ============================== method details ========================= -->		
+			
+				<div class="sectionTitle">
+					Method Detail
+				</div>
+				
+					<a name="addPlugin"> </a>
+					<div class="fixedFont">
+					
+					
+					<b>addPlugin</b>(name, plugin)
+					
+					</div>
+					<div class="description">
+						Adds a new plugin to this player.
+						
+						
+					</div>
+					
+					
+					
+						
+							<dl class="detailList">
+							<dt class="heading">Parameters:</dt>
+							
+								<dt>
+									<span class="light fixedFont">{string}</span> <b>name</b>
+									
+								</dt>
+								<dd>The name of this plugin.</dd>
+							
+								<dt>
+									<span class="light fixedFont">{object}</span> <b>plugin</b>
+									
+								</dt>
+								<dd>A new plugin object, derived from media.plugin.</dd>
+							
+							</dl>
+						
+						
+						
+						
+						
+						
+						
+
+					<hr />
+				
+					<a name="bind"> </a>
+					<div class="fixedFont">
+					
+					<span class="light">{object}</span>
+					<b>bind</b>(type, data, fn)
+					
+					</div>
+					<div class="description">
+						Bind to a media event.
+						
+						
+					</div>
+					
+					
+					
+						
+							<dl class="detailList">
+							<dt class="heading">Parameters:</dt>
+							
+								<dt>
+									<span class="light fixedFont">{string}</span> <b>type</b>
+									
+								</dt>
+								<dd>The event type.</dd>
+							
+								<dt>
+									<span class="light fixedFont">{object}</span> <b>data</b>
+									
+								</dt>
+								<dd>The data to bind with the event.</dd>
+							
+								<dt>
+									<span class="light fixedFont">{function}</span> <b>fn</b>
+									
+								</dt>
+								<dd>The callback function.</dd>
+							
+							</dl>
+						
+						
+						
+						
+						
+							<dl class="detailList">
+							<dt class="heading">Returns:</dt>
+							
+								<dd><span class="light fixedFont">{object}</span> The plugin object.</dd>
+							
+							</dl>
+						
+						
+						
+
+					<hr />
+				
+					<a name="checkQueue"> </a>
+					<div class="fixedFont">
+					
+					
+					<b>checkQueue</b>(plugin)
+					
+					</div>
+					<div class="description">
+						Check the queue and execute it.
+						
+						
+					</div>
+					
+					
+					
+						
+							<dl class="detailList">
+							<dt class="heading">Parameters:</dt>
+							
+								<dt>
+									<span class="light fixedFont">{object}</span> <b>plugin</b>
+									
+								</dt>
+								<dd>The plugin object to check the queue against.</dd>
+							
+							</dl>
+						
+						
+						
+						
+						
+						
+						
+
+					<hr />
+				
+					<a name="construct"> </a>
+					<div class="fixedFont">
+					
+					
+					<b>construct</b>()
+					
+					</div>
+					<div class="description">
+						The constructor which is called once the context is set.
+Any class deriving from the plugin class should place all context
+dependant functionality within this function instead of the standard
+constructor function since it is called on object derivation as well
+as object creation.
+						
+						
+					</div>
+					
+					
+					
+						
+						
+						
+						
+						
+						
+						
+
+					<hr />
+				
+					<a name="create"> </a>
+					<div class="fixedFont">
+					
+					<span class="light">{object}</span>
+					<b>create</b>(name, base, context)
+					
+					</div>
+					<div class="description">
+						Creates a new plugin within this context.
+						
+						
+					</div>
+					
+					
+					
+						
+							<dl class="detailList">
+							<dt class="heading">Parameters:</dt>
+							
+								<dt>
+									<span class="light fixedFont">{string}</span> <b>name</b>
+									
+								</dt>
+								<dd>The name of the plugin you wish to create.</dd>
+							
+								<dt>
+									<span class="light fixedFont">{object}</span> <b>base</b>
+									
+								</dt>
+								<dd>The base object for this plugin.</dd>
+							
+								<dt>
+									<span class="light fixedFont">{object}</span> <b>context</b>
+									
+								</dt>
+								<dd>The context which you would like to create.</dd>
+							
+							</dl>
+						
+						
+						
+						
+						
+							<dl class="detailList">
+							<dt class="heading">Returns:</dt>
+							
+								<dd><span class="light fixedFont">{object}</span> The new plugin object.</dd>
+							
+							</dl>
+						
+						
+						
+
+					<hr />
+				
+					<a name="destroy"> </a>
+					<div class="fixedFont">
+					
+					
+					<b>destroy</b>()
+					
+					</div>
+					<div class="description">
+						Destructor.
+						
+						
+					</div>
+					
+					
+					
+						
+						
+						
+						
+						
+						
+						
+
+					<hr />
+				
+					<a name="get"> </a>
+					<div class="fixedFont">
+					
+					<span class="light">{object}</span>
+					<b>get</b>(plugin, callback)
+					
+					</div>
+					<div class="description">
+						Gets a plugin by name and calls callback when it is ready.
+						
+						
+					</div>
+					
+					
+					
+						
+							<dl class="detailList">
+							<dt class="heading">Parameters:</dt>
+							
+								<dt>
+									<span class="light fixedFont">{string}</span> <b>plugin</b>
+									
+								</dt>
+								<dd>The plugin of the plugin.</dd>
+							
+								<dt>
+									<span class="light fixedFont">{function}</span> <b>callback</b>
+									
+								</dt>
+								<dd>Called when the plugin is ready.</dd>
+							
+							</dl>
+						
+						
+						
+						
+						
+							<dl class="detailList">
+							<dt class="heading">Returns:</dt>
+							
+								<dd><span class="light fixedFont">{object}</span> The plugin if no callback is provided.</dd>
+							
+							</dl>
+						
+						
+						
+
+					<hr />
+				
+					<a name="isValid"> </a>
+					<div class="fixedFont">
+					
+					<span class="light">{boolean}</span>
+					<b>isValid</b>()
+					
+					</div>
+					<div class="description">
+						Returns if this component is valid.
+						
+						
+					</div>
+					
+					
+					
+						
+						
+						
+						
+						
+							<dl class="detailList">
+							<dt class="heading">Returns:</dt>
+							
+								<dd><span class="light fixedFont">{boolean}</span> TRUE if the plugin display is valid.</dd>
+							
+							</dl>
+						
+						
+						
+
+					<hr />
+				
+					<a name="poll"> </a>
+					<div class="fixedFont">
+					
+					
+					<b>poll</b>(callback, interval)
+					
+					</div>
+					<div class="description">
+						Create a polling timer.
+						
+						
+					</div>
+					
+					
+					
+						
+							<dl class="detailList">
+							<dt class="heading">Parameters:</dt>
+							
+								<dt>
+									<span class="light fixedFont">{function}</span> <b>callback</b>
+									
+								</dt>
+								<dd>The function to call when you poll.</dd>
+							
+								<dt>
+									<span class="light fixedFont">{integer}</span> <b>interval</b>
+									
+								</dt>
+								<dd>The interval you would like to poll.</dd>
+							
+							</dl>
+						
+						
+						
+						
+						
+						
+						
+
+					<hr />
+				
+					<a name="ready"> </a>
+					<div class="fixedFont">
+					
+					
+					<b>ready</b>()
+					
+					</div>
+					<div class="description">
+						Plugins should call this method when they are ready.
+						
+						
+					</div>
+					
+					
+					
+						
+						
+						
+						
+						
+						
+						
+
+					<hr />
+				
+					<a name="trigger"> </a>
+					<div class="fixedFont">
+					
+					<span class="light">{object}</span>
+					<b>trigger</b>(type, data)
+					
+					</div>
+					<div class="description">
+						Trigger a media event.
+						
+						
+					</div>
+					
+					
+					
+						
+							<dl class="detailList">
+							<dt class="heading">Parameters:</dt>
+							
+								<dt>
+									<span class="light fixedFont">{string}</span> <b>type</b>
+									
+								</dt>
+								<dd>The event type.</dd>
+							
+								<dt>
+									<span class="light fixedFont">{object}</span> <b>data</b>
+									
+								</dt>
+								<dd>The event data object.</dd>
+							
+							</dl>
+						
+						
+						
+						
+						
+							<dl class="detailList">
+							<dt class="heading">Returns:</dt>
+							
+								<dd><span class="light fixedFont">{object}</span> The plugin object.</dd>
+							
+							</dl>
+						
+						
+						
+
+					<hr />
+				
+					<a name="unbind"> </a>
+					<div class="fixedFont">
+					
+					<span class="light">{object}</span>
+					<b>unbind</b>(type, fn)
+					
+					</div>
+					<div class="description">
+						Unbind a media event.
+						
+						
+					</div>
+					
+					
+					
+						
+							<dl class="detailList">
+							<dt class="heading">Parameters:</dt>
+							
+								<dt>
+									<span class="light fixedFont">{string}</span> <b>type</b>
+									
+								</dt>
+								<dd>The event type.</dd>
+							
+								<dt>
+									<span class="light fixedFont">{function}</span> <b>fn</b>
+									
+								</dt>
+								<dd>The callback function.</dd>
+							
+							</dl>
+						
+						
+						
+						
+						
+							<dl class="detailList">
+							<dt class="heading">Returns:</dt>
+							
+								<dd><span class="light fixedFont">{object}</span> The plugin object.</dd>
+							
+							</dl>
+						
+						
+						
+
+					
+				
+			
+			
+<!-- ============================== event details ========================= -->		
+			
+			
+			<hr />
+		</div>
+
+		
+<!-- ============================== footer ================================= -->
+		<div class="fineprint" style="clear:both">
+			
+			Documentation generated by <a href="http://code.google.com/p/jsdoc-toolkit/" target="_blank">JsDoc Toolkit</a> 2.4.0 on Sun Aug 19 2012 12:11:28 GMT-0500 (CDT)
+		</div>
+	</body>
+</html>
diff --git a/public/admin/js/osmplayer/doc/symbols/osmplayer.html b/public/admin/js/osmplayer/doc/symbols/osmplayer.html
new file mode 100644
index 00000000000..24e6068de30
--- /dev/null
+++ b/public/admin/js/osmplayer/doc/symbols/osmplayer.html
@@ -0,0 +1,854 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+        "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+	<head>
+		<meta http-equiv="content-type" content="text/html; charset=utf-8" />
+		<meta name="generator" content="JsDoc Toolkit" />
+		
+		<title>JsDoc Reference - osmplayer</title>
+
+		<style type="text/css">
+			/* default.css */
+body
+{
+	font: 12px "Lucida Grande", Tahoma, Arial, Helvetica, sans-serif;
+	width: 800px;
+}
+
+.header
+{
+	clear: both;
+	background-color: #ccc;
+	padding: 8px;
+}
+
+h1
+{
+	font-size: 150%;
+	font-weight: bold;
+	padding: 0;
+	margin: 1em 0 0 .3em;
+}
+
+hr
+{
+	border: none 0;
+	border-top: 1px solid #7F8FB1;
+	height: 1px;
+}
+
+pre.code
+{
+	display: block;
+	padding: 8px;
+	border: 1px dashed #ccc;
+}
+
+#index
+{
+	margin-top: 24px;
+	float: left;
+	width: 160px;
+	position: absolute;
+	left: 8px;
+	background-color: #F3F3F3;
+	padding: 8px;
+}
+
+#content
+{
+	margin-left: 190px;
+	width: 600px;
+}
+
+.classList
+{
+	list-style-type: none;
+	padding: 0;
+	margin: 0 0 0 8px;
+	font-family: arial, sans-serif;
+	font-size: 1em;
+	overflow: auto;
+}
+
+.classList li
+{
+	padding: 0;
+	margin: 0 0 8px 0;
+}
+
+.summaryTable { width: 100%; }
+
+h1.classTitle
+{
+	font-size:170%;
+	line-height:130%;
+}
+
+h2 { font-size: 110%; }
+caption, div.sectionTitle
+{
+	background-color: #7F8FB1;
+	color: #fff;
+	font-size:130%;
+	text-align: left;
+	padding: 2px 6px 2px 6px;
+	border: 1px #7F8FB1 solid;
+}
+
+div.sectionTitle { margin-bottom: 8px; }
+.summaryTable thead { display: none; }
+
+.summaryTable td
+{
+	vertical-align: top;
+	padding: 4px;
+	border-bottom: 1px #7F8FB1 solid;
+	border-right: 1px #7F8FB1 solid;
+}
+
+/*col#summaryAttributes {}*/
+.summaryTable td.attributes
+{
+	border-left: 1px #7F8FB1 solid;
+	width: 140px;
+	text-align: right;
+}
+
+td.attributes, .fixedFont
+{
+	line-height: 15px;
+	color: #002EBE;
+	font-family: "Courier New",Courier,monospace;
+	font-size: 13px;
+}
+
+.summaryTable td.nameDescription
+{
+	text-align: left;
+	font-size: 13px;
+	line-height: 15px;
+}
+
+.summaryTable td.nameDescription, .description
+{
+	line-height: 15px;
+	padding: 4px;
+	padding-left: 4px;
+}
+
+.summaryTable { margin-bottom: 8px; }
+
+ul.inheritsList
+{
+	list-style: square;
+	margin-left: 20px;
+	padding-left: 0;
+}
+
+.detailList {
+	margin-left: 20px; 
+	line-height: 15px;
+}
+.detailList dt { margin-left: 20px; }
+
+.detailList .heading
+{
+	font-weight: bold;
+	padding-bottom: 6px;
+	margin-left: 0;
+}
+
+.light, td.attributes, .light a:link, .light a:visited
+{
+	color: #777;
+	font-style: italic;
+}
+
+.fineprint
+{
+	text-align: right;
+	font-size: 10px;
+}
+		</style>
+	</head>
+
+	<body>
+<!-- ============================== header ================================= -->	
+		<!-- begin static/header.html -->
+		<div id="header">
+</div>
+		<!-- end static/header.html -->
+
+<!-- ============================== classes index ============================ -->
+		<div id="index">
+			<!-- begin publish.classesIndex -->
+			<div align="center"><a href="../index.html">Class Index</a>
+| <a href="../files.html">File Index</a></div>
+<hr />
+<h2>Classes</h2>
+<ul class="classList">
+	
+	<li><i><a href="../symbols/_global_.html">_global_</a></i></li>
+	
+	<li><a href="../symbols/jQuery.fn.minplayer.html">jQuery.fn.minplayer</a></li>
+	
+	<li><a href="../symbols/jQuery.fn.osmplayer.html">jQuery.fn.osmplayer</a></li>
+	
+	<li><a href="../symbols/minplayer.async.html">minplayer.async</a></li>
+	
+	<li><a href="../symbols/minplayer.compatibility.html">minplayer.compatibility</a></li>
+	
+	<li><a href="../symbols/minplayer.display.html">minplayer.display</a></li>
+	
+	<li><a href="../symbols/minplayer.file.html">minplayer.file</a></li>
+	
+	<li><a href="../symbols/minplayer.flags.html">minplayer.flags</a></li>
+	
+	<li><a href="../symbols/minplayer.image.html">minplayer.image</a></li>
+	
+	<li><a href="../symbols/minplayer.players.base.html">minplayer.players.base</a></li>
+	
+	<li><a href="../symbols/minplayer.players.flash.html">minplayer.players.flash</a></li>
+	
+	<li><a href="../symbols/minplayer.players.html5.html">minplayer.players.html5</a></li>
+	
+	<li><a href="../symbols/minplayer.players.minplayer.html">minplayer.players.minplayer</a></li>
+	
+	<li><a href="../symbols/minplayer.players.vimeo.html">minplayer.players.vimeo</a></li>
+	
+	<li><a href="../symbols/minplayer.players.youtube.html">minplayer.players.youtube</a></li>
+	
+	<li><a href="../symbols/minplayer.plugin.html">minplayer.plugin</a></li>
+	
+	<li><a href="../symbols/osmplayer.html">osmplayer</a></li>
+	
+	<li><a href="../symbols/osmplayer.pager.html">osmplayer.pager</a></li>
+	
+	<li><a href="../symbols/osmplayer.playlist.html">osmplayer.playlist</a></li>
+	
+	<li><a href="../symbols/osmplayer.teaser.html">osmplayer.teaser</a></li>
+	
+</ul>
+<hr />
+			<!-- end publish.classesIndex -->
+		</div>
+		
+		<div id="content">
+<!-- ============================== class title ============================ -->
+			<h1 class="classTitle">
+				
+				Class osmplayer
+			</h1>
+
+<!-- ============================== class summary ========================== -->			
+			<p class="description">
+				
+				<br />Extends
+					<a href="../symbols/_global_.html#minplayer">minplayer</a>.<br />
+				
+			
+				The main osmplayer class.
+
+<p><strong>Usage:</strong>
+<pre><code>
+
+  // Create a media player.
+  var player = jQuery("#player").osmplayer({
+
+  });
+
+</code></pre>
+</p>
+				
+				
+					<br /><i>Defined in: </i> <a href="../symbols/src/src_osmplayer.js.html">osmplayer.js</a>.
+				
+			</p>
+
+<!-- ============================== constructor summary ==================== -->			
+			
+			<table class="summaryTable" cellspacing="0" summary="A summary of the constructor documented in the class osmplayer.">
+				<caption>Class Summary</caption>
+				<thead>
+					<tr>
+						<th scope="col">Constructor Attributes</th>
+						<th scope="col">Constructor Name and Description</th>
+					</tr>
+				</thead>
+				<tbody>
+					<tr>
+						<td class="attributes">&nbsp;</td>
+						<td class="nameDescription" >
+							<div class="fixedFont">
+								<b><a href="../symbols/osmplayer.html#constructor">osmplayer</a></b>(context, options)
+							</div>
+							<div class="description"></div>
+						</td>
+					</tr>
+				</tbody>
+			</table>
+			
+
+<!-- ============================== properties summary ===================== -->
+			
+				
+				
+				<table class="summaryTable" cellspacing="0" summary="A summary of the fields documented in the class osmplayer.">
+					<caption>Field Summary</caption>
+					<thead>
+						<tr>
+							<th scope="col">Field Attributes</th>
+							<th scope="col">Field Name and Description</th>
+						</tr>
+					</thead>
+					<tbody>
+					
+						<tr>
+							<td class="attributes">&nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont">
+								<b><a href="../symbols/osmplayer.html#constructor">constructor</a></b>
+								</div>
+								<div class="description">Reset the constructor.</div>
+							</td>
+						</tr>
+					
+						<tr>
+							<td class="attributes">&lt;static&gt; &nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont">
+								osmplayer.<b><a href="../symbols/osmplayer.html#.parser">parser</a></b>
+								</div>
+								<div class="description">The parser object.</div>
+							</td>
+						</tr>
+					
+						<tr>
+							<td class="attributes">&nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont">
+								<b><a href="../symbols/osmplayer.html#playQueue">playQueue</a></b>
+								</div>
+								<div class="description">The play queue and index.</div>
+							</td>
+						</tr>
+					
+					</tbody>
+				</table>
+				
+				
+				
+				<dl class="inheritsList">
+				
+				</dl>
+				
+			
+
+<!-- ============================== methods summary ======================== -->
+			
+				
+				
+				<table class="summaryTable" cellspacing="0" summary="A summary of the methods documented in the class osmplayer.">
+					<caption>Method Summary</caption>
+					<thead>
+						<tr>
+							<th scope="col">Method Attributes</th>
+							<th scope="col">Method Name and Description</th>
+						</tr>
+					</thead>
+					<tbody>
+					
+						<tr>
+							<td class="attributes">&nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont"><b><a href="../symbols/osmplayer.html#addToQueue">addToQueue</a></b>(file)
+								</div>
+								<div class="description">Adds a file to the play queue.</div>
+							</td>
+						</tr>
+					
+						<tr>
+							<td class="attributes">&nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont"><b><a href="../symbols/osmplayer.html#construct">construct</a></b>()
+								</div>
+								<div class="description"></div>
+							</td>
+						</tr>
+					
+						<tr>
+							<td class="attributes">&nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont"><b><a href="../symbols/osmplayer.html#create">create</a></b>(name, base, context)
+								</div>
+								<div class="description">Creates a new plugin within this context.</div>
+							</td>
+						</tr>
+					
+						<tr>
+							<td class="attributes">&nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont"><b><a href="../symbols/osmplayer.html#fullScreenElement">fullScreenElement</a></b>()
+								</div>
+								<div class="description">Gets the full screen element.</div>
+							</td>
+						</tr>
+					
+						<tr>
+							<td class="attributes">&lt;static&gt; &nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont">osmplayer.<b><a href="../symbols/osmplayer.html#.getImage">getImage</a></b>(mediafiles, type, callback)
+								</div>
+								<div class="description">Returns an image provided image array.</div>
+							</td>
+						</tr>
+					
+						<tr>
+							<td class="attributes">&nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont"><b><a href="../symbols/osmplayer.html#loadNode">loadNode</a></b>(node)
+								</div>
+								<div class="description">The load node function.</div>
+							</td>
+						</tr>
+					
+						<tr>
+							<td class="attributes">&nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont"><b><a href="../symbols/osmplayer.html#playNext">playNext</a></b>()
+								</div>
+								<div class="description">Plays the next media file in the queue.</div>
+							</td>
+						</tr>
+					
+					</tbody>
+				</table>
+				
+				
+				
+				<dl class="inheritsList">
+				<dt>Methods borrowed from class <a href="../symbols/_global_.html#minplayer">minplayer</a>: </dt><dd><a href="../symbols/minplayer.html#addEvents">addEvents</a>, <a href="../symbols/minplayer.html#addKeyEvents">addKeyEvents</a>, <a href="../symbols/minplayer.html#bindTo">bindTo</a>, <a href="../symbols/minplayer.html#getFiles">getFiles</a>, <a href="../symbols/minplayer.html#load">load</a>, <a href="../symbols/minplayer.html#loadPlayer">loadPlayer</a>, <a href="../symbols/minplayer.html#resize">resize</a>, <a href="../symbols/minplayer.html#showError">showError</a></dd>
+				</dl>
+				
+			
+<!-- ============================== events summary ======================== -->
+			
+
+<!-- ============================== constructor details ==================== -->		
+			
+			<div class="details"><a name="constructor"> </a>
+				<div class="sectionTitle">
+					Class Detail
+				</div>
+				
+				<div class="fixedFont">
+						<b>osmplayer</b>(context, options)
+				</div>
+				
+				<div class="description">
+					
+					
+				</div>
+				
+				
+				
+				
+					
+						<dl class="detailList">
+						<dt class="heading">Parameters:</dt>
+						
+							<dt>
+								<span class="light fixedFont">{object}</span>  <b>context</b>
+								
+							</dt>
+								<dd>The jQuery context.</dd>
+						
+							<dt>
+								<span class="light fixedFont">{object}</span>  <b>options</b>
+								
+							</dt>
+								<dd>This components options.</dd>
+						
+						</dl>
+					
+					
+					
+					
+					
+					
+					
+
+			</div>
+			
+
+<!-- ============================== field details ========================== -->		
+			
+				<div class="sectionTitle">
+					Field Detail
+				</div>
+				
+					<a name="constructor"> </a>
+					<div class="fixedFont">
+					
+					
+					<b>constructor</b>
+					
+					</div>
+					<div class="description">
+						Reset the constructor.
+						
+						
+					</div>
+					
+					
+
+						
+						
+						
+						
+
+					<hr />
+				
+					<a name=".parser"> </a>
+					<div class="fixedFont">&lt;static&gt; 
+					
+					
+					<span class="light">osmplayer.</span><b>parser</b>
+					
+					</div>
+					<div class="description">
+						The parser object.
+						
+							<br />
+							<i>Defined in: </i> <a href="../symbols/src/src_osmplayer.parser.default.js.html">osmplayer.parser.default.js</a>.
+						
+						
+					</div>
+					
+					
+
+						
+						
+						
+						
+
+					<hr />
+				
+					<a name="playQueue"> </a>
+					<div class="fixedFont">
+					
+					
+					<b>playQueue</b>
+					
+					</div>
+					<div class="description">
+						The play queue and index.
+						
+						
+					</div>
+					
+					
+
+						
+						
+						
+						
+
+					
+				
+			
+
+<!-- ============================== method details ========================= -->		
+			
+				<div class="sectionTitle">
+					Method Detail
+				</div>
+				
+					<a name="addToQueue"> </a>
+					<div class="fixedFont">
+					
+					<span class="light">{object}</span>
+					<b>addToQueue</b>(file)
+					
+					</div>
+					<div class="description">
+						Adds a file to the play queue.
+						
+						
+					</div>
+					
+					
+					
+						
+							<dl class="detailList">
+							<dt class="heading">Parameters:</dt>
+							
+								<dt>
+									<span class="light fixedFont">{object}</span> <b>file</b>
+									
+								</dt>
+								<dd>The file to add to the queue.</dd>
+							
+							</dl>
+						
+						
+						
+						
+						
+							<dl class="detailList">
+							<dt class="heading">Returns:</dt>
+							
+								<dd><span class="light fixedFont">{object}</span> The file that was added to the queue.</dd>
+							
+							</dl>
+						
+						
+						
+
+					<hr />
+				
+					<a name="construct"> </a>
+					<div class="fixedFont">
+					
+					
+					<b>construct</b>()
+					
+					</div>
+					<div class="description">
+						
+						
+						
+					</div>
+					
+					
+					
+						
+						
+						
+						
+						
+						
+						
+							<dl class="detailList">
+							<dt class="heading">See:</dt>
+							
+								<dd>minplayer.plugin.construct</dd>
+							
+							</dl>
+						
+
+					<hr />
+				
+					<a name="create"> </a>
+					<div class="fixedFont">
+					
+					<span class="light">{object}</span>
+					<b>create</b>(name, base, context)
+					
+					</div>
+					<div class="description">
+						Creates a new plugin within this context.
+						
+						
+					</div>
+					
+					
+					
+						
+							<dl class="detailList">
+							<dt class="heading">Parameters:</dt>
+							
+								<dt>
+									<span class="light fixedFont">{string}</span> <b>name</b>
+									
+								</dt>
+								<dd>The name of the plugin you wish to create.</dd>
+							
+								<dt>
+									<span class="light fixedFont">{object}</span> <b>base</b>
+									
+								</dt>
+								<dd>The base object for this plugin.</dd>
+							
+								<dt>
+									<span class="light fixedFont">{object}</span> <b>context</b>
+									
+								</dt>
+								<dd>The context which you would like to create.</dd>
+							
+							</dl>
+						
+						
+						
+						
+						
+							<dl class="detailList">
+							<dt class="heading">Returns:</dt>
+							
+								<dd><span class="light fixedFont">{object}</span> The new plugin object.</dd>
+							
+							</dl>
+						
+						
+						
+
+					<hr />
+				
+					<a name="fullScreenElement"> </a>
+					<div class="fixedFont">
+					
+					<span class="light">{object}</span>
+					<b>fullScreenElement</b>()
+					
+					</div>
+					<div class="description">
+						Gets the full screen element.
+						
+						
+					</div>
+					
+					
+					
+						
+						
+						
+						
+						
+							<dl class="detailList">
+							<dt class="heading">Returns:</dt>
+							
+								<dd><span class="light fixedFont">{object}</span> The element that will go into fullscreen.</dd>
+							
+							</dl>
+						
+						
+						
+
+					<hr />
+				
+					<a name=".getImage"> </a>
+					<div class="fixedFont">&lt;static&gt; 
+					
+					
+					<span class="light">osmplayer.</span><b>getImage</b>(mediafiles, type, callback)
+					
+					</div>
+					<div class="description">
+						Returns an image provided image array.
+						
+						
+					</div>
+					
+					
+					
+						
+							<dl class="detailList">
+							<dt class="heading">Parameters:</dt>
+							
+								<dt>
+									<span class="light fixedFont">{object}</span> <b>mediafiles</b>
+									
+								</dt>
+								<dd>The mediafiles to search within.</dd>
+							
+								<dt>
+									<span class="light fixedFont">{string}</span> <b>type</b>
+									
+								</dt>
+								<dd>The type of image to look for.</dd>
+							
+								<dt>
+									<span class="light fixedFont">{function}</span> <b>callback</b>
+									
+								</dt>
+								<dd>Called when the image is retrieved.</dd>
+							
+							</dl>
+						
+						
+						
+						
+						
+						
+						
+
+					<hr />
+				
+					<a name="loadNode"> </a>
+					<div class="fixedFont">
+					
+					
+					<b>loadNode</b>(node)
+					
+					</div>
+					<div class="description">
+						The load node function.
+						
+						
+					</div>
+					
+					
+					
+						
+							<dl class="detailList">
+							<dt class="heading">Parameters:</dt>
+							
+								<dt>
+									<span class="light fixedFont">{object}</span> <b>node</b>
+									
+								</dt>
+								<dd>A media node object.</dd>
+							
+							</dl>
+						
+						
+						
+						
+						
+						
+						
+
+					<hr />
+				
+					<a name="playNext"> </a>
+					<div class="fixedFont">
+					
+					
+					<b>playNext</b>()
+					
+					</div>
+					<div class="description">
+						Plays the next media file in the queue.
+						
+						
+					</div>
+					
+					
+					
+						
+						
+						
+						
+						
+						
+						
+
+					
+				
+			
+			
+<!-- ============================== event details ========================= -->		
+			
+			
+			<hr />
+		</div>
+
+		
+<!-- ============================== footer ================================= -->
+		<div class="fineprint" style="clear:both">
+			
+			Documentation generated by <a href="http://code.google.com/p/jsdoc-toolkit/" target="_blank">JsDoc Toolkit</a> 2.4.0 on Sun Aug 19 2012 12:11:28 GMT-0500 (CDT)
+		</div>
+	</body>
+</html>
diff --git a/public/admin/js/osmplayer/doc/symbols/osmplayer.pager.html b/public/admin/js/osmplayer/doc/symbols/osmplayer.pager.html
new file mode 100644
index 00000000000..51e37daedd8
--- /dev/null
+++ b/public/admin/js/osmplayer/doc/symbols/osmplayer.pager.html
@@ -0,0 +1,483 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+        "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+	<head>
+		<meta http-equiv="content-type" content="text/html; charset=utf-8" />
+		<meta name="generator" content="JsDoc Toolkit" />
+		
+		<title>JsDoc Reference - osmplayer.pager</title>
+
+		<style type="text/css">
+			/* default.css */
+body
+{
+	font: 12px "Lucida Grande", Tahoma, Arial, Helvetica, sans-serif;
+	width: 800px;
+}
+
+.header
+{
+	clear: both;
+	background-color: #ccc;
+	padding: 8px;
+}
+
+h1
+{
+	font-size: 150%;
+	font-weight: bold;
+	padding: 0;
+	margin: 1em 0 0 .3em;
+}
+
+hr
+{
+	border: none 0;
+	border-top: 1px solid #7F8FB1;
+	height: 1px;
+}
+
+pre.code
+{
+	display: block;
+	padding: 8px;
+	border: 1px dashed #ccc;
+}
+
+#index
+{
+	margin-top: 24px;
+	float: left;
+	width: 160px;
+	position: absolute;
+	left: 8px;
+	background-color: #F3F3F3;
+	padding: 8px;
+}
+
+#content
+{
+	margin-left: 190px;
+	width: 600px;
+}
+
+.classList
+{
+	list-style-type: none;
+	padding: 0;
+	margin: 0 0 0 8px;
+	font-family: arial, sans-serif;
+	font-size: 1em;
+	overflow: auto;
+}
+
+.classList li
+{
+	padding: 0;
+	margin: 0 0 8px 0;
+}
+
+.summaryTable { width: 100%; }
+
+h1.classTitle
+{
+	font-size:170%;
+	line-height:130%;
+}
+
+h2 { font-size: 110%; }
+caption, div.sectionTitle
+{
+	background-color: #7F8FB1;
+	color: #fff;
+	font-size:130%;
+	text-align: left;
+	padding: 2px 6px 2px 6px;
+	border: 1px #7F8FB1 solid;
+}
+
+div.sectionTitle { margin-bottom: 8px; }
+.summaryTable thead { display: none; }
+
+.summaryTable td
+{
+	vertical-align: top;
+	padding: 4px;
+	border-bottom: 1px #7F8FB1 solid;
+	border-right: 1px #7F8FB1 solid;
+}
+
+/*col#summaryAttributes {}*/
+.summaryTable td.attributes
+{
+	border-left: 1px #7F8FB1 solid;
+	width: 140px;
+	text-align: right;
+}
+
+td.attributes, .fixedFont
+{
+	line-height: 15px;
+	color: #002EBE;
+	font-family: "Courier New",Courier,monospace;
+	font-size: 13px;
+}
+
+.summaryTable td.nameDescription
+{
+	text-align: left;
+	font-size: 13px;
+	line-height: 15px;
+}
+
+.summaryTable td.nameDescription, .description
+{
+	line-height: 15px;
+	padding: 4px;
+	padding-left: 4px;
+}
+
+.summaryTable { margin-bottom: 8px; }
+
+ul.inheritsList
+{
+	list-style: square;
+	margin-left: 20px;
+	padding-left: 0;
+}
+
+.detailList {
+	margin-left: 20px; 
+	line-height: 15px;
+}
+.detailList dt { margin-left: 20px; }
+
+.detailList .heading
+{
+	font-weight: bold;
+	padding-bottom: 6px;
+	margin-left: 0;
+}
+
+.light, td.attributes, .light a:link, .light a:visited
+{
+	color: #777;
+	font-style: italic;
+}
+
+.fineprint
+{
+	text-align: right;
+	font-size: 10px;
+}
+		</style>
+	</head>
+
+	<body>
+<!-- ============================== header ================================= -->	
+		<!-- begin static/header.html -->
+		<div id="header">
+</div>
+		<!-- end static/header.html -->
+
+<!-- ============================== classes index ============================ -->
+		<div id="index">
+			<!-- begin publish.classesIndex -->
+			<div align="center"><a href="../index.html">Class Index</a>
+| <a href="../files.html">File Index</a></div>
+<hr />
+<h2>Classes</h2>
+<ul class="classList">
+	
+	<li><i><a href="../symbols/_global_.html">_global_</a></i></li>
+	
+	<li><a href="../symbols/jQuery.fn.minplayer.html">jQuery.fn.minplayer</a></li>
+	
+	<li><a href="../symbols/jQuery.fn.osmplayer.html">jQuery.fn.osmplayer</a></li>
+	
+	<li><a href="../symbols/minplayer.async.html">minplayer.async</a></li>
+	
+	<li><a href="../symbols/minplayer.compatibility.html">minplayer.compatibility</a></li>
+	
+	<li><a href="../symbols/minplayer.display.html">minplayer.display</a></li>
+	
+	<li><a href="../symbols/minplayer.file.html">minplayer.file</a></li>
+	
+	<li><a href="../symbols/minplayer.flags.html">minplayer.flags</a></li>
+	
+	<li><a href="../symbols/minplayer.image.html">minplayer.image</a></li>
+	
+	<li><a href="../symbols/minplayer.players.base.html">minplayer.players.base</a></li>
+	
+	<li><a href="../symbols/minplayer.players.flash.html">minplayer.players.flash</a></li>
+	
+	<li><a href="../symbols/minplayer.players.html5.html">minplayer.players.html5</a></li>
+	
+	<li><a href="../symbols/minplayer.players.minplayer.html">minplayer.players.minplayer</a></li>
+	
+	<li><a href="../symbols/minplayer.players.vimeo.html">minplayer.players.vimeo</a></li>
+	
+	<li><a href="../symbols/minplayer.players.youtube.html">minplayer.players.youtube</a></li>
+	
+	<li><a href="../symbols/minplayer.plugin.html">minplayer.plugin</a></li>
+	
+	<li><a href="../symbols/osmplayer.html">osmplayer</a></li>
+	
+	<li><a href="../symbols/osmplayer.pager.html">osmplayer.pager</a></li>
+	
+	<li><a href="../symbols/osmplayer.playlist.html">osmplayer.playlist</a></li>
+	
+	<li><a href="../symbols/osmplayer.teaser.html">osmplayer.teaser</a></li>
+	
+</ul>
+<hr />
+			<!-- end publish.classesIndex -->
+		</div>
+		
+		<div id="content">
+<!-- ============================== class title ============================ -->
+			<h1 class="classTitle">
+				
+				Class osmplayer.pager
+			</h1>
+
+<!-- ============================== class summary ========================== -->			
+			<p class="description">
+				
+				<br />Extends
+					<a href="../symbols/minplayer.display.html">minplayer.display</a>.<br />
+				
+			
+				This class provides pager functionality.
+				
+				
+					<br /><i>Defined in: </i> <a href="../symbols/src/src_osmplayer.pager.js.html">osmplayer.pager.js</a>.
+				
+			</p>
+
+<!-- ============================== constructor summary ==================== -->			
+			
+			<table class="summaryTable" cellspacing="0" summary="A summary of the constructor documented in the class osmplayer.pager.">
+				<caption>Class Summary</caption>
+				<thead>
+					<tr>
+						<th scope="col">Constructor Attributes</th>
+						<th scope="col">Constructor Name and Description</th>
+					</tr>
+				</thead>
+				<tbody>
+					<tr>
+						<td class="attributes">&nbsp;</td>
+						<td class="nameDescription" >
+							<div class="fixedFont">
+								<b><a href="../symbols/osmplayer.pager.html#constructor">osmplayer.pager</a></b>(context, options)
+							</div>
+							<div class="description"></div>
+						</td>
+					</tr>
+				</tbody>
+			</table>
+			
+
+<!-- ============================== properties summary ===================== -->
+			
+				
+				
+				<table class="summaryTable" cellspacing="0" summary="A summary of the fields documented in the class osmplayer.pager.">
+					<caption>Field Summary</caption>
+					<thead>
+						<tr>
+							<th scope="col">Field Attributes</th>
+							<th scope="col">Field Name and Description</th>
+						</tr>
+					</thead>
+					<tbody>
+					
+						<tr>
+							<td class="attributes">&nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont">
+								<b><a href="../symbols/osmplayer.pager.html#constructor">constructor</a></b>
+								</div>
+								<div class="description">Reset the constructor.</div>
+							</td>
+						</tr>
+					
+					</tbody>
+				</table>
+				
+				
+				
+				<dl class="inheritsList">
+				<dt>Fields borrowed from class <a href="../symbols/minplayer.display.html">minplayer.display</a>: </dt><dd><a href="../symbols/minplayer.display.html#onResize">onResize</a></dd><dt>Fields borrowed from class <a href="../symbols/minplayer.plugin.html">minplayer.plugin</a>: </dt><dd><a href="../symbols/minplayer.plugin.html#active">active</a>, <a href="../symbols/minplayer.plugin.html#context">context</a>, <a href="../symbols/minplayer.plugin.html#lock">lock</a>, <a href="../symbols/minplayer.plugin.html#name">name</a>, <a href="../symbols/minplayer.plugin.html#options">options</a>, <a href="../symbols/minplayer.plugin.html#pluginReady">pluginReady</a>, <a href="../symbols/minplayer.plugin.html#queue">queue</a>, <a href="../symbols/minplayer.plugin.html#triggered">triggered</a></dd>
+				</dl>
+				
+			
+
+<!-- ============================== methods summary ======================== -->
+			
+				
+				
+				<table class="summaryTable" cellspacing="0" summary="A summary of the methods documented in the class osmplayer.pager.">
+					<caption>Method Summary</caption>
+					<thead>
+						<tr>
+							<th scope="col">Method Attributes</th>
+							<th scope="col">Method Name and Description</th>
+						</tr>
+					</thead>
+					<tbody>
+					
+						<tr>
+							<td class="attributes">&nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont"><b><a href="../symbols/osmplayer.pager.html#construct">construct</a></b>()
+								</div>
+								<div class="description"></div>
+							</td>
+						</tr>
+					
+					</tbody>
+				</table>
+				
+				
+				
+				<dl class="inheritsList">
+				<dt>Methods borrowed from class <a href="../symbols/minplayer.display.html">minplayer.display</a>: </dt><dd><a href="../symbols/minplayer.display.html#fullscreen">fullscreen</a>, <a href="../symbols/minplayer.display.html#fullScreenElement">fullScreenElement</a>, <a href="../symbols/minplayer.display.html#getDisplay">getDisplay</a>, <a href="../symbols/minplayer.display.html#getElements">getElements</a>, <a href="../symbols/minplayer.display.html#getScaledRect">getScaledRect</a>, <a href="../symbols/minplayer.display.html#hide">hide</a>, <a href="../symbols/minplayer.display.html#isFullScreen">isFullScreen</a>, <a href="../symbols/minplayer.display.html#onFocus">onFocus</a>, <a href="../symbols/minplayer.display.html#toggleFullScreen">toggleFullScreen</a></dd><dt>Methods borrowed from class <a href="../symbols/minplayer.plugin.html">minplayer.plugin</a>: </dt><dd><a href="../symbols/minplayer.plugin.html#addPlugin">addPlugin</a>, <a href="../symbols/minplayer.plugin.html#bind">bind</a>, <a href="../symbols/minplayer.plugin.html#checkQueue">checkQueue</a>, <a href="../symbols/minplayer.plugin.html#create">create</a>, <a href="../symbols/minplayer.plugin.html#destroy">destroy</a>, <a href="../symbols/minplayer.plugin.html#get">get</a>, <a href="../symbols/minplayer.plugin.html#isValid">isValid</a>, <a href="../symbols/minplayer.plugin.html#poll">poll</a>, <a href="../symbols/minplayer.plugin.html#ready">ready</a>, <a href="../symbols/minplayer.plugin.html#trigger">trigger</a>, <a href="../symbols/minplayer.plugin.html#unbind">unbind</a></dd>
+				</dl>
+				
+			
+<!-- ============================== events summary ======================== -->
+			
+
+<!-- ============================== constructor details ==================== -->		
+			
+			<div class="details"><a name="constructor"> </a>
+				<div class="sectionTitle">
+					Class Detail
+				</div>
+				
+				<div class="fixedFont">
+						<b>osmplayer.pager</b>(context, options)
+				</div>
+				
+				<div class="description">
+					
+					
+				</div>
+				
+				
+				
+				
+					
+						<dl class="detailList">
+						<dt class="heading">Parameters:</dt>
+						
+							<dt>
+								<span class="light fixedFont">{object}</span>  <b>context</b>
+								
+							</dt>
+								<dd>The jQuery context.</dd>
+						
+							<dt>
+								<span class="light fixedFont">{object}</span>  <b>options</b>
+								
+							</dt>
+								<dd>This components options.</dd>
+						
+						</dl>
+					
+					
+					
+					
+					
+					
+					
+
+			</div>
+			
+
+<!-- ============================== field details ========================== -->		
+			
+				<div class="sectionTitle">
+					Field Detail
+				</div>
+				
+					<a name="constructor"> </a>
+					<div class="fixedFont">
+					
+					
+					<b>constructor</b>
+					
+					</div>
+					<div class="description">
+						Reset the constructor.
+						
+						
+					</div>
+					
+					
+
+						
+						
+						
+						
+
+					
+				
+			
+
+<!-- ============================== method details ========================= -->		
+			
+				<div class="sectionTitle">
+					Method Detail
+				</div>
+				
+					<a name="construct"> </a>
+					<div class="fixedFont">
+					
+					
+					<b>construct</b>()
+					
+					</div>
+					<div class="description">
+						
+						
+						
+					</div>
+					
+					
+					
+						
+						
+						
+						
+						
+						
+						
+							<dl class="detailList">
+							<dt class="heading">See:</dt>
+							
+								<dd><a href="../symbols/minplayer.plugin.html#construct">minplayer.plugin#construct</a></dd>
+							
+							</dl>
+						
+
+					
+				
+			
+			
+<!-- ============================== event details ========================= -->		
+			
+			
+			<hr />
+		</div>
+
+		
+<!-- ============================== footer ================================= -->
+		<div class="fineprint" style="clear:both">
+			
+			Documentation generated by <a href="http://code.google.com/p/jsdoc-toolkit/" target="_blank">JsDoc Toolkit</a> 2.4.0 on Sun Aug 19 2012 12:11:28 GMT-0500 (CDT)
+		</div>
+	</body>
+</html>
diff --git a/public/admin/js/osmplayer/doc/symbols/osmplayer.playlist.html b/public/admin/js/osmplayer/doc/symbols/osmplayer.playlist.html
new file mode 100644
index 00000000000..e045860c320
--- /dev/null
+++ b/public/admin/js/osmplayer/doc/symbols/osmplayer.playlist.html
@@ -0,0 +1,981 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+        "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+	<head>
+		<meta http-equiv="content-type" content="text/html; charset=utf-8" />
+		<meta name="generator" content="JsDoc Toolkit" />
+		
+		<title>JsDoc Reference - osmplayer.playlist</title>
+
+		<style type="text/css">
+			/* default.css */
+body
+{
+	font: 12px "Lucida Grande", Tahoma, Arial, Helvetica, sans-serif;
+	width: 800px;
+}
+
+.header
+{
+	clear: both;
+	background-color: #ccc;
+	padding: 8px;
+}
+
+h1
+{
+	font-size: 150%;
+	font-weight: bold;
+	padding: 0;
+	margin: 1em 0 0 .3em;
+}
+
+hr
+{
+	border: none 0;
+	border-top: 1px solid #7F8FB1;
+	height: 1px;
+}
+
+pre.code
+{
+	display: block;
+	padding: 8px;
+	border: 1px dashed #ccc;
+}
+
+#index
+{
+	margin-top: 24px;
+	float: left;
+	width: 160px;
+	position: absolute;
+	left: 8px;
+	background-color: #F3F3F3;
+	padding: 8px;
+}
+
+#content
+{
+	margin-left: 190px;
+	width: 600px;
+}
+
+.classList
+{
+	list-style-type: none;
+	padding: 0;
+	margin: 0 0 0 8px;
+	font-family: arial, sans-serif;
+	font-size: 1em;
+	overflow: auto;
+}
+
+.classList li
+{
+	padding: 0;
+	margin: 0 0 8px 0;
+}
+
+.summaryTable { width: 100%; }
+
+h1.classTitle
+{
+	font-size:170%;
+	line-height:130%;
+}
+
+h2 { font-size: 110%; }
+caption, div.sectionTitle
+{
+	background-color: #7F8FB1;
+	color: #fff;
+	font-size:130%;
+	text-align: left;
+	padding: 2px 6px 2px 6px;
+	border: 1px #7F8FB1 solid;
+}
+
+div.sectionTitle { margin-bottom: 8px; }
+.summaryTable thead { display: none; }
+
+.summaryTable td
+{
+	vertical-align: top;
+	padding: 4px;
+	border-bottom: 1px #7F8FB1 solid;
+	border-right: 1px #7F8FB1 solid;
+}
+
+/*col#summaryAttributes {}*/
+.summaryTable td.attributes
+{
+	border-left: 1px #7F8FB1 solid;
+	width: 140px;
+	text-align: right;
+}
+
+td.attributes, .fixedFont
+{
+	line-height: 15px;
+	color: #002EBE;
+	font-family: "Courier New",Courier,monospace;
+	font-size: 13px;
+}
+
+.summaryTable td.nameDescription
+{
+	text-align: left;
+	font-size: 13px;
+	line-height: 15px;
+}
+
+.summaryTable td.nameDescription, .description
+{
+	line-height: 15px;
+	padding: 4px;
+	padding-left: 4px;
+}
+
+.summaryTable { margin-bottom: 8px; }
+
+ul.inheritsList
+{
+	list-style: square;
+	margin-left: 20px;
+	padding-left: 0;
+}
+
+.detailList {
+	margin-left: 20px; 
+	line-height: 15px;
+}
+.detailList dt { margin-left: 20px; }
+
+.detailList .heading
+{
+	font-weight: bold;
+	padding-bottom: 6px;
+	margin-left: 0;
+}
+
+.light, td.attributes, .light a:link, .light a:visited
+{
+	color: #777;
+	font-style: italic;
+}
+
+.fineprint
+{
+	text-align: right;
+	font-size: 10px;
+}
+		</style>
+	</head>
+
+	<body>
+<!-- ============================== header ================================= -->	
+		<!-- begin static/header.html -->
+		<div id="header">
+</div>
+		<!-- end static/header.html -->
+
+<!-- ============================== classes index ============================ -->
+		<div id="index">
+			<!-- begin publish.classesIndex -->
+			<div align="center"><a href="../index.html">Class Index</a>
+| <a href="../files.html">File Index</a></div>
+<hr />
+<h2>Classes</h2>
+<ul class="classList">
+	
+	<li><i><a href="../symbols/_global_.html">_global_</a></i></li>
+	
+	<li><a href="../symbols/jQuery.fn.minplayer.html">jQuery.fn.minplayer</a></li>
+	
+	<li><a href="../symbols/jQuery.fn.osmplayer.html">jQuery.fn.osmplayer</a></li>
+	
+	<li><a href="../symbols/minplayer.async.html">minplayer.async</a></li>
+	
+	<li><a href="../symbols/minplayer.compatibility.html">minplayer.compatibility</a></li>
+	
+	<li><a href="../symbols/minplayer.display.html">minplayer.display</a></li>
+	
+	<li><a href="../symbols/minplayer.file.html">minplayer.file</a></li>
+	
+	<li><a href="../symbols/minplayer.flags.html">minplayer.flags</a></li>
+	
+	<li><a href="../symbols/minplayer.image.html">minplayer.image</a></li>
+	
+	<li><a href="../symbols/minplayer.players.base.html">minplayer.players.base</a></li>
+	
+	<li><a href="../symbols/minplayer.players.flash.html">minplayer.players.flash</a></li>
+	
+	<li><a href="../symbols/minplayer.players.html5.html">minplayer.players.html5</a></li>
+	
+	<li><a href="../symbols/minplayer.players.minplayer.html">minplayer.players.minplayer</a></li>
+	
+	<li><a href="../symbols/minplayer.players.vimeo.html">minplayer.players.vimeo</a></li>
+	
+	<li><a href="../symbols/minplayer.players.youtube.html">minplayer.players.youtube</a></li>
+	
+	<li><a href="../symbols/minplayer.plugin.html">minplayer.plugin</a></li>
+	
+	<li><a href="../symbols/osmplayer.html">osmplayer</a></li>
+	
+	<li><a href="../symbols/osmplayer.pager.html">osmplayer.pager</a></li>
+	
+	<li><a href="../symbols/osmplayer.playlist.html">osmplayer.playlist</a></li>
+	
+	<li><a href="../symbols/osmplayer.teaser.html">osmplayer.teaser</a></li>
+	
+</ul>
+<hr />
+			<!-- end publish.classesIndex -->
+		</div>
+		
+		<div id="content">
+<!-- ============================== class title ============================ -->
+			<h1 class="classTitle">
+				
+				Class osmplayer.playlist
+			</h1>
+
+<!-- ============================== class summary ========================== -->			
+			<p class="description">
+				
+				<br />Extends
+					<a href="../symbols/minplayer.display.html">minplayer.display</a>.<br />
+				
+			
+				This class creates the playlist functionality for the minplayer.
+				
+				
+					<br /><i>Defined in: </i> <a href="../symbols/src/src_osmplayer.playlist.js.html">osmplayer.playlist.js</a>.
+				
+			</p>
+
+<!-- ============================== constructor summary ==================== -->			
+			
+			<table class="summaryTable" cellspacing="0" summary="A summary of the constructor documented in the class osmplayer.playlist.">
+				<caption>Class Summary</caption>
+				<thead>
+					<tr>
+						<th scope="col">Constructor Attributes</th>
+						<th scope="col">Constructor Name and Description</th>
+					</tr>
+				</thead>
+				<tbody>
+					<tr>
+						<td class="attributes">&nbsp;</td>
+						<td class="nameDescription" >
+							<div class="fixedFont">
+								<b><a href="../symbols/osmplayer.playlist.html#constructor">osmplayer.playlist</a></b>(context, options)
+							</div>
+							<div class="description"></div>
+						</td>
+					</tr>
+				</tbody>
+			</table>
+			
+
+<!-- ============================== properties summary ===================== -->
+			
+				
+				
+				<table class="summaryTable" cellspacing="0" summary="A summary of the fields documented in the class osmplayer.playlist.">
+					<caption>Field Summary</caption>
+					<thead>
+						<tr>
+							<th scope="col">Field Attributes</th>
+							<th scope="col">Field Name and Description</th>
+						</tr>
+					</thead>
+					<tbody>
+					
+						<tr>
+							<td class="attributes">&nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont">
+								<b><a href="../symbols/osmplayer.playlist.html#constructor">constructor</a></b>
+								</div>
+								<div class="description">Reset the constructor.</div>
+							</td>
+						</tr>
+					
+						<tr>
+							<td class="attributes">&nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont">
+								<b><a href="../symbols/osmplayer.playlist.html#nodes">nodes</a></b>
+								</div>
+								<div class="description">The nodes within this playlist.</div>
+							</td>
+						</tr>
+					
+					</tbody>
+				</table>
+				
+				
+				
+				<dl class="inheritsList">
+				<dt>Fields borrowed from class <a href="../symbols/minplayer.display.html">minplayer.display</a>: </dt><dd><a href="../symbols/minplayer.display.html#onResize">onResize</a></dd><dt>Fields borrowed from class <a href="../symbols/minplayer.plugin.html">minplayer.plugin</a>: </dt><dd><a href="../symbols/minplayer.plugin.html#active">active</a>, <a href="../symbols/minplayer.plugin.html#context">context</a>, <a href="../symbols/minplayer.plugin.html#lock">lock</a>, <a href="../symbols/minplayer.plugin.html#name">name</a>, <a href="../symbols/minplayer.plugin.html#options">options</a>, <a href="../symbols/minplayer.plugin.html#pluginReady">pluginReady</a>, <a href="../symbols/minplayer.plugin.html#queue">queue</a>, <a href="../symbols/minplayer.plugin.html#triggered">triggered</a></dd>
+				</dl>
+				
+			
+
+<!-- ============================== methods summary ======================== -->
+			
+				
+				
+				<table class="summaryTable" cellspacing="0" summary="A summary of the methods documented in the class osmplayer.playlist.">
+					<caption>Method Summary</caption>
+					<thead>
+						<tr>
+							<th scope="col">Method Attributes</th>
+							<th scope="col">Method Name and Description</th>
+						</tr>
+					</thead>
+					<tbody>
+					
+						<tr>
+							<td class="attributes">&nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont"><b><a href="../symbols/osmplayer.playlist.html#construct">construct</a></b>()
+								</div>
+								<div class="description"></div>
+							</td>
+						</tr>
+					
+						<tr>
+							<td class="attributes">&nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont"><b><a href="../symbols/osmplayer.playlist.html#load">load</a></b>(page, loadIndex)
+								</div>
+								<div class="description">Loads a playlist.</div>
+							</td>
+						</tr>
+					
+						<tr>
+							<td class="attributes">&nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont"><b><a href="../symbols/osmplayer.playlist.html#loadItem">loadItem</a></b>(index)
+								</div>
+								<div class="description">Loads a playlist node.</div>
+							</td>
+						</tr>
+					
+						<tr>
+							<td class="attributes">&nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont"><b><a href="../symbols/osmplayer.playlist.html#next">next</a></b>()
+								</div>
+								<div class="description">Loads the next item.</div>
+							</td>
+						</tr>
+					
+						<tr>
+							<td class="attributes">&nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont"><b><a href="../symbols/osmplayer.playlist.html#nextPage">nextPage</a></b>(loadIndex)
+								</div>
+								<div class="description">Loads the next page.</div>
+							</td>
+						</tr>
+					
+						<tr>
+							<td class="attributes">&nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont"><b><a href="../symbols/osmplayer.playlist.html#prev">prev</a></b>()
+								</div>
+								<div class="description">Loads the previous item.</div>
+							</td>
+						</tr>
+					
+						<tr>
+							<td class="attributes">&nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont"><b><a href="../symbols/osmplayer.playlist.html#prevPage">prevPage</a></b>(loadIndex)
+								</div>
+								<div class="description">Loads the previous page.</div>
+							</td>
+						</tr>
+					
+						<tr>
+							<td class="attributes">&nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont"><b><a href="../symbols/osmplayer.playlist.html#refreshScroll">refreshScroll</a></b>()
+								</div>
+								<div class="description">Refresh the scrollbar.</div>
+							</td>
+						</tr>
+					
+						<tr>
+							<td class="attributes">&nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont"><b><a href="../symbols/osmplayer.playlist.html#scrollTo">scrollTo</a></b>(pos, relative)
+								</div>
+								<div class="description">Wrapper around the scroll scrollTo method.</div>
+							</td>
+						</tr>
+					
+						<tr>
+							<td class="attributes">&nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont"><b><a href="../symbols/osmplayer.playlist.html#set">set</a></b>(playlist, loadIndex)
+								</div>
+								<div class="description">Sets the playlist.</div>
+							</td>
+						</tr>
+					
+						<tr>
+							<td class="attributes">&nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont"><b><a href="../symbols/osmplayer.playlist.html#setQueue">setQueue</a></b>()
+								</div>
+								<div class="description">Stores the current playlist state in the playqueue.</div>
+							</td>
+						</tr>
+					
+					</tbody>
+				</table>
+				
+				
+				
+				<dl class="inheritsList">
+				<dt>Methods borrowed from class <a href="../symbols/minplayer.display.html">minplayer.display</a>: </dt><dd><a href="../symbols/minplayer.display.html#fullscreen">fullscreen</a>, <a href="../symbols/minplayer.display.html#fullScreenElement">fullScreenElement</a>, <a href="../symbols/minplayer.display.html#getDisplay">getDisplay</a>, <a href="../symbols/minplayer.display.html#getElements">getElements</a>, <a href="../symbols/minplayer.display.html#getScaledRect">getScaledRect</a>, <a href="../symbols/minplayer.display.html#hide">hide</a>, <a href="../symbols/minplayer.display.html#isFullScreen">isFullScreen</a>, <a href="../symbols/minplayer.display.html#onFocus">onFocus</a>, <a href="../symbols/minplayer.display.html#toggleFullScreen">toggleFullScreen</a></dd><dt>Methods borrowed from class <a href="../symbols/minplayer.plugin.html">minplayer.plugin</a>: </dt><dd><a href="../symbols/minplayer.plugin.html#addPlugin">addPlugin</a>, <a href="../symbols/minplayer.plugin.html#bind">bind</a>, <a href="../symbols/minplayer.plugin.html#checkQueue">checkQueue</a>, <a href="../symbols/minplayer.plugin.html#create">create</a>, <a href="../symbols/minplayer.plugin.html#destroy">destroy</a>, <a href="../symbols/minplayer.plugin.html#get">get</a>, <a href="../symbols/minplayer.plugin.html#isValid">isValid</a>, <a href="../symbols/minplayer.plugin.html#poll">poll</a>, <a href="../symbols/minplayer.plugin.html#ready">ready</a>, <a href="../symbols/minplayer.plugin.html#trigger">trigger</a>, <a href="../symbols/minplayer.plugin.html#unbind">unbind</a></dd>
+				</dl>
+				
+			
+<!-- ============================== events summary ======================== -->
+			
+
+<!-- ============================== constructor details ==================== -->		
+			
+			<div class="details"><a name="constructor"> </a>
+				<div class="sectionTitle">
+					Class Detail
+				</div>
+				
+				<div class="fixedFont">
+						<b>osmplayer.playlist</b>(context, options)
+				</div>
+				
+				<div class="description">
+					
+					
+				</div>
+				
+				
+				
+				
+					
+						<dl class="detailList">
+						<dt class="heading">Parameters:</dt>
+						
+							<dt>
+								<span class="light fixedFont">{object}</span>  <b>context</b>
+								
+							</dt>
+								<dd>The jQuery context.</dd>
+						
+							<dt>
+								<span class="light fixedFont">{object}</span>  <b>options</b>
+								
+							</dt>
+								<dd>This components options.</dd>
+						
+						</dl>
+					
+					
+					
+					
+					
+					
+					
+
+			</div>
+			
+
+<!-- ============================== field details ========================== -->		
+			
+				<div class="sectionTitle">
+					Field Detail
+				</div>
+				
+					<a name="constructor"> </a>
+					<div class="fixedFont">
+					
+					
+					<b>constructor</b>
+					
+					</div>
+					<div class="description">
+						Reset the constructor.
+						
+						
+					</div>
+					
+					
+
+						
+						
+						
+						
+
+					<hr />
+				
+					<a name="nodes"> </a>
+					<div class="fixedFont">
+					
+					
+					<b>nodes</b>
+					
+					</div>
+					<div class="description">
+						The nodes within this playlist.
+						
+						
+					</div>
+					
+					
+
+						
+						
+						
+						
+
+					
+				
+			
+
+<!-- ============================== method details ========================= -->		
+			
+				<div class="sectionTitle">
+					Method Detail
+				</div>
+				
+					<a name="construct"> </a>
+					<div class="fixedFont">
+					
+					
+					<b>construct</b>()
+					
+					</div>
+					<div class="description">
+						
+						
+						
+					</div>
+					
+					
+					
+						
+						
+						
+						
+						
+						
+						
+							<dl class="detailList">
+							<dt class="heading">See:</dt>
+							
+								<dd><a href="../symbols/minplayer.plugin.html#construct">minplayer.plugin#construct</a></dd>
+							
+							</dl>
+						
+
+					<hr />
+				
+					<a name="load"> </a>
+					<div class="fixedFont">
+					
+					<span class="light">{boolean}</span>
+					<b>load</b>(page, loadIndex)
+					
+					</div>
+					<div class="description">
+						Loads a playlist.
+						
+						
+					</div>
+					
+					
+					
+						
+							<dl class="detailList">
+							<dt class="heading">Parameters:</dt>
+							
+								<dt>
+									<span class="light fixedFont">{integer}</span> <b>page</b>
+									
+								</dt>
+								<dd>The page to load.</dd>
+							
+								<dt>
+									<span class="light fixedFont">{integer}</span> <b>loadIndex</b>
+									
+								</dt>
+								<dd>The index of the item to load.</dd>
+							
+							</dl>
+						
+						
+						
+						
+						
+							<dl class="detailList">
+							<dt class="heading">Returns:</dt>
+							
+								<dd><span class="light fixedFont">{boolean}</span> TRUE if loaded, FALSE if not.</dd>
+							
+							</dl>
+						
+						
+						
+
+					<hr />
+				
+					<a name="loadItem"> </a>
+					<div class="fixedFont">
+					
+					<span class="light">{boolean}</span>
+					<b>loadItem</b>(index)
+					
+					</div>
+					<div class="description">
+						Loads a playlist node.
+						
+						
+					</div>
+					
+					
+					
+						
+							<dl class="detailList">
+							<dt class="heading">Parameters:</dt>
+							
+								<dt>
+									<span class="light fixedFont">{number}</span> <b>index</b>
+									
+								</dt>
+								<dd>The index of the item you would like to load.</dd>
+							
+							</dl>
+						
+						
+						
+						
+						
+							<dl class="detailList">
+							<dt class="heading">Returns:</dt>
+							
+								<dd><span class="light fixedFont">{boolean}</span> TRUE if loaded, FALSE if not.</dd>
+							
+							</dl>
+						
+						
+						
+
+					<hr />
+				
+					<a name="next"> </a>
+					<div class="fixedFont">
+					
+					<span class="light">{boolean}</span>
+					<b>next</b>()
+					
+					</div>
+					<div class="description">
+						Loads the next item.
+						
+						
+					</div>
+					
+					
+					
+						
+						
+						
+						
+						
+							<dl class="detailList">
+							<dt class="heading">Returns:</dt>
+							
+								<dd><span class="light fixedFont">{boolean}</span> TRUE if loaded, FALSE if not.</dd>
+							
+							</dl>
+						
+						
+						
+
+					<hr />
+				
+					<a name="nextPage"> </a>
+					<div class="fixedFont">
+					
+					<span class="light">{boolean}</span>
+					<b>nextPage</b>(loadIndex)
+					
+					</div>
+					<div class="description">
+						Loads the next page.
+						
+						
+					</div>
+					
+					
+					
+						
+							<dl class="detailList">
+							<dt class="heading">Parameters:</dt>
+							
+								<dt>
+									<span class="light fixedFont">{integer}</span> <b>loadIndex</b>
+									
+								</dt>
+								<dd>The index of the item to load.</dd>
+							
+							</dl>
+						
+						
+						
+						
+						
+							<dl class="detailList">
+							<dt class="heading">Returns:</dt>
+							
+								<dd><span class="light fixedFont">{boolean}</span> TRUE if loaded, FALSE if not.</dd>
+							
+							</dl>
+						
+						
+						
+
+					<hr />
+				
+					<a name="prev"> </a>
+					<div class="fixedFont">
+					
+					<span class="light">{boolean}</span>
+					<b>prev</b>()
+					
+					</div>
+					<div class="description">
+						Loads the previous item.
+						
+						
+					</div>
+					
+					
+					
+						
+						
+						
+						
+						
+							<dl class="detailList">
+							<dt class="heading">Returns:</dt>
+							
+								<dd><span class="light fixedFont">{boolean}</span> TRUE if loaded, FALSE if not.</dd>
+							
+							</dl>
+						
+						
+						
+
+					<hr />
+				
+					<a name="prevPage"> </a>
+					<div class="fixedFont">
+					
+					<span class="light">{boolean}</span>
+					<b>prevPage</b>(loadIndex)
+					
+					</div>
+					<div class="description">
+						Loads the previous page.
+						
+						
+					</div>
+					
+					
+					
+						
+							<dl class="detailList">
+							<dt class="heading">Parameters:</dt>
+							
+								<dt>
+									<span class="light fixedFont">{integer}</span> <b>loadIndex</b>
+									
+								</dt>
+								<dd>The index of the item to load.</dd>
+							
+							</dl>
+						
+						
+						
+						
+						
+							<dl class="detailList">
+							<dt class="heading">Returns:</dt>
+							
+								<dd><span class="light fixedFont">{boolean}</span> TRUE if loaded, FALSE if not.</dd>
+							
+							</dl>
+						
+						
+						
+
+					<hr />
+				
+					<a name="refreshScroll"> </a>
+					<div class="fixedFont">
+					
+					
+					<b>refreshScroll</b>()
+					
+					</div>
+					<div class="description">
+						Refresh the scrollbar.
+						
+						
+					</div>
+					
+					
+					
+						
+						
+						
+						
+						
+						
+						
+
+					<hr />
+				
+					<a name="scrollTo"> </a>
+					<div class="fixedFont">
+					
+					
+					<b>scrollTo</b>(pos, relative)
+					
+					</div>
+					<div class="description">
+						Wrapper around the scroll scrollTo method.
+						
+						
+					</div>
+					
+					
+					
+						
+							<dl class="detailList">
+							<dt class="heading">Parameters:</dt>
+							
+								<dt>
+									<span class="light fixedFont">{number}</span> <b>pos</b>
+									
+								</dt>
+								<dd>The position you would like to set the list.</dd>
+							
+								<dt>
+									<span class="light fixedFont">{boolean}</span> <b>relative</b>
+									
+								</dt>
+								<dd>If this is a relative position change.</dd>
+							
+							</dl>
+						
+						
+						
+						
+						
+						
+						
+
+					<hr />
+				
+					<a name="set"> </a>
+					<div class="fixedFont">
+					
+					
+					<b>set</b>(playlist, loadIndex)
+					
+					</div>
+					<div class="description">
+						Sets the playlist.
+						
+						
+					</div>
+					
+					
+					
+						
+							<dl class="detailList">
+							<dt class="heading">Parameters:</dt>
+							
+								<dt>
+									<span class="light fixedFont">{object}</span> <b>playlist</b>
+									
+								</dt>
+								<dd>The playlist object.</dd>
+							
+								<dt>
+									<span class="light fixedFont">{integer}</span> <b>loadIndex</b>
+									
+								</dt>
+								<dd>The index of the item to load.</dd>
+							
+							</dl>
+						
+						
+						
+						
+						
+						
+						
+
+					<hr />
+				
+					<a name="setQueue"> </a>
+					<div class="fixedFont">
+					
+					
+					<b>setQueue</b>()
+					
+					</div>
+					<div class="description">
+						Stores the current playlist state in the playqueue.
+						
+						
+					</div>
+					
+					
+					
+						
+						
+						
+						
+						
+						
+						
+
+					
+				
+			
+			
+<!-- ============================== event details ========================= -->		
+			
+			
+			<hr />
+		</div>
+
+		
+<!-- ============================== footer ================================= -->
+		<div class="fineprint" style="clear:both">
+			
+			Documentation generated by <a href="http://code.google.com/p/jsdoc-toolkit/" target="_blank">JsDoc Toolkit</a> 2.4.0 on Sun Aug 19 2012 12:11:28 GMT-0500 (CDT)
+		</div>
+	</body>
+</html>
diff --git a/public/admin/js/osmplayer/doc/symbols/osmplayer.scroll.html b/public/admin/js/osmplayer/doc/symbols/osmplayer.scroll.html
new file mode 100644
index 00000000000..7f018d42f10
--- /dev/null
+++ b/public/admin/js/osmplayer/doc/symbols/osmplayer.scroll.html
@@ -0,0 +1,743 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+        "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+	<head>
+		<meta http-equiv="content-type" content="text/html; charset=utf-8" />
+		<meta name="generator" content="JsDoc Toolkit" />
+		
+		<title>JsDoc Reference - osmplayer.scroll</title>
+
+		<style type="text/css">
+			/* default.css */
+body
+{
+	font: 12px "Lucida Grande", Tahoma, Arial, Helvetica, sans-serif;
+	width: 800px;
+}
+
+.header
+{
+	clear: both;
+	background-color: #ccc;
+	padding: 8px;
+}
+
+h1
+{
+	font-size: 150%;
+	font-weight: bold;
+	padding: 0;
+	margin: 1em 0 0 .3em;
+}
+
+hr
+{
+	border: none 0;
+	border-top: 1px solid #7F8FB1;
+	height: 1px;
+}
+
+pre.code
+{
+	display: block;
+	padding: 8px;
+	border: 1px dashed #ccc;
+}
+
+#index
+{
+	margin-top: 24px;
+	float: left;
+	width: 160px;
+	position: absolute;
+	left: 8px;
+	background-color: #F3F3F3;
+	padding: 8px;
+}
+
+#content
+{
+	margin-left: 190px;
+	width: 600px;
+}
+
+.classList
+{
+	list-style-type: none;
+	padding: 0;
+	margin: 0 0 0 8px;
+	font-family: arial, sans-serif;
+	font-size: 1em;
+	overflow: auto;
+}
+
+.classList li
+{
+	padding: 0;
+	margin: 0 0 8px 0;
+}
+
+.summaryTable { width: 100%; }
+
+h1.classTitle
+{
+	font-size:170%;
+	line-height:130%;
+}
+
+h2 { font-size: 110%; }
+caption, div.sectionTitle
+{
+	background-color: #7F8FB1;
+	color: #fff;
+	font-size:130%;
+	text-align: left;
+	padding: 2px 6px 2px 6px;
+	border: 1px #7F8FB1 solid;
+}
+
+div.sectionTitle { margin-bottom: 8px; }
+.summaryTable thead { display: none; }
+
+.summaryTable td
+{
+	vertical-align: top;
+	padding: 4px;
+	border-bottom: 1px #7F8FB1 solid;
+	border-right: 1px #7F8FB1 solid;
+}
+
+/*col#summaryAttributes {}*/
+.summaryTable td.attributes
+{
+	border-left: 1px #7F8FB1 solid;
+	width: 140px;
+	text-align: right;
+}
+
+td.attributes, .fixedFont
+{
+	line-height: 15px;
+	color: #002EBE;
+	font-family: "Courier New",Courier,monospace;
+	font-size: 13px;
+}
+
+.summaryTable td.nameDescription
+{
+	text-align: left;
+	font-size: 13px;
+	line-height: 15px;
+}
+
+.summaryTable td.nameDescription, .description
+{
+	line-height: 15px;
+	padding: 4px;
+	padding-left: 4px;
+}
+
+.summaryTable { margin-bottom: 8px; }
+
+ul.inheritsList
+{
+	list-style: square;
+	margin-left: 20px;
+	padding-left: 0;
+}
+
+.detailList {
+	margin-left: 20px; 
+	line-height: 15px;
+}
+.detailList dt { margin-left: 20px; }
+
+.detailList .heading
+{
+	font-weight: bold;
+	padding-bottom: 6px;
+	margin-left: 0;
+}
+
+.light, td.attributes, .light a:link, .light a:visited
+{
+	color: #777;
+	font-style: italic;
+}
+
+.fineprint
+{
+	text-align: right;
+	font-size: 10px;
+}
+		</style>
+	</head>
+
+	<body>
+<!-- ============================== header ================================= -->	
+		<!-- begin static/header.html -->
+		<div id="header">
+</div>
+		<!-- end static/header.html -->
+
+<!-- ============================== classes index ============================ -->
+		<div id="index">
+			<!-- begin publish.classesIndex -->
+			<div align="center"><a href="../index.html">Class Index</a>
+| <a href="../files.html">File Index</a></div>
+<hr />
+<h2>Classes</h2>
+<ul class="classList">
+	
+	<li><i><a href="../symbols/_global_.html">_global_</a></i></li>
+	
+	<li><a href="../symbols/jQuery.fn.minplayer.html">jQuery.fn.minplayer</a></li>
+	
+	<li><a href="../symbols/jQuery.fn.osmplayer.html">jQuery.fn.osmplayer</a></li>
+	
+	<li><a href="../symbols/minplayer.async.html">minplayer.async</a></li>
+	
+	<li><a href="../symbols/minplayer.compatibility.html">minplayer.compatibility</a></li>
+	
+	<li><a href="../symbols/minplayer.display.html">minplayer.display</a></li>
+	
+	<li><a href="../symbols/minplayer.file.html">minplayer.file</a></li>
+	
+	<li><a href="../symbols/minplayer.flags.html">minplayer.flags</a></li>
+	
+	<li><a href="../symbols/minplayer.image.html">minplayer.image</a></li>
+	
+	<li><a href="../symbols/minplayer.players.base.html">minplayer.players.base</a></li>
+	
+	<li><a href="../symbols/minplayer.players.flash.html">minplayer.players.flash</a></li>
+	
+	<li><a href="../symbols/minplayer.players.html5.html">minplayer.players.html5</a></li>
+	
+	<li><a href="../symbols/minplayer.players.minplayer.html">minplayer.players.minplayer</a></li>
+	
+	<li><a href="../symbols/minplayer.players.vimeo.html">minplayer.players.vimeo</a></li>
+	
+	<li><a href="../symbols/minplayer.players.youtube.html">minplayer.players.youtube</a></li>
+	
+	<li><a href="../symbols/minplayer.plugin.html">minplayer.plugin</a></li>
+	
+	<li><a href="../symbols/osmplayer.html">osmplayer</a></li>
+	
+	<li><a href="../symbols/osmplayer.pager.html">osmplayer.pager</a></li>
+	
+	<li><a href="../symbols/osmplayer.playlist.html">osmplayer.playlist</a></li>
+	
+	<li><a href="../symbols/osmplayer.scroll.html">osmplayer.scroll</a></li>
+	
+	<li><a href="../symbols/osmplayer.teaser.html">osmplayer.teaser</a></li>
+	
+</ul>
+<hr />
+			<!-- end publish.classesIndex -->
+		</div>
+		
+		<div id="content">
+<!-- ============================== class title ============================ -->
+			<h1 class="classTitle">
+				
+				Class osmplayer.scroll
+			</h1>
+
+<!-- ============================== class summary ========================== -->			
+			<p class="description">
+				
+				<br />Extends
+					<a href="../symbols/minplayer.display.html">minplayer.display</a>.<br />
+				
+			
+				This class provides the scroll functionality for the playlists.
+
+We can calculate how the scrollbar controls the playlist using the
+following diagram / equations.
+ ___ ____________
+ |  |            |\
+ |  |    list    | \
+ |  |            |y \
+ |  |            |   \
+ |  |____________|    \ _ _____
+ |  |            |\    | |    |
+ |  |            | \   | |    |
+ |  |            |  \  | |x   |
+ |  |            |   \ | |    |
+ |  |            |    \|_|_   |
+ |  |            |     | | |  |
+ l  |   window   |     | | h  w
+ |  |            |     |_|_|  |
+ |  |            |    /| |    |
+ |  |            |   / | |    |
+ |  |            |  / v| |    |
+ |  |            | /   | |    |
+ |  |____________|/    |_|____|
+ |  |            |    /
+ |  |            |   /
+ |  |            |  /
+ |  |            | /
+ |__|____________|/
+
+ l - The list height.
+ h - Handle Bar height.
+ w - Window height.
+ x - The distance from top of window to the top of the handle.
+ y - The disatnce from the top of the list to the top of the window.
+ v - The distance from bottom of window to the bottom of the handle.
+
+ jQuery UI provides "v".  We already know "l", "h", "w".  We can then
+ calculate the relationship between the scroll bar handle position to the
+ list position using the following equations.
+
+ x = (w - (v + h))
+ y = ((l - w)/(w - h)) * x
+
+  -- or --
+
+ y = ((l - w)/(w - h)) * (w - (v + h))
+
+ We can statically calculate the ((l - w)/(w - h)) as a ratio and use
+ that to speed up calculations as follows.
+
+ ratio = ((l - w)/(w - h));
+
+ So, our translation equations are as follows...
+
+   y = ratio * (w - (v + h))
+   v = w - (h + (y / ratio))
+				
+				
+					<br /><i>Defined in: </i> <a href="../symbols/src/src_osmplayer.scroll.js.html">osmplayer.scroll.js</a>.
+				
+			</p>
+
+<!-- ============================== constructor summary ==================== -->			
+			
+			<table class="summaryTable" cellspacing="0" summary="A summary of the constructor documented in the class osmplayer.scroll.">
+				<caption>Class Summary</caption>
+				<thead>
+					<tr>
+						<th scope="col">Constructor Attributes</th>
+						<th scope="col">Constructor Name and Description</th>
+					</tr>
+				</thead>
+				<tbody>
+					<tr>
+						<td class="attributes">&nbsp;</td>
+						<td class="nameDescription" >
+							<div class="fixedFont">
+								<b><a href="../symbols/osmplayer.scroll.html#constructor">osmplayer.scroll</a></b>(context, options)
+							</div>
+							<div class="description"></div>
+						</td>
+					</tr>
+				</tbody>
+			</table>
+			
+
+<!-- ============================== properties summary ===================== -->
+			
+				
+				
+				<table class="summaryTable" cellspacing="0" summary="A summary of the fields documented in the class osmplayer.scroll.">
+					<caption>Field Summary</caption>
+					<thead>
+						<tr>
+							<th scope="col">Field Attributes</th>
+							<th scope="col">Field Name and Description</th>
+						</tr>
+					</thead>
+					<tbody>
+					
+						<tr>
+							<td class="attributes">&nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont">
+								<b><a href="../symbols/osmplayer.scroll.html#constructor">constructor</a></b>
+								</div>
+								<div class="description">Reset the constructor.</div>
+							</td>
+						</tr>
+					
+					</tbody>
+				</table>
+				
+				
+				
+				<dl class="inheritsList">
+				<dt>Fields borrowed from class <a href="../symbols/minplayer.plugin.html">minplayer.plugin</a>: </dt><dd><a href="../symbols/minplayer.plugin.html#context">context</a>, <a href="../symbols/minplayer.plugin.html#lock">lock</a>, <a href="../symbols/minplayer.plugin.html#name">name</a>, <a href="../symbols/minplayer.plugin.html#options">options</a>, <a href="../symbols/minplayer.plugin.html#pluginReady">pluginReady</a>, <a href="../symbols/minplayer.plugin.html#queue">queue</a>, <a href="../symbols/minplayer.plugin.html#triggered">triggered</a></dd>
+				</dl>
+				
+			
+
+<!-- ============================== methods summary ======================== -->
+			
+				
+				
+				<table class="summaryTable" cellspacing="0" summary="A summary of the methods documented in the class osmplayer.scroll.">
+					<caption>Method Summary</caption>
+					<thead>
+						<tr>
+							<th scope="col">Method Attributes</th>
+							<th scope="col">Method Name and Description</th>
+						</tr>
+					</thead>
+					<tbody>
+					
+						<tr>
+							<td class="attributes">&nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont"><b><a href="../symbols/osmplayer.scroll.html#construct">construct</a></b>()
+								</div>
+								<div class="description"></div>
+							</td>
+						</tr>
+					
+						<tr>
+							<td class="attributes">&nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont"><b><a href="../symbols/osmplayer.scroll.html#getHandlePos">getHandlePos</a></b>(pos)
+								</div>
+								<div class="description"></div>
+							</td>
+						</tr>
+					
+						<tr>
+							<td class="attributes">&nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont"><b><a href="../symbols/osmplayer.scroll.html#getMousePos">getMousePos</a></b>(event)
+								</div>
+								<div class="description"></div>
+							</td>
+						</tr>
+					
+						<tr>
+							<td class="attributes">&nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont"><b><a href="../symbols/osmplayer.scroll.html#getPos">getPos</a></b>(handlePos)
+								</div>
+								<div class="description"></div>
+							</td>
+						</tr>
+					
+						<tr>
+							<td class="attributes">&nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont"><b><a href="../symbols/osmplayer.scroll.html#onResize">onResize</a></b>()
+								</div>
+								<div class="description">Refresh all the variables that may change.</div>
+							</td>
+						</tr>
+					
+						<tr>
+							<td class="attributes">&nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont"><b><a href="../symbols/osmplayer.scroll.html#refresh">refresh</a></b>()
+								</div>
+								<div class="description">Refreshes the scroll list.</div>
+							</td>
+						</tr>
+					
+					</tbody>
+				</table>
+				
+				
+				
+				<dl class="inheritsList">
+				<dt>Methods borrowed from class <a href="../symbols/minplayer.display.html">minplayer.display</a>: </dt><dd><a href="../symbols/minplayer.display.html#fullscreen">fullscreen</a>, <a href="../symbols/minplayer.display.html#fullScreenElement">fullScreenElement</a>, <a href="../symbols/minplayer.display.html#getDisplay">getDisplay</a>, <a href="../symbols/minplayer.display.html#getElements">getElements</a>, <a href="../symbols/minplayer.display.html#getScaledRect">getScaledRect</a>, <a href="../symbols/minplayer.display.html#isFullScreen">isFullScreen</a>, <a href="../symbols/minplayer.display.html#toggleFullScreen">toggleFullScreen</a></dd><dt>Methods borrowed from class <a href="../symbols/minplayer.plugin.html">minplayer.plugin</a>: </dt><dd><a href="../symbols/minplayer.plugin.html#addPlugin">addPlugin</a>, <a href="../symbols/minplayer.plugin.html#bind">bind</a>, <a href="../symbols/minplayer.plugin.html#checkQueue">checkQueue</a>, <a href="../symbols/minplayer.plugin.html#create">create</a>, <a href="../symbols/minplayer.plugin.html#destroy">destroy</a>, <a href="../symbols/minplayer.plugin.html#get">get</a>, <a href="../symbols/minplayer.plugin.html#isValid">isValid</a>, <a href="../symbols/minplayer.plugin.html#poll">poll</a>, <a href="../symbols/minplayer.plugin.html#ready">ready</a>, <a href="../symbols/minplayer.plugin.html#trigger">trigger</a>, <a href="../symbols/minplayer.plugin.html#unbind">unbind</a></dd>
+				</dl>
+				
+			
+<!-- ============================== events summary ======================== -->
+			
+
+<!-- ============================== constructor details ==================== -->		
+			
+			<div class="details"><a name="constructor"> </a>
+				<div class="sectionTitle">
+					Class Detail
+				</div>
+				
+				<div class="fixedFont">
+						<b>osmplayer.scroll</b>(context, options)
+				</div>
+				
+				<div class="description">
+					
+					
+				</div>
+				
+				
+				
+				
+					
+						<dl class="detailList">
+						<dt class="heading">Parameters:</dt>
+						
+							<dt>
+								<span class="light fixedFont">{object}</span>  <b>context</b>
+								
+							</dt>
+								<dd>The jQuery context.</dd>
+						
+							<dt>
+								<span class="light fixedFont">{object}</span>  <b>options</b>
+								
+							</dt>
+								<dd>This components options.</dd>
+						
+						</dl>
+					
+					
+					
+					
+					
+					
+					
+
+			</div>
+			
+
+<!-- ============================== field details ========================== -->		
+			
+				<div class="sectionTitle">
+					Field Detail
+				</div>
+				
+					<a name="constructor"> </a>
+					<div class="fixedFont">
+					
+					
+					<b>constructor</b>
+					
+					</div>
+					<div class="description">
+						Reset the constructor.
+						
+						
+					</div>
+					
+					
+
+						
+						
+						
+						
+
+					
+				
+			
+
+<!-- ============================== method details ========================= -->		
+			
+				<div class="sectionTitle">
+					Method Detail
+				</div>
+				
+					<a name="construct"> </a>
+					<div class="fixedFont">
+					
+					
+					<b>construct</b>()
+					
+					</div>
+					<div class="description">
+						
+						
+						
+					</div>
+					
+					
+					
+						
+						
+						
+						
+						
+						
+						
+							<dl class="detailList">
+							<dt class="heading">See:</dt>
+							
+								<dd><a href="../symbols/minplayer.plugin.html#construct">minplayer.plugin#construct</a></dd>
+							
+							</dl>
+						
+
+					<hr />
+				
+					<a name="getHandlePos"> </a>
+					<div class="fixedFont">
+					
+					
+					<b>getHandlePos</b>(pos)
+					
+					</div>
+					<div class="description">
+						
+						
+						
+					</div>
+					
+					
+					
+						
+							<dl class="detailList">
+							<dt class="heading">Parameters:</dt>
+							
+								<dt>
+									<b>pos</b>
+									
+								</dt>
+								<dd></dd>
+							
+							</dl>
+						
+						
+						
+						
+						
+						
+						
+
+					<hr />
+				
+					<a name="getMousePos"> </a>
+					<div class="fixedFont">
+					
+					
+					<b>getMousePos</b>(event)
+					
+					</div>
+					<div class="description">
+						
+						
+						
+					</div>
+					
+					
+					
+						
+							<dl class="detailList">
+							<dt class="heading">Parameters:</dt>
+							
+								<dt>
+									<b>event</b>
+									
+								</dt>
+								<dd></dd>
+							
+							</dl>
+						
+						
+						
+						
+						
+						
+						
+
+					<hr />
+				
+					<a name="getPos"> </a>
+					<div class="fixedFont">
+					
+					
+					<b>getPos</b>(handlePos)
+					
+					</div>
+					<div class="description">
+						
+						
+						
+					</div>
+					
+					
+					
+						
+							<dl class="detailList">
+							<dt class="heading">Parameters:</dt>
+							
+								<dt>
+									<b>handlePos</b>
+									
+								</dt>
+								<dd></dd>
+							
+							</dl>
+						
+						
+						
+						
+						
+						
+						
+
+					<hr />
+				
+					<a name="onResize"> </a>
+					<div class="fixedFont">
+					
+					
+					<b>onResize</b>()
+					
+					</div>
+					<div class="description">
+						Refresh all the variables that may change.
+						
+						
+					</div>
+					
+					
+					
+						
+						
+						
+						
+						
+						
+						
+
+					<hr />
+				
+					<a name="refresh"> </a>
+					<div class="fixedFont">
+					
+					
+					<b>refresh</b>()
+					
+					</div>
+					<div class="description">
+						Refreshes the scroll list.
+						
+						
+					</div>
+					
+					
+					
+						
+						
+						
+						
+						
+						
+						
+
+					
+				
+			
+			
+<!-- ============================== event details ========================= -->		
+			
+			
+			<hr />
+		</div>
+
+		
+<!-- ============================== footer ================================= -->
+		<div class="fineprint" style="clear:both">
+			
+			Documentation generated by <a href="http://code.google.com/p/jsdoc-toolkit/" target="_blank">JsDoc Toolkit</a> 2.4.0 on Mon Apr 09 2012 17:30:27 GMT-0700 (PDT)
+		</div>
+	</body>
+</html>
diff --git a/public/admin/js/osmplayer/doc/symbols/osmplayer.teaser.html b/public/admin/js/osmplayer/doc/symbols/osmplayer.teaser.html
new file mode 100644
index 00000000000..fda2521b295
--- /dev/null
+++ b/public/admin/js/osmplayer/doc/symbols/osmplayer.teaser.html
@@ -0,0 +1,564 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+        "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+	<head>
+		<meta http-equiv="content-type" content="text/html; charset=utf-8" />
+		<meta name="generator" content="JsDoc Toolkit" />
+		
+		<title>JsDoc Reference - osmplayer.teaser</title>
+
+		<style type="text/css">
+			/* default.css */
+body
+{
+	font: 12px "Lucida Grande", Tahoma, Arial, Helvetica, sans-serif;
+	width: 800px;
+}
+
+.header
+{
+	clear: both;
+	background-color: #ccc;
+	padding: 8px;
+}
+
+h1
+{
+	font-size: 150%;
+	font-weight: bold;
+	padding: 0;
+	margin: 1em 0 0 .3em;
+}
+
+hr
+{
+	border: none 0;
+	border-top: 1px solid #7F8FB1;
+	height: 1px;
+}
+
+pre.code
+{
+	display: block;
+	padding: 8px;
+	border: 1px dashed #ccc;
+}
+
+#index
+{
+	margin-top: 24px;
+	float: left;
+	width: 160px;
+	position: absolute;
+	left: 8px;
+	background-color: #F3F3F3;
+	padding: 8px;
+}
+
+#content
+{
+	margin-left: 190px;
+	width: 600px;
+}
+
+.classList
+{
+	list-style-type: none;
+	padding: 0;
+	margin: 0 0 0 8px;
+	font-family: arial, sans-serif;
+	font-size: 1em;
+	overflow: auto;
+}
+
+.classList li
+{
+	padding: 0;
+	margin: 0 0 8px 0;
+}
+
+.summaryTable { width: 100%; }
+
+h1.classTitle
+{
+	font-size:170%;
+	line-height:130%;
+}
+
+h2 { font-size: 110%; }
+caption, div.sectionTitle
+{
+	background-color: #7F8FB1;
+	color: #fff;
+	font-size:130%;
+	text-align: left;
+	padding: 2px 6px 2px 6px;
+	border: 1px #7F8FB1 solid;
+}
+
+div.sectionTitle { margin-bottom: 8px; }
+.summaryTable thead { display: none; }
+
+.summaryTable td
+{
+	vertical-align: top;
+	padding: 4px;
+	border-bottom: 1px #7F8FB1 solid;
+	border-right: 1px #7F8FB1 solid;
+}
+
+/*col#summaryAttributes {}*/
+.summaryTable td.attributes
+{
+	border-left: 1px #7F8FB1 solid;
+	width: 140px;
+	text-align: right;
+}
+
+td.attributes, .fixedFont
+{
+	line-height: 15px;
+	color: #002EBE;
+	font-family: "Courier New",Courier,monospace;
+	font-size: 13px;
+}
+
+.summaryTable td.nameDescription
+{
+	text-align: left;
+	font-size: 13px;
+	line-height: 15px;
+}
+
+.summaryTable td.nameDescription, .description
+{
+	line-height: 15px;
+	padding: 4px;
+	padding-left: 4px;
+}
+
+.summaryTable { margin-bottom: 8px; }
+
+ul.inheritsList
+{
+	list-style: square;
+	margin-left: 20px;
+	padding-left: 0;
+}
+
+.detailList {
+	margin-left: 20px; 
+	line-height: 15px;
+}
+.detailList dt { margin-left: 20px; }
+
+.detailList .heading
+{
+	font-weight: bold;
+	padding-bottom: 6px;
+	margin-left: 0;
+}
+
+.light, td.attributes, .light a:link, .light a:visited
+{
+	color: #777;
+	font-style: italic;
+}
+
+.fineprint
+{
+	text-align: right;
+	font-size: 10px;
+}
+		</style>
+	</head>
+
+	<body>
+<!-- ============================== header ================================= -->	
+		<!-- begin static/header.html -->
+		<div id="header">
+</div>
+		<!-- end static/header.html -->
+
+<!-- ============================== classes index ============================ -->
+		<div id="index">
+			<!-- begin publish.classesIndex -->
+			<div align="center"><a href="../index.html">Class Index</a>
+| <a href="../files.html">File Index</a></div>
+<hr />
+<h2>Classes</h2>
+<ul class="classList">
+	
+	<li><i><a href="../symbols/_global_.html">_global_</a></i></li>
+	
+	<li><a href="../symbols/jQuery.fn.minplayer.html">jQuery.fn.minplayer</a></li>
+	
+	<li><a href="../symbols/jQuery.fn.osmplayer.html">jQuery.fn.osmplayer</a></li>
+	
+	<li><a href="../symbols/minplayer.async.html">minplayer.async</a></li>
+	
+	<li><a href="../symbols/minplayer.compatibility.html">minplayer.compatibility</a></li>
+	
+	<li><a href="../symbols/minplayer.display.html">minplayer.display</a></li>
+	
+	<li><a href="../symbols/minplayer.file.html">minplayer.file</a></li>
+	
+	<li><a href="../symbols/minplayer.flags.html">minplayer.flags</a></li>
+	
+	<li><a href="../symbols/minplayer.image.html">minplayer.image</a></li>
+	
+	<li><a href="../symbols/minplayer.players.base.html">minplayer.players.base</a></li>
+	
+	<li><a href="../symbols/minplayer.players.flash.html">minplayer.players.flash</a></li>
+	
+	<li><a href="../symbols/minplayer.players.html5.html">minplayer.players.html5</a></li>
+	
+	<li><a href="../symbols/minplayer.players.minplayer.html">minplayer.players.minplayer</a></li>
+	
+	<li><a href="../symbols/minplayer.players.vimeo.html">minplayer.players.vimeo</a></li>
+	
+	<li><a href="../symbols/minplayer.players.youtube.html">minplayer.players.youtube</a></li>
+	
+	<li><a href="../symbols/minplayer.plugin.html">minplayer.plugin</a></li>
+	
+	<li><a href="../symbols/osmplayer.html">osmplayer</a></li>
+	
+	<li><a href="../symbols/osmplayer.pager.html">osmplayer.pager</a></li>
+	
+	<li><a href="../symbols/osmplayer.playlist.html">osmplayer.playlist</a></li>
+	
+	<li><a href="../symbols/osmplayer.teaser.html">osmplayer.teaser</a></li>
+	
+</ul>
+<hr />
+			<!-- end publish.classesIndex -->
+		</div>
+		
+		<div id="content">
+<!-- ============================== class title ============================ -->
+			<h1 class="classTitle">
+				
+				Class osmplayer.teaser
+			</h1>
+
+<!-- ============================== class summary ========================== -->			
+			<p class="description">
+				
+				<br />Extends
+					<a href="../symbols/minplayer.display.html">minplayer.display</a>.<br />
+				
+			
+				This class provides teaser functionality.
+				
+				
+					<br /><i>Defined in: </i> <a href="../symbols/src/src_osmplayer.teaser.js.html">osmplayer.teaser.js</a>.
+				
+			</p>
+
+<!-- ============================== constructor summary ==================== -->			
+			
+			<table class="summaryTable" cellspacing="0" summary="A summary of the constructor documented in the class osmplayer.teaser.">
+				<caption>Class Summary</caption>
+				<thead>
+					<tr>
+						<th scope="col">Constructor Attributes</th>
+						<th scope="col">Constructor Name and Description</th>
+					</tr>
+				</thead>
+				<tbody>
+					<tr>
+						<td class="attributes">&nbsp;</td>
+						<td class="nameDescription" >
+							<div class="fixedFont">
+								<b><a href="../symbols/osmplayer.teaser.html#constructor">osmplayer.teaser</a></b>(context, options)
+							</div>
+							<div class="description"></div>
+						</td>
+					</tr>
+				</tbody>
+			</table>
+			
+
+<!-- ============================== properties summary ===================== -->
+			
+				
+				
+				<table class="summaryTable" cellspacing="0" summary="A summary of the fields documented in the class osmplayer.teaser.">
+					<caption>Field Summary</caption>
+					<thead>
+						<tr>
+							<th scope="col">Field Attributes</th>
+							<th scope="col">Field Name and Description</th>
+						</tr>
+					</thead>
+					<tbody>
+					
+						<tr>
+							<td class="attributes">&nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont">
+								<b><a href="../symbols/osmplayer.teaser.html#constructor">constructor</a></b>
+								</div>
+								<div class="description">Reset the constructor.</div>
+							</td>
+						</tr>
+					
+						<tr>
+							<td class="attributes">&nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont">
+								<b><a href="../symbols/osmplayer.teaser.html#preview">preview</a></b>
+								</div>
+								<div class="description">The preview image.</div>
+							</td>
+						</tr>
+					
+					</tbody>
+				</table>
+				
+				
+				
+				<dl class="inheritsList">
+				<dt>Fields borrowed from class <a href="../symbols/minplayer.display.html">minplayer.display</a>: </dt><dd><a href="../symbols/minplayer.display.html#onResize">onResize</a></dd><dt>Fields borrowed from class <a href="../symbols/minplayer.plugin.html">minplayer.plugin</a>: </dt><dd><a href="../symbols/minplayer.plugin.html#active">active</a>, <a href="../symbols/minplayer.plugin.html#context">context</a>, <a href="../symbols/minplayer.plugin.html#lock">lock</a>, <a href="../symbols/minplayer.plugin.html#name">name</a>, <a href="../symbols/minplayer.plugin.html#options">options</a>, <a href="../symbols/minplayer.plugin.html#pluginReady">pluginReady</a>, <a href="../symbols/minplayer.plugin.html#queue">queue</a>, <a href="../symbols/minplayer.plugin.html#triggered">triggered</a></dd>
+				</dl>
+				
+			
+
+<!-- ============================== methods summary ======================== -->
+			
+				
+				
+				<table class="summaryTable" cellspacing="0" summary="A summary of the methods documented in the class osmplayer.teaser.">
+					<caption>Method Summary</caption>
+					<thead>
+						<tr>
+							<th scope="col">Method Attributes</th>
+							<th scope="col">Method Name and Description</th>
+						</tr>
+					</thead>
+					<tbody>
+					
+						<tr>
+							<td class="attributes">&nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont"><b><a href="../symbols/osmplayer.teaser.html#select">select</a></b>(selected)
+								</div>
+								<div class="description">Selects the teaser.</div>
+							</td>
+						</tr>
+					
+						<tr>
+							<td class="attributes">&nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont"><b><a href="../symbols/osmplayer.teaser.html#setNode">setNode</a></b>(node)
+								</div>
+								<div class="description">Sets the node.</div>
+							</td>
+						</tr>
+					
+					</tbody>
+				</table>
+				
+				
+				
+				<dl class="inheritsList">
+				<dt>Methods borrowed from class <a href="../symbols/minplayer.display.html">minplayer.display</a>: </dt><dd><a href="../symbols/minplayer.display.html#construct">construct</a>, <a href="../symbols/minplayer.display.html#fullscreen">fullscreen</a>, <a href="../symbols/minplayer.display.html#fullScreenElement">fullScreenElement</a>, <a href="../symbols/minplayer.display.html#getDisplay">getDisplay</a>, <a href="../symbols/minplayer.display.html#getElements">getElements</a>, <a href="../symbols/minplayer.display.html#getScaledRect">getScaledRect</a>, <a href="../symbols/minplayer.display.html#hide">hide</a>, <a href="../symbols/minplayer.display.html#isFullScreen">isFullScreen</a>, <a href="../symbols/minplayer.display.html#onFocus">onFocus</a>, <a href="../symbols/minplayer.display.html#toggleFullScreen">toggleFullScreen</a></dd><dt>Methods borrowed from class <a href="../symbols/minplayer.plugin.html">minplayer.plugin</a>: </dt><dd><a href="../symbols/minplayer.plugin.html#addPlugin">addPlugin</a>, <a href="../symbols/minplayer.plugin.html#bind">bind</a>, <a href="../symbols/minplayer.plugin.html#checkQueue">checkQueue</a>, <a href="../symbols/minplayer.plugin.html#create">create</a>, <a href="../symbols/minplayer.plugin.html#destroy">destroy</a>, <a href="../symbols/minplayer.plugin.html#get">get</a>, <a href="../symbols/minplayer.plugin.html#isValid">isValid</a>, <a href="../symbols/minplayer.plugin.html#poll">poll</a>, <a href="../symbols/minplayer.plugin.html#ready">ready</a>, <a href="../symbols/minplayer.plugin.html#trigger">trigger</a>, <a href="../symbols/minplayer.plugin.html#unbind">unbind</a></dd>
+				</dl>
+				
+			
+<!-- ============================== events summary ======================== -->
+			
+
+<!-- ============================== constructor details ==================== -->		
+			
+			<div class="details"><a name="constructor"> </a>
+				<div class="sectionTitle">
+					Class Detail
+				</div>
+				
+				<div class="fixedFont">
+						<b>osmplayer.teaser</b>(context, options)
+				</div>
+				
+				<div class="description">
+					
+					
+				</div>
+				
+				
+				
+				
+					
+						<dl class="detailList">
+						<dt class="heading">Parameters:</dt>
+						
+							<dt>
+								<span class="light fixedFont">{object}</span>  <b>context</b>
+								
+							</dt>
+								<dd>The jQuery context.</dd>
+						
+							<dt>
+								<span class="light fixedFont">{object}</span>  <b>options</b>
+								
+							</dt>
+								<dd>This components options.</dd>
+						
+						</dl>
+					
+					
+					
+					
+					
+					
+					
+
+			</div>
+			
+
+<!-- ============================== field details ========================== -->		
+			
+				<div class="sectionTitle">
+					Field Detail
+				</div>
+				
+					<a name="constructor"> </a>
+					<div class="fixedFont">
+					
+					
+					<b>constructor</b>
+					
+					</div>
+					<div class="description">
+						Reset the constructor.
+						
+						
+					</div>
+					
+					
+
+						
+						
+						
+						
+
+					<hr />
+				
+					<a name="preview"> </a>
+					<div class="fixedFont">
+					
+					
+					<b>preview</b>
+					
+					</div>
+					<div class="description">
+						The preview image.
+						
+						
+					</div>
+					
+					
+
+						
+						
+						
+						
+
+					
+				
+			
+
+<!-- ============================== method details ========================= -->		
+			
+				<div class="sectionTitle">
+					Method Detail
+				</div>
+				
+					<a name="select"> </a>
+					<div class="fixedFont">
+					
+					
+					<b>select</b>(selected)
+					
+					</div>
+					<div class="description">
+						Selects the teaser.
+						
+						
+					</div>
+					
+					
+					
+						
+							<dl class="detailList">
+							<dt class="heading">Parameters:</dt>
+							
+								<dt>
+									<span class="light fixedFont">{boolean}</span> <b>selected</b>
+									
+								</dt>
+								<dd>TRUE if selected, FALSE otherwise.</dd>
+							
+							</dl>
+						
+						
+						
+						
+						
+						
+						
+
+					<hr />
+				
+					<a name="setNode"> </a>
+					<div class="fixedFont">
+					
+					
+					<b>setNode</b>(node)
+					
+					</div>
+					<div class="description">
+						Sets the node.
+						
+						
+					</div>
+					
+					
+					
+						
+							<dl class="detailList">
+							<dt class="heading">Parameters:</dt>
+							
+								<dt>
+									<span class="light fixedFont">{object}</span> <b>node</b>
+									
+								</dt>
+								<dd>The node object to set.</dd>
+							
+							</dl>
+						
+						
+						
+						
+						
+						
+						
+
+					
+				
+			
+			
+<!-- ============================== event details ========================= -->		
+			
+			
+			<hr />
+		</div>
+
+		
+<!-- ============================== footer ================================= -->
+		<div class="fineprint" style="clear:both">
+			
+			Documentation generated by <a href="http://code.google.com/p/jsdoc-toolkit/" target="_blank">JsDoc Toolkit</a> 2.4.0 on Sun Aug 19 2012 12:11:28 GMT-0500 (CDT)
+		</div>
+	</body>
+</html>
diff --git a/public/admin/js/osmplayer/doc/symbols/src/minplayer_src_minplayer.async.js.html b/public/admin/js/osmplayer/doc/symbols/src/minplayer_src_minplayer.async.js.html
new file mode 100644
index 00000000000..dc698720b2d
--- /dev/null
+++ b/public/admin/js/osmplayer/doc/symbols/src/minplayer_src_minplayer.async.js.html
@@ -0,0 +1,69 @@
+<html><head><meta http-equiv="content-type" content="text/html; charset=utf-8"> <style>
+	.KEYW {color: #933;}
+	.COMM {color: #bbb; font-style: italic;}
+	.NUMB {color: #393;}
+	.STRN {color: #393;}
+	.REGX {color: #339;}
+	.line {border-right: 1px dotted #666; color: #666; font-style: normal;}
+	</style></head><body><pre><span class='line'>  1</span> <span class="COMM">/** The minplayer namespace. */</span><span class="WHIT">
+<span class='line'>  2</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">minplayer</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">minplayer</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>  3</span> 
+<span class='line'>  4</span> </span><span class="COMM">/**
+<span class='line'>  5</span>  * @constructor
+<span class='line'>  6</span>  * @class This class keeps track of asynchronous get requests for certain
+<span class='line'>  7</span>  * variables within the player.
+<span class='line'>  8</span>  */</span><span class="WHIT">
+<span class='line'>  9</span> </span><span class="NAME">minplayer.async</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 10</span> 
+<span class='line'> 11</span> </span><span class="WHIT">  </span><span class="COMM">/** The final value of this asynchronous variable. */</span><span class="WHIT">
+<span class='line'> 12</span> </span><span class="WHIT">  </span><span class="NAME">this.value</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">null</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 13</span> 
+<span class='line'> 14</span> </span><span class="WHIT">  </span><span class="COMM">/** The queue of callbacks to call when this value is determined. */</span><span class="WHIT">
+<span class='line'> 15</span> </span><span class="WHIT">  </span><span class="NAME">this.queue</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 16</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 17</span> 
+<span class='line'> 18</span> </span><span class="COMM">/**
+<span class='line'> 19</span>  * Retrieve the value of this variable.
+<span class='line'> 20</span>  *
+<span class='line'> 21</span>  * @param {function} callback The function to call when the value is determined.
+<span class='line'> 22</span>  * @param {function} pollValue The poll function to try and get the value every
+<span class='line'> 23</span>  * 1 second if the value is not set.
+<span class='line'> 24</span>  */</span><span class="WHIT">
+<span class='line'> 25</span> </span><span class="NAME">minplayer.async.prototype.get</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">callback</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">pollValue</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 26</span> 
+<span class='line'> 27</span> </span><span class="WHIT">  </span><span class="COMM">// If the value is set, then immediately call the callback, otherwise, just</span><span class="WHIT">
+<span class='line'> 28</span> </span><span class="WHIT">  </span><span class="COMM">// add it to the queue when the variable is set.</span><span class="WHIT">
+<span class='line'> 29</span> </span><span class="WHIT">  </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">this.value</span><span class="WHIT"> </span><span class="PUNC">!==</span><span class="WHIT"> </span><span class="KEYW">null</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 30</span> </span><span class="WHIT">    </span><span class="NAME">callback</span><span class="PUNC">(</span><span class="NAME">this.value</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 31</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'> 32</span> </span><span class="WHIT">  </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 33</span> 
+<span class='line'> 34</span> </span><span class="WHIT">    </span><span class="COMM">// Add this callback to the queue.</span><span class="WHIT">
+<span class='line'> 35</span> </span><span class="WHIT">    </span><span class="NAME">this.queue.push</span><span class="PUNC">(</span><span class="NAME">callback</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 36</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'> 37</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 38</span> 
+<span class='line'> 39</span> </span><span class="COMM">/**
+<span class='line'> 40</span>  * Sets the value of an asynchronous value.
+<span class='line'> 41</span>  *
+<span class='line'> 42</span>  * @param {void} val The value to set.
+<span class='line'> 43</span>  */</span><span class="WHIT">
+<span class='line'> 44</span> </span><span class="NAME">minplayer.async.prototype.set</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">val</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 45</span> 
+<span class='line'> 46</span> </span><span class="WHIT">  </span><span class="COMM">// Set the value.</span><span class="WHIT">
+<span class='line'> 47</span> </span><span class="WHIT">  </span><span class="NAME">this.value</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">val</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 48</span> 
+<span class='line'> 49</span> </span><span class="WHIT">  </span><span class="COMM">// Get the callback queue length.</span><span class="WHIT">
+<span class='line'> 50</span> </span><span class="WHIT">  </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.queue.length</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 51</span> 
+<span class='line'> 52</span> </span><span class="WHIT">  </span><span class="COMM">// Iterate through all the callbacks and call them.</span><span class="WHIT">
+<span class='line'> 53</span> </span><span class="WHIT">  </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">i</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 54</span> </span><span class="WHIT">    </span><span class="KEYW">while</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">i</span><span class="PUNC">--</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 55</span> </span><span class="WHIT">      </span><span class="NAME">this.queue</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">(</span><span class="NAME">val</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 56</span> </span><span class="WHIT">    </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'> 57</span> 
+<span class='line'> 58</span> </span><span class="WHIT">    </span><span class="COMM">// Reset the queue.</span><span class="WHIT">
+<span class='line'> 59</span> </span><span class="WHIT">    </span><span class="NAME">this.queue</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 60</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'> 61</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 62</span> </span></pre></body></html>
\ No newline at end of file
diff --git a/public/admin/js/osmplayer/doc/symbols/src/minplayer_src_minplayer.compatibility.js.html b/public/admin/js/osmplayer/doc/symbols/src/minplayer_src_minplayer.compatibility.js.html
new file mode 100644
index 00000000000..c07f5e74165
--- /dev/null
+++ b/public/admin/js/osmplayer/doc/symbols/src/minplayer_src_minplayer.compatibility.js.html
@@ -0,0 +1,124 @@
+<html><head><meta http-equiv="content-type" content="text/html; charset=utf-8"> <style>
+	.KEYW {color: #933;}
+	.COMM {color: #bbb; font-style: italic;}
+	.NUMB {color: #393;}
+	.STRN {color: #393;}
+	.REGX {color: #339;}
+	.line {border-right: 1px dotted #666; color: #666; font-style: normal;}
+	</style></head><body><pre><span class='line'>  1</span> <span class="COMM">/** The minplayer namespace. */</span><span class="WHIT">
+<span class='line'>  2</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">minplayer</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">minplayer</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>  3</span> 
+<span class='line'>  4</span> </span><span class="COMM">// Private function to check a single element's play type.</span><span class="WHIT">
+<span class='line'>  5</span> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="NAME">checkPlayType</span><span class="PUNC">(</span><span class="NAME">elem</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">playType</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>  6</span> </span><span class="WHIT">  </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">(</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">elem.canPlayType</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="STRN">'function'</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>  7</span> </span><span class="WHIT">    </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">playType</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="STRN">'object'</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>  8</span> </span><span class="WHIT">      </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">playType.length</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>  9</span> </span><span class="WHIT">      </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">mimetype</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">''</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 10</span> </span><span class="WHIT">      </span><span class="KEYW">while</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">i</span><span class="PUNC">--</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 11</span> </span><span class="WHIT">        </span><span class="NAME">mimetype</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">checkPlayType</span><span class="PUNC">(</span><span class="NAME">elem</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">playType</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 12</span> </span><span class="WHIT">        </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">!</span><span class="PUNC">!</span><span class="NAME">mimetype</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 13</span> </span><span class="WHIT">          </span><span class="KEYW">break</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 14</span> </span><span class="WHIT">        </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'> 15</span> </span><span class="WHIT">      </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'> 16</span> </span><span class="WHIT">      </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">mimetype</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 17</span> </span><span class="WHIT">    </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'> 18</span> </span><span class="WHIT">    </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 19</span> </span><span class="WHIT">      </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">canPlay</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">elem.canPlayType</span><span class="PUNC">(</span><span class="NAME">playType</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 20</span> </span><span class="WHIT">      </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">(</span><span class="STRN">'no'</span><span class="WHIT"> </span><span class="PUNC">!==</span><span class="WHIT"> </span><span class="NAME">canPlay</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="STRN">''</span><span class="WHIT"> </span><span class="PUNC">!==</span><span class="WHIT"> </span><span class="NAME">canPlay</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 21</span> </span><span class="WHIT">        </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">playType</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 22</span> </span><span class="WHIT">      </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'> 23</span> </span><span class="WHIT">    </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'> 24</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'> 25</span> </span><span class="WHIT">  </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="STRN">''</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 26</span> </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'> 27</span> 
+<span class='line'> 28</span> </span><span class="COMM">/**
+<span class='line'> 29</span>  * @constructor
+<span class='line'> 30</span>  * @class This class is used to define the types of media that can be played
+<span class='line'> 31</span>  * within the browser.
+<span class='line'> 32</span>  * &lt;p>
+<span class='line'> 33</span>  * &lt;strong>Usage:&lt;/strong>
+<span class='line'> 34</span>  * &lt;pre>&lt;code>
+<span class='line'> 35</span>  *   var playTypes = new minplayer.compatibility();
+<span class='line'> 36</span>  *
+<span class='line'> 37</span>  *   if (playTypes.videoOGG) {
+<span class='line'> 38</span>  *     console.log("This browser can play OGG video");
+<span class='line'> 39</span>  *   }
+<span class='line'> 40</span>  *
+<span class='line'> 41</span>  *   if (playTypes.videoH264) {
+<span class='line'> 42</span>  *     console.log("This browser can play H264 video");
+<span class='line'> 43</span>  *   }
+<span class='line'> 44</span>  *
+<span class='line'> 45</span>  *   if (playTypes.videoWEBM) {
+<span class='line'> 46</span>  *     console.log("This browser can play WebM video");
+<span class='line'> 47</span>  *   }
+<span class='line'> 48</span>  *
+<span class='line'> 49</span>  *   if (playTypes.audioOGG) {
+<span class='line'> 50</span>  *     console.log("This browser can play OGG audio");
+<span class='line'> 51</span>  *   }
+<span class='line'> 52</span>  *
+<span class='line'> 53</span>  *   if (playTypes.audioMP3) {
+<span class='line'> 54</span>  *     console.log("This browser can play MP3 audio");
+<span class='line'> 55</span>  *   }
+<span class='line'> 56</span>  *
+<span class='line'> 57</span>  *   if (playTypes.audioMP4) {
+<span class='line'> 58</span>  *     console.log("This browser can play MP4 audio");
+<span class='line'> 59</span>  *   }
+<span class='line'> 60</span>  * &lt;/code>&lt;/pre>
+<span class='line'> 61</span>  */</span><span class="WHIT">
+<span class='line'> 62</span> </span><span class="NAME">minplayer.compatibility</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 63</span> </span><span class="WHIT">  </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">elem</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">null</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 64</span> 
+<span class='line'> 65</span> </span><span class="WHIT">  </span><span class="COMM">// Create a video element.</span><span class="WHIT">
+<span class='line'> 66</span> </span><span class="WHIT">  </span><span class="NAME">elem</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">document.createElement</span><span class="PUNC">(</span><span class="STRN">'video'</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 67</span> 
+<span class='line'> 68</span> </span><span class="WHIT">  </span><span class="COMM">/** Can play OGG video */</span><span class="WHIT">
+<span class='line'> 69</span> </span><span class="WHIT">  </span><span class="NAME">this.videoOGG</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">checkPlayType</span><span class="PUNC">(</span><span class="NAME">elem</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'video/ogg'</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 70</span> 
+<span class='line'> 71</span> </span><span class="WHIT">  </span><span class="COMM">/** Can play H264 video */</span><span class="WHIT">
+<span class='line'> 72</span> </span><span class="WHIT">  </span><span class="NAME">this.videoH264</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">checkPlayType</span><span class="PUNC">(</span><span class="NAME">elem</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="WHIT">
+<span class='line'> 73</span> </span><span class="WHIT">    </span><span class="STRN">'video/mp4'</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'> 74</span> </span><span class="WHIT">    </span><span class="STRN">'video/h264'</span><span class="WHIT">
+<span class='line'> 75</span> </span><span class="WHIT">  </span><span class="PUNC">]</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 76</span> 
+<span class='line'> 77</span> </span><span class="WHIT">  </span><span class="COMM">/** Can play WEBM video */</span><span class="WHIT">
+<span class='line'> 78</span> </span><span class="WHIT">  </span><span class="NAME">this.videoWEBM</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">checkPlayType</span><span class="PUNC">(</span><span class="NAME">elem</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="WHIT">
+<span class='line'> 79</span> </span><span class="WHIT">    </span><span class="STRN">'video/x-webm'</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'> 80</span> </span><span class="WHIT">    </span><span class="STRN">'video/webm'</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'> 81</span> </span><span class="WHIT">    </span><span class="STRN">'application/octet-stream'</span><span class="WHIT">
+<span class='line'> 82</span> </span><span class="WHIT">  </span><span class="PUNC">]</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 83</span> 
+<span class='line'> 84</span> </span><span class="WHIT">  </span><span class="COMM">// Create an audio element.</span><span class="WHIT">
+<span class='line'> 85</span> </span><span class="WHIT">  </span><span class="NAME">elem</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">document.createElement</span><span class="PUNC">(</span><span class="STRN">'audio'</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 86</span> 
+<span class='line'> 87</span> </span><span class="WHIT">  </span><span class="COMM">/** Can play audio OGG */</span><span class="WHIT">
+<span class='line'> 88</span> </span><span class="WHIT">  </span><span class="NAME">this.audioOGG</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">checkPlayType</span><span class="PUNC">(</span><span class="NAME">elem</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'audio/ogg'</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 89</span> 
+<span class='line'> 90</span> </span><span class="WHIT">  </span><span class="COMM">/** Can play audio MP3 */</span><span class="WHIT">
+<span class='line'> 91</span> </span><span class="WHIT">  </span><span class="NAME">this.audioMP3</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">checkPlayType</span><span class="PUNC">(</span><span class="NAME">elem</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'audio/mpeg'</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 92</span> 
+<span class='line'> 93</span> </span><span class="WHIT">  </span><span class="COMM">/** Can play audio MP4 */</span><span class="WHIT">
+<span class='line'> 94</span> </span><span class="WHIT">  </span><span class="NAME">this.audioMP4</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">checkPlayType</span><span class="PUNC">(</span><span class="NAME">elem</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'audio/mp4'</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 95</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 96</span> 
+<span class='line'> 97</span> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">minplayer.playTypes</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 98</span> 
+<span class='line'> 99</span> </span><span class="WHIT">  </span><span class="COMM">/** The compatible playtypes for this browser. */</span><span class="WHIT">
+<span class='line'>100</span> </span><span class="WHIT">  </span><span class="NAME">minplayer.playTypes</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">new</span><span class="WHIT"> </span><span class="NAME">minplayer.compatibility</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>101</span> 
+<span class='line'>102</span> </span><span class="WHIT">  </span><span class="COMM">/** See if we are an android device. */</span><span class="WHIT">
+<span class='line'>103</span> </span><span class="WHIT">  </span><span class="NAME">minplayer.isAndroid</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="REGX">/android/gi</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">test</span><span class="PUNC">(</span><span class="NAME">navigator.appVersion</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>104</span> 
+<span class='line'>105</span> </span><span class="WHIT">  </span><span class="COMM">/** See if we are an iOS device. */</span><span class="WHIT">
+<span class='line'>106</span> </span><span class="WHIT">  </span><span class="NAME">minplayer.isIDevice</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="REGX">/iphone|ipad/gi</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">test</span><span class="PUNC">(</span><span class="NAME">navigator.appVersion</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>107</span> 
+<span class='line'>108</span> </span><span class="WHIT">  </span><span class="COMM">/** See if we are a playbook device. */</span><span class="WHIT">
+<span class='line'>109</span> </span><span class="WHIT">  </span><span class="NAME">minplayer.isPlaybook</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="REGX">/playbook/gi</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">test</span><span class="PUNC">(</span><span class="NAME">navigator.appVersion</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>110</span> 
+<span class='line'>111</span> </span><span class="WHIT">  </span><span class="COMM">/** See if we are a touchpad device. */</span><span class="WHIT">
+<span class='line'>112</span> </span><span class="WHIT">  </span><span class="NAME">minplayer.isTouchPad</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="REGX">/hp-tablet/gi</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">test</span><span class="PUNC">(</span><span class="NAME">navigator.appVersion</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>113</span> 
+<span class='line'>114</span> </span><span class="WHIT">  </span><span class="COMM">/** Determine if we have a touchscreen. */</span><span class="WHIT">
+<span class='line'>115</span> </span><span class="WHIT">  </span><span class="NAME">minplayer.hasTouch</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">'ontouchstart'</span><span class="WHIT"> </span><span class="KEYW">in</span><span class="WHIT"> </span><span class="NAME">window</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="PUNC">!</span><span class="NAME">minplayer.isTouchPad</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>116</span> </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>117</span> </span></pre></body></html>
\ No newline at end of file
diff --git a/public/admin/js/osmplayer/doc/symbols/src/minplayer_src_minplayer.controller.js.html b/public/admin/js/osmplayer/doc/symbols/src/minplayer_src_minplayer.controller.js.html
new file mode 100644
index 00000000000..f2b3c829809
--- /dev/null
+++ b/public/admin/js/osmplayer/doc/symbols/src/minplayer_src_minplayer.controller.js.html
@@ -0,0 +1,355 @@
+<html><head><meta http-equiv="content-type" content="text/html; charset=utf-8"> <style>
+	.KEYW {color: #933;}
+	.COMM {color: #bbb; font-style: italic;}
+	.NUMB {color: #393;}
+	.STRN {color: #393;}
+	.REGX {color: #339;}
+	.line {border-right: 1px dotted #666; color: #666; font-style: normal;}
+	</style></head><body><pre><span class='line'>  1</span> <span class="COMM">/** The minplayer namespace. */</span><span class="WHIT">
+<span class='line'>  2</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">minplayer</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">minplayer</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>  3</span> 
+<span class='line'>  4</span> </span><span class="COMM">/**
+<span class='line'>  5</span>  * @constructor
+<span class='line'>  6</span>  * @extends minplayer.display
+<span class='line'>  7</span>  * @class This is the base minplayer controller.  Other controllers can derive
+<span class='line'>  8</span>  * from the base and either build on top of it or simply define the elements
+<span class='line'>  9</span>  * that this base controller uses.
+<span class='line'> 10</span>  *
+<span class='line'> 11</span>  * @param {object} context The jQuery context.
+<span class='line'> 12</span>  * @param {object} options This components options.
+<span class='line'> 13</span>  */</span><span class="WHIT">
+<span class='line'> 14</span> </span><span class="NAME">minplayer.controller</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">context</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">options</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 15</span> 
+<span class='line'> 16</span> </span><span class="WHIT">  </span><span class="COMM">// Derive from display</span><span class="WHIT">
+<span class='line'> 17</span> </span><span class="WHIT">  </span><span class="NAME">minplayer.display.call</span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'controller'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">context</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">options</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 18</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 19</span> 
+<span class='line'> 20</span> </span><span class="COMM">/** Derive from minplayer.display. */</span><span class="WHIT">
+<span class='line'> 21</span> </span><span class="NAME">minplayer.controller.prototype</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">new</span><span class="WHIT"> </span><span class="NAME">minplayer.display</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 22</span> 
+<span class='line'> 23</span> </span><span class="COMM">/** Reset the constructor. */</span><span class="WHIT">
+<span class='line'> 24</span> </span><span class="NAME">minplayer.controller.prototype.constructor</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">minplayer.controller</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 25</span> 
+<span class='line'> 26</span> </span><span class="COMM">/**
+<span class='line'> 27</span>  * A static function that will format a time value into a string time format.
+<span class='line'> 28</span>  *
+<span class='line'> 29</span>  * @param {integer} time An integer value of time.
+<span class='line'> 30</span>  * @return {string} A string representation of the time.
+<span class='line'> 31</span>  */</span><span class="WHIT">
+<span class='line'> 32</span> </span><span class="NAME">minplayer.formatTime</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">time</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 33</span> </span><span class="WHIT">  </span><span class="NAME">time</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">time</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 34</span> </span><span class="WHIT">  </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">seconds</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">minutes</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">hour</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">timeString</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">''</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 35</span> 
+<span class='line'> 36</span> </span><span class="WHIT">  </span><span class="NAME">hour</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">Math.floor</span><span class="PUNC">(</span><span class="NAME">time</span><span class="WHIT"> </span><span class="PUNC">/</span><span class="WHIT"> </span><span class="NUMB">3600</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 37</span> </span><span class="WHIT">  </span><span class="NAME">time</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">hour</span><span class="WHIT"> </span><span class="PUNC">*</span><span class="WHIT"> </span><span class="NUMB">3600</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 38</span> </span><span class="WHIT">  </span><span class="NAME">minutes</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">Math.floor</span><span class="PUNC">(</span><span class="NAME">time</span><span class="WHIT"> </span><span class="PUNC">/</span><span class="WHIT"> </span><span class="NUMB">60</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 39</span> </span><span class="WHIT">  </span><span class="NAME">time</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">minutes</span><span class="WHIT"> </span><span class="PUNC">*</span><span class="WHIT"> </span><span class="NUMB">60</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 40</span> </span><span class="WHIT">  </span><span class="NAME">seconds</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">Math.floor</span><span class="PUNC">(</span><span class="NAME">time</span><span class="WHIT"> </span><span class="PUNC">%</span><span class="WHIT"> </span><span class="NUMB">60</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 41</span> 
+<span class='line'> 42</span> </span><span class="WHIT">  </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">hour</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 43</span> </span><span class="WHIT">    </span><span class="NAME">timeString</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">String</span><span class="PUNC">(</span><span class="NAME">hour</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 44</span> </span><span class="WHIT">    </span><span class="NAME">timeString</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">':'</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 45</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'> 46</span> 
+<span class='line'> 47</span> </span><span class="WHIT">  </span><span class="NAME">timeString</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">minutes</span><span class="WHIT"> </span><span class="PUNC">>=</span><span class="WHIT"> </span><span class="NUMB">10</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="NAME">String</span><span class="PUNC">(</span><span class="NAME">minutes</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="STRN">'0'</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">String</span><span class="PUNC">(</span><span class="NAME">minutes</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 48</span> </span><span class="WHIT">  </span><span class="NAME">timeString</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">':'</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 49</span> </span><span class="WHIT">  </span><span class="NAME">timeString</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">seconds</span><span class="WHIT"> </span><span class="PUNC">>=</span><span class="WHIT"> </span><span class="NUMB">10</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="NAME">String</span><span class="PUNC">(</span><span class="NAME">seconds</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="STRN">'0'</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">String</span><span class="PUNC">(</span><span class="NAME">seconds</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 50</span> </span><span class="WHIT">  </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="NAME">time</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">timeString</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">units</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="STRN">''</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 51</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 52</span> 
+<span class='line'> 53</span> </span><span class="COMM">/**
+<span class='line'> 54</span>  * @see minplayer.display#getElements
+<span class='line'> 55</span>  * @return {object} The elements defined by this display.
+<span class='line'> 56</span>  */</span><span class="WHIT">
+<span class='line'> 57</span> </span><span class="NAME">minplayer.controller.prototype.getElements</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 58</span> </span><span class="WHIT">  </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">elements</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">minplayer.display.prototype.getElements.call</span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 59</span> </span><span class="WHIT">  </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">jQuery.extend</span><span class="PUNC">(</span><span class="NAME">elements</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 60</span> </span><span class="WHIT">    </span><span class="NAME">play</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">null</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'> 61</span> </span><span class="WHIT">    </span><span class="NAME">pause</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">null</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'> 62</span> </span><span class="WHIT">    </span><span class="NAME">fullscreen</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">null</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'> 63</span> </span><span class="WHIT">    </span><span class="NAME">seek</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">null</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'> 64</span> </span><span class="WHIT">    </span><span class="NAME">progress</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">null</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'> 65</span> </span><span class="WHIT">    </span><span class="NAME">volume</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">null</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'> 66</span> </span><span class="WHIT">    </span><span class="NAME">timer</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">null</span><span class="WHIT">
+<span class='line'> 67</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 68</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 69</span> 
+<span class='line'> 70</span> </span><span class="COMM">/**
+<span class='line'> 71</span>  * @see minplayer.plugin#construct
+<span class='line'> 72</span>  */</span><span class="WHIT">
+<span class='line'> 73</span> </span><span class="NAME">minplayer.controller.prototype.construct</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 74</span> 
+<span class='line'> 75</span> </span><span class="WHIT">  </span><span class="COMM">// Call the minplayer plugin constructor.</span><span class="WHIT">
+<span class='line'> 76</span> </span><span class="WHIT">  </span><span class="NAME">minplayer.display.prototype.construct.call</span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 77</span> 
+<span class='line'> 78</span> </span><span class="WHIT">  </span><span class="COMM">// Set the plugin name within the options.</span><span class="WHIT">
+<span class='line'> 79</span> </span><span class="WHIT">  </span><span class="NAME">this.options.pluginName</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">'controller'</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 80</span> 
+<span class='line'> 81</span> </span><span class="WHIT">  </span><span class="COMM">// Keep track of if we are dragging...</span><span class="WHIT">
+<span class='line'> 82</span> </span><span class="WHIT">  </span><span class="NAME">this.dragging</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">false</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 83</span> 
+<span class='line'> 84</span> </span><span class="WHIT">  </span><span class="COMM">// Keep track of the current volume.</span><span class="WHIT">
+<span class='line'> 85</span> </span><span class="WHIT">  </span><span class="NAME">this.vol</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 86</span> 
+<span class='line'> 87</span> </span><span class="WHIT">  </span><span class="COMM">// If they have a seek bar.</span><span class="WHIT">
+<span class='line'> 88</span> </span><span class="WHIT">  </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">this.elements.seek</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 89</span> 
+<span class='line'> 90</span> </span><span class="WHIT">    </span><span class="COMM">// Create the seek bar slider control.</span><span class="WHIT">
+<span class='line'> 91</span> </span><span class="WHIT">    </span><span class="NAME">this.seekBar</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.elements.seek.slider</span><span class="PUNC">(</span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 92</span> </span><span class="WHIT">      </span><span class="NAME">range</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="STRN">'min'</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'> 93</span> </span><span class="WHIT">      </span><span class="NAME">create</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">event</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">ui</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 94</span> </span><span class="WHIT">        </span><span class="NAME">jQuery</span><span class="PUNC">(</span><span class="STRN">'.ui-slider-range'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">event.target</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">addClass</span><span class="PUNC">(</span><span class="STRN">'ui-state-active'</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 95</span> </span><span class="WHIT">      </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'> 96</span> </span><span class="WHIT">    </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 97</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'> 98</span> 
+<span class='line'> 99</span> </span><span class="WHIT">  </span><span class="COMM">// If they have a volume bar.</span><span class="WHIT">
+<span class='line'>100</span> </span><span class="WHIT">  </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">this.elements.volume</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>101</span> 
+<span class='line'>102</span> </span><span class="WHIT">    </span><span class="COMM">// Create the volume bar slider control.</span><span class="WHIT">
+<span class='line'>103</span> </span><span class="WHIT">    </span><span class="NAME">this.volumeBar</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.elements.volume.slider</span><span class="PUNC">(</span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>104</span> </span><span class="WHIT">      </span><span class="NAME">range</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="STRN">'min'</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'>105</span> </span><span class="WHIT">      </span><span class="NAME">orientation</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="STRN">'vertical'</span><span class="WHIT">
+<span class='line'>106</span> </span><span class="WHIT">    </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>107</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>108</span> 
+<span class='line'>109</span> </span><span class="WHIT">  </span><span class="COMM">// Get the player plugin.</span><span class="WHIT">
+<span class='line'>110</span> </span><span class="WHIT">  </span><span class="NAME">this.get</span><span class="PUNC">(</span><span class="STRN">'player'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">player</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>111</span> 
+<span class='line'>112</span> </span><span class="WHIT">    </span><span class="COMM">// If they have a fullscreen button.</span><span class="WHIT">
+<span class='line'>113</span> </span><span class="WHIT">    </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">this.elements.fullscreen</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>114</span> 
+<span class='line'>115</span> </span><span class="WHIT">      </span><span class="COMM">// Bind to the click event.</span><span class="WHIT">
+<span class='line'>116</span> </span><span class="WHIT">      </span><span class="NAME">minplayer.click</span><span class="PUNC">(</span><span class="NAME">this.elements.fullscreen.unbind</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>117</span> </span><span class="WHIT">        </span><span class="NAME">player.toggleFullScreen</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>118</span> </span><span class="WHIT">      </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">css</span><span class="PUNC">(</span><span class="PUNC">{</span><span class="STRN">'pointer'</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="STRN">'hand'</span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>119</span> </span><span class="WHIT">    </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>120</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>121</span> 
+<span class='line'>122</span> </span><span class="WHIT">  </span><span class="COMM">// Get the media plugin.</span><span class="WHIT">
+<span class='line'>123</span> </span><span class="WHIT">  </span><span class="NAME">this.get</span><span class="PUNC">(</span><span class="STRN">'media'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">media</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>124</span> 
+<span class='line'>125</span> </span><span class="WHIT">    </span><span class="COMM">// Only bind if this player does not have its own play loader.</span><span class="WHIT">
+<span class='line'>126</span> </span><span class="WHIT">    </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">media.hasController</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>127</span> 
+<span class='line'>128</span> </span><span class="WHIT">      </span><span class="COMM">// If they have a pause button</span><span class="WHIT">
+<span class='line'>129</span> </span><span class="WHIT">      </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">this.elements.pause</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>130</span> 
+<span class='line'>131</span> </span><span class="WHIT">        </span><span class="COMM">// Bind to the click on this button.</span><span class="WHIT">
+<span class='line'>132</span> </span><span class="WHIT">        </span><span class="NAME">minplayer.click</span><span class="PUNC">(</span><span class="NAME">this.elements.pause.unbind</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">controller</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>133</span> </span><span class="WHIT">          </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">event</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>134</span> </span><span class="WHIT">            </span><span class="NAME">event.preventDefault</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>135</span> </span><span class="WHIT">            </span><span class="NAME">controller.playPause</span><span class="PUNC">(</span><span class="KEYW">false</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">media</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>136</span> </span><span class="WHIT">          </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>137</span> </span><span class="WHIT">        </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>138</span> 
+<span class='line'>139</span> </span><span class="WHIT">        </span><span class="COMM">// Bind to the pause event of the media.</span><span class="WHIT">
+<span class='line'>140</span> </span><span class="WHIT">        </span><span class="NAME">media.bind</span><span class="PUNC">(</span><span class="STRN">'pause'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">controller</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>141</span> </span><span class="WHIT">          </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">event</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>142</span> </span><span class="WHIT">            </span><span class="NAME">controller.setPlayPause</span><span class="PUNC">(</span><span class="KEYW">true</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>143</span> </span><span class="WHIT">          </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>144</span> </span><span class="WHIT">        </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>145</span> </span><span class="WHIT">      </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>146</span> 
+<span class='line'>147</span> </span><span class="WHIT">      </span><span class="COMM">// If they have a play button</span><span class="WHIT">
+<span class='line'>148</span> </span><span class="WHIT">      </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">this.elements.play</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>149</span> 
+<span class='line'>150</span> </span><span class="WHIT">        </span><span class="COMM">// Bind to the click on this button.</span><span class="WHIT">
+<span class='line'>151</span> </span><span class="WHIT">        </span><span class="NAME">minplayer.click</span><span class="PUNC">(</span><span class="NAME">this.elements.play.unbind</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">controller</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>152</span> </span><span class="WHIT">          </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">event</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>153</span> </span><span class="WHIT">            </span><span class="NAME">event.preventDefault</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>154</span> </span><span class="WHIT">            </span><span class="NAME">controller.playPause</span><span class="PUNC">(</span><span class="KEYW">true</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">media</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>155</span> </span><span class="WHIT">          </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>156</span> </span><span class="WHIT">        </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>157</span> 
+<span class='line'>158</span> </span><span class="WHIT">        </span><span class="COMM">// Bind to the play event of the media.</span><span class="WHIT">
+<span class='line'>159</span> </span><span class="WHIT">        </span><span class="NAME">media.bind</span><span class="PUNC">(</span><span class="STRN">'playing'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">controller</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>160</span> </span><span class="WHIT">          </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">event</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>161</span> </span><span class="WHIT">            </span><span class="NAME">controller.setPlayPause</span><span class="PUNC">(</span><span class="KEYW">false</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>162</span> </span><span class="WHIT">          </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>163</span> </span><span class="WHIT">        </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>164</span> </span><span class="WHIT">      </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>165</span> 
+<span class='line'>166</span> </span><span class="WHIT">      </span><span class="COMM">// If they have a duration, then trigger on duration change.</span><span class="WHIT">
+<span class='line'>167</span> </span><span class="WHIT">      </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">this.elements.duration</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>168</span> 
+<span class='line'>169</span> </span><span class="WHIT">        </span><span class="COMM">// Bind to the duration change event.</span><span class="WHIT">
+<span class='line'>170</span> </span><span class="WHIT">        </span><span class="NAME">media.bind</span><span class="PUNC">(</span><span class="STRN">'durationchange'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">controller</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>171</span> </span><span class="WHIT">          </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">event</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">data</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>172</span> </span><span class="WHIT">            </span><span class="NAME">controller.setTimeString</span><span class="PUNC">(</span><span class="STRN">'duration'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">data.duration</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>173</span> </span><span class="WHIT">          </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>174</span> </span><span class="WHIT">        </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>175</span> 
+<span class='line'>176</span> </span><span class="WHIT">        </span><span class="COMM">// Set the timestring to the duration.</span><span class="WHIT">
+<span class='line'>177</span> </span><span class="WHIT">        </span><span class="NAME">media.getDuration</span><span class="PUNC">(</span><span class="PUNC">(</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">controller</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>178</span> </span><span class="WHIT">          </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">duration</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>179</span> </span><span class="WHIT">            </span><span class="NAME">controller.setTimeString</span><span class="PUNC">(</span><span class="STRN">'duration'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">duration</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>180</span> </span><span class="WHIT">          </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>181</span> </span><span class="WHIT">        </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>182</span> </span><span class="WHIT">      </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>183</span> 
+<span class='line'>184</span> </span><span class="WHIT">      </span><span class="COMM">// If they have a progress element.</span><span class="WHIT">
+<span class='line'>185</span> </span><span class="WHIT">      </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">this.elements.progress</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>186</span> 
+<span class='line'>187</span> </span><span class="WHIT">        </span><span class="COMM">// Bind to the progress event.</span><span class="WHIT">
+<span class='line'>188</span> </span><span class="WHIT">        </span><span class="NAME">media.bind</span><span class="PUNC">(</span><span class="STRN">'progress'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">controller</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>189</span> </span><span class="WHIT">          </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">event</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">data</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>190</span> </span><span class="WHIT">            </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">percent</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">data.total</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">data.loaded</span><span class="WHIT"> </span><span class="PUNC">/</span><span class="WHIT"> </span><span class="NAME">data.total</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">*</span><span class="WHIT"> </span><span class="NUMB">100</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>191</span> </span><span class="WHIT">            </span><span class="NAME">controller.elements.progress.width</span><span class="PUNC">(</span><span class="NAME">percent</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">'%'</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>192</span> </span><span class="WHIT">          </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>193</span> </span><span class="WHIT">        </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>194</span> </span><span class="WHIT">      </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>195</span> 
+<span class='line'>196</span> </span><span class="WHIT">      </span><span class="COMM">// If they have a seek bar or timer, bind to the timeupdate.</span><span class="WHIT">
+<span class='line'>197</span> </span><span class="WHIT">      </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">this.seekBar</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="NAME">this.elements.timer</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>198</span> 
+<span class='line'>199</span> </span><span class="WHIT">        </span><span class="COMM">// Bind to the time update event.</span><span class="WHIT">
+<span class='line'>200</span> </span><span class="WHIT">        </span><span class="NAME">media.bind</span><span class="PUNC">(</span><span class="STRN">'timeupdate'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">controller</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>201</span> </span><span class="WHIT">          </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">event</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">data</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>202</span> </span><span class="WHIT">            </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">controller.dragging</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>203</span> </span><span class="WHIT">              </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">value</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>204</span> </span><span class="WHIT">              </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">data.duration</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>205</span> </span><span class="WHIT">                </span><span class="NAME">value</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">data.currentTime</span><span class="WHIT"> </span><span class="PUNC">/</span><span class="WHIT"> </span><span class="NAME">data.duration</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">*</span><span class="WHIT"> </span><span class="NUMB">100</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>206</span> </span><span class="WHIT">              </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>207</span> 
+<span class='line'>208</span> </span><span class="WHIT">              </span><span class="COMM">// Update the seek bar if it exists.</span><span class="WHIT">
+<span class='line'>209</span> </span><span class="WHIT">              </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">controller.seekBar</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>210</span> </span><span class="WHIT">                </span><span class="NAME">controller.seekBar.slider</span><span class="PUNC">(</span><span class="STRN">'option'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'value'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">value</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>211</span> </span><span class="WHIT">              </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>212</span> 
+<span class='line'>213</span> </span><span class="WHIT">              </span><span class="NAME">controller.setTimeString</span><span class="PUNC">(</span><span class="STRN">'timer'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">data.currentTime</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>214</span> </span><span class="WHIT">            </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>215</span> </span><span class="WHIT">          </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>216</span> </span><span class="WHIT">        </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>217</span> </span><span class="WHIT">      </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>218</span> 
+<span class='line'>219</span> </span><span class="WHIT">      </span><span class="COMM">// If they have a seekBar element.</span><span class="WHIT">
+<span class='line'>220</span> </span><span class="WHIT">      </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">this.seekBar</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>221</span> 
+<span class='line'>222</span> </span><span class="WHIT">        </span><span class="COMM">// Register the events for the control bar to control the media.</span><span class="WHIT">
+<span class='line'>223</span> </span><span class="WHIT">        </span><span class="NAME">this.seekBar.slider</span><span class="PUNC">(</span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>224</span> </span><span class="WHIT">          </span><span class="NAME">start</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">controller</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>225</span> </span><span class="WHIT">            </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">event</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">ui</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>226</span> </span><span class="WHIT">              </span><span class="NAME">controller.dragging</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">true</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>227</span> </span><span class="WHIT">            </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>228</span> </span><span class="WHIT">          </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'>229</span> </span><span class="WHIT">          </span><span class="NAME">stop</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">controller</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>230</span> </span><span class="WHIT">            </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">event</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">ui</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>231</span> </span><span class="WHIT">              </span><span class="NAME">controller.dragging</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">false</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>232</span> </span><span class="WHIT">              </span><span class="NAME">media.getDuration</span><span class="PUNC">(</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">duration</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>233</span> </span><span class="WHIT">                </span><span class="NAME">media.seek</span><span class="PUNC">(</span><span class="PUNC">(</span><span class="NAME">ui.value</span><span class="WHIT"> </span><span class="PUNC">/</span><span class="WHIT"> </span><span class="NUMB">100</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">*</span><span class="WHIT"> </span><span class="NAME">duration</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>234</span> </span><span class="WHIT">              </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>235</span> </span><span class="WHIT">            </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>236</span> </span><span class="WHIT">          </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'>237</span> </span><span class="WHIT">          </span><span class="NAME">slide</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">controller</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>238</span> </span><span class="WHIT">            </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">event</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">ui</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>239</span> </span><span class="WHIT">              </span><span class="NAME">media.getDuration</span><span class="PUNC">(</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">duration</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>240</span> </span><span class="WHIT">                </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">time</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">ui.value</span><span class="WHIT"> </span><span class="PUNC">/</span><span class="WHIT"> </span><span class="NUMB">100</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">*</span><span class="WHIT"> </span><span class="NAME">duration</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>241</span> </span><span class="WHIT">                </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">controller.dragging</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>242</span> </span><span class="WHIT">                  </span><span class="NAME">media.seek</span><span class="PUNC">(</span><span class="NAME">time</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>243</span> </span><span class="WHIT">                </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>244</span> </span><span class="WHIT">                </span><span class="NAME">controller.setTimeString</span><span class="PUNC">(</span><span class="STRN">'timer'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">time</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>245</span> </span><span class="WHIT">              </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>246</span> </span><span class="WHIT">            </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>247</span> </span><span class="WHIT">          </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'>248</span> </span><span class="WHIT">        </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>249</span> </span><span class="WHIT">      </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>250</span> 
+<span class='line'>251</span> </span><span class="WHIT">      </span><span class="COMM">// Setup the mute button.</span><span class="WHIT">
+<span class='line'>252</span> </span><span class="WHIT">      </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">this.elements.mute</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>253</span> </span><span class="WHIT">        </span><span class="NAME">minplayer.click</span><span class="PUNC">(</span><span class="NAME">this.elements.mute</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">controller</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>254</span> </span><span class="WHIT">          </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">event</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>255</span> </span><span class="WHIT">            </span><span class="NAME">event.preventDefault</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>256</span> </span><span class="WHIT">            </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">value</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">controller.volumeBar.slider</span><span class="PUNC">(</span><span class="STRN">'option'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'value'</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>257</span> </span><span class="WHIT">            </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">value</span><span class="WHIT"> </span><span class="PUNC">></span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>258</span> </span><span class="WHIT">              </span><span class="NAME">controller.vol</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">value</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>259</span> </span><span class="WHIT">              </span><span class="NAME">controller.volumeBar.slider</span><span class="PUNC">(</span><span class="STRN">'option'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'value'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>260</span> </span><span class="WHIT">              </span><span class="NAME">media.setVolume</span><span class="PUNC">(</span><span class="NUMB">0</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>261</span> </span><span class="WHIT">            </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>262</span> </span><span class="WHIT">            </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>263</span> </span><span class="WHIT">              </span><span class="NAME">controller.volumeBar.slider</span><span class="PUNC">(</span><span class="STRN">'option'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'value'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">controller.vol</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>264</span> </span><span class="WHIT">              </span><span class="NAME">media.setVolume</span><span class="PUNC">(</span><span class="NAME">controller.vol</span><span class="WHIT"> </span><span class="PUNC">/</span><span class="WHIT"> </span><span class="NUMB">100</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>265</span> </span><span class="WHIT">            </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>266</span> </span><span class="WHIT">          </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>267</span> </span><span class="WHIT">        </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>268</span> </span><span class="WHIT">      </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>269</span> 
+<span class='line'>270</span> </span><span class="WHIT">      </span><span class="COMM">// Setup the volume bar.</span><span class="WHIT">
+<span class='line'>271</span> </span><span class="WHIT">      </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">this.volumeBar</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>272</span> 
+<span class='line'>273</span> </span><span class="WHIT">        </span><span class="COMM">// Create the slider.</span><span class="WHIT">
+<span class='line'>274</span> </span><span class="WHIT">        </span><span class="NAME">this.volumeBar.slider</span><span class="PUNC">(</span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>275</span> </span><span class="WHIT">          </span><span class="NAME">slide</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">event</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">ui</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>276</span> </span><span class="WHIT">            </span><span class="NAME">media.setVolume</span><span class="PUNC">(</span><span class="NAME">ui.value</span><span class="WHIT"> </span><span class="PUNC">/</span><span class="WHIT"> </span><span class="NUMB">100</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>277</span> </span><span class="WHIT">          </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>278</span> </span><span class="WHIT">        </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>279</span> 
+<span class='line'>280</span> </span><span class="WHIT">        </span><span class="NAME">media.bind</span><span class="PUNC">(</span><span class="STRN">'volumeupdate'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">controller</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>281</span> </span><span class="WHIT">          </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">event</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">vol</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>282</span> </span><span class="WHIT">            </span><span class="NAME">controller.volumeBar.slider</span><span class="PUNC">(</span><span class="STRN">'option'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'value'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">vol</span><span class="WHIT"> </span><span class="PUNC">*</span><span class="WHIT"> </span><span class="NUMB">100</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>283</span> </span><span class="WHIT">          </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>284</span> </span><span class="WHIT">        </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>285</span> 
+<span class='line'>286</span> </span><span class="WHIT">        </span><span class="COMM">// Set the volume to match that of the player.</span><span class="WHIT">
+<span class='line'>287</span> </span><span class="WHIT">        </span><span class="NAME">media.getVolume</span><span class="PUNC">(</span><span class="PUNC">(</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">controller</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>288</span> </span><span class="WHIT">          </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">vol</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>289</span> </span><span class="WHIT">            </span><span class="NAME">controller.volumeBar.slider</span><span class="PUNC">(</span><span class="STRN">'option'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'value'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">vol</span><span class="WHIT"> </span><span class="PUNC">*</span><span class="WHIT"> </span><span class="NUMB">100</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>290</span> </span><span class="WHIT">          </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>291</span> </span><span class="WHIT">        </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>292</span> </span><span class="WHIT">      </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>293</span> </span><span class="WHIT">    </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>294</span> </span><span class="WHIT">    </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>295</span> 
+<span class='line'>296</span> </span><span class="WHIT">      </span><span class="COMM">// Hide this controller.</span><span class="WHIT">
+<span class='line'>297</span> </span><span class="WHIT">      </span><span class="NAME">this.hide</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>298</span> </span><span class="WHIT">    </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>299</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>300</span> 
+<span class='line'>301</span> </span><span class="WHIT">  </span><span class="COMM">// We are now ready.</span><span class="WHIT">
+<span class='line'>302</span> </span><span class="WHIT">  </span><span class="NAME">this.ready</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>303</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>304</span> 
+<span class='line'>305</span> </span><span class="COMM">/**
+<span class='line'>306</span>  * Sets the play and pause state of the control bar.
+<span class='line'>307</span>  *
+<span class='line'>308</span>  * @param {boolean} state TRUE - Show Play, FALSE - Show Pause.
+<span class='line'>309</span>  */</span><span class="WHIT">
+<span class='line'>310</span> </span><span class="NAME">minplayer.controller.prototype.setPlayPause</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">state</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>311</span> </span><span class="WHIT">  </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">css</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">''</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>312</span> </span><span class="WHIT">  </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">this.elements.play</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>313</span> </span><span class="WHIT">    </span><span class="NAME">css</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">state</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="STRN">'inherit'</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="STRN">'none'</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>314</span> </span><span class="WHIT">    </span><span class="NAME">this.elements.play.css</span><span class="PUNC">(</span><span class="STRN">'display'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">css</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>315</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>316</span> </span><span class="WHIT">  </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">this.elements.pause</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>317</span> </span><span class="WHIT">    </span><span class="NAME">css</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">state</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="STRN">'none'</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="STRN">'inherit'</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>318</span> </span><span class="WHIT">    </span><span class="NAME">this.elements.pause.css</span><span class="PUNC">(</span><span class="STRN">'display'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">css</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>319</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>320</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>321</span> 
+<span class='line'>322</span> </span><span class="COMM">/**
+<span class='line'>323</span>  * Plays or pauses the media.
+<span class='line'>324</span>  *
+<span class='line'>325</span>  * @param {bool} state true => play, false => pause.
+<span class='line'>326</span>  * @param {object} media The media player object.
+<span class='line'>327</span>  */</span><span class="WHIT">
+<span class='line'>328</span> </span><span class="NAME">minplayer.controller.prototype.playPause</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">state</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">media</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>329</span> </span><span class="WHIT">  </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">type</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">state</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="STRN">'play'</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="STRN">'pause'</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>330</span> </span><span class="WHIT">  </span><span class="NAME">this.display.trigger</span><span class="PUNC">(</span><span class="NAME">type</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>331</span> </span><span class="WHIT">  </span><span class="NAME">this.setPlayPause</span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">state</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>332</span> </span><span class="WHIT">  </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">media</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>333</span> </span><span class="WHIT">    </span><span class="NAME">media</span><span class="PUNC">[</span><span class="NAME">type</span><span class="PUNC">]</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>334</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>335</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>336</span> 
+<span class='line'>337</span> </span><span class="COMM">/**
+<span class='line'>338</span>  * Sets the time string on the control bar.
+<span class='line'>339</span>  *
+<span class='line'>340</span>  * @param {string} element The name of the element to set.
+<span class='line'>341</span>  * @param {number} time The total time amount to set.
+<span class='line'>342</span>  */</span><span class="WHIT">
+<span class='line'>343</span> </span><span class="NAME">minplayer.controller.prototype.setTimeString</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">element</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">time</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>344</span> </span><span class="WHIT">  </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">this.elements</span><span class="PUNC">[</span><span class="NAME">element</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>345</span> </span><span class="WHIT">    </span><span class="NAME">this.elements</span><span class="PUNC">[</span><span class="NAME">element</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">text</span><span class="PUNC">(</span><span class="NAME">minplayer.formatTime</span><span class="PUNC">(</span><span class="NAME">time</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">time</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>346</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>347</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>348</span> </span></pre></body></html>
\ No newline at end of file
diff --git a/public/admin/js/osmplayer/doc/symbols/src/minplayer_src_minplayer.display.js.html b/public/admin/js/osmplayer/doc/symbols/src/minplayer_src_minplayer.display.js.html
new file mode 100644
index 00000000000..7ac9da37e29
--- /dev/null
+++ b/public/admin/js/osmplayer/doc/symbols/src/minplayer_src_minplayer.display.js.html
@@ -0,0 +1,400 @@
+<html><head><meta http-equiv="content-type" content="text/html; charset=utf-8"> <style>
+	.KEYW {color: #933;}
+	.COMM {color: #bbb; font-style: italic;}
+	.NUMB {color: #393;}
+	.STRN {color: #393;}
+	.REGX {color: #339;}
+	.line {border-right: 1px dotted #666; color: #666; font-style: normal;}
+	</style></head><body><pre><span class='line'>  1</span> <span class="COMM">/** The minplayer namespace. */</span><span class="WHIT">
+<span class='line'>  2</span> </span><span class="NAME">minplayer</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">minplayer</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>  3</span> 
+<span class='line'>  4</span> </span><span class="COMM">/**
+<span class='line'>  5</span>  * @constructor
+<span class='line'>  6</span>  * @extends minplayer.plugin
+<span class='line'>  7</span>  * @class Base class used to provide the display and options for any component
+<span class='line'>  8</span>  * deriving from this class.  Components who derive are expected to provide
+<span class='line'>  9</span>  * the elements that they define by implementing the getElements method.
+<span class='line'> 10</span>  *
+<span class='line'> 11</span>  * @param {string} name The name of this plugin.
+<span class='line'> 12</span>  * @param {object} context The jQuery context this component resides.
+<span class='line'> 13</span>  * @param {object} options The options for this component.
+<span class='line'> 14</span>  * @param {object} queue The event queue to pass events around.
+<span class='line'> 15</span>  */</span><span class="WHIT">
+<span class='line'> 16</span> </span><span class="NAME">minplayer.display</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">name</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">context</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">options</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">queue</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 17</span> 
+<span class='line'> 18</span> </span><span class="WHIT">  </span><span class="COMM">// Derive from plugin</span><span class="WHIT">
+<span class='line'> 19</span> </span><span class="WHIT">  </span><span class="NAME">minplayer.plugin.call</span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">name</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">context</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">options</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">queue</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 20</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 21</span> 
+<span class='line'> 22</span> </span><span class="COMM">/** Derive from minplayer.plugin. */</span><span class="WHIT">
+<span class='line'> 23</span> </span><span class="NAME">minplayer.display.prototype</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">new</span><span class="WHIT"> </span><span class="NAME">minplayer.plugin</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 24</span> 
+<span class='line'> 25</span> </span><span class="COMM">/** Reset the constructor. */</span><span class="WHIT">
+<span class='line'> 26</span> </span><span class="NAME">minplayer.display.prototype.constructor</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">minplayer.display</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 27</span> 
+<span class='line'> 28</span> </span><span class="COMM">/**
+<span class='line'> 29</span>  * Returns the display for this component.
+<span class='line'> 30</span>  *
+<span class='line'> 31</span>  * @return {object} The jQuery context for this display.
+<span class='line'> 32</span>  */</span><span class="WHIT">
+<span class='line'> 33</span> </span><span class="NAME">minplayer.display.prototype.getDisplay</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 34</span> </span><span class="WHIT">  </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">this.context</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 35</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 36</span> 
+<span class='line'> 37</span> </span><span class="COMM">/**
+<span class='line'> 38</span>  * @see minplayer.plugin.construct
+<span class='line'> 39</span>  */</span><span class="WHIT">
+<span class='line'> 40</span> </span><span class="NAME">minplayer.display.prototype.construct</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 41</span> 
+<span class='line'> 42</span> </span><span class="WHIT">  </span><span class="COMM">// Set the display.</span><span class="WHIT">
+<span class='line'> 43</span> </span><span class="WHIT">  </span><span class="NAME">this.display</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.getDisplay</span><span class="PUNC">(</span><span class="NAME">this.context</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">this.options</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 44</span> 
+<span class='line'> 45</span> </span><span class="WHIT">  </span><span class="COMM">// Call the plugin constructor.</span><span class="WHIT">
+<span class='line'> 46</span> </span><span class="WHIT">  </span><span class="NAME">minplayer.plugin.prototype.construct.call</span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 47</span> 
+<span class='line'> 48</span> </span><span class="WHIT">  </span><span class="COMM">// Set the plugin name within the options.</span><span class="WHIT">
+<span class='line'> 49</span> </span><span class="WHIT">  </span><span class="NAME">this.options.pluginName</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">'display'</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 50</span> 
+<span class='line'> 51</span> </span><span class="WHIT">  </span><span class="COMM">// Get the display elements.</span><span class="WHIT">
+<span class='line'> 52</span> </span><span class="WHIT">  </span><span class="NAME">this.elements</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.getElements</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 53</span> 
+<span class='line'> 54</span> </span><span class="WHIT">  </span><span class="COMM">// Only do this if they allow resize for this display.</span><span class="WHIT">
+<span class='line'> 55</span> </span><span class="WHIT">  </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">this.onResize</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 56</span> 
+<span class='line'> 57</span> </span><span class="WHIT">    </span><span class="COMM">// Set the resize timeout and this pointer.</span><span class="WHIT">
+<span class='line'> 58</span> </span><span class="WHIT">    </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">resizeTimeout</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 59</span> 
+<span class='line'> 60</span> </span><span class="WHIT">    </span><span class="COMM">// Add a handler to trigger a resize event.</span><span class="WHIT">
+<span class='line'> 61</span> </span><span class="WHIT">    </span><span class="NAME">jQuery</span><span class="PUNC">(</span><span class="NAME">window</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">resize</span><span class="PUNC">(</span><span class="PUNC">(</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">display</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 62</span> </span><span class="WHIT">      </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 63</span> </span><span class="WHIT">        </span><span class="NAME">clearTimeout</span><span class="PUNC">(</span><span class="NAME">resizeTimeout</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 64</span> </span><span class="WHIT">        </span><span class="NAME">resizeTimeout</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">setTimeout</span><span class="PUNC">(</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 65</span> </span><span class="WHIT">          </span><span class="NAME">display.onResize</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 66</span> </span><span class="WHIT">        </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NUMB">200</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 67</span> </span><span class="WHIT">      </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 68</span> </span><span class="WHIT">    </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 69</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'> 70</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 71</span> 
+<span class='line'> 72</span> </span><span class="COMM">/**
+<span class='line'> 73</span>  * Called when the window resizes.
+<span class='line'> 74</span>  */</span><span class="WHIT">
+<span class='line'> 75</span> </span><span class="NAME">minplayer.display.prototype.onResize</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">false</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 76</span> 
+<span class='line'> 77</span> </span><span class="COMM">/**
+<span class='line'> 78</span>  * Wrapper around hide that will always not show.
+<span class='line'> 79</span>  *
+<span class='line'> 80</span>  * @param {object} element The element you wish to hide.
+<span class='line'> 81</span>  */</span><span class="WHIT">
+<span class='line'> 82</span> </span><span class="NAME">minplayer.display.prototype.hide</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">element</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 83</span> </span><span class="WHIT">  </span><span class="NAME">element</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">element</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="NAME">this.display</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 84</span> </span><span class="WHIT">  </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">element</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 85</span> </span><span class="WHIT">    </span><span class="NAME">element.forceHide</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">true</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 86</span> </span><span class="WHIT">    </span><span class="NAME">element.unbind</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">hide</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 87</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'> 88</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 89</span> 
+<span class='line'> 90</span> </span><span class="COMM">/**
+<span class='line'> 91</span>  * Gets the full screen element.
+<span class='line'> 92</span>  *
+<span class='line'> 93</span>  * @return {object} The display to be used for full screen support.
+<span class='line'> 94</span>  */</span><span class="WHIT">
+<span class='line'> 95</span> </span><span class="NAME">minplayer.display.prototype.fullScreenElement</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 96</span> </span><span class="WHIT">  </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">this.display</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 97</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 98</span> 
+<span class='line'> 99</span> </span><span class="COMM">/**
+<span class='line'>100</span>  * Fix for the click function in jQuery to be cross platform.
+<span class='line'>101</span>  *
+<span class='line'>102</span>  * @param {object} element The element that will be clicked.
+<span class='line'>103</span>  * @param {function} fn Called when the element is clicked.
+<span class='line'>104</span>  * @return {object} The element that is to be clicked.
+<span class='line'>105</span>  */</span><span class="WHIT">
+<span class='line'>106</span> </span><span class="NAME">minplayer.click</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">element</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">fn</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>107</span> </span><span class="WHIT">  </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">flag</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">false</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>108</span> </span><span class="WHIT">  </span><span class="NAME">element</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">jQuery</span><span class="PUNC">(</span><span class="NAME">element</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>109</span> </span><span class="WHIT">  </span><span class="NAME">element.bind</span><span class="PUNC">(</span><span class="STRN">'touchstart click'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">event</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>110</span> </span><span class="WHIT">    </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">flag</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>111</span> </span><span class="WHIT">      </span><span class="NAME">flag</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">true</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>112</span> </span><span class="WHIT">      </span><span class="NAME">setTimeout</span><span class="PUNC">(</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>113</span> </span><span class="WHIT">        </span><span class="NAME">flag</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">false</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>114</span> </span><span class="WHIT">      </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NUMB">100</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>115</span> </span><span class="WHIT">      </span><span class="NAME">fn.call</span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">event</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>116</span> </span><span class="WHIT">    </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>117</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>118</span> </span><span class="WHIT">  </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">element</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>119</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>120</span> 
+<span class='line'>121</span> </span><span class="COMM">/**
+<span class='line'>122</span>  * Determines if the player is in focus or not.
+<span class='line'>123</span>  *
+<span class='line'>124</span>  * @param {boolean} focus If the player is in focus.
+<span class='line'>125</span>  */</span><span class="WHIT">
+<span class='line'>126</span> </span><span class="NAME">minplayer.display.prototype.onFocus</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">focus</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>127</span> </span><span class="WHIT">  </span><span class="NAME">this.hasFocus</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.focus</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">focus</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>128</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>129</span> 
+<span class='line'>130</span> </span><span class="COMM">/** Keep track of all the show hide elements. */</span><span class="WHIT">
+<span class='line'>131</span> </span><span class="NAME">minplayer.showHideElements</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>132</span> 
+<span class='line'>133</span> </span><span class="COMM">/**
+<span class='line'>134</span>  * Show all the show hide elements.
+<span class='line'>135</span>  */</span><span class="WHIT">
+<span class='line'>136</span> </span><span class="NAME">minplayer.showAll</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>137</span> </span><span class="WHIT">  </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">minplayer.showHideElements.length</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>138</span> </span><span class="WHIT">  </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">obj</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">null</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>139</span> </span><span class="WHIT">  </span><span class="KEYW">while</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">i</span><span class="PUNC">--</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>140</span> </span><span class="WHIT">    </span><span class="NAME">obj</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">minplayer.showHideElements</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>141</span> </span><span class="WHIT">    </span><span class="NAME">minplayer.showThenHide</span><span class="PUNC">(</span><span class="NAME">obj.element</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">obj.timeout</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">obj.callback</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>142</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>143</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>144</span> 
+<span class='line'>145</span> </span><span class="COMM">/**
+<span class='line'>146</span>  * Stops the whole show then hide from happening.
+<span class='line'>147</span>  *
+<span class='line'>148</span>  * @param {object} element The element you want the showThenHide to stop.
+<span class='line'>149</span>  */</span><span class="WHIT">
+<span class='line'>150</span> </span><span class="NAME">minplayer.stopShowThenHide</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">element</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>151</span> </span><span class="WHIT">  </span><span class="NAME">element</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">jQuery</span><span class="PUNC">(</span><span class="NAME">element</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>152</span> </span><span class="WHIT">  </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">element.showTimer</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>153</span> </span><span class="WHIT">    </span><span class="NAME">clearTimeout</span><span class="PUNC">(</span><span class="NAME">element.showTimer</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>154</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>155</span> </span><span class="WHIT">  </span><span class="NAME">element.stopShowThenHide</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">true</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>156</span> </span><span class="WHIT">  </span><span class="NAME">element.shown</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">true</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>157</span> </span><span class="WHIT">  </span><span class="NAME">element.show</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>158</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>159</span> 
+<span class='line'>160</span> </span><span class="COMM">/**
+<span class='line'>161</span>  * Called if you would like for your display item to show then hide.
+<span class='line'>162</span>  *
+<span class='line'>163</span>  * @param {object} element The element you would like to hide or show.
+<span class='line'>164</span>  * @param {number} timeout The timeout to hide and show.
+<span class='line'>165</span>  * @param {function} callback Called when something happens.
+<span class='line'>166</span>  */</span><span class="WHIT">
+<span class='line'>167</span> </span><span class="NAME">minplayer.showThenHide</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">element</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">timeout</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">callback</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>168</span> 
+<span class='line'>169</span> </span><span class="WHIT">  </span><span class="COMM">// If no element exists, then just return.</span><span class="WHIT">
+<span class='line'>170</span> </span><span class="WHIT">  </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">element</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>171</span> </span><span class="WHIT">    </span><span class="KEYW">return</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>172</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>173</span> 
+<span class='line'>174</span> </span><span class="WHIT">  </span><span class="COMM">// Ensure we have a timeout.</span><span class="WHIT">
+<span class='line'>175</span> </span><span class="WHIT">  </span><span class="NAME">timeout</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">timeout</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="NUMB">5000</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>176</span> 
+<span class='line'>177</span> </span><span class="WHIT">  </span><span class="COMM">// If this has not yet been configured.</span><span class="WHIT">
+<span class='line'>178</span> </span><span class="WHIT">  </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">element.showTimer</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>179</span> </span><span class="WHIT">    </span><span class="NAME">element.shown</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">true</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>180</span> </span><span class="WHIT">    </span><span class="NAME">element.stopShowThenHide</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">false</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>181</span> 
+<span class='line'>182</span> </span><span class="WHIT">    </span><span class="COMM">// Add this to our showHideElements.</span><span class="WHIT">
+<span class='line'>183</span> </span><span class="WHIT">    </span><span class="NAME">minplayer.showHideElements.push</span><span class="PUNC">(</span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>184</span> </span><span class="WHIT">      </span><span class="NAME">element</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">element</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'>185</span> </span><span class="WHIT">      </span><span class="NAME">timeout</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">timeout</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'>186</span> </span><span class="WHIT">      </span><span class="NAME">callback</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">callback</span><span class="WHIT">
+<span class='line'>187</span> </span><span class="WHIT">    </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>188</span> 
+<span class='line'>189</span> </span><span class="WHIT">    </span><span class="COMM">// Bind to a click event.</span><span class="WHIT">
+<span class='line'>190</span> </span><span class="WHIT">    </span><span class="NAME">minplayer.click</span><span class="PUNC">(</span><span class="NAME">document</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>191</span> </span><span class="WHIT">      </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">element.stopShowThenHide</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>192</span> </span><span class="WHIT">        </span><span class="NAME">minplayer.showThenHide</span><span class="PUNC">(</span><span class="NAME">element</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">timeout</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">callback</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>193</span> </span><span class="WHIT">      </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>194</span> </span><span class="WHIT">    </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>195</span> 
+<span class='line'>196</span> </span><span class="WHIT">    </span><span class="COMM">// Bind to the mousemove event.</span><span class="WHIT">
+<span class='line'>197</span> </span><span class="WHIT">    </span><span class="NAME">jQuery</span><span class="PUNC">(</span><span class="NAME">document</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">bind</span><span class="PUNC">(</span><span class="STRN">'mousemove'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>198</span> </span><span class="WHIT">      </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">element.stopShowThenHide</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>199</span> </span><span class="WHIT">        </span><span class="NAME">minplayer.showThenHide</span><span class="PUNC">(</span><span class="NAME">element</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">timeout</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">callback</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>200</span> </span><span class="WHIT">      </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>201</span> </span><span class="WHIT">    </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>202</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>203</span> 
+<span class='line'>204</span> </span><span class="WHIT">  </span><span class="COMM">// Clear the timeout, and then setup the show then hide functionality.</span><span class="WHIT">
+<span class='line'>205</span> </span><span class="WHIT">  </span><span class="NAME">clearTimeout</span><span class="PUNC">(</span><span class="NAME">element.showTimer</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>206</span> 
+<span class='line'>207</span> </span><span class="WHIT">  </span><span class="COMM">// Show the display.</span><span class="WHIT">
+<span class='line'>208</span> </span><span class="WHIT">  </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">element.shown</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="PUNC">!</span><span class="NAME">element.forceHide</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>209</span> </span><span class="WHIT">    </span><span class="NAME">element.shown</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">true</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>210</span> </span><span class="WHIT">    </span><span class="NAME">element.show</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>211</span> </span><span class="WHIT">    </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">callback</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>212</span> </span><span class="WHIT">      </span><span class="NAME">callback</span><span class="PUNC">(</span><span class="KEYW">true</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>213</span> </span><span class="WHIT">    </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>214</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>215</span> 
+<span class='line'>216</span> </span><span class="WHIT">  </span><span class="COMM">// Set a timer to hide it after the timeout.</span><span class="WHIT">
+<span class='line'>217</span> </span><span class="WHIT">  </span><span class="NAME">element.showTimer</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">setTimeout</span><span class="PUNC">(</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>218</span> </span><span class="WHIT">    </span><span class="NAME">element.hide</span><span class="PUNC">(</span><span class="STRN">'slow'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>219</span> </span><span class="WHIT">      </span><span class="NAME">element.shown</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">false</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>220</span> </span><span class="WHIT">      </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">callback</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>221</span> </span><span class="WHIT">        </span><span class="NAME">callback</span><span class="PUNC">(</span><span class="KEYW">false</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>222</span> </span><span class="WHIT">      </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>223</span> </span><span class="WHIT">    </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>224</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">timeout</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>225</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>226</span> 
+<span class='line'>227</span> </span><span class="COMM">/**
+<span class='line'>228</span>  * Make this display element go fullscreen.
+<span class='line'>229</span>  *
+<span class='line'>230</span>  * @param {boolean} full Tell the player to go into fullscreen or not.
+<span class='line'>231</span>  */</span><span class="WHIT">
+<span class='line'>232</span> </span><span class="NAME">minplayer.display.prototype.fullscreen</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">full</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>233</span> </span><span class="WHIT">  </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">isFull</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.isFullScreen</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>234</span> </span><span class="WHIT">  </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">element</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.fullScreenElement</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>235</span> </span><span class="WHIT">  </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">isFull</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="PUNC">!</span><span class="NAME">full</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>236</span> </span><span class="WHIT">    </span><span class="NAME">element.removeClass</span><span class="PUNC">(</span><span class="STRN">'fullscreen'</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>237</span> </span><span class="WHIT">    </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">screenfull</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>238</span> </span><span class="WHIT">      </span><span class="NAME">screenfull.exit</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>239</span> </span><span class="WHIT">    </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>240</span> </span><span class="WHIT">    </span><span class="NAME">this.trigger</span><span class="PUNC">(</span><span class="STRN">'fullscreen'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="KEYW">false</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>241</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>242</span> </span><span class="WHIT">  </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">isFull</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">full</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>243</span> </span><span class="WHIT">    </span><span class="NAME">element.addClass</span><span class="PUNC">(</span><span class="STRN">'fullscreen'</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>244</span> </span><span class="WHIT">    </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">screenfull</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>245</span> </span><span class="WHIT">      </span><span class="NAME">screenfull.request</span><span class="PUNC">(</span><span class="NAME">element</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>246</span> </span><span class="WHIT">      </span><span class="NAME">screenfull.onchange</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">display</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>247</span> </span><span class="WHIT">        </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">e</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>248</span> </span><span class="WHIT">          </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">screenfull.isFullscreen</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>249</span> </span><span class="WHIT">            </span><span class="NAME">display.fullscreen</span><span class="PUNC">(</span><span class="KEYW">false</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>250</span> </span><span class="WHIT">          </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>251</span> </span><span class="WHIT">        </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>252</span> </span><span class="WHIT">      </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>253</span> </span><span class="WHIT">    </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>254</span> </span><span class="WHIT">    </span><span class="NAME">this.trigger</span><span class="PUNC">(</span><span class="STRN">'fullscreen'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="KEYW">true</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>255</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>256</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>257</span> 
+<span class='line'>258</span> </span><span class="COMM">/**
+<span class='line'>259</span>  * Toggle fullscreen.
+<span class='line'>260</span>  */</span><span class="WHIT">
+<span class='line'>261</span> </span><span class="NAME">minplayer.display.prototype.toggleFullScreen</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>262</span> </span><span class="WHIT">  </span><span class="NAME">this.fullscreen</span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">this.isFullScreen</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>263</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>264</span> 
+<span class='line'>265</span> </span><span class="COMM">/**
+<span class='line'>266</span>  * Checks to see if we are in fullscreen mode.
+<span class='line'>267</span>  *
+<span class='line'>268</span>  * @return {boolean} TRUE - fullscreen, FALSE - otherwise.
+<span class='line'>269</span>  */</span><span class="WHIT">
+<span class='line'>270</span> </span><span class="NAME">minplayer.display.prototype.isFullScreen</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>271</span> </span><span class="WHIT">  </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">this.fullScreenElement</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">hasClass</span><span class="PUNC">(</span><span class="STRN">'fullscreen'</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>272</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>273</span> 
+<span class='line'>274</span> </span><span class="COMM">/**
+<span class='line'>275</span>  * Returns a scaled rectangle provided a ratio and the container rect.
+<span class='line'>276</span>  *
+<span class='line'>277</span>  * @param {number} ratio The width/height ratio of what is being scaled.
+<span class='line'>278</span>  * @param {object} rect The bounding rectangle for scaling.
+<span class='line'>279</span>  * @return {object} The Rectangle object of the scaled rectangle.
+<span class='line'>280</span>  */</span><span class="WHIT">
+<span class='line'>281</span> </span><span class="NAME">minplayer.display.prototype.getScaledRect</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">ratio</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">rect</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>282</span> </span><span class="WHIT">  </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">scaledRect</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>283</span> </span><span class="WHIT">  </span><span class="NAME">scaledRect.x</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">rect.x</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="NAME">rect.x</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>284</span> </span><span class="WHIT">  </span><span class="NAME">scaledRect.y</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">rect.y</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="NAME">rect.y</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>285</span> </span><span class="WHIT">  </span><span class="NAME">scaledRect.width</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">rect.width</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="NAME">rect.width</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>286</span> </span><span class="WHIT">  </span><span class="NAME">scaledRect.height</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">rect.height</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="NAME">rect.height</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>287</span> </span><span class="WHIT">  </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">ratio</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>288</span> </span><span class="WHIT">    </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">(</span><span class="NAME">rect.width</span><span class="WHIT"> </span><span class="PUNC">/</span><span class="WHIT"> </span><span class="NAME">rect.height</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">></span><span class="WHIT"> </span><span class="NAME">ratio</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>289</span> </span><span class="WHIT">      </span><span class="NAME">scaledRect.height</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">rect.height</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>290</span> </span><span class="WHIT">      </span><span class="NAME">scaledRect.width</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">Math.floor</span><span class="PUNC">(</span><span class="NAME">rect.height</span><span class="WHIT"> </span><span class="PUNC">*</span><span class="WHIT"> </span><span class="NAME">ratio</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>291</span> </span><span class="WHIT">    </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>292</span> </span><span class="WHIT">    </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>293</span> </span><span class="WHIT">      </span><span class="NAME">scaledRect.height</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">Math.floor</span><span class="PUNC">(</span><span class="NAME">rect.width</span><span class="WHIT"> </span><span class="PUNC">/</span><span class="WHIT"> </span><span class="NAME">ratio</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>294</span> </span><span class="WHIT">      </span><span class="NAME">scaledRect.width</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">rect.width</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>295</span> </span><span class="WHIT">    </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>296</span> </span><span class="WHIT">    </span><span class="NAME">scaledRect.x</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">Math.floor</span><span class="PUNC">(</span><span class="PUNC">(</span><span class="NAME">rect.width</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="WHIT"> </span><span class="NAME">scaledRect.width</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">/</span><span class="WHIT"> </span><span class="NUMB">2</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>297</span> </span><span class="WHIT">    </span><span class="NAME">scaledRect.y</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">Math.floor</span><span class="PUNC">(</span><span class="PUNC">(</span><span class="NAME">rect.height</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="WHIT"> </span><span class="NAME">scaledRect.height</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">/</span><span class="WHIT"> </span><span class="NUMB">2</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>298</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>299</span> </span><span class="WHIT">  </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">scaledRect</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>300</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>301</span> 
+<span class='line'>302</span> </span><span class="COMM">/**
+<span class='line'>303</span>  * Returns all the jQuery elements that this component uses.
+<span class='line'>304</span>  *
+<span class='line'>305</span>  * @return {object} An object which defines all the jQuery elements that
+<span class='line'>306</span>  * this component uses.
+<span class='line'>307</span>  */</span><span class="WHIT">
+<span class='line'>308</span> </span><span class="NAME">minplayer.display.prototype.getElements</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>309</span> </span><span class="WHIT">  </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>310</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>311</span> 
+<span class='line'>312</span> </span><span class="COMM">/**
+<span class='line'>313</span>  * From https://github.com/sindresorhus/screenfull.js
+<span class='line'>314</span>  */</span><span class="WHIT">
+<span class='line'>315</span> </span><span class="COMM">/*global Element:true*/</span><span class="WHIT">
+<span class='line'>316</span> </span><span class="PUNC">(</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">window</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">document</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>317</span> </span><span class="WHIT">  </span><span class="STRN">'use strict'</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>318</span> </span><span class="WHIT">  </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">methods</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>319</span> </span><span class="WHIT">    </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">methodMap</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="WHIT">
+<span class='line'>320</span> </span><span class="WHIT">      </span><span class="PUNC">[</span><span class="WHIT">
+<span class='line'>321</span> </span><span class="WHIT">        </span><span class="STRN">'requestFullscreen'</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'>322</span> </span><span class="WHIT">        </span><span class="STRN">'exitFullscreen'</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'>323</span> </span><span class="WHIT">        </span><span class="STRN">'fullscreenchange'</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'>324</span> </span><span class="WHIT">        </span><span class="STRN">'fullscreen'</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'>325</span> </span><span class="WHIT">        </span><span class="STRN">'fullscreenElement'</span><span class="WHIT">
+<span class='line'>326</span> </span><span class="WHIT">      </span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'>327</span> </span><span class="WHIT">      </span><span class="PUNC">[</span><span class="WHIT">
+<span class='line'>328</span> </span><span class="WHIT">        </span><span class="STRN">'webkitRequestFullScreen'</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'>329</span> </span><span class="WHIT">        </span><span class="STRN">'webkitCancelFullScreen'</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'>330</span> </span><span class="WHIT">        </span><span class="STRN">'webkitfullscreenchange'</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'>331</span> </span><span class="WHIT">        </span><span class="STRN">'webkitIsFullScreen'</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'>332</span> </span><span class="WHIT">        </span><span class="STRN">'webkitCurrentFullScreenElement'</span><span class="WHIT">
+<span class='line'>333</span> </span><span class="WHIT">      </span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'>334</span> </span><span class="WHIT">      </span><span class="PUNC">[</span><span class="WHIT">
+<span class='line'>335</span> </span><span class="WHIT">        </span><span class="STRN">'mozRequestFullScreen'</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'>336</span> </span><span class="WHIT">        </span><span class="STRN">'mozCancelFullScreen'</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'>337</span> </span><span class="WHIT">        </span><span class="STRN">'mozfullscreenchange'</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'>338</span> </span><span class="WHIT">        </span><span class="STRN">'mozFullScreen'</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'>339</span> </span><span class="WHIT">        </span><span class="STRN">'mozFullScreenElement'</span><span class="WHIT">
+<span class='line'>340</span> </span><span class="WHIT">      </span><span class="PUNC">]</span><span class="WHIT">
+<span class='line'>341</span> </span><span class="WHIT">    </span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>342</span> </span><span class="WHIT">    </span><span class="KEYW">for</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">l</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">methodMap.length</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC">&lt;</span><span class="WHIT"> </span><span class="NAME">l</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">++</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>343</span> </span><span class="WHIT">      </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">methodMap.hasOwnProperty</span><span class="PUNC">(</span><span class="NAME">i</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>344</span> </span><span class="WHIT">        </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">val</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">methodMap</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>345</span> </span><span class="WHIT">        </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">val</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="KEYW">in</span><span class="WHIT"> </span><span class="NAME">document</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>346</span> </span><span class="WHIT">          </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">val</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>347</span> </span><span class="WHIT">        </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>348</span> </span><span class="WHIT">      </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>349</span> </span><span class="WHIT">    </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>350</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>351</span> 
+<span class='line'>352</span> </span><span class="WHIT">  </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">methods</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>353</span> </span><span class="WHIT">    </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">window.screenfull</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">false</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>354</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>355</span> 
+<span class='line'>356</span> </span><span class="WHIT">  </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">keyboardAllowed</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">'ALLOW_KEYBOARD_INPUT'</span><span class="WHIT"> </span><span class="KEYW">in</span><span class="WHIT"> </span><span class="NAME">Element</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>357</span> 
+<span class='line'>358</span> </span><span class="WHIT">  </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">screenfull</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>359</span> </span><span class="WHIT">    </span><span class="NAME">init</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>360</span> </span><span class="WHIT">      </span><span class="NAME">document.addEventListener</span><span class="PUNC">(</span><span class="NAME">methods</span><span class="PUNC">[</span><span class="NUMB">2</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">e</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>361</span> </span><span class="WHIT">        </span><span class="NAME">screenfull.isFullscreen</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">document</span><span class="PUNC">[</span><span class="NAME">methods</span><span class="PUNC">[</span><span class="NUMB">3</span><span class="PUNC">]</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>362</span> </span><span class="WHIT">        </span><span class="NAME">screenfull.element</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">document</span><span class="PUNC">[</span><span class="NAME">methods</span><span class="PUNC">[</span><span class="NUMB">4</span><span class="PUNC">]</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>363</span> </span><span class="WHIT">        </span><span class="NAME">screenfull.onchange</span><span class="PUNC">(</span><span class="NAME">e</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>364</span> </span><span class="WHIT">      </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>365</span> </span><span class="WHIT">      </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">this</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>366</span> </span><span class="WHIT">    </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'>367</span> </span><span class="WHIT">    </span><span class="NAME">isFullscreen</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">document</span><span class="PUNC">[</span><span class="NAME">methods</span><span class="PUNC">[</span><span class="NUMB">3</span><span class="PUNC">]</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'>368</span> </span><span class="WHIT">    </span><span class="NAME">element</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">document</span><span class="PUNC">[</span><span class="NAME">methods</span><span class="PUNC">[</span><span class="NUMB">4</span><span class="PUNC">]</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'>369</span> </span><span class="WHIT">    </span><span class="NAME">request</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">elem</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>370</span> </span><span class="WHIT">      </span><span class="NAME">elem</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">elem</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="NAME">document.documentElement</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>371</span> </span><span class="WHIT">      </span><span class="NAME">elem</span><span class="PUNC">[</span><span class="NAME">methods</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">]</span><span class="PUNC">(</span><span class="NAME">keyboardAllowed</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">Element.ALLOW_KEYBOARD_INPUT</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>372</span> </span><span class="WHIT">      </span><span class="COMM">// Work around Safari 5.1 bug: reports support for keyboard in fullscreen</span><span class="WHIT">
+<span class='line'>373</span> </span><span class="WHIT">      </span><span class="COMM">// even though it doesn't.</span><span class="WHIT">
+<span class='line'>374</span> </span><span class="WHIT">      </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">document.isFullscreen</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>375</span> </span><span class="WHIT">        </span><span class="NAME">elem</span><span class="PUNC">[</span><span class="NAME">methods</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">]</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>376</span> </span><span class="WHIT">      </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>377</span> </span><span class="WHIT">    </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'>378</span> </span><span class="WHIT">    </span><span class="NAME">exit</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>379</span> </span><span class="WHIT">      </span><span class="NAME">document</span><span class="PUNC">[</span><span class="NAME">methods</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="PUNC">]</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>380</span> </span><span class="WHIT">    </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'>381</span> </span><span class="WHIT">    </span><span class="NAME">toggle</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">elem</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>382</span> </span><span class="WHIT">      </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">this.isFullscreen</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>383</span> </span><span class="WHIT">        </span><span class="NAME">this.exit</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>384</span> </span><span class="WHIT">      </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>385</span> </span><span class="WHIT">        </span><span class="NAME">this.request</span><span class="PUNC">(</span><span class="NAME">elem</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>386</span> </span><span class="WHIT">      </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>387</span> </span><span class="WHIT">    </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'>388</span> </span><span class="WHIT">    </span><span class="NAME">onchange</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>389</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>390</span> 
+<span class='line'>391</span> </span><span class="WHIT">  </span><span class="NAME">window.screenfull</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">screenfull.init</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>392</span> </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">(</span><span class="NAME">window</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">document</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>393</span> </span></pre></body></html>
\ No newline at end of file
diff --git a/public/admin/js/osmplayer/doc/symbols/src/minplayer_src_minplayer.file.js.html b/public/admin/js/osmplayer/doc/symbols/src/minplayer_src_minplayer.file.js.html
new file mode 100644
index 00000000000..88ce7f1d772
--- /dev/null
+++ b/public/admin/js/osmplayer/doc/symbols/src/minplayer_src_minplayer.file.js.html
@@ -0,0 +1,186 @@
+<html><head><meta http-equiv="content-type" content="text/html; charset=utf-8"> <style>
+	.KEYW {color: #933;}
+	.COMM {color: #bbb; font-style: italic;}
+	.NUMB {color: #393;}
+	.STRN {color: #393;}
+	.REGX {color: #339;}
+	.line {border-right: 1px dotted #666; color: #666; font-style: normal;}
+	</style></head><body><pre><span class='line'>  1</span> <span class="COMM">/** The minplayer namespace. */</span><span class="WHIT">
+<span class='line'>  2</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">minplayer</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">minplayer</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>  3</span> 
+<span class='line'>  4</span> </span><span class="COMM">/**
+<span class='line'>  5</span>  * @constructor
+<span class='line'>  6</span>  * @class A wrapper class used to provide all the data necessary to control an
+<span class='line'>  7</span>  * individual file within this media player.
+<span class='line'>  8</span>  *
+<span class='line'>  9</span>  * @param {object} file A media file object with minimal required information.
+<span class='line'> 10</span>  */</span><span class="WHIT">
+<span class='line'> 11</span> </span><span class="NAME">minplayer.file</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">file</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 12</span> 
+<span class='line'> 13</span> </span><span class="WHIT">  </span><span class="COMM">// If there isn't a file provided, then just return null.</span><span class="WHIT">
+<span class='line'> 14</span> </span><span class="WHIT">  </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">file</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 15</span> </span><span class="WHIT">    </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">null</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 16</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'> 17</span> 
+<span class='line'> 18</span> </span><span class="WHIT">  </span><span class="NAME">file</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">file</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="STRN">'string'</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="NAME">path</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">file</span><span class="PUNC">}</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">file</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 19</span> 
+<span class='line'> 20</span> </span><span class="WHIT">  </span><span class="COMM">// If we already are a minplayer file, then just return this file.</span><span class="WHIT">
+<span class='line'> 21</span> </span><span class="WHIT">  </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">file.hasOwnProperty</span><span class="PUNC">(</span><span class="STRN">'isMinPlayerFile'</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 22</span> </span><span class="WHIT">    </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">file</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 23</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'> 24</span> 
+<span class='line'> 25</span> </span><span class="WHIT">  </span><span class="NAME">this.isMinPlayerFile</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">true</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 26</span> </span><span class="WHIT">  </span><span class="NAME">this.duration</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">file.duration</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 27</span> </span><span class="WHIT">  </span><span class="NAME">this.bytesTotal</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">file.bytesTotal</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 28</span> </span><span class="WHIT">  </span><span class="NAME">this.quality</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">file.quality</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 29</span> </span><span class="WHIT">  </span><span class="NAME">this.stream</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">file.stream</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="STRN">''</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 30</span> </span><span class="WHIT">  </span><span class="NAME">this.path</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">file.path</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="STRN">''</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 31</span> </span><span class="WHIT">  </span><span class="NAME">this.codecs</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">file.codecs</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="STRN">''</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 32</span> 
+<span class='line'> 33</span> </span><span class="WHIT">  </span><span class="COMM">// These should be provided, but just in case...</span><span class="WHIT">
+<span class='line'> 34</span> </span><span class="WHIT">  </span><span class="NAME">this.extension</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">file.extension</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="NAME">this.getFileExtension</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 35</span> </span><span class="WHIT">  </span><span class="NAME">this.mimetype</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">file.mimetype</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="NAME">file.filemime</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="NAME">this.getMimeType</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 36</span> </span><span class="WHIT">  </span><span class="NAME">this.type</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">file.type</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="NAME">this.getType</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 37</span> 
+<span class='line'> 38</span> </span><span class="WHIT">  </span><span class="COMM">// Fail safe to try and guess the mimetype and media type.</span><span class="WHIT">
+<span class='line'> 39</span> </span><span class="WHIT">  </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">this.type</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 40</span> </span><span class="WHIT">    </span><span class="NAME">this.mimetype</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.getMimeType</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 41</span> </span><span class="WHIT">    </span><span class="NAME">this.type</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.getType</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 42</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'> 43</span> 
+<span class='line'> 44</span> </span><span class="WHIT">  </span><span class="COMM">// Get the player.</span><span class="WHIT">
+<span class='line'> 45</span> </span><span class="WHIT">  </span><span class="NAME">this.player</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">minplayer.player</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="NAME">file.player</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="NAME">this.getBestPlayer</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 46</span> </span><span class="WHIT">  </span><span class="NAME">this.priority</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">file.priority</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="NAME">this.getPriority</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 47</span> </span><span class="WHIT">  </span><span class="NAME">this.id</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">file.id</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="NAME">this.getId</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 48</span> </span><span class="WHIT">  </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">this.path</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 49</span> </span><span class="WHIT">    </span><span class="NAME">this.path</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.id</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 50</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'> 51</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 52</span> 
+<span class='line'> 53</span> </span><span class="COMM">/** Used to force the player for all media. */</span><span class="WHIT">
+<span class='line'> 54</span> </span><span class="NAME">minplayer.player</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">''</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 55</span> 
+<span class='line'> 56</span> </span><span class="COMM">/**
+<span class='line'> 57</span>  * Returns the best player for the job.
+<span class='line'> 58</span>  *
+<span class='line'> 59</span>  * @return {string} The best player to play the media file.
+<span class='line'> 60</span>  */</span><span class="WHIT">
+<span class='line'> 61</span> </span><span class="NAME">minplayer.file.prototype.getBestPlayer</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 62</span> </span><span class="WHIT">  </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">bestplayer</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">null</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">bestpriority</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 63</span> </span><span class="WHIT">  </span><span class="NAME">jQuery.each</span><span class="PUNC">(</span><span class="NAME">minplayer.players</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">file</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 64</span> </span><span class="WHIT">    </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">name</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">player</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 65</span> </span><span class="WHIT">      </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">priority</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">player.getPriority</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 66</span> </span><span class="WHIT">      </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">player.canPlay</span><span class="PUNC">(</span><span class="NAME">file</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">priority</span><span class="WHIT"> </span><span class="PUNC">></span><span class="WHIT"> </span><span class="NAME">bestpriority</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 67</span> </span><span class="WHIT">        </span><span class="NAME">bestplayer</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">name</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 68</span> </span><span class="WHIT">        </span><span class="NAME">bestpriority</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">priority</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 69</span> </span><span class="WHIT">      </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'> 70</span> </span><span class="WHIT">    </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 71</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 72</span> </span><span class="WHIT">  </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">bestplayer</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 73</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 74</span> 
+<span class='line'> 75</span> </span><span class="COMM">/**
+<span class='line'> 76</span>  * The priority of this file is determined by the priority of the best
+<span class='line'> 77</span>  * player multiplied by the priority of the mimetype.
+<span class='line'> 78</span>  *
+<span class='line'> 79</span>  * @return {integer} The priority of the media file.
+<span class='line'> 80</span>  */</span><span class="WHIT">
+<span class='line'> 81</span> </span><span class="NAME">minplayer.file.prototype.getPriority</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 82</span> </span><span class="WHIT">  </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">priority</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">1</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 83</span> </span><span class="WHIT">  </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">this.player</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 84</span> </span><span class="WHIT">    </span><span class="NAME">priority</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">minplayer.players</span><span class="PUNC">[</span><span class="NAME">this.player</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">getPriority</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 85</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'> 86</span> </span><span class="WHIT">  </span><span class="KEYW">switch</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">this.mimetype</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 87</span> </span><span class="WHIT">    </span><span class="KEYW">case</span><span class="WHIT"> </span><span class="STRN">'video/x-webm'</span><span class="PUNC">:</span><span class="WHIT">
+<span class='line'> 88</span> </span><span class="WHIT">    </span><span class="KEYW">case</span><span class="WHIT"> </span><span class="STRN">'video/webm'</span><span class="PUNC">:</span><span class="WHIT">
+<span class='line'> 89</span> </span><span class="WHIT">    </span><span class="KEYW">case</span><span class="WHIT"> </span><span class="STRN">'application/octet-stream'</span><span class="PUNC">:</span><span class="WHIT">
+<span class='line'> 90</span> </span><span class="WHIT">      </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">priority</span><span class="WHIT"> </span><span class="PUNC">*</span><span class="WHIT"> </span><span class="NUMB">10</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 91</span> </span><span class="WHIT">    </span><span class="KEYW">case</span><span class="WHIT"> </span><span class="STRN">'video/mp4'</span><span class="PUNC">:</span><span class="WHIT">
+<span class='line'> 92</span> </span><span class="WHIT">    </span><span class="KEYW">case</span><span class="WHIT"> </span><span class="STRN">'audio/mp4'</span><span class="PUNC">:</span><span class="WHIT">
+<span class='line'> 93</span> </span><span class="WHIT">    </span><span class="KEYW">case</span><span class="WHIT"> </span><span class="STRN">'audio/mpeg'</span><span class="PUNC">:</span><span class="WHIT">
+<span class='line'> 94</span> </span><span class="WHIT">      </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">priority</span><span class="WHIT"> </span><span class="PUNC">*</span><span class="WHIT"> </span><span class="NUMB">9</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 95</span> </span><span class="WHIT">    </span><span class="KEYW">case</span><span class="WHIT"> </span><span class="STRN">'video/ogg'</span><span class="PUNC">:</span><span class="WHIT">
+<span class='line'> 96</span> </span><span class="WHIT">    </span><span class="KEYW">case</span><span class="WHIT"> </span><span class="STRN">'audio/ogg'</span><span class="PUNC">:</span><span class="WHIT">
+<span class='line'> 97</span> </span><span class="WHIT">    </span><span class="KEYW">case</span><span class="WHIT"> </span><span class="STRN">'video/quicktime'</span><span class="PUNC">:</span><span class="WHIT">
+<span class='line'> 98</span> </span><span class="WHIT">      </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">priority</span><span class="WHIT"> </span><span class="PUNC">*</span><span class="WHIT"> </span><span class="NUMB">8</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 99</span> </span><span class="WHIT">    </span><span class="KEYW">default</span><span class="PUNC">:</span><span class="WHIT">
+<span class='line'>100</span> </span><span class="WHIT">      </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">priority</span><span class="WHIT"> </span><span class="PUNC">*</span><span class="WHIT"> </span><span class="NUMB">5</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>101</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>102</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>103</span> 
+<span class='line'>104</span> </span><span class="COMM">/**
+<span class='line'>105</span>  * Returns the file extension of the file path.
+<span class='line'>106</span>  *
+<span class='line'>107</span>  * @return {string} The file extension.
+<span class='line'>108</span>  */</span><span class="WHIT">
+<span class='line'>109</span> </span><span class="NAME">minplayer.file.prototype.getFileExtension</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>110</span> </span><span class="WHIT">  </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">this.path.substring</span><span class="PUNC">(</span><span class="NAME">this.path.lastIndexOf</span><span class="PUNC">(</span><span class="STRN">'.'</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NUMB">1</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">toLowerCase</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>111</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>112</span> 
+<span class='line'>113</span> </span><span class="COMM">/**
+<span class='line'>114</span>  * Returns the proper mimetype based off of the extension.
+<span class='line'>115</span>  *
+<span class='line'>116</span>  * @return {string} The mimetype of the file based off of extension.
+<span class='line'>117</span>  */</span><span class="WHIT">
+<span class='line'>118</span> </span><span class="NAME">minplayer.file.prototype.getMimeType</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>119</span> </span><span class="WHIT">  </span><span class="KEYW">switch</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">this.extension</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>120</span> </span><span class="WHIT">    </span><span class="KEYW">case</span><span class="WHIT"> </span><span class="STRN">'mp4'</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">case</span><span class="WHIT"> </span><span class="STRN">'m4v'</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">case</span><span class="WHIT"> </span><span class="STRN">'flv'</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">case</span><span class="WHIT"> </span><span class="STRN">'f4v'</span><span class="PUNC">:</span><span class="WHIT">
+<span class='line'>121</span> </span><span class="WHIT">      </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="STRN">'video/mp4'</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>122</span> </span><span class="WHIT">    </span><span class="KEYW">case</span><span class="STRN">'webm'</span><span class="PUNC">:</span><span class="WHIT">
+<span class='line'>123</span> </span><span class="WHIT">      </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="STRN">'video/webm'</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>124</span> </span><span class="WHIT">    </span><span class="KEYW">case</span><span class="WHIT"> </span><span class="STRN">'ogg'</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">case</span><span class="WHIT"> </span><span class="STRN">'ogv'</span><span class="PUNC">:</span><span class="WHIT">
+<span class='line'>125</span> </span><span class="WHIT">      </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="STRN">'video/ogg'</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>126</span> </span><span class="WHIT">    </span><span class="KEYW">case</span><span class="WHIT"> </span><span class="STRN">'3g2'</span><span class="PUNC">:</span><span class="WHIT">
+<span class='line'>127</span> </span><span class="WHIT">      </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="STRN">'video/3gpp2'</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>128</span> </span><span class="WHIT">    </span><span class="KEYW">case</span><span class="WHIT"> </span><span class="STRN">'3gpp'</span><span class="PUNC">:</span><span class="WHIT">
+<span class='line'>129</span> </span><span class="WHIT">    </span><span class="KEYW">case</span><span class="WHIT"> </span><span class="STRN">'3gp'</span><span class="PUNC">:</span><span class="WHIT">
+<span class='line'>130</span> </span><span class="WHIT">      </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="STRN">'video/3gpp'</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>131</span> </span><span class="WHIT">    </span><span class="KEYW">case</span><span class="WHIT"> </span><span class="STRN">'mov'</span><span class="PUNC">:</span><span class="WHIT">
+<span class='line'>132</span> </span><span class="WHIT">      </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="STRN">'video/quicktime'</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>133</span> </span><span class="WHIT">    </span><span class="KEYW">case</span><span class="STRN">'swf'</span><span class="PUNC">:</span><span class="WHIT">
+<span class='line'>134</span> </span><span class="WHIT">      </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="STRN">'application/x-shockwave-flash'</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>135</span> </span><span class="WHIT">    </span><span class="KEYW">case</span><span class="WHIT"> </span><span class="STRN">'oga'</span><span class="PUNC">:</span><span class="WHIT">
+<span class='line'>136</span> </span><span class="WHIT">      </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="STRN">'audio/ogg'</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>137</span> </span><span class="WHIT">    </span><span class="KEYW">case</span><span class="WHIT"> </span><span class="STRN">'mp3'</span><span class="PUNC">:</span><span class="WHIT">
+<span class='line'>138</span> </span><span class="WHIT">      </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="STRN">'audio/mpeg'</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>139</span> </span><span class="WHIT">    </span><span class="KEYW">case</span><span class="WHIT"> </span><span class="STRN">'m4a'</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">case</span><span class="WHIT"> </span><span class="STRN">'f4a'</span><span class="PUNC">:</span><span class="WHIT">
+<span class='line'>140</span> </span><span class="WHIT">      </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="STRN">'audio/mp4'</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>141</span> </span><span class="WHIT">    </span><span class="KEYW">case</span><span class="WHIT"> </span><span class="STRN">'aac'</span><span class="PUNC">:</span><span class="WHIT">
+<span class='line'>142</span> </span><span class="WHIT">      </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="STRN">'audio/aac'</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>143</span> </span><span class="WHIT">    </span><span class="KEYW">case</span><span class="WHIT"> </span><span class="STRN">'wav'</span><span class="PUNC">:</span><span class="WHIT">
+<span class='line'>144</span> </span><span class="WHIT">      </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="STRN">'audio/vnd.wave'</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>145</span> </span><span class="WHIT">    </span><span class="KEYW">case</span><span class="WHIT"> </span><span class="STRN">'wma'</span><span class="PUNC">:</span><span class="WHIT">
+<span class='line'>146</span> </span><span class="WHIT">      </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="STRN">'audio/x-ms-wma'</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>147</span> </span><span class="WHIT">    </span><span class="KEYW">default</span><span class="PUNC">:</span><span class="WHIT">
+<span class='line'>148</span> </span><span class="WHIT">      </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="STRN">'unknown'</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>149</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>150</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>151</span> 
+<span class='line'>152</span> </span><span class="COMM">/**
+<span class='line'>153</span>  * The type of media this is: video or audio.
+<span class='line'>154</span>  *
+<span class='line'>155</span>  * @return {string} "video" or "audio" based on what the type of media this
+<span class='line'>156</span>  * is.
+<span class='line'>157</span>  */</span><span class="WHIT">
+<span class='line'>158</span> </span><span class="NAME">minplayer.file.prototype.getType</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>159</span> </span><span class="WHIT">  </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">type</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.mimetype.match</span><span class="PUNC">(</span><span class="REGX">/([^\/]+)(\/)/</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>160</span> </span><span class="WHIT">  </span><span class="NAME">type</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">type</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">type.length</span><span class="WHIT"> </span><span class="PUNC">></span><span class="WHIT"> </span><span class="NUMB">1</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="NAME">type</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="STRN">''</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>161</span> </span><span class="WHIT">  </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">type</span><span class="WHIT"> </span><span class="PUNC">==</span><span class="WHIT"> </span><span class="STRN">'video'</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="NAME">this.mimetype</span><span class="WHIT"> </span><span class="PUNC">==</span><span class="WHIT"> </span><span class="STRN">'application/octet-stream'</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>162</span> </span><span class="WHIT">    </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="STRN">'video'</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>163</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>164</span> </span><span class="WHIT">  </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">type</span><span class="WHIT"> </span><span class="PUNC">==</span><span class="WHIT"> </span><span class="STRN">'audio'</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>165</span> </span><span class="WHIT">    </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="STRN">'audio'</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>166</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>167</span> </span><span class="WHIT">  </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="STRN">''</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>168</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>169</span> 
+<span class='line'>170</span> </span><span class="COMM">/**
+<span class='line'>171</span>  * Returns the ID for this media file.
+<span class='line'>172</span>  *
+<span class='line'>173</span>  * @return {string} The id for this media file which is provided by the player.
+<span class='line'>174</span>  */</span><span class="WHIT">
+<span class='line'>175</span> </span><span class="NAME">minplayer.file.prototype.getId</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>176</span> </span><span class="WHIT">  </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">player</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">minplayer.players</span><span class="PUNC">[</span><span class="NAME">this.player</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>177</span> </span><span class="WHIT">  </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">player</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">player.getMediaId</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="NAME">player.getMediaId</span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="STRN">''</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>178</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>179</span> </span></pre></body></html>
\ No newline at end of file
diff --git a/public/admin/js/osmplayer/doc/symbols/src/minplayer_src_minplayer.flags.js.html b/public/admin/js/osmplayer/doc/symbols/src/minplayer_src_minplayer.flags.js.html
new file mode 100644
index 00000000000..22c13e3a948
--- /dev/null
+++ b/public/admin/js/osmplayer/doc/symbols/src/minplayer_src_minplayer.flags.js.html
@@ -0,0 +1,79 @@
+<html><head><meta http-equiv="content-type" content="text/html; charset=utf-8"> <style>
+	.KEYW {color: #933;}
+	.COMM {color: #bbb; font-style: italic;}
+	.NUMB {color: #393;}
+	.STRN {color: #393;}
+	.REGX {color: #339;}
+	.line {border-right: 1px dotted #666; color: #666; font-style: normal;}
+	</style></head><body><pre><span class='line'>  1</span> <span class="COMM">/** The minplayer namespace. */</span><span class="WHIT">
+<span class='line'>  2</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">minplayer</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">minplayer</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>  3</span> 
+<span class='line'>  4</span> </span><span class="COMM">/**
+<span class='line'>  5</span>  * @constructor
+<span class='line'>  6</span>  * @class This is a class used to keep track of flag states
+<span class='line'>  7</span>  * which is used to control the busy cursor, big play button, among other
+<span class='line'>  8</span>  * items in which multiple components can have an interest in hiding or
+<span class='line'>  9</span>  * showing a single element on the screen.
+<span class='line'> 10</span>  *
+<span class='line'> 11</span>  * &lt;p>
+<span class='line'> 12</span>  * &lt;strong>Usage:&lt;/strong>
+<span class='line'> 13</span>  * &lt;pre>&lt;code>
+<span class='line'> 14</span>  *   // Declare a flags variable.
+<span class='line'> 15</span>  *   var flags = new minplayer.flags();
+<span class='line'> 16</span>  *
+<span class='line'> 17</span>  *   // Set the flag based on two components interested in the flag.
+<span class='line'> 18</span>  *   flags.setFlag("component1", true);
+<span class='line'> 19</span>  *   flags.setFlag("component2", true);
+<span class='line'> 20</span>  *
+<span class='line'> 21</span>  *   // Print out the value of the flags. ( Prints 3 )
+<span class='line'> 22</span>  *   console.log(flags.flags);
+<span class='line'> 23</span>  *
+<span class='line'> 24</span>  *   // Now unset a single components flag.
+<span class='line'> 25</span>  *   flags.setFlag("component1", false);
+<span class='line'> 26</span>  *
+<span class='line'> 27</span>  *   // Print out the value of the flags.
+<span class='line'> 28</span>  *   console.log(flags.flags);
+<span class='line'> 29</span>  *
+<span class='line'> 30</span>  *   // Unset the other components flag.
+<span class='line'> 31</span>  *   flags.setFlag("component2", false);
+<span class='line'> 32</span>  *
+<span class='line'> 33</span>  *   // Print out the value of the flags.
+<span class='line'> 34</span>  *   console.log(flags.flags);
+<span class='line'> 35</span>  * &lt;/code>&lt;/pre>
+<span class='line'> 36</span>  * &lt;/p>
+<span class='line'> 37</span>  */</span><span class="WHIT">
+<span class='line'> 38</span> </span><span class="NAME">minplayer.flags</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 39</span> 
+<span class='line'> 40</span> </span><span class="WHIT">  </span><span class="COMM">/** The flag. */</span><span class="WHIT">
+<span class='line'> 41</span> </span><span class="WHIT">  </span><span class="NAME">this.flag</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 42</span> 
+<span class='line'> 43</span> </span><span class="WHIT">  </span><span class="COMM">/** Id map to reference id with the flag index. */</span><span class="WHIT">
+<span class='line'> 44</span> </span><span class="WHIT">  </span><span class="NAME">this.ids</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 45</span> 
+<span class='line'> 46</span> </span><span class="WHIT">  </span><span class="COMM">/** The number of flags. */</span><span class="WHIT">
+<span class='line'> 47</span> </span><span class="WHIT">  </span><span class="NAME">this.numFlags</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 48</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 49</span> 
+<span class='line'> 50</span> </span><span class="COMM">/**
+<span class='line'> 51</span>  * Sets a flag based on boolean logic operators.
+<span class='line'> 52</span>  *
+<span class='line'> 53</span>  * @param {string} id The id of the controller interested in this flag.
+<span class='line'> 54</span>  * @param {boolean} value The value of this flag ( true or false ).
+<span class='line'> 55</span>  */</span><span class="WHIT">
+<span class='line'> 56</span> </span><span class="NAME">minplayer.flags.prototype.setFlag</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">id</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">value</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 57</span> 
+<span class='line'> 58</span> </span><span class="WHIT">  </span><span class="COMM">// Define this id if it isn't present.</span><span class="WHIT">
+<span class='line'> 59</span> </span><span class="WHIT">  </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">this.ids.hasOwnProperty</span><span class="PUNC">(</span><span class="NAME">id</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 60</span> </span><span class="WHIT">    </span><span class="NAME">this.ids</span><span class="PUNC">[</span><span class="NAME">id</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.numFlags</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 61</span> </span><span class="WHIT">    </span><span class="NAME">this.numFlags</span><span class="PUNC">++</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 62</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'> 63</span> 
+<span class='line'> 64</span> </span><span class="WHIT">  </span><span class="COMM">// Use binary operations to keep track of the flag state</span><span class="WHIT">
+<span class='line'> 65</span> </span><span class="WHIT">  </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">value</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 66</span> </span><span class="WHIT">    </span><span class="NAME">this.flag</span><span class="WHIT"> </span><span class="PUNC">|</span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NUMB">1</span><span class="WHIT"> </span><span class="PUNC">&lt;&lt;</span><span class="WHIT"> </span><span class="NAME">this.ids</span><span class="PUNC">[</span><span class="NAME">id</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 67</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'> 68</span> </span><span class="WHIT">  </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 69</span> </span><span class="WHIT">    </span><span class="NAME">this.flag</span><span class="WHIT"> </span><span class="PUNC">&</span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">~</span><span class="PUNC">(</span><span class="NUMB">1</span><span class="WHIT"> </span><span class="PUNC">&lt;&lt;</span><span class="WHIT"> </span><span class="NAME">this.ids</span><span class="PUNC">[</span><span class="NAME">id</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 70</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'> 71</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 72</span> </span></pre></body></html>
\ No newline at end of file
diff --git a/public/admin/js/osmplayer/doc/symbols/src/minplayer_src_minplayer.image.js.html b/public/admin/js/osmplayer/doc/symbols/src/minplayer_src_minplayer.image.js.html
new file mode 100644
index 00000000000..6a61eea9f96
--- /dev/null
+++ b/public/admin/js/osmplayer/doc/symbols/src/minplayer_src_minplayer.image.js.html
@@ -0,0 +1,153 @@
+<html><head><meta http-equiv="content-type" content="text/html; charset=utf-8"> <style>
+	.KEYW {color: #933;}
+	.COMM {color: #bbb; font-style: italic;}
+	.NUMB {color: #393;}
+	.STRN {color: #393;}
+	.REGX {color: #339;}
+	.line {border-right: 1px dotted #666; color: #666; font-style: normal;}
+	</style></head><body><pre><span class='line'>  1</span> <span class="COMM">/** The minplayer namespace. */</span><span class="WHIT">
+<span class='line'>  2</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">minplayer</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">minplayer</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>  3</span> 
+<span class='line'>  4</span> </span><span class="COMM">/**
+<span class='line'>  5</span>  * @constructor
+<span class='line'>  6</span>  * @class A class to easily handle images.
+<span class='line'>  7</span>  * @param {object} context The jQuery context.
+<span class='line'>  8</span>  * @param {object} options This components options.
+<span class='line'>  9</span>  */</span><span class="WHIT">
+<span class='line'> 10</span> </span><span class="NAME">minplayer.image</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">context</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">options</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 11</span> 
+<span class='line'> 12</span> </span><span class="WHIT">  </span><span class="COMM">// Determine if the image is loaded.</span><span class="WHIT">
+<span class='line'> 13</span> </span><span class="WHIT">  </span><span class="NAME">this.loaded</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">false</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 14</span> 
+<span class='line'> 15</span> </span><span class="WHIT">  </span><span class="COMM">// The image loader.</span><span class="WHIT">
+<span class='line'> 16</span> </span><span class="WHIT">  </span><span class="NAME">this.loader</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">null</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 17</span> 
+<span class='line'> 18</span> </span><span class="WHIT">  </span><span class="COMM">// The ratio of the image.</span><span class="WHIT">
+<span class='line'> 19</span> </span><span class="WHIT">  </span><span class="NAME">this.ratio</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 20</span> 
+<span class='line'> 21</span> </span><span class="WHIT">  </span><span class="COMM">// The image element.</span><span class="WHIT">
+<span class='line'> 22</span> </span><span class="WHIT">  </span><span class="NAME">this.img</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">null</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 23</span> 
+<span class='line'> 24</span> </span><span class="WHIT">  </span><span class="COMM">// Derive from display</span><span class="WHIT">
+<span class='line'> 25</span> </span><span class="WHIT">  </span><span class="NAME">minplayer.display.call</span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'image'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">context</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">options</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 26</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 27</span> 
+<span class='line'> 28</span> </span><span class="COMM">/** Derive from minplayer.display. */</span><span class="WHIT">
+<span class='line'> 29</span> </span><span class="NAME">minplayer.image.prototype</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">new</span><span class="WHIT"> </span><span class="NAME">minplayer.display</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 30</span> 
+<span class='line'> 31</span> </span><span class="COMM">/** Reset the constructor. */</span><span class="WHIT">
+<span class='line'> 32</span> </span><span class="NAME">minplayer.image.prototype.constructor</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">minplayer.image</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 33</span> 
+<span class='line'> 34</span> </span><span class="COMM">/**
+<span class='line'> 35</span>  * @see minplayer.plugin.construct
+<span class='line'> 36</span>  */</span><span class="WHIT">
+<span class='line'> 37</span> </span><span class="NAME">minplayer.image.prototype.construct</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 38</span> 
+<span class='line'> 39</span> </span><span class="WHIT">  </span><span class="COMM">// Call the media display constructor.</span><span class="WHIT">
+<span class='line'> 40</span> </span><span class="WHIT">  </span><span class="NAME">minplayer.display.prototype.construct.call</span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 41</span> 
+<span class='line'> 42</span> </span><span class="WHIT">  </span><span class="COMM">// Set the plugin name within the options.</span><span class="WHIT">
+<span class='line'> 43</span> </span><span class="WHIT">  </span><span class="NAME">this.options.pluginName</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">'image'</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 44</span> 
+<span class='line'> 45</span> </span><span class="WHIT">  </span><span class="COMM">// Set the container to not show any overflow...</span><span class="WHIT">
+<span class='line'> 46</span> </span><span class="WHIT">  </span><span class="NAME">this.display.css</span><span class="PUNC">(</span><span class="STRN">'overflow'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'hidden'</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 47</span> 
+<span class='line'> 48</span> </span><span class="WHIT">  </span><span class="COMM">/** The loader for the image. */</span><span class="WHIT">
+<span class='line'> 49</span> </span><span class="WHIT">  </span><span class="NAME">this.loader</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">new</span><span class="WHIT"> </span><span class="NAME">Image</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 50</span> 
+<span class='line'> 51</span> </span><span class="WHIT">  </span><span class="COMM">/** Register for when the image is loaded within the loader. */</span><span class="WHIT">
+<span class='line'> 52</span> </span><span class="WHIT">  </span><span class="NAME">this.loader.onload</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">image</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 53</span> </span><span class="WHIT">    </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 54</span> </span><span class="WHIT">      </span><span class="NAME">image.loaded</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">true</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 55</span> </span><span class="WHIT">      </span><span class="NAME">image.ratio</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">image.loader.width</span><span class="WHIT"> </span><span class="PUNC">/</span><span class="WHIT"> </span><span class="NAME">image.loader.height</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 56</span> </span><span class="WHIT">      </span><span class="NAME">image.resize</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 57</span> </span><span class="WHIT">      </span><span class="NAME">image.trigger</span><span class="PUNC">(</span><span class="STRN">'loaded'</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 58</span> </span><span class="WHIT">    </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 59</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 60</span> 
+<span class='line'> 61</span> </span><span class="WHIT">  </span><span class="COMM">// We are now ready.</span><span class="WHIT">
+<span class='line'> 62</span> </span><span class="WHIT">  </span><span class="NAME">this.ready</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 63</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 64</span> 
+<span class='line'> 65</span> </span><span class="COMM">/**
+<span class='line'> 66</span>  * Loads an image.
+<span class='line'> 67</span>  *
+<span class='line'> 68</span>  * @param {string} src The source of the image to load.
+<span class='line'> 69</span>  */</span><span class="WHIT">
+<span class='line'> 70</span> </span><span class="NAME">minplayer.image.prototype.load</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">src</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 71</span> 
+<span class='line'> 72</span> </span><span class="WHIT">  </span><span class="COMM">// First clear the previous image.</span><span class="WHIT">
+<span class='line'> 73</span> </span><span class="WHIT">  </span><span class="NAME">this.clear</span><span class="PUNC">(</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 74</span> 
+<span class='line'> 75</span> </span><span class="WHIT">    </span><span class="COMM">// Create the new image, and append to the display.</span><span class="WHIT">
+<span class='line'> 76</span> </span><span class="WHIT">    </span><span class="NAME">this.display.empty</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 77</span> </span><span class="WHIT">    </span><span class="NAME">this.img</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">jQuery</span><span class="PUNC">(</span><span class="NAME">document.createElement</span><span class="PUNC">(</span><span class="STRN">'img'</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">attr</span><span class="PUNC">(</span><span class="PUNC">{</span><span class="NAME">src</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="STRN">''</span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">hide</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 78</span> </span><span class="WHIT">    </span><span class="NAME">this.display.append</span><span class="PUNC">(</span><span class="NAME">this.img</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 79</span> </span><span class="WHIT">    </span><span class="NAME">this.loader.src</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">src</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 80</span> </span><span class="WHIT">    </span><span class="NAME">this.img.attr</span><span class="PUNC">(</span><span class="STRN">'src'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">src</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 81</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 82</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 83</span> 
+<span class='line'> 84</span> </span><span class="COMM">/**
+<span class='line'> 85</span>  * Clears an image.
+<span class='line'> 86</span>  *
+<span class='line'> 87</span>  * @param {function} callback Called when the image is done clearing.
+<span class='line'> 88</span>  */</span><span class="WHIT">
+<span class='line'> 89</span> </span><span class="NAME">minplayer.image.prototype.clear</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">callback</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 90</span> </span><span class="WHIT">  </span><span class="NAME">this.loaded</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">false</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 91</span> </span><span class="WHIT">  </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">this.img</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 92</span> </span><span class="WHIT">    </span><span class="NAME">this.img.fadeOut</span><span class="PUNC">(</span><span class="PUNC">(</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">image</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 93</span> </span><span class="WHIT">      </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 94</span> </span><span class="WHIT">        </span><span class="NAME">image.img.attr</span><span class="PUNC">(</span><span class="STRN">'src'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">''</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 95</span> </span><span class="WHIT">        </span><span class="NAME">image.loader.src</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">''</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 96</span> </span><span class="WHIT">        </span><span class="NAME">jQuery</span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">remove</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 97</span> </span><span class="WHIT">        </span><span class="NAME">callback.call</span><span class="PUNC">(</span><span class="NAME">image</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 98</span> </span><span class="WHIT">      </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 99</span> </span><span class="WHIT">    </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>100</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>101</span> </span><span class="WHIT">  </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>102</span> </span><span class="WHIT">    </span><span class="NAME">callback.call</span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>103</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>104</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>105</span> 
+<span class='line'>106</span> </span><span class="COMM">/**
+<span class='line'>107</span>  * Resize the image provided a width and height or nothing.
+<span class='line'>108</span>  *
+<span class='line'>109</span>  * @param {integer} width (optional) The width of the container.
+<span class='line'>110</span>  * @param {integer} height (optional) The height of the container.
+<span class='line'>111</span>  */</span><span class="WHIT">
+<span class='line'>112</span> </span><span class="NAME">minplayer.image.prototype.resize</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">width</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">height</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>113</span> </span><span class="WHIT">  </span><span class="NAME">width</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">width</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="NAME">this.display.parent</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">width</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>114</span> </span><span class="WHIT">  </span><span class="NAME">height</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">height</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="NAME">this.display.parent</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">height</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>115</span> </span><span class="WHIT">  </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">width</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">height</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">this.loaded</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>116</span> 
+<span class='line'>117</span> </span><span class="WHIT">    </span><span class="COMM">// Get the scaled rectangle.</span><span class="WHIT">
+<span class='line'>118</span> </span><span class="WHIT">    </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">rect</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.getScaledRect</span><span class="PUNC">(</span><span class="NAME">this.ratio</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>119</span> </span><span class="WHIT">      </span><span class="NAME">width</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">width</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'>120</span> </span><span class="WHIT">      </span><span class="NAME">height</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">height</span><span class="WHIT">
+<span class='line'>121</span> </span><span class="WHIT">    </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>122</span> 
+<span class='line'>123</span> </span><span class="WHIT">    </span><span class="COMM">// Now set this image to the new size.</span><span class="WHIT">
+<span class='line'>124</span> </span><span class="WHIT">    </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">this.img</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>125</span> </span><span class="WHIT">      </span><span class="NAME">this.img.attr</span><span class="PUNC">(</span><span class="STRN">'src'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">this.loader.src</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">css</span><span class="PUNC">(</span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>126</span> </span><span class="WHIT">        </span><span class="NAME">marginLeft</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">rect.x</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'>127</span> </span><span class="WHIT">        </span><span class="NAME">marginTop</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">rect.y</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'>128</span> </span><span class="WHIT">        </span><span class="NAME">width</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">rect.width</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'>129</span> </span><span class="WHIT">        </span><span class="NAME">height</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">rect.height</span><span class="WHIT">
+<span class='line'>130</span> </span><span class="WHIT">      </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>131</span> </span><span class="WHIT">    </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>132</span> 
+<span class='line'>133</span> </span><span class="WHIT">    </span><span class="COMM">// Show the container.</span><span class="WHIT">
+<span class='line'>134</span> </span><span class="WHIT">    </span><span class="NAME">this.img.fadeIn</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>135</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>136</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>137</span> 
+<span class='line'>138</span> </span><span class="COMM">/**
+<span class='line'>139</span>  * @see minplayer.display#onResize
+<span class='line'>140</span>  */</span><span class="WHIT">
+<span class='line'>141</span> </span><span class="NAME">minplayer.image.prototype.onResize</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>142</span> 
+<span class='line'>143</span> </span><span class="WHIT">  </span><span class="COMM">// Resize the image to fit.</span><span class="WHIT">
+<span class='line'>144</span> </span><span class="WHIT">  </span><span class="NAME">this.resize</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>145</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>146</span> </span></pre></body></html>
\ No newline at end of file
diff --git a/public/admin/js/osmplayer/doc/symbols/src/minplayer_src_minplayer.js.html b/public/admin/js/osmplayer/doc/symbols/src/minplayer_src_minplayer.js.html
new file mode 100644
index 00000000000..5fb5577dcd6
--- /dev/null
+++ b/public/admin/js/osmplayer/doc/symbols/src/minplayer_src_minplayer.js.html
@@ -0,0 +1,425 @@
+<html><head><meta http-equiv="content-type" content="text/html; charset=utf-8"> <style>
+	.KEYW {color: #933;}
+	.COMM {color: #bbb; font-style: italic;}
+	.NUMB {color: #393;}
+	.STRN {color: #393;}
+	.REGX {color: #339;}
+	.line {border-right: 1px dotted #666; color: #666; font-style: normal;}
+	</style></head><body><pre><span class='line'>  1</span> <span class="COMM">// Add a way to instanciate using jQuery prototype.</span><span class="WHIT">
+<span class='line'>  2</span> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">jQuery.fn.minplayer</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>  3</span> 
+<span class='line'>  4</span> </span><span class="WHIT">  </span><span class="COMM">/**
+<span class='line'>  5</span>    * @constructor
+<span class='line'>  6</span>    *
+<span class='line'>  7</span>    * Define a jQuery minplayer prototype.
+<span class='line'>  8</span>    *
+<span class='line'>  9</span>    * @param {object} options The options for this jQuery prototype.
+<span class='line'> 10</span>    * @return {Array} jQuery object.
+<span class='line'> 11</span>    */</span><span class="WHIT">
+<span class='line'> 12</span> </span><span class="WHIT">  </span><span class="NAME">jQuery.fn.minplayer</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">options</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 13</span> </span><span class="WHIT">    </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">jQuery</span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">each</span><span class="PUNC">(</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 14</span> </span><span class="WHIT">      </span><span class="NAME">options</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">options</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 15</span> </span><span class="WHIT">      </span><span class="NAME">options.id</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">options.id</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="NAME">jQuery</span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">attr</span><span class="PUNC">(</span><span class="STRN">'id'</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="NAME">Math.random</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 16</span> </span><span class="WHIT">      </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">minplayer.plugins</span><span class="PUNC">[</span><span class="NAME">options.id</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 17</span> </span><span class="WHIT">        </span><span class="NAME">options.template</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">options.template</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="STRN">'default'</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 18</span> </span><span class="WHIT">        </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">minplayer</span><span class="PUNC">[</span><span class="NAME">options.template</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 19</span> </span><span class="WHIT">          </span><span class="KEYW">new</span><span class="WHIT"> </span><span class="NAME">minplayer</span><span class="PUNC">[</span><span class="NAME">options.template</span><span class="PUNC">]</span><span class="PUNC">(</span><span class="NAME">jQuery</span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">options</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 20</span> </span><span class="WHIT">        </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'> 21</span> </span><span class="WHIT">        </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 22</span> </span><span class="WHIT">          </span><span class="KEYW">new</span><span class="WHIT"> </span><span class="NAME">minplayer</span><span class="PUNC">(</span><span class="NAME">jQuery</span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">options</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 23</span> </span><span class="WHIT">        </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'> 24</span> </span><span class="WHIT">      </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'> 25</span> </span><span class="WHIT">    </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 26</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 27</span> </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'> 28</span> 
+<span class='line'> 29</span> </span><span class="COMM">/**
+<span class='line'> 30</span>  * @constructor
+<span class='line'> 31</span>  * @extends minplayer.display
+<span class='line'> 32</span>  * @class The core media player class which governs the media player
+<span class='line'> 33</span>  * functionality.
+<span class='line'> 34</span>  *
+<span class='line'> 35</span>  * &lt;p>&lt;strong>Usage:&lt;/strong>
+<span class='line'> 36</span>  * &lt;pre>&lt;code>
+<span class='line'> 37</span>  *
+<span class='line'> 38</span>  *   // Create a media player.
+<span class='line'> 39</span>  *   var player = jQuery("#player").minplayer({
+<span class='line'> 40</span>  *
+<span class='line'> 41</span>  *   });
+<span class='line'> 42</span>  *
+<span class='line'> 43</span>  * &lt;/code>&lt;/pre>
+<span class='line'> 44</span>  * &lt;/p>
+<span class='line'> 45</span>  *
+<span class='line'> 46</span>  * @param {object} context The jQuery context.
+<span class='line'> 47</span>  * @param {object} options This components options.
+<span class='line'> 48</span>  */</span><span class="WHIT">
+<span class='line'> 49</span> </span><span class="NAME">minplayer</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">jQuery.extend</span><span class="PUNC">(</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">context</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">options</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 50</span> 
+<span class='line'> 51</span> </span><span class="WHIT">  </span><span class="COMM">// Derive from display</span><span class="WHIT">
+<span class='line'> 52</span> </span><span class="WHIT">  </span><span class="NAME">minplayer.display.call</span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'player'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">context</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">options</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 53</span> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">minplayer</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 54</span> 
+<span class='line'> 55</span> </span><span class="COMM">/** Derive from minplayer.display. */</span><span class="WHIT">
+<span class='line'> 56</span> </span><span class="NAME">minplayer.prototype</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">new</span><span class="WHIT"> </span><span class="NAME">minplayer.display</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 57</span> 
+<span class='line'> 58</span> </span><span class="COMM">/** Reset the constructor. */</span><span class="WHIT">
+<span class='line'> 59</span> </span><span class="NAME">minplayer.prototype.constructor</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">minplayer</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 60</span> 
+<span class='line'> 61</span> </span><span class="COMM">/**
+<span class='line'> 62</span>  * @see minplayer.plugin.construct
+<span class='line'> 63</span>  */</span><span class="WHIT">
+<span class='line'> 64</span> </span><span class="NAME">minplayer.prototype.construct</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 65</span> 
+<span class='line'> 66</span> </span><span class="WHIT">  </span><span class="COMM">// Allow them to provide arguments based off of the DOM attributes.</span><span class="WHIT">
+<span class='line'> 67</span> </span><span class="WHIT">  </span><span class="NAME">jQuery.each</span><span class="PUNC">(</span><span class="NAME">this.context</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">attributes</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">player</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 68</span> </span><span class="WHIT">    </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">index</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">attr</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 69</span> </span><span class="WHIT">      </span><span class="NAME">player.options</span><span class="PUNC">[</span><span class="NAME">attr.name</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">player.options</span><span class="PUNC">[</span><span class="NAME">attr.name</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="NAME">attr.value</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 70</span> </span><span class="WHIT">    </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 71</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 72</span> 
+<span class='line'> 73</span> </span><span class="WHIT">  </span><span class="COMM">// Make sure we provide default options...</span><span class="WHIT">
+<span class='line'> 74</span> </span><span class="WHIT">  </span><span class="NAME">this.options</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">jQuery.extend</span><span class="PUNC">(</span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 75</span> </span><span class="WHIT">    </span><span class="NAME">id</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="STRN">'player'</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'> 76</span> </span><span class="WHIT">    </span><span class="NAME">build</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">false</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'> 77</span> </span><span class="WHIT">    </span><span class="NAME">wmode</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="STRN">'transparent'</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'> 78</span> </span><span class="WHIT">    </span><span class="NAME">preload</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">true</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'> 79</span> </span><span class="WHIT">    </span><span class="NAME">autoplay</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">false</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'> 80</span> </span><span class="WHIT">    </span><span class="NAME">autoload</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">true</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'> 81</span> </span><span class="WHIT">    </span><span class="NAME">loop</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">false</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'> 82</span> </span><span class="WHIT">    </span><span class="NAME">width</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="STRN">'100%'</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'> 83</span> </span><span class="WHIT">    </span><span class="NAME">height</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="STRN">'350px'</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'> 84</span> </span><span class="WHIT">    </span><span class="NAME">debug</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">false</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'> 85</span> </span><span class="WHIT">    </span><span class="NAME">volume</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NUMB">80</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'> 86</span> </span><span class="WHIT">    </span><span class="NAME">files</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">null</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'> 87</span> </span><span class="WHIT">    </span><span class="NAME">file</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="STRN">''</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'> 88</span> </span><span class="WHIT">    </span><span class="NAME">preview</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="STRN">''</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'> 89</span> </span><span class="WHIT">    </span><span class="NAME">attributes</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'> 90</span> </span><span class="WHIT">    </span><span class="NAME">logo</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="STRN">''</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'> 91</span> </span><span class="WHIT">    </span><span class="NAME">link</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="STRN">''</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'> 92</span> </span><span class="WHIT">    </span><span class="NAME">width</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="STRN">'100%'</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'> 93</span> </span><span class="WHIT">    </span><span class="NAME">height</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="STRN">'100%'</span><span class="WHIT">
+<span class='line'> 94</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">this.options</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 95</span> 
+<span class='line'> 96</span> </span><span class="WHIT">  </span><span class="COMM">// Call the minplayer display constructor.</span><span class="WHIT">
+<span class='line'> 97</span> </span><span class="WHIT">  </span><span class="NAME">minplayer.display.prototype.construct.call</span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 98</span> 
+<span class='line'> 99</span> </span><span class="WHIT">  </span><span class="COMM">// Set the plugin name within the options.</span><span class="WHIT">
+<span class='line'>100</span> </span><span class="WHIT">  </span><span class="NAME">this.options.pluginName</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">'player'</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>101</span> 
+<span class='line'>102</span> </span><span class="WHIT">  </span><span class="COMM">/** The controller for this player. */</span><span class="WHIT">
+<span class='line'>103</span> </span><span class="WHIT">  </span><span class="NAME">this.controller</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.create</span><span class="PUNC">(</span><span class="STRN">'controller'</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>104</span> 
+<span class='line'>105</span> </span><span class="WHIT">  </span><span class="COMM">/** The play loader for this player. */</span><span class="WHIT">
+<span class='line'>106</span> </span><span class="WHIT">  </span><span class="NAME">this.playLoader</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.create</span><span class="PUNC">(</span><span class="STRN">'playLoader'</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>107</span> 
+<span class='line'>108</span> </span><span class="WHIT">  </span><span class="COMM">// Set the focus of the element based on if they click in or outside of it.</span><span class="WHIT">
+<span class='line'>109</span> </span><span class="WHIT">  </span><span class="NAME">minplayer.click</span><span class="PUNC">(</span><span class="NAME">document</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">player</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>110</span> </span><span class="WHIT">    </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">event</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>111</span> </span><span class="WHIT">      </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">target</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">jQuery</span><span class="PUNC">(</span><span class="NAME">event.target</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>112</span> </span><span class="WHIT">      </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">focus</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">!</span><span class="PUNC">(</span><span class="NAME">target.closest</span><span class="PUNC">(</span><span class="STRN">'#'</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">player.options.id</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">length</span><span class="WHIT"> </span><span class="PUNC">==</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>113</span> </span><span class="WHIT">      </span><span class="NAME">minplayer.get.call</span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">player.options.id</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="KEYW">null</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">plugin</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>114</span> </span><span class="WHIT">        </span><span class="NAME">plugin.onFocus</span><span class="PUNC">(</span><span class="NAME">focus</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>115</span> </span><span class="WHIT">      </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>116</span> </span><span class="WHIT">    </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>117</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>118</span> 
+<span class='line'>119</span> </span><span class="WHIT">  </span><span class="COMM">/** Add the logo for the player. */</span><span class="WHIT">
+<span class='line'>120</span> </span><span class="WHIT">  </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">this.options.logo</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">this.elements.logo</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>121</span> 
+<span class='line'>122</span> </span><span class="WHIT">    </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">code</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">''</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>123</span> </span><span class="WHIT">    </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">this.options.link</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>124</span> </span><span class="WHIT">      </span><span class="NAME">code</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">'&lt;a target="_blank" href="'</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">this.options.link</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">'">'</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>125</span> </span><span class="WHIT">    </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>126</span> </span><span class="WHIT">    </span><span class="NAME">code</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">'&lt;img src="'</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">this.options.logo</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">'" >'</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>127</span> </span><span class="WHIT">    </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">this.options.link</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>128</span> </span><span class="WHIT">      </span><span class="NAME">code</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">'&lt;/a>'</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>129</span> </span><span class="WHIT">    </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>130</span> </span><span class="WHIT">    </span><span class="NAME">this.logo</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.elements.logo.append</span><span class="PUNC">(</span><span class="NAME">code</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>131</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>132</span> 
+<span class='line'>133</span> </span><span class="WHIT">  </span><span class="COMM">/** Variable to store the current media player. */</span><span class="WHIT">
+<span class='line'>134</span> </span><span class="WHIT">  </span><span class="NAME">this.currentPlayer</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">'html5'</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>135</span> 
+<span class='line'>136</span> </span><span class="WHIT">  </span><span class="COMM">// Add key events to the window.</span><span class="WHIT">
+<span class='line'>137</span> </span><span class="WHIT">  </span><span class="NAME">this.addKeyEvents</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>138</span> 
+<span class='line'>139</span> </span><span class="WHIT">  </span><span class="COMM">// Called to add events.</span><span class="WHIT">
+<span class='line'>140</span> </span><span class="WHIT">  </span><span class="NAME">this.addEvents</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>141</span> 
+<span class='line'>142</span> </span><span class="WHIT">  </span><span class="COMM">// Now load these files.</span><span class="WHIT">
+<span class='line'>143</span> </span><span class="WHIT">  </span><span class="NAME">this.load</span><span class="PUNC">(</span><span class="NAME">this.getFiles</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>144</span> 
+<span class='line'>145</span> </span><span class="WHIT">  </span><span class="COMM">// The player is ready.</span><span class="WHIT">
+<span class='line'>146</span> </span><span class="WHIT">  </span><span class="NAME">this.ready</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>147</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>148</span> 
+<span class='line'>149</span> </span><span class="COMM">/**
+<span class='line'>150</span>  * Called when an error occurs.
+<span class='line'>151</span>  *
+<span class='line'>152</span>  * @param {object} plugin The plugin you wish to bind to.
+<span class='line'>153</span>  */</span><span class="WHIT">
+<span class='line'>154</span> </span><span class="NAME">minplayer.prototype.bindTo</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">plugin</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>155</span> </span><span class="WHIT">  </span><span class="NAME">plugin.bind</span><span class="PUNC">(</span><span class="STRN">'error'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">player</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>156</span> </span><span class="WHIT">    </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">event</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">data</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>157</span> </span><span class="WHIT">      </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">player.currentPlayer</span><span class="WHIT"> </span><span class="PUNC">==</span><span class="WHIT"> </span><span class="STRN">'html5'</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>158</span> </span><span class="WHIT">        </span><span class="NAME">minplayer.player</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">'minplayer'</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>159</span> </span><span class="WHIT">        </span><span class="NAME">player.options.file.player</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">'minplayer'</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>160</span> </span><span class="WHIT">        </span><span class="NAME">player.loadPlayer</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>161</span> </span><span class="WHIT">      </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>162</span> </span><span class="WHIT">      </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>163</span> </span><span class="WHIT">        </span><span class="NAME">player.showError</span><span class="PUNC">(</span><span class="NAME">data</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>164</span> </span><span class="WHIT">      </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>165</span> </span><span class="WHIT">    </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>166</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>167</span> 
+<span class='line'>168</span> </span><span class="WHIT">  </span><span class="COMM">// Bind to the fullscreen event.</span><span class="WHIT">
+<span class='line'>169</span> </span><span class="WHIT">  </span><span class="NAME">plugin.bind</span><span class="PUNC">(</span><span class="STRN">'fullscreen'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">player</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>170</span> </span><span class="WHIT">    </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">event</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">data</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>171</span> </span><span class="WHIT">      </span><span class="NAME">player.resize</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>172</span> </span><span class="WHIT">    </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>173</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>174</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>175</span> 
+<span class='line'>176</span> </span><span class="COMM">/**
+<span class='line'>177</span>  * We need to bind to events we are interested in.
+<span class='line'>178</span>  */</span><span class="WHIT">
+<span class='line'>179</span> </span><span class="NAME">minplayer.prototype.addEvents</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>180</span> </span><span class="WHIT">  </span><span class="NAME">minplayer.get.call</span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">this.options.id</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="KEYW">null</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">player</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>181</span> </span><span class="WHIT">    </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">plugin</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>182</span> </span><span class="WHIT">      </span><span class="NAME">player.bindTo</span><span class="PUNC">(</span><span class="NAME">plugin</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>183</span> </span><span class="WHIT">    </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>184</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>185</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>186</span> 
+<span class='line'>187</span> </span><span class="COMM">/**
+<span class='line'>188</span>  * Sets an error on the player.
+<span class='line'>189</span>  *
+<span class='line'>190</span>  * @param {string} error The error to display on the player.
+<span class='line'>191</span>  */</span><span class="WHIT">
+<span class='line'>192</span> </span><span class="NAME">minplayer.prototype.showError</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">error</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>193</span> </span><span class="WHIT">  </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">error</span><span class="WHIT"> </span><span class="PUNC">!==</span><span class="WHIT"> </span><span class="STRN">'object'</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>194</span> </span><span class="WHIT">    </span><span class="NAME">error</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">error</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="STRN">''</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>195</span> </span><span class="WHIT">    </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">this.elements.error</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>196</span> 
+<span class='line'>197</span> </span><span class="WHIT">      </span><span class="COMM">// Set the error text.</span><span class="WHIT">
+<span class='line'>198</span> </span><span class="WHIT">      </span><span class="NAME">this.elements.error.text</span><span class="PUNC">(</span><span class="NAME">error</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>199</span> </span><span class="WHIT">      </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">error</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>200</span> </span><span class="WHIT">        </span><span class="COMM">// Show the error message.</span><span class="WHIT">
+<span class='line'>201</span> </span><span class="WHIT">        </span><span class="NAME">this.elements.error.show</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>202</span> 
+<span class='line'>203</span> </span><span class="WHIT">        </span><span class="COMM">// Only show this error for a time interval.</span><span class="WHIT">
+<span class='line'>204</span> </span><span class="WHIT">        </span><span class="NAME">setTimeout</span><span class="PUNC">(</span><span class="PUNC">(</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">player</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>205</span> </span><span class="WHIT">          </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>206</span> </span><span class="WHIT">            </span><span class="NAME">player.elements.error.hide</span><span class="PUNC">(</span><span class="STRN">'slow'</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>207</span> </span><span class="WHIT">          </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>208</span> </span><span class="WHIT">        </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NUMB">5000</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>209</span> </span><span class="WHIT">      </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>210</span> </span><span class="WHIT">      </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>211</span> </span><span class="WHIT">        </span><span class="NAME">this.elements.error.hide</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>212</span> </span><span class="WHIT">      </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>213</span> </span><span class="WHIT">    </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>214</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>215</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>216</span> 
+<span class='line'>217</span> </span><span class="COMM">/**
+<span class='line'>218</span>  * Adds key events to the player.
+<span class='line'>219</span>  */</span><span class="WHIT">
+<span class='line'>220</span> </span><span class="NAME">minplayer.prototype.addKeyEvents</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>221</span> </span><span class="WHIT">  </span><span class="NAME">jQuery</span><span class="PUNC">(</span><span class="NAME">document</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">bind</span><span class="PUNC">(</span><span class="STRN">'keydown'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">player</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>222</span> </span><span class="WHIT">    </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">event</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>223</span> </span><span class="WHIT">      </span><span class="KEYW">switch</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">event.keyCode</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>224</span> </span><span class="WHIT">        </span><span class="KEYW">case</span><span class="WHIT"> </span><span class="NUMB">113</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="COMM">// ESC</span><span class="WHIT">
+<span class='line'>225</span> </span><span class="WHIT">        </span><span class="KEYW">case</span><span class="WHIT"> </span><span class="NUMB">27</span><span class="PUNC">:</span><span class="WHIT">  </span><span class="COMM">// Q</span><span class="WHIT">
+<span class='line'>226</span> </span><span class="WHIT">          </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">player.isFullScreen</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>227</span> </span><span class="WHIT">            </span><span class="NAME">player.fullscreen</span><span class="PUNC">(</span><span class="KEYW">false</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>228</span> </span><span class="WHIT">          </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>229</span> </span><span class="WHIT">          </span><span class="KEYW">break</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>230</span> </span><span class="WHIT">      </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>231</span> </span><span class="WHIT">    </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>232</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>233</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>234</span> 
+<span class='line'>235</span> </span><span class="COMM">/**
+<span class='line'>236</span>  * Returns all the media files available for this player.
+<span class='line'>237</span>  *
+<span class='line'>238</span>  * @return {array} All the media files for this player.
+<span class='line'>239</span>  */</span><span class="WHIT">
+<span class='line'>240</span> </span><span class="NAME">minplayer.prototype.getFiles</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>241</span> 
+<span class='line'>242</span> </span><span class="WHIT">  </span><span class="COMM">// If they provide the files in the options, use those first.</span><span class="WHIT">
+<span class='line'>243</span> </span><span class="WHIT">  </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">this.options.files</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>244</span> </span><span class="WHIT">    </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">this.options.files</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>245</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>246</span> 
+<span class='line'>247</span> </span><span class="WHIT">  </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">this.options.file</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>248</span> </span><span class="WHIT">    </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">this.options.file</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>249</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>250</span> 
+<span class='line'>251</span> </span><span class="WHIT">  </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">files</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>252</span> </span><span class="WHIT">  </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">mediaSrc</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">null</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>253</span> 
+<span class='line'>254</span> </span><span class="WHIT">  </span><span class="COMM">// Get the files involved...</span><span class="WHIT">
+<span class='line'>255</span> </span><span class="WHIT">  </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">this.elements.media</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>256</span> </span><span class="WHIT">    </span><span class="NAME">mediaSrc</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.elements.media.attr</span><span class="PUNC">(</span><span class="STRN">'src'</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>257</span> </span><span class="WHIT">    </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">mediaSrc</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>258</span> </span><span class="WHIT">      </span><span class="NAME">files.push</span><span class="PUNC">(</span><span class="PUNC">{</span><span class="STRN">'path'</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">mediaSrc</span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>259</span> </span><span class="WHIT">    </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>260</span> </span><span class="WHIT">    </span><span class="NAME">jQuery</span><span class="PUNC">(</span><span class="STRN">'source'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">this.elements.media</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">each</span><span class="PUNC">(</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>261</span> </span><span class="WHIT">      </span><span class="NAME">files.push</span><span class="PUNC">(</span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>262</span> </span><span class="WHIT">        </span><span class="STRN">'path'</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">jQuery</span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">attr</span><span class="PUNC">(</span><span class="STRN">'src'</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'>263</span> </span><span class="WHIT">        </span><span class="STRN">'mimetype'</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">jQuery</span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">attr</span><span class="PUNC">(</span><span class="STRN">'type'</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'>264</span> </span><span class="WHIT">        </span><span class="STRN">'codecs'</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">jQuery</span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">attr</span><span class="PUNC">(</span><span class="STRN">'codecs'</span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'>265</span> </span><span class="WHIT">      </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>266</span> </span><span class="WHIT">    </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>267</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>268</span> 
+<span class='line'>269</span> </span><span class="WHIT">  </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">files</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>270</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>271</span> 
+<span class='line'>272</span> </span><span class="COMM">/**
+<span class='line'>273</span>  * Returns the full media player object.
+<span class='line'>274</span>  *
+<span class='line'>275</span>  * @param {array} files An array of files to chose from.
+<span class='line'>276</span>  * @return {object} The best media file to play in the current browser.
+<span class='line'>277</span>  */</span><span class="WHIT">
+<span class='line'>278</span> </span><span class="NAME">minplayer.getMediaFile</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">files</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>279</span> 
+<span class='line'>280</span> </span><span class="WHIT">  </span><span class="COMM">// If there are no files then return null.</span><span class="WHIT">
+<span class='line'>281</span> </span><span class="WHIT">  </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">files</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>282</span> </span><span class="WHIT">    </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">null</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>283</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>284</span> 
+<span class='line'>285</span> </span><span class="WHIT">  </span><span class="COMM">// If the file is already a file object then just return.</span><span class="WHIT">
+<span class='line'>286</span> </span><span class="WHIT">  </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">(</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">files</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="STRN">'string'</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="NAME">files.path</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="NAME">files.id</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>287</span> </span><span class="WHIT">    </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">new</span><span class="WHIT"> </span><span class="NAME">minplayer.file</span><span class="PUNC">(</span><span class="NAME">files</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>288</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>289</span> 
+<span class='line'>290</span> </span><span class="WHIT">  </span><span class="COMM">// Add the files and get the best player to play.</span><span class="WHIT">
+<span class='line'>291</span> </span><span class="WHIT">  </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">bestPriority</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">mFile</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">null</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">file</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">null</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>292</span> </span><span class="WHIT">  </span><span class="KEYW">for</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">i</span><span class="WHIT"> </span><span class="KEYW">in</span><span class="WHIT"> </span><span class="NAME">files</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>293</span> </span><span class="WHIT">    </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">files.hasOwnProperty</span><span class="PUNC">(</span><span class="NAME">i</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>294</span> </span><span class="WHIT">      </span><span class="NAME">file</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">new</span><span class="WHIT"> </span><span class="NAME">minplayer.file</span><span class="PUNC">(</span><span class="NAME">files</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>295</span> </span><span class="WHIT">      </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">file.player</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">file.priority</span><span class="WHIT"> </span><span class="PUNC">></span><span class="WHIT"> </span><span class="NAME">bestPriority</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>296</span> </span><span class="WHIT">        </span><span class="NAME">mFile</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">file</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>297</span> </span><span class="WHIT">      </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>298</span> </span><span class="WHIT">    </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>299</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>300</span> 
+<span class='line'>301</span> </span><span class="WHIT">  </span><span class="COMM">// Return the best minplayer file.</span><span class="WHIT">
+<span class='line'>302</span> </span><span class="WHIT">  </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">mFile</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>303</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>304</span> 
+<span class='line'>305</span> </span><span class="COMM">/**
+<span class='line'>306</span>  * Loads a media player based on the current file.
+<span class='line'>307</span>  *
+<span class='line'>308</span>  * @return {boolean} If a new player was loaded.
+<span class='line'>309</span>  */</span><span class="WHIT">
+<span class='line'>310</span> </span><span class="NAME">minplayer.prototype.loadPlayer</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>311</span> 
+<span class='line'>312</span> </span><span class="WHIT">  </span><span class="COMM">// Do nothing if there isn't a file or anywhere to put it.</span><span class="WHIT">
+<span class='line'>313</span> </span><span class="WHIT">  </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">this.options.file</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">this.elements.display.length</span><span class="WHIT"> </span><span class="PUNC">==</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>314</span> </span><span class="WHIT">    </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">false</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>315</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>316</span> 
+<span class='line'>317</span> </span><span class="WHIT">  </span><span class="COMM">// If no player is set, then also return false.</span><span class="WHIT">
+<span class='line'>318</span> </span><span class="WHIT">  </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">this.options.file.player</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>319</span> </span><span class="WHIT">    </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">false</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>320</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>321</span> 
+<span class='line'>322</span> </span><span class="WHIT">  </span><span class="COMM">// Reset the error.</span><span class="WHIT">
+<span class='line'>323</span> </span><span class="WHIT">  </span><span class="NAME">this.showError</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>324</span> 
+<span class='line'>325</span> </span><span class="WHIT">  </span><span class="COMM">// Only destroy if the current player is different than the new player.</span><span class="WHIT">
+<span class='line'>326</span> </span><span class="WHIT">  </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">player</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.options.file.player.toString</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>327</span> 
+<span class='line'>328</span> </span><span class="WHIT">  </span><span class="COMM">// If there isn't media or if the players are different.</span><span class="WHIT">
+<span class='line'>329</span> </span><span class="WHIT">  </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">this.media</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">player</span><span class="WHIT"> </span><span class="PUNC">!==</span><span class="WHIT"> </span><span class="NAME">this.currentPlayer</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>330</span> 
+<span class='line'>331</span> </span><span class="WHIT">    </span><span class="COMM">// Set the current media player.</span><span class="WHIT">
+<span class='line'>332</span> </span><span class="WHIT">    </span><span class="NAME">this.currentPlayer</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">player</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>333</span> 
+<span class='line'>334</span> </span><span class="WHIT">    </span><span class="COMM">// Do nothing if we don't have a display.</span><span class="WHIT">
+<span class='line'>335</span> </span><span class="WHIT">    </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">this.elements.display</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>336</span> </span><span class="WHIT">      </span><span class="NAME">this.showError</span><span class="PUNC">(</span><span class="STRN">'No media display found.'</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>337</span> </span><span class="WHIT">      </span><span class="KEYW">return</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>338</span> </span><span class="WHIT">    </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>339</span> 
+<span class='line'>340</span> </span><span class="WHIT">    </span><span class="COMM">// Destroy the current media.</span><span class="WHIT">
+<span class='line'>341</span> </span><span class="WHIT">    </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">queue</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>342</span> </span><span class="WHIT">    </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">this.media</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>343</span> </span><span class="WHIT">      </span><span class="NAME">queue</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.media.queue</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>344</span> </span><span class="WHIT">      </span><span class="NAME">this.media.destroy</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>345</span> </span><span class="WHIT">    </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>346</span> 
+<span class='line'>347</span> </span><span class="WHIT">    </span><span class="COMM">// Get the class name and create the new player.</span><span class="WHIT">
+<span class='line'>348</span> </span><span class="WHIT">    </span><span class="NAME">pClass</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">minplayer.players</span><span class="PUNC">[</span><span class="NAME">this.options.file.player</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>349</span> 
+<span class='line'>350</span> </span><span class="WHIT">    </span><span class="COMM">// Create the new media player.</span><span class="WHIT">
+<span class='line'>351</span> </span><span class="WHIT">    </span><span class="NAME">this.options.mediaelement</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.elements.media</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>352</span> </span><span class="WHIT">    </span><span class="NAME">this.media</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">new</span><span class="WHIT"> </span><span class="NAME">pClass</span><span class="PUNC">(</span><span class="NAME">this.elements.display</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">this.options</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">queue</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>353</span> 
+<span class='line'>354</span> </span><span class="WHIT">    </span><span class="COMM">// Now get the media when it is ready.</span><span class="WHIT">
+<span class='line'>355</span> </span><span class="WHIT">    </span><span class="NAME">this.get</span><span class="PUNC">(</span><span class="STRN">'media'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">player</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>356</span> </span><span class="WHIT">      </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">media</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>357</span> 
+<span class='line'>358</span> </span><span class="WHIT">        </span><span class="COMM">// Load the media.</span><span class="WHIT">
+<span class='line'>359</span> </span><span class="WHIT">        </span><span class="NAME">media.load</span><span class="PUNC">(</span><span class="NAME">player.options.file</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>360</span> </span><span class="WHIT">        </span><span class="NAME">player.display.addClass</span><span class="PUNC">(</span><span class="STRN">'minplayer-player-'</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">media.mediaFile.player</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>361</span> </span><span class="WHIT">      </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>362</span> </span><span class="WHIT">    </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>363</span> 
+<span class='line'>364</span> </span><span class="WHIT">    </span><span class="COMM">// Return that a new player is loaded.</span><span class="WHIT">
+<span class='line'>365</span> </span><span class="WHIT">    </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">true</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>366</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>367</span> </span><span class="WHIT">  </span><span class="COMM">// If the media object already exists...</span><span class="WHIT">
+<span class='line'>368</span> </span><span class="WHIT">  </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">this.media</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>369</span> 
+<span class='line'>370</span> </span><span class="WHIT">    </span><span class="COMM">// Now load the different media file.</span><span class="WHIT">
+<span class='line'>371</span> </span><span class="WHIT">    </span><span class="NAME">this.media.options</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.options</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>372</span> </span><span class="WHIT">    </span><span class="NAME">this.display.removeClass</span><span class="PUNC">(</span><span class="STRN">'minplayer-player-'</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">this.media.mediaFile.player</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>373</span> </span><span class="WHIT">    </span><span class="NAME">this.media.load</span><span class="PUNC">(</span><span class="NAME">this.options.file</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>374</span> </span><span class="WHIT">    </span><span class="NAME">this.display.addClass</span><span class="PUNC">(</span><span class="STRN">'minplayer-player-'</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">this.media.mediaFile.player</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>375</span> </span><span class="WHIT">    </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">false</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>376</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>377</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>378</span> 
+<span class='line'>379</span> </span><span class="COMM">/**
+<span class='line'>380</span>  * Load a set of files or a single file for the media player.
+<span class='line'>381</span>  *
+<span class='line'>382</span>  * @param {array} files An array of files to chose from to load.
+<span class='line'>383</span>  */</span><span class="WHIT">
+<span class='line'>384</span> </span><span class="NAME">minplayer.prototype.load</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">files</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>385</span> 
+<span class='line'>386</span> </span><span class="WHIT">  </span><span class="COMM">// Set the id and class.</span><span class="WHIT">
+<span class='line'>387</span> </span><span class="WHIT">  </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">id</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">''</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">pClass</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">''</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>388</span> 
+<span class='line'>389</span> </span><span class="WHIT">  </span><span class="COMM">// If no file was provided, then get it.</span><span class="WHIT">
+<span class='line'>390</span> </span><span class="WHIT">  </span><span class="NAME">this.options.files</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">files</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="NAME">this.options.files</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>391</span> </span><span class="WHIT">  </span><span class="NAME">this.options.file</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">minplayer.getMediaFile</span><span class="PUNC">(</span><span class="NAME">this.options.files</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>392</span> 
+<span class='line'>393</span> </span><span class="WHIT">  </span><span class="COMM">// Now load the player.</span><span class="WHIT">
+<span class='line'>394</span> </span><span class="WHIT">  </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">this.loadPlayer</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>395</span> 
+<span class='line'>396</span> </span><span class="WHIT">    </span><span class="COMM">// Add the events since we now have a player.</span><span class="WHIT">
+<span class='line'>397</span> </span><span class="WHIT">    </span><span class="NAME">this.bindTo</span><span class="PUNC">(</span><span class="NAME">this.media</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>398</span> 
+<span class='line'>399</span> </span><span class="WHIT">    </span><span class="COMM">// If the player isn't valid, then show an error.</span><span class="WHIT">
+<span class='line'>400</span> </span><span class="WHIT">    </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">this.options.file.mimetype</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="PUNC">!</span><span class="NAME">this.options.file.player</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>401</span> </span><span class="WHIT">      </span><span class="NAME">this.showError</span><span class="PUNC">(</span><span class="STRN">'Cannot play media: '</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">this.options.file.mimetype</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>402</span> </span><span class="WHIT">    </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>403</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>404</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>405</span> 
+<span class='line'>406</span> </span><span class="COMM">/**
+<span class='line'>407</span>  * Called when the player is resized.
+<span class='line'>408</span>  */</span><span class="WHIT">
+<span class='line'>409</span> </span><span class="NAME">minplayer.prototype.resize</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>410</span> 
+<span class='line'>411</span> </span><span class="WHIT">  </span><span class="COMM">// Call onRezie for each plugin.</span><span class="WHIT">
+<span class='line'>412</span> </span><span class="WHIT">  </span><span class="NAME">this.get</span><span class="PUNC">(</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">plugin</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>413</span> </span><span class="WHIT">    </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">plugin.onResize</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>414</span> </span><span class="WHIT">      </span><span class="NAME">plugin.onResize</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>415</span> </span><span class="WHIT">    </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>416</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>417</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>418</span> </span></pre></body></html>
\ No newline at end of file
diff --git a/public/admin/js/osmplayer/doc/symbols/src/minplayer_src_minplayer.playLoader.js.html b/public/admin/js/osmplayer/doc/symbols/src/minplayer_src_minplayer.playLoader.js.html
new file mode 100644
index 00000000000..8cea6716664
--- /dev/null
+++ b/public/admin/js/osmplayer/doc/symbols/src/minplayer_src_minplayer.playLoader.js.html
@@ -0,0 +1,228 @@
+<html><head><meta http-equiv="content-type" content="text/html; charset=utf-8"> <style>
+	.KEYW {color: #933;}
+	.COMM {color: #bbb; font-style: italic;}
+	.NUMB {color: #393;}
+	.STRN {color: #393;}
+	.REGX {color: #339;}
+	.line {border-right: 1px dotted #666; color: #666; font-style: normal;}
+	</style></head><body><pre><span class='line'>  1</span> <span class="COMM">/** The minplayer namespace. */</span><span class="WHIT">
+<span class='line'>  2</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">minplayer</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">minplayer</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>  3</span> 
+<span class='line'>  4</span> </span><span class="COMM">/**
+<span class='line'>  5</span>  * @constructor
+<span class='line'>  6</span>  * @extends minplayer.display
+<span class='line'>  7</span>  * @class The play loader base class, which is used to control the busy
+<span class='line'>  8</span>  * cursor, big play button, and the opaque background which shows when the
+<span class='line'>  9</span>  * player is paused.
+<span class='line'> 10</span>  *
+<span class='line'> 11</span>  * @param {object} context The jQuery context.
+<span class='line'> 12</span>  * @param {object} options This components options.
+<span class='line'> 13</span>  */</span><span class="WHIT">
+<span class='line'> 14</span> </span><span class="NAME">minplayer.playLoader</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">context</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">options</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 15</span> 
+<span class='line'> 16</span> </span><span class="WHIT">  </span><span class="COMM">// Define the flags that control the busy cursor.</span><span class="WHIT">
+<span class='line'> 17</span> </span><span class="WHIT">  </span><span class="NAME">this.busy</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">new</span><span class="WHIT"> </span><span class="NAME">minplayer.flags</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 18</span> 
+<span class='line'> 19</span> </span><span class="WHIT">  </span><span class="COMM">// Define the flags that control the big play button.</span><span class="WHIT">
+<span class='line'> 20</span> </span><span class="WHIT">  </span><span class="NAME">this.bigPlay</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">new</span><span class="WHIT"> </span><span class="NAME">minplayer.flags</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 21</span> 
+<span class='line'> 22</span> </span><span class="WHIT">  </span><span class="COMM">// Define the flags the control the preview.</span><span class="WHIT">
+<span class='line'> 23</span> </span><span class="WHIT">  </span><span class="NAME">this.previewFlag</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">new</span><span class="WHIT"> </span><span class="NAME">minplayer.flags</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 24</span> 
+<span class='line'> 25</span> </span><span class="WHIT">  </span><span class="COMM">/** The preview image. */</span><span class="WHIT">
+<span class='line'> 26</span> </span><span class="WHIT">  </span><span class="NAME">this.preview</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">null</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 27</span> 
+<span class='line'> 28</span> </span><span class="WHIT">  </span><span class="COMM">/** If the playLoader is enabled. */</span><span class="WHIT">
+<span class='line'> 29</span> </span><span class="WHIT">  </span><span class="NAME">this.enabled</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">true</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 30</span> 
+<span class='line'> 31</span> </span><span class="WHIT">  </span><span class="COMM">// Derive from display</span><span class="WHIT">
+<span class='line'> 32</span> </span><span class="WHIT">  </span><span class="NAME">minplayer.display.call</span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'playLoader'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">context</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">options</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 33</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 34</span> 
+<span class='line'> 35</span> </span><span class="COMM">/** Derive from minplayer.display. */</span><span class="WHIT">
+<span class='line'> 36</span> </span><span class="NAME">minplayer.playLoader.prototype</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">new</span><span class="WHIT"> </span><span class="NAME">minplayer.display</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 37</span> 
+<span class='line'> 38</span> </span><span class="COMM">/** Reset the constructor. */</span><span class="WHIT">
+<span class='line'> 39</span> </span><span class="NAME">minplayer.playLoader.prototype.constructor</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">minplayer.playLoader</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 40</span> 
+<span class='line'> 41</span> </span><span class="COMM">/**
+<span class='line'> 42</span>  * The constructor.
+<span class='line'> 43</span>  */</span><span class="WHIT">
+<span class='line'> 44</span> </span><span class="NAME">minplayer.playLoader.prototype.construct</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 45</span> 
+<span class='line'> 46</span> </span><span class="WHIT">  </span><span class="COMM">// Call the media display constructor.</span><span class="WHIT">
+<span class='line'> 47</span> </span><span class="WHIT">  </span><span class="NAME">minplayer.display.prototype.construct.call</span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 48</span> 
+<span class='line'> 49</span> </span><span class="WHIT">  </span><span class="COMM">// Set the plugin name within the options.</span><span class="WHIT">
+<span class='line'> 50</span> </span><span class="WHIT">  </span><span class="NAME">this.options.pluginName</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">'playLoader'</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 51</span> 
+<span class='line'> 52</span> </span><span class="WHIT">  </span><span class="COMM">// Get the media plugin.</span><span class="WHIT">
+<span class='line'> 53</span> </span><span class="WHIT">  </span><span class="NAME">this.initialize</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 54</span> 
+<span class='line'> 55</span> </span><span class="WHIT">  </span><span class="COMM">// We are now ready.</span><span class="WHIT">
+<span class='line'> 56</span> </span><span class="WHIT">  </span><span class="NAME">this.ready</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 57</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 58</span> 
+<span class='line'> 59</span> </span><span class="COMM">/**
+<span class='line'> 60</span>  * Initialize the playLoader.
+<span class='line'> 61</span>  */</span><span class="WHIT">
+<span class='line'> 62</span> </span><span class="NAME">minplayer.playLoader.prototype.initialize</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 63</span> 
+<span class='line'> 64</span> </span><span class="WHIT">  </span><span class="COMM">// Get the media plugin.</span><span class="WHIT">
+<span class='line'> 65</span> </span><span class="WHIT">  </span><span class="NAME">this.get</span><span class="PUNC">(</span><span class="STRN">'media'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">media</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 66</span> 
+<span class='line'> 67</span> </span><span class="WHIT">    </span><span class="COMM">// Only bind if this player does not have its own play loader.</span><span class="WHIT">
+<span class='line'> 68</span> </span><span class="WHIT">    </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">media.hasPlayLoader</span><span class="PUNC">(</span><span class="NAME">this.options.preview</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 69</span> 
+<span class='line'> 70</span> </span><span class="WHIT">      </span><span class="COMM">// Enable the playLoader.</span><span class="WHIT">
+<span class='line'> 71</span> </span><span class="WHIT">      </span><span class="NAME">this.enabled</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">true</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 72</span> 
+<span class='line'> 73</span> </span><span class="WHIT">      </span><span class="COMM">// Get the poster image.</span><span class="WHIT">
+<span class='line'> 74</span> </span><span class="WHIT">      </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">this.options.preview</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 75</span> </span><span class="WHIT">        </span><span class="NAME">this.options.preview</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">media.elements.media.attr</span><span class="PUNC">(</span><span class="STRN">'poster'</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 76</span> </span><span class="WHIT">      </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'> 77</span> 
+<span class='line'> 78</span> </span><span class="WHIT">      </span><span class="COMM">// Reset the media's poster image.</span><span class="WHIT">
+<span class='line'> 79</span> </span><span class="WHIT">      </span><span class="NAME">media.elements.media.attr</span><span class="PUNC">(</span><span class="STRN">'poster'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">''</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 80</span> 
+<span class='line'> 81</span> </span><span class="WHIT">      </span><span class="COMM">// Load the preview image.</span><span class="WHIT">
+<span class='line'> 82</span> </span><span class="WHIT">      </span><span class="NAME">this.loadPreview</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 83</span> 
+<span class='line'> 84</span> </span><span class="WHIT">      </span><span class="COMM">// Trigger a play event when someone clicks on the controller.</span><span class="WHIT">
+<span class='line'> 85</span> </span><span class="WHIT">      </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">this.elements.bigPlay</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 86</span> </span><span class="WHIT">        </span><span class="NAME">minplayer.click</span><span class="PUNC">(</span><span class="NAME">this.elements.bigPlay.unbind</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">event</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 87</span> </span><span class="WHIT">          </span><span class="NAME">event.preventDefault</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 88</span> </span><span class="WHIT">          </span><span class="NAME">minplayer.showAll</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 89</span> </span><span class="WHIT">          </span><span class="NAME">jQuery</span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">hide</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 90</span> </span><span class="WHIT">          </span><span class="NAME">media.play</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 91</span> </span><span class="WHIT">        </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 92</span> </span><span class="WHIT">      </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'> 93</span> 
+<span class='line'> 94</span> </span><span class="WHIT">      </span><span class="COMM">// Bind to the player events to control the play loader.</span><span class="WHIT">
+<span class='line'> 95</span> </span><span class="WHIT">      </span><span class="NAME">media.unbind</span><span class="PUNC">(</span><span class="STRN">'loadstart'</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">bind</span><span class="PUNC">(</span><span class="STRN">'loadstart'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">playLoader</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 96</span> </span><span class="WHIT">        </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">event</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 97</span> </span><span class="WHIT">          </span><span class="NAME">playLoader.busy.setFlag</span><span class="PUNC">(</span><span class="STRN">'media'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="KEYW">true</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 98</span> </span><span class="WHIT">          </span><span class="NAME">playLoader.bigPlay.setFlag</span><span class="PUNC">(</span><span class="STRN">'media'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="KEYW">true</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 99</span> </span><span class="WHIT">          </span><span class="NAME">playLoader.previewFlag.setFlag</span><span class="PUNC">(</span><span class="STRN">'media'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="KEYW">true</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>100</span> </span><span class="WHIT">          </span><span class="NAME">playLoader.checkVisibility</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>101</span> </span><span class="WHIT">        </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>102</span> </span><span class="WHIT">      </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>103</span> </span><span class="WHIT">      </span><span class="NAME">media.bind</span><span class="PUNC">(</span><span class="STRN">'waiting'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">playLoader</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>104</span> </span><span class="WHIT">        </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">event</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>105</span> </span><span class="WHIT">          </span><span class="NAME">playLoader.busy.setFlag</span><span class="PUNC">(</span><span class="STRN">'media'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="KEYW">true</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>106</span> </span><span class="WHIT">          </span><span class="NAME">playLoader.checkVisibility</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>107</span> </span><span class="WHIT">        </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>108</span> </span><span class="WHIT">      </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>109</span> </span><span class="WHIT">      </span><span class="NAME">media.bind</span><span class="PUNC">(</span><span class="STRN">'loadeddata'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">playLoader</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>110</span> </span><span class="WHIT">        </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">event</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>111</span> </span><span class="WHIT">          </span><span class="NAME">playLoader.busy.setFlag</span><span class="PUNC">(</span><span class="STRN">'media'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="KEYW">false</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>112</span> </span><span class="WHIT">          </span><span class="NAME">playLoader.checkVisibility</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>113</span> </span><span class="WHIT">        </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>114</span> </span><span class="WHIT">      </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>115</span> </span><span class="WHIT">      </span><span class="NAME">media.bind</span><span class="PUNC">(</span><span class="STRN">'playing'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">playLoader</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>116</span> </span><span class="WHIT">        </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">event</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>117</span> </span><span class="WHIT">          </span><span class="NAME">playLoader.busy.setFlag</span><span class="PUNC">(</span><span class="STRN">'media'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="KEYW">false</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>118</span> </span><span class="WHIT">          </span><span class="NAME">playLoader.bigPlay.setFlag</span><span class="PUNC">(</span><span class="STRN">'media'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="KEYW">false</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>119</span> </span><span class="WHIT">          </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">media.mediaFile.type</span><span class="WHIT"> </span><span class="PUNC">!==</span><span class="WHIT"> </span><span class="STRN">'audio'</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>120</span> </span><span class="WHIT">            </span><span class="NAME">playLoader.previewFlag.setFlag</span><span class="PUNC">(</span><span class="STRN">'media'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="KEYW">false</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>121</span> </span><span class="WHIT">          </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>122</span> </span><span class="WHIT">          </span><span class="NAME">playLoader.checkVisibility</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>123</span> </span><span class="WHIT">        </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>124</span> </span><span class="WHIT">      </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>125</span> </span><span class="WHIT">      </span><span class="NAME">media.bind</span><span class="PUNC">(</span><span class="STRN">'pause'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">playLoader</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>126</span> </span><span class="WHIT">        </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">event</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>127</span> </span><span class="WHIT">          </span><span class="NAME">playLoader.bigPlay.setFlag</span><span class="PUNC">(</span><span class="STRN">'media'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="KEYW">true</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>128</span> </span><span class="WHIT">          </span><span class="NAME">playLoader.checkVisibility</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>129</span> </span><span class="WHIT">        </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>130</span> </span><span class="WHIT">      </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>131</span> </span><span class="WHIT">    </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>132</span> </span><span class="WHIT">    </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>133</span> 
+<span class='line'>134</span> </span><span class="WHIT">      </span><span class="COMM">// Hide the display.</span><span class="WHIT">
+<span class='line'>135</span> </span><span class="WHIT">      </span><span class="NAME">this.enabled</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">false</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>136</span> </span><span class="WHIT">      </span><span class="NAME">this.hide</span><span class="PUNC">(</span><span class="NAME">this.elements.busy</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>137</span> </span><span class="WHIT">      </span><span class="NAME">this.hide</span><span class="PUNC">(</span><span class="NAME">this.elements.bigPlay</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>138</span> </span><span class="WHIT">      </span><span class="NAME">this.hide</span><span class="PUNC">(</span><span class="NAME">this.elements.preview</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>139</span> </span><span class="WHIT">      </span><span class="NAME">this.hide</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>140</span> </span><span class="WHIT">    </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>141</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>142</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>143</span> 
+<span class='line'>144</span> </span><span class="COMM">/**
+<span class='line'>145</span>  * Loads the preview image.
+<span class='line'>146</span>  */</span><span class="WHIT">
+<span class='line'>147</span> </span><span class="NAME">minplayer.playLoader.prototype.loadPreview</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>148</span> 
+<span class='line'>149</span> </span><span class="WHIT">  </span><span class="COMM">// Ignore if disabled.</span><span class="WHIT">
+<span class='line'>150</span> </span><span class="WHIT">  </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">this.enabled</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>151</span> </span><span class="WHIT">    </span><span class="KEYW">return</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>152</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>153</span> 
+<span class='line'>154</span> </span><span class="WHIT">  </span><span class="COMM">// If the preview element exists.</span><span class="WHIT">
+<span class='line'>155</span> </span><span class="WHIT">  </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">this.elements.preview</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>156</span> 
+<span class='line'>157</span> </span><span class="WHIT">    </span><span class="COMM">// If there is a preview to show...</span><span class="WHIT">
+<span class='line'>158</span> </span><span class="WHIT">    </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">this.options.preview</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>159</span> 
+<span class='line'>160</span> </span><span class="WHIT">      </span><span class="COMM">// Say that this has a preview.</span><span class="WHIT">
+<span class='line'>161</span> </span><span class="WHIT">      </span><span class="NAME">this.elements.preview.addClass</span><span class="PUNC">(</span><span class="STRN">'has-preview'</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">show</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>162</span> 
+<span class='line'>163</span> </span><span class="WHIT">      </span><span class="COMM">// Create a new preview image.</span><span class="WHIT">
+<span class='line'>164</span> </span><span class="WHIT">      </span><span class="NAME">this.preview</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">new</span><span class="WHIT"> </span><span class="NAME">minplayer.image</span><span class="PUNC">(</span><span class="NAME">this.elements.preview</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">this.options</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>165</span> 
+<span class='line'>166</span> </span><span class="WHIT">      </span><span class="COMM">// Create the image.</span><span class="WHIT">
+<span class='line'>167</span> </span><span class="WHIT">      </span><span class="NAME">this.preview.load</span><span class="PUNC">(</span><span class="NAME">this.options.preview</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>168</span> </span><span class="WHIT">    </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>169</span> </span><span class="WHIT">    </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>170</span> 
+<span class='line'>171</span> </span><span class="WHIT">      </span><span class="COMM">// Hide the preview.</span><span class="WHIT">
+<span class='line'>172</span> </span><span class="WHIT">      </span><span class="NAME">this.elements.preview.hide</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>173</span> </span><span class="WHIT">    </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>174</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>175</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>176</span> 
+<span class='line'>177</span> </span><span class="COMM">/**
+<span class='line'>178</span>  * Hide or show certain elements based on the state of the busy and big play
+<span class='line'>179</span>  * button.
+<span class='line'>180</span>  */</span><span class="WHIT">
+<span class='line'>181</span> </span><span class="NAME">minplayer.playLoader.prototype.checkVisibility</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>182</span> 
+<span class='line'>183</span> </span><span class="WHIT">  </span><span class="COMM">// Ignore if disabled.</span><span class="WHIT">
+<span class='line'>184</span> </span><span class="WHIT">  </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">this.enabled</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>185</span> </span><span class="WHIT">    </span><span class="KEYW">return</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>186</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>187</span> 
+<span class='line'>188</span> </span><span class="WHIT">  </span><span class="COMM">// Hide or show the busy cursor based on the flags.</span><span class="WHIT">
+<span class='line'>189</span> </span><span class="WHIT">  </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">this.busy.flag</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>190</span> </span><span class="WHIT">    </span><span class="NAME">this.elements.busy.show</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>191</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>192</span> </span><span class="WHIT">  </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>193</span> </span><span class="WHIT">    </span><span class="NAME">this.elements.busy.hide</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>194</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>195</span> 
+<span class='line'>196</span> </span><span class="WHIT">  </span><span class="COMM">// Hide or show the big play button based on the flags.</span><span class="WHIT">
+<span class='line'>197</span> </span><span class="WHIT">  </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">this.bigPlay.flag</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>198</span> </span><span class="WHIT">    </span><span class="NAME">this.elements.bigPlay.show</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>199</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>200</span> </span><span class="WHIT">  </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>201</span> </span><span class="WHIT">    </span><span class="NAME">this.elements.bigPlay.hide</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>202</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>203</span> 
+<span class='line'>204</span> </span><span class="WHIT">  </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">this.previewFlag.flag</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>205</span> </span><span class="WHIT">    </span><span class="NAME">this.elements.preview.show</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>206</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>207</span> </span><span class="WHIT">  </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>208</span> </span><span class="WHIT">    </span><span class="NAME">this.elements.preview.hide</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>209</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>210</span> 
+<span class='line'>211</span> </span><span class="WHIT">  </span><span class="COMM">// Show the control either flag is set.</span><span class="WHIT">
+<span class='line'>212</span> </span><span class="WHIT">  </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">this.bigPlay.flag</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="NAME">this.busy.flag</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="NAME">this.previewFlag.flag</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>213</span> </span><span class="WHIT">    </span><span class="NAME">this.display.show</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>214</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>215</span> 
+<span class='line'>216</span> </span><span class="WHIT">  </span><span class="COMM">// Hide the whole control if both flags are 0.</span><span class="WHIT">
+<span class='line'>217</span> </span><span class="WHIT">  </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">this.bigPlay.flag</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="PUNC">!</span><span class="NAME">this.busy.flag</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="PUNC">!</span><span class="NAME">this.previewFlag.flag</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>218</span> </span><span class="WHIT">    </span><span class="NAME">this.display.hide</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>219</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>220</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>221</span> </span></pre></body></html>
\ No newline at end of file
diff --git a/public/admin/js/osmplayer/doc/symbols/src/minplayer_src_minplayer.players.base.js.html b/public/admin/js/osmplayer/doc/symbols/src/minplayer_src_minplayer.players.base.js.html
new file mode 100644
index 00000000000..7d58d8f1040
--- /dev/null
+++ b/public/admin/js/osmplayer/doc/symbols/src/minplayer_src_minplayer.players.base.js.html
@@ -0,0 +1,661 @@
+<html><head><meta http-equiv="content-type" content="text/html; charset=utf-8"> <style>
+	.KEYW {color: #933;}
+	.COMM {color: #bbb; font-style: italic;}
+	.NUMB {color: #393;}
+	.STRN {color: #393;}
+	.REGX {color: #339;}
+	.line {border-right: 1px dotted #666; color: #666; font-style: normal;}
+	</style></head><body><pre><span class='line'>  1</span> <span class="COMM">/** The minplayer namespace. */</span><span class="WHIT">
+<span class='line'>  2</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">minplayer</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">minplayer</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>  3</span> 
+<span class='line'>  4</span> </span><span class="COMM">/** All the media player implementations */</span><span class="WHIT">
+<span class='line'>  5</span> </span><span class="NAME">minplayer.players</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">minplayer.players</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>  6</span> 
+<span class='line'>  7</span> </span><span class="COMM">/**
+<span class='line'>  8</span>  * @constructor
+<span class='line'>  9</span>  * @extends minplayer.display
+<span class='line'> 10</span>  * @class The base media player class where all media players derive from.
+<span class='line'> 11</span>  *
+<span class='line'> 12</span>  * @param {object} context The jQuery context.
+<span class='line'> 13</span>  * @param {object} options This components options.
+<span class='line'> 14</span>  * @param {object} queue The event queue to pass events around.
+<span class='line'> 15</span>  */</span><span class="WHIT">
+<span class='line'> 16</span> </span><span class="NAME">minplayer.players.base</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">context</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">options</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">queue</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 17</span> 
+<span class='line'> 18</span> </span><span class="WHIT">  </span><span class="COMM">// Derive from display</span><span class="WHIT">
+<span class='line'> 19</span> </span><span class="WHIT">  </span><span class="NAME">minplayer.display.call</span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'media'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">context</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">options</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">queue</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 20</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 21</span> 
+<span class='line'> 22</span> </span><span class="COMM">/** Derive from minplayer.display. */</span><span class="WHIT">
+<span class='line'> 23</span> </span><span class="NAME">minplayer.players.base.prototype</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">new</span><span class="WHIT"> </span><span class="NAME">minplayer.display</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 24</span> 
+<span class='line'> 25</span> </span><span class="COMM">/** Reset the constructor. */</span><span class="WHIT">
+<span class='line'> 26</span> </span><span class="NAME">minplayer.players.base.prototype.constructor</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">minplayer.players.base</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 27</span> 
+<span class='line'> 28</span> </span><span class="COMM">/**
+<span class='line'> 29</span>  * @see minplayer.display.getElements
+<span class='line'> 30</span>  * @this minplayer.players.base
+<span class='line'> 31</span>  * @return {object} The elements for this display.
+<span class='line'> 32</span>  */</span><span class="WHIT">
+<span class='line'> 33</span> </span><span class="NAME">minplayer.players.base.prototype.getElements</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 34</span> </span><span class="WHIT">  </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">elements</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">minplayer.display.prototype.getElements.call</span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 35</span> </span><span class="WHIT">  </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">jQuery.extend</span><span class="PUNC">(</span><span class="NAME">elements</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 36</span> </span><span class="WHIT">    </span><span class="NAME">media</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">this.options.mediaelement</span><span class="WHIT">
+<span class='line'> 37</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 38</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 39</span> 
+<span class='line'> 40</span> </span><span class="COMM">/**
+<span class='line'> 41</span>  * Get the priority of this media player.
+<span class='line'> 42</span>  *
+<span class='line'> 43</span>  * @return {number} The priority of this media player.
+<span class='line'> 44</span>  */</span><span class="WHIT">
+<span class='line'> 45</span> </span><span class="NAME">minplayer.players.base.getPriority</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 46</span> </span><span class="WHIT">  </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 47</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 48</span> 
+<span class='line'> 49</span> </span><span class="COMM">/**
+<span class='line'> 50</span>  * Returns the ID for the media being played.
+<span class='line'> 51</span>  *
+<span class='line'> 52</span>  * @param {object} file A {@link minplayer.file} object.
+<span class='line'> 53</span>  * @return {string} The ID for the provided media.
+<span class='line'> 54</span>  */</span><span class="WHIT">
+<span class='line'> 55</span> </span><span class="NAME">minplayer.players.base.getMediaId</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">file</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 56</span> </span><span class="WHIT">  </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="STRN">''</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 57</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 58</span> 
+<span class='line'> 59</span> </span><span class="COMM">/**
+<span class='line'> 60</span>  * Determine if we can play the media file.
+<span class='line'> 61</span>  *
+<span class='line'> 62</span>  * @param {object} file A {@link minplayer.file} object.
+<span class='line'> 63</span>  * @return {boolean} If this player can play this media type.
+<span class='line'> 64</span>  */</span><span class="WHIT">
+<span class='line'> 65</span> </span><span class="NAME">minplayer.players.base.canPlay</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">file</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 66</span> </span><span class="WHIT">  </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">false</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 67</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 68</span> 
+<span class='line'> 69</span> </span><span class="COMM">/**
+<span class='line'> 70</span>  * @see minplayer.plugin.construct
+<span class='line'> 71</span>  * @this minplayer.players.base
+<span class='line'> 72</span>  */</span><span class="WHIT">
+<span class='line'> 73</span> </span><span class="NAME">minplayer.players.base.prototype.construct</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 74</span> 
+<span class='line'> 75</span> </span><span class="WHIT">  </span><span class="COMM">// Call the media display constructor.</span><span class="WHIT">
+<span class='line'> 76</span> </span><span class="WHIT">  </span><span class="NAME">minplayer.display.prototype.construct.call</span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 77</span> 
+<span class='line'> 78</span> </span><span class="WHIT">  </span><span class="COMM">// Set the plugin name within the options.</span><span class="WHIT">
+<span class='line'> 79</span> </span><span class="WHIT">  </span><span class="NAME">this.options.pluginName</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">'basePlayer'</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 80</span> 
+<span class='line'> 81</span> </span><span class="WHIT">  </span><span class="COMM">/** The currently loaded media file. */</span><span class="WHIT">
+<span class='line'> 82</span> </span><span class="WHIT">  </span><span class="NAME">this.mediaFile</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.options.file</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 83</span> 
+<span class='line'> 84</span> </span><span class="WHIT">  </span><span class="COMM">// Clear the media player.</span><span class="WHIT">
+<span class='line'> 85</span> </span><span class="WHIT">  </span><span class="NAME">this.clear</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 86</span> 
+<span class='line'> 87</span> </span><span class="WHIT">  </span><span class="COMM">// Get the player display object.</span><span class="WHIT">
+<span class='line'> 88</span> </span><span class="WHIT">  </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">this.playerFound</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 89</span> 
+<span class='line'> 90</span> </span><span class="WHIT">    </span><span class="COMM">// Add the new player.</span><span class="WHIT">
+<span class='line'> 91</span> </span><span class="WHIT">    </span><span class="NAME">this.addPlayer</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 92</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'> 93</span> 
+<span class='line'> 94</span> </span><span class="WHIT">  </span><span class="COMM">// Get the player object...</span><span class="WHIT">
+<span class='line'> 95</span> </span><span class="WHIT">  </span><span class="NAME">this.player</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.getPlayer</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 96</span> 
+<span class='line'> 97</span> </span><span class="WHIT">  </span><span class="COMM">// Toggle playing if they click.</span><span class="WHIT">
+<span class='line'> 98</span> </span><span class="WHIT">  </span><span class="NAME">minplayer.click</span><span class="PUNC">(</span><span class="NAME">this.display</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">player</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 99</span> </span><span class="WHIT">    </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>100</span> </span><span class="WHIT">      </span><span class="NAME">minplayer.showAll</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>101</span> </span><span class="WHIT">      </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">player.playing</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>102</span> </span><span class="WHIT">        </span><span class="NAME">player.pause</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>103</span> </span><span class="WHIT">      </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>104</span> </span><span class="WHIT">      </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>105</span> </span><span class="WHIT">        </span><span class="NAME">player.play</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>106</span> </span><span class="WHIT">      </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>107</span> </span><span class="WHIT">    </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>108</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>109</span> 
+<span class='line'>110</span> </span><span class="WHIT">  </span><span class="COMM">// Bind to key events...</span><span class="WHIT">
+<span class='line'>111</span> </span><span class="WHIT">  </span><span class="NAME">jQuery</span><span class="PUNC">(</span><span class="NAME">document</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">bind</span><span class="PUNC">(</span><span class="STRN">'keydown'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">player</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>112</span> </span><span class="WHIT">    </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">event</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>113</span> </span><span class="WHIT">      </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">player.hasFocus</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>114</span> </span><span class="WHIT">        </span><span class="NAME">event.preventDefault</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>115</span> </span><span class="WHIT">        </span><span class="KEYW">switch</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">event.keyCode</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>116</span> </span><span class="WHIT">          </span><span class="KEYW">case</span><span class="WHIT"> </span><span class="NUMB">32</span><span class="PUNC">:</span><span class="WHIT">  </span><span class="COMM">// SPACE</span><span class="WHIT">
+<span class='line'>117</span> </span><span class="WHIT">          </span><span class="KEYW">case</span><span class="WHIT"> </span><span class="NUMB">179</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="COMM">// GOOGLE play/pause button.</span><span class="WHIT">
+<span class='line'>118</span> </span><span class="WHIT">            </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">player.playing</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>119</span> </span><span class="WHIT">              </span><span class="NAME">player.pause</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>120</span> </span><span class="WHIT">            </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>121</span> </span><span class="WHIT">            </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>122</span> </span><span class="WHIT">              </span><span class="NAME">player.play</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>123</span> </span><span class="WHIT">            </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>124</span> </span><span class="WHIT">            </span><span class="KEYW">break</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>125</span> </span><span class="WHIT">          </span><span class="KEYW">case</span><span class="WHIT"> </span><span class="NUMB">38</span><span class="PUNC">:</span><span class="WHIT">  </span><span class="COMM">// UP</span><span class="WHIT">
+<span class='line'>126</span> </span><span class="WHIT">            </span><span class="NAME">player.setVolumeRelative</span><span class="PUNC">(</span><span class="NUMB">0.1</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>127</span> </span><span class="WHIT">            </span><span class="KEYW">break</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>128</span> </span><span class="WHIT">          </span><span class="KEYW">case</span><span class="WHIT"> </span><span class="NUMB">40</span><span class="PUNC">:</span><span class="WHIT">  </span><span class="COMM">// DOWN</span><span class="WHIT">
+<span class='line'>129</span> </span><span class="WHIT">            </span><span class="NAME">player.setVolumeRelative</span><span class="PUNC">(</span><span class="PUNC">-</span><span class="NUMB">0.1</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>130</span> </span><span class="WHIT">            </span><span class="KEYW">break</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>131</span> </span><span class="WHIT">          </span><span class="KEYW">case</span><span class="WHIT"> </span><span class="NUMB">37</span><span class="PUNC">:</span><span class="WHIT">  </span><span class="COMM">// LEFT</span><span class="WHIT">
+<span class='line'>132</span> </span><span class="WHIT">          </span><span class="KEYW">case</span><span class="WHIT"> </span><span class="NUMB">227</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="COMM">// GOOGLE TV REW</span><span class="WHIT">
+<span class='line'>133</span> </span><span class="WHIT">            </span><span class="NAME">player.seekRelative</span><span class="PUNC">(</span><span class="PUNC">-</span><span class="NUMB">0.05</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>134</span> </span><span class="WHIT">            </span><span class="KEYW">break</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>135</span> </span><span class="WHIT">          </span><span class="KEYW">case</span><span class="WHIT"> </span><span class="NUMB">39</span><span class="PUNC">:</span><span class="WHIT">  </span><span class="COMM">// RIGHT</span><span class="WHIT">
+<span class='line'>136</span> </span><span class="WHIT">          </span><span class="KEYW">case</span><span class="WHIT"> </span><span class="NUMB">228</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="COMM">// GOOGLE TV FW</span><span class="WHIT">
+<span class='line'>137</span> </span><span class="WHIT">            </span><span class="NAME">player.seekRelative</span><span class="PUNC">(</span><span class="NUMB">0.05</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>138</span> </span><span class="WHIT">            </span><span class="KEYW">break</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>139</span> </span><span class="WHIT">        </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>140</span> </span><span class="WHIT">      </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>141</span> </span><span class="WHIT">    </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>142</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>143</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>144</span> 
+<span class='line'>145</span> </span><span class="COMM">/**
+<span class='line'>146</span>  * Adds the media player.
+<span class='line'>147</span>  */</span><span class="WHIT">
+<span class='line'>148</span> </span><span class="NAME">minplayer.players.base.prototype.addPlayer</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>149</span> 
+<span class='line'>150</span> </span><span class="WHIT">  </span><span class="COMM">// Remove the media element if found</span><span class="WHIT">
+<span class='line'>151</span> </span><span class="WHIT">  </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">this.elements.media</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>152</span> </span><span class="WHIT">    </span><span class="NAME">this.elements.media.remove</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>153</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>154</span> 
+<span class='line'>155</span> </span><span class="WHIT">  </span><span class="COMM">// Create a new media player element.</span><span class="WHIT">
+<span class='line'>156</span> </span><span class="WHIT">  </span><span class="NAME">this.elements.media</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">jQuery</span><span class="PUNC">(</span><span class="NAME">this.create</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>157</span> </span><span class="WHIT">  </span><span class="NAME">this.display.html</span><span class="PUNC">(</span><span class="NAME">this.elements.media</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>158</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>159</span> 
+<span class='line'>160</span> </span><span class="COMM">/**
+<span class='line'>161</span>  * @see minplayer.plugin.destroy.
+<span class='line'>162</span>  */</span><span class="WHIT">
+<span class='line'>163</span> </span><span class="NAME">minplayer.players.base.prototype.destroy</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>164</span> </span><span class="WHIT">  </span><span class="NAME">minplayer.plugin.prototype.destroy.call</span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>165</span> </span><span class="WHIT">  </span><span class="NAME">this.clear</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>166</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>167</span> 
+<span class='line'>168</span> </span><span class="COMM">/**
+<span class='line'>169</span>  * Clears the media player.
+<span class='line'>170</span>  */</span><span class="WHIT">
+<span class='line'>171</span> </span><span class="NAME">minplayer.players.base.prototype.clear</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>172</span> 
+<span class='line'>173</span> </span><span class="WHIT">  </span><span class="COMM">// Reset the ready flag.</span><span class="WHIT">
+<span class='line'>174</span> </span><span class="WHIT">  </span><span class="NAME">this.playerReady</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">false</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>175</span> 
+<span class='line'>176</span> </span><span class="WHIT">  </span><span class="COMM">// Reset the player.</span><span class="WHIT">
+<span class='line'>177</span> </span><span class="WHIT">  </span><span class="NAME">this.reset</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>178</span> 
+<span class='line'>179</span> </span><span class="WHIT">  </span><span class="COMM">// If the player exists, then unbind all events.</span><span class="WHIT">
+<span class='line'>180</span> </span><span class="WHIT">  </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">this.player</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>181</span> </span><span class="WHIT">    </span><span class="NAME">jQuery</span><span class="PUNC">(</span><span class="NAME">this.player</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">unbind</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>182</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>183</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>184</span> 
+<span class='line'>185</span> </span><span class="COMM">/**
+<span class='line'>186</span>  * Resets all variables.
+<span class='line'>187</span>  */</span><span class="WHIT">
+<span class='line'>188</span> </span><span class="NAME">minplayer.players.base.prototype.reset</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>189</span> 
+<span class='line'>190</span> </span><span class="WHIT">  </span><span class="COMM">// The duration of the player.</span><span class="WHIT">
+<span class='line'>191</span> </span><span class="WHIT">  </span><span class="NAME">this.duration</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">new</span><span class="WHIT"> </span><span class="NAME">minplayer.async</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>192</span> 
+<span class='line'>193</span> </span><span class="WHIT">  </span><span class="COMM">// The current play time of the player.</span><span class="WHIT">
+<span class='line'>194</span> </span><span class="WHIT">  </span><span class="NAME">this.currentTime</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">new</span><span class="WHIT"> </span><span class="NAME">minplayer.async</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>195</span> 
+<span class='line'>196</span> </span><span class="WHIT">  </span><span class="COMM">// The amount of bytes loaded in the player.</span><span class="WHIT">
+<span class='line'>197</span> </span><span class="WHIT">  </span><span class="NAME">this.bytesLoaded</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">new</span><span class="WHIT"> </span><span class="NAME">minplayer.async</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>198</span> 
+<span class='line'>199</span> </span><span class="WHIT">  </span><span class="COMM">// The total amount of bytes for the media.</span><span class="WHIT">
+<span class='line'>200</span> </span><span class="WHIT">  </span><span class="NAME">this.bytesTotal</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">new</span><span class="WHIT"> </span><span class="NAME">minplayer.async</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>201</span> 
+<span class='line'>202</span> </span><span class="WHIT">  </span><span class="COMM">// The bytes that the download started with.</span><span class="WHIT">
+<span class='line'>203</span> </span><span class="WHIT">  </span><span class="NAME">this.bytesStart</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">new</span><span class="WHIT"> </span><span class="NAME">minplayer.async</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>204</span> 
+<span class='line'>205</span> </span><span class="WHIT">  </span><span class="COMM">// The current volume of the player.</span><span class="WHIT">
+<span class='line'>206</span> </span><span class="WHIT">  </span><span class="NAME">this.volume</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">new</span><span class="WHIT"> </span><span class="NAME">minplayer.async</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>207</span> 
+<span class='line'>208</span> </span><span class="WHIT">  </span><span class="COMM">// Reset focus.</span><span class="WHIT">
+<span class='line'>209</span> </span><span class="WHIT">  </span><span class="NAME">this.hasFocus</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">false</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>210</span> 
+<span class='line'>211</span> </span><span class="WHIT">  </span><span class="COMM">// We are not playing.</span><span class="WHIT">
+<span class='line'>212</span> </span><span class="WHIT">  </span><span class="NAME">this.playing</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">false</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>213</span> 
+<span class='line'>214</span> </span><span class="WHIT">  </span><span class="COMM">// We are not loading.</span><span class="WHIT">
+<span class='line'>215</span> </span><span class="WHIT">  </span><span class="NAME">this.loading</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">false</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>216</span> 
+<span class='line'>217</span> </span><span class="WHIT">  </span><span class="COMM">// Tell everyone else we reset.</span><span class="WHIT">
+<span class='line'>218</span> </span><span class="WHIT">  </span><span class="NAME">this.trigger</span><span class="PUNC">(</span><span class="STRN">'pause'</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>219</span> </span><span class="WHIT">  </span><span class="NAME">this.trigger</span><span class="PUNC">(</span><span class="STRN">'waiting'</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>220</span> </span><span class="WHIT">  </span><span class="NAME">this.trigger</span><span class="PUNC">(</span><span class="STRN">'progress'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="NAME">loaded</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">total</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">start</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>221</span> </span><span class="WHIT">  </span><span class="NAME">this.trigger</span><span class="PUNC">(</span><span class="STRN">'timeupdate'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="NAME">currentTime</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">duration</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>222</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>223</span> 
+<span class='line'>224</span> </span><span class="COMM">/**
+<span class='line'>225</span>  * Called when the player is ready to recieve events and commands.
+<span class='line'>226</span>  */</span><span class="WHIT">
+<span class='line'>227</span> </span><span class="NAME">minplayer.players.base.prototype.onReady</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>228</span> 
+<span class='line'>229</span> </span><span class="WHIT">  </span><span class="COMM">// Only continue if we are not already ready.</span><span class="WHIT">
+<span class='line'>230</span> </span><span class="WHIT">  </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">this.playerReady</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>231</span> </span><span class="WHIT">    </span><span class="KEYW">return</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>232</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>233</span> 
+<span class='line'>234</span> </span><span class="WHIT">  </span><span class="COMM">// Set the ready flag.</span><span class="WHIT">
+<span class='line'>235</span> </span><span class="WHIT">  </span><span class="NAME">this.playerReady</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">true</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>236</span> 
+<span class='line'>237</span> </span><span class="WHIT">  </span><span class="COMM">// Set the volume to the default.</span><span class="WHIT">
+<span class='line'>238</span> </span><span class="WHIT">  </span><span class="NAME">this.setVolume</span><span class="PUNC">(</span><span class="NAME">this.options.volume</span><span class="WHIT"> </span><span class="PUNC">/</span><span class="WHIT"> </span><span class="NUMB">100</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>239</span> 
+<span class='line'>240</span> </span><span class="WHIT">  </span><span class="COMM">// Setup the progress interval.</span><span class="WHIT">
+<span class='line'>241</span> </span><span class="WHIT">  </span><span class="NAME">this.loading</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">true</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>242</span> 
+<span class='line'>243</span> </span><span class="WHIT">  </span><span class="COMM">// Create a poll to get the progress.</span><span class="WHIT">
+<span class='line'>244</span> </span><span class="WHIT">  </span><span class="NAME">this.poll</span><span class="PUNC">(</span><span class="PUNC">(</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">player</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>245</span> </span><span class="WHIT">    </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>246</span> 
+<span class='line'>247</span> </span><span class="WHIT">      </span><span class="COMM">// Only do this if the play interval is set.</span><span class="WHIT">
+<span class='line'>248</span> </span><span class="WHIT">      </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">player.loading</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>249</span> 
+<span class='line'>250</span> </span><span class="WHIT">        </span><span class="COMM">// Get the bytes loaded asynchronously.</span><span class="WHIT">
+<span class='line'>251</span> </span><span class="WHIT">        </span><span class="NAME">player.getBytesLoaded</span><span class="PUNC">(</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">bytesLoaded</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>252</span> 
+<span class='line'>253</span> </span><span class="WHIT">          </span><span class="COMM">// Get the bytes total asynchronously.</span><span class="WHIT">
+<span class='line'>254</span> </span><span class="WHIT">          </span><span class="NAME">player.getBytesTotal</span><span class="PUNC">(</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">bytesTotal</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>255</span> 
+<span class='line'>256</span> </span><span class="WHIT">            </span><span class="COMM">// Trigger an event about the progress.</span><span class="WHIT">
+<span class='line'>257</span> </span><span class="WHIT">            </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">bytesLoaded</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="NAME">bytesTotal</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>258</span> 
+<span class='line'>259</span> </span><span class="WHIT">              </span><span class="COMM">// Get the bytes start, but don't require it.</span><span class="WHIT">
+<span class='line'>260</span> </span><span class="WHIT">              </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">bytesStart</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>261</span> </span><span class="WHIT">              </span><span class="NAME">player.getBytesStart</span><span class="PUNC">(</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">val</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>262</span> </span><span class="WHIT">                </span><span class="NAME">bytesStart</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">val</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>263</span> </span><span class="WHIT">              </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>264</span> 
+<span class='line'>265</span> </span><span class="WHIT">              </span><span class="COMM">// Trigger a progress event.</span><span class="WHIT">
+<span class='line'>266</span> </span><span class="WHIT">              </span><span class="NAME">player.trigger</span><span class="PUNC">(</span><span class="STRN">'progress'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>267</span> </span><span class="WHIT">                </span><span class="NAME">loaded</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">bytesLoaded</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'>268</span> </span><span class="WHIT">                </span><span class="NAME">total</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">bytesTotal</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'>269</span> </span><span class="WHIT">                </span><span class="NAME">start</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">bytesStart</span><span class="WHIT">
+<span class='line'>270</span> </span><span class="WHIT">              </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>271</span> 
+<span class='line'>272</span> </span><span class="WHIT">              </span><span class="COMM">// Say we are not longer loading if they are equal.</span><span class="WHIT">
+<span class='line'>273</span> </span><span class="WHIT">              </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">bytesLoaded</span><span class="WHIT"> </span><span class="PUNC">>=</span><span class="WHIT"> </span><span class="NAME">bytesTotal</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>274</span> </span><span class="WHIT">                </span><span class="NAME">player.loading</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">false</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>275</span> </span><span class="WHIT">              </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>276</span> </span><span class="WHIT">            </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>277</span> </span><span class="WHIT">          </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>278</span> </span><span class="WHIT">        </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>279</span> </span><span class="WHIT">      </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>280</span> 
+<span class='line'>281</span> </span><span class="WHIT">      </span><span class="COMM">// Keep polling as long as its loading...</span><span class="WHIT">
+<span class='line'>282</span> </span><span class="WHIT">      </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">player.loading</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>283</span> </span><span class="WHIT">    </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>284</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NUMB">1000</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>285</span> 
+<span class='line'>286</span> </span><span class="WHIT">  </span><span class="COMM">// We are now ready.</span><span class="WHIT">
+<span class='line'>287</span> </span><span class="WHIT">  </span><span class="NAME">this.ready</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>288</span> 
+<span class='line'>289</span> </span><span class="WHIT">  </span><span class="COMM">// Trigger that the load has started.</span><span class="WHIT">
+<span class='line'>290</span> </span><span class="WHIT">  </span><span class="NAME">this.trigger</span><span class="PUNC">(</span><span class="STRN">'loadstart'</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>291</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>292</span> 
+<span class='line'>293</span> </span><span class="COMM">/**
+<span class='line'>294</span>  * Should be called when the media is playing.
+<span class='line'>295</span>  */</span><span class="WHIT">
+<span class='line'>296</span> </span><span class="NAME">minplayer.players.base.prototype.onPlaying</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>297</span> 
+<span class='line'>298</span> </span><span class="WHIT">  </span><span class="COMM">// Trigger an event that we are playing.</span><span class="WHIT">
+<span class='line'>299</span> </span><span class="WHIT">  </span><span class="NAME">this.trigger</span><span class="PUNC">(</span><span class="STRN">'playing'</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>300</span> 
+<span class='line'>301</span> </span><span class="WHIT">  </span><span class="COMM">// Say that this player has focus.</span><span class="WHIT">
+<span class='line'>302</span> </span><span class="WHIT">  </span><span class="NAME">this.hasFocus</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">true</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>303</span> 
+<span class='line'>304</span> </span><span class="WHIT">  </span><span class="COMM">// Set the playInterval to true.</span><span class="WHIT">
+<span class='line'>305</span> </span><span class="WHIT">  </span><span class="NAME">this.playing</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">true</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>306</span> 
+<span class='line'>307</span> </span><span class="WHIT">  </span><span class="COMM">// Create a poll to get the timeupate.</span><span class="WHIT">
+<span class='line'>308</span> </span><span class="WHIT">  </span><span class="NAME">this.poll</span><span class="PUNC">(</span><span class="PUNC">(</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">player</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>309</span> </span><span class="WHIT">    </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>310</span> 
+<span class='line'>311</span> </span><span class="WHIT">      </span><span class="COMM">// Only do this if the play interval is set.</span><span class="WHIT">
+<span class='line'>312</span> </span><span class="WHIT">      </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">player.playing</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>313</span> 
+<span class='line'>314</span> </span><span class="WHIT">        </span><span class="COMM">// Get the current time asyncrhonously.</span><span class="WHIT">
+<span class='line'>315</span> </span><span class="WHIT">        </span><span class="NAME">player.getCurrentTime</span><span class="PUNC">(</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">currentTime</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>316</span> 
+<span class='line'>317</span> </span><span class="WHIT">          </span><span class="COMM">// Get the duration asynchronously.</span><span class="WHIT">
+<span class='line'>318</span> </span><span class="WHIT">          </span><span class="NAME">player.getDuration</span><span class="PUNC">(</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">duration</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>319</span> 
+<span class='line'>320</span> </span><span class="WHIT">            </span><span class="COMM">// Convert these to floats.</span><span class="WHIT">
+<span class='line'>321</span> </span><span class="WHIT">            </span><span class="NAME">currentTime</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">parseFloat</span><span class="PUNC">(</span><span class="NAME">currentTime</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>322</span> </span><span class="WHIT">            </span><span class="NAME">duration</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">parseFloat</span><span class="PUNC">(</span><span class="NAME">duration</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>323</span> 
+<span class='line'>324</span> </span><span class="WHIT">            </span><span class="COMM">// Trigger an event about the progress.</span><span class="WHIT">
+<span class='line'>325</span> </span><span class="WHIT">            </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">currentTime</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="NAME">duration</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>326</span> 
+<span class='line'>327</span> </span><span class="WHIT">              </span><span class="COMM">// Trigger an update event.</span><span class="WHIT">
+<span class='line'>328</span> </span><span class="WHIT">              </span><span class="NAME">player.trigger</span><span class="PUNC">(</span><span class="STRN">'timeupdate'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>329</span> </span><span class="WHIT">                </span><span class="NAME">currentTime</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">currentTime</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'>330</span> </span><span class="WHIT">                </span><span class="NAME">duration</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">duration</span><span class="WHIT">
+<span class='line'>331</span> </span><span class="WHIT">              </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>332</span> </span><span class="WHIT">            </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>333</span> </span><span class="WHIT">          </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>334</span> </span><span class="WHIT">        </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>335</span> </span><span class="WHIT">      </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>336</span> 
+<span class='line'>337</span> </span><span class="WHIT">      </span><span class="COMM">// Keep polling as long as it is playing.</span><span class="WHIT">
+<span class='line'>338</span> </span><span class="WHIT">      </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">player.playing</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>339</span> </span><span class="WHIT">    </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>340</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NUMB">1000</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>341</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>342</span> 
+<span class='line'>343</span> </span><span class="COMM">/**
+<span class='line'>344</span>  * Should be called when the media is paused.
+<span class='line'>345</span>  */</span><span class="WHIT">
+<span class='line'>346</span> </span><span class="NAME">minplayer.players.base.prototype.onPaused</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>347</span> 
+<span class='line'>348</span> </span><span class="WHIT">  </span><span class="COMM">// Trigger an event that we are paused.</span><span class="WHIT">
+<span class='line'>349</span> </span><span class="WHIT">  </span><span class="NAME">this.trigger</span><span class="PUNC">(</span><span class="STRN">'pause'</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>350</span> 
+<span class='line'>351</span> </span><span class="WHIT">  </span><span class="COMM">// Remove focus.</span><span class="WHIT">
+<span class='line'>352</span> </span><span class="WHIT">  </span><span class="NAME">this.hasFocus</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">false</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>353</span> 
+<span class='line'>354</span> </span><span class="WHIT">  </span><span class="COMM">// Say we are not playing.</span><span class="WHIT">
+<span class='line'>355</span> </span><span class="WHIT">  </span><span class="NAME">this.playing</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">false</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>356</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>357</span> 
+<span class='line'>358</span> </span><span class="COMM">/**
+<span class='line'>359</span>  * Should be called when the media is complete.
+<span class='line'>360</span>  */</span><span class="WHIT">
+<span class='line'>361</span> </span><span class="NAME">minplayer.players.base.prototype.onComplete</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>362</span> </span><span class="WHIT">  </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">this.playing</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>363</span> </span><span class="WHIT">    </span><span class="NAME">this.onPaused</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>364</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>365</span> 
+<span class='line'>366</span> </span><span class="WHIT">  </span><span class="COMM">// Stop the intervals.</span><span class="WHIT">
+<span class='line'>367</span> </span><span class="WHIT">  </span><span class="NAME">this.playing</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">false</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>368</span> </span><span class="WHIT">  </span><span class="NAME">this.loading</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">false</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>369</span> </span><span class="WHIT">  </span><span class="NAME">this.hasFocus</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">false</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>370</span> </span><span class="WHIT">  </span><span class="NAME">this.trigger</span><span class="PUNC">(</span><span class="STRN">'ended'</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>371</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>372</span> 
+<span class='line'>373</span> </span><span class="COMM">/**
+<span class='line'>374</span>  * Should be called when the media is done loading.
+<span class='line'>375</span>  */</span><span class="WHIT">
+<span class='line'>376</span> </span><span class="NAME">minplayer.players.base.prototype.onLoaded</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>377</span> 
+<span class='line'>378</span> </span><span class="WHIT">  </span><span class="COMM">// If we should autoplay, then just play now.</span><span class="WHIT">
+<span class='line'>379</span> </span><span class="WHIT">  </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">this.options.autoplay</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>380</span> </span><span class="WHIT">    </span><span class="NAME">this.play</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>381</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>382</span> 
+<span class='line'>383</span> </span><span class="WHIT">  </span><span class="NAME">this.trigger</span><span class="PUNC">(</span><span class="STRN">'loadeddata'</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>384</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>385</span> 
+<span class='line'>386</span> </span><span class="COMM">/**
+<span class='line'>387</span>  * Should be called when the player is waiting.
+<span class='line'>388</span>  */</span><span class="WHIT">
+<span class='line'>389</span> </span><span class="NAME">minplayer.players.base.prototype.onWaiting</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>390</span> </span><span class="WHIT">  </span><span class="NAME">this.trigger</span><span class="PUNC">(</span><span class="STRN">'waiting'</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>391</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>392</span> 
+<span class='line'>393</span> </span><span class="COMM">/**
+<span class='line'>394</span>  * Called when an error occurs.
+<span class='line'>395</span>  *
+<span class='line'>396</span>  * @param {string} errorCode The error that was triggered.
+<span class='line'>397</span>  */</span><span class="WHIT">
+<span class='line'>398</span> </span><span class="NAME">minplayer.players.base.prototype.onError</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">errorCode</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>399</span> </span><span class="WHIT">  </span><span class="NAME">this.hasFocus</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">false</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>400</span> </span><span class="WHIT">  </span><span class="NAME">this.trigger</span><span class="PUNC">(</span><span class="STRN">'error'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">errorCode</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>401</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>402</span> 
+<span class='line'>403</span> </span><span class="COMM">/**
+<span class='line'>404</span>  * @see minplayer.players.base#isReady
+<span class='line'>405</span>  * @return {boolean} Checks to see if the Flash is ready.
+<span class='line'>406</span>  */</span><span class="WHIT">
+<span class='line'>407</span> </span><span class="NAME">minplayer.players.base.prototype.isReady</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>408</span> 
+<span class='line'>409</span> </span><span class="WHIT">  </span><span class="COMM">// Return that the player is set and the ready flag is good.</span><span class="WHIT">
+<span class='line'>410</span> </span><span class="WHIT">  </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">this.player</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">this.playerReady</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>411</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>412</span> 
+<span class='line'>413</span> </span><span class="COMM">/**
+<span class='line'>414</span>  * Determines if the player should show the playloader.
+<span class='line'>415</span>  *
+<span class='line'>416</span>  * @param {string} preview The preview image.
+<span class='line'>417</span>  * @return {bool} If this player implements its own playLoader.
+<span class='line'>418</span>  */</span><span class="WHIT">
+<span class='line'>419</span> </span><span class="NAME">minplayer.players.base.prototype.hasPlayLoader</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">preview</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>420</span> </span><span class="WHIT">  </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">false</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>421</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>422</span> 
+<span class='line'>423</span> </span><span class="COMM">/**
+<span class='line'>424</span>  * Determines if the player should show the controller.
+<span class='line'>425</span>  *
+<span class='line'>426</span>  * @return {bool} If this player implements its own controller.
+<span class='line'>427</span>  */</span><span class="WHIT">
+<span class='line'>428</span> </span><span class="NAME">minplayer.players.base.prototype.hasController</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>429</span> </span><span class="WHIT">  </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">false</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>430</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>431</span> 
+<span class='line'>432</span> </span><span class="COMM">/**
+<span class='line'>433</span>  * Returns if the media player is already within the DOM.
+<span class='line'>434</span>  *
+<span class='line'>435</span>  * @return {boolean} TRUE - if the player is in the DOM, FALSE otherwise.
+<span class='line'>436</span>  */</span><span class="WHIT">
+<span class='line'>437</span> </span><span class="NAME">minplayer.players.base.prototype.playerFound</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>438</span> </span><span class="WHIT">  </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">false</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>439</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>440</span> 
+<span class='line'>441</span> </span><span class="COMM">/**
+<span class='line'>442</span>  * Creates the media player and inserts it in the DOM.
+<span class='line'>443</span>  *
+<span class='line'>444</span>  * @return {object} The media player entity.
+<span class='line'>445</span>  */</span><span class="WHIT">
+<span class='line'>446</span> </span><span class="NAME">minplayer.players.base.prototype.create</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>447</span> </span><span class="WHIT">  </span><span class="NAME">this.reset</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>448</span> </span><span class="WHIT">  </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">null</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>449</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>450</span> 
+<span class='line'>451</span> </span><span class="COMM">/**
+<span class='line'>452</span>  * Returns the media player object.
+<span class='line'>453</span>  *
+<span class='line'>454</span>  * @return {object} The media player object.
+<span class='line'>455</span>  */</span><span class="WHIT">
+<span class='line'>456</span> </span><span class="NAME">minplayer.players.base.prototype.getPlayer</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>457</span> </span><span class="WHIT">  </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">this.player</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>458</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>459</span> 
+<span class='line'>460</span> </span><span class="COMM">/**
+<span class='line'>461</span>  * Loads a new media player.
+<span class='line'>462</span>  *
+<span class='line'>463</span>  * @param {object} file A {@link minplayer.file} object.
+<span class='line'>464</span>  * @return {boolean} If this action was performed.
+<span class='line'>465</span>  */</span><span class="WHIT">
+<span class='line'>466</span> </span><span class="NAME">minplayer.players.base.prototype.load</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">file</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>467</span> 
+<span class='line'>468</span> </span><span class="WHIT">  </span><span class="COMM">// Store the media file for future lookup.</span><span class="WHIT">
+<span class='line'>469</span> </span><span class="WHIT">  </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">isString</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">this.mediaFile</span><span class="WHIT"> </span><span class="PUNC">==</span><span class="WHIT"> </span><span class="STRN">'string'</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>470</span> </span><span class="WHIT">  </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">path</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">isString</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="NAME">this.mediaFile</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">this.mediaFile.path</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>471</span> </span><span class="WHIT">  </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">file</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">this.isReady</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">file.path</span><span class="WHIT"> </span><span class="PUNC">!=</span><span class="WHIT"> </span><span class="NAME">path</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>472</span> </span><span class="WHIT">    </span><span class="NAME">this.reset</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>473</span> </span><span class="WHIT">    </span><span class="NAME">this.mediaFile</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">file</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>474</span> </span><span class="WHIT">    </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">true</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>475</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>476</span> 
+<span class='line'>477</span> </span><span class="WHIT">  </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">false</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>478</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>479</span> 
+<span class='line'>480</span> </span><span class="COMM">/**
+<span class='line'>481</span>  * Play the loaded media file.
+<span class='line'>482</span>  * @return {boolean} If this action was performed.
+<span class='line'>483</span>  */</span><span class="WHIT">
+<span class='line'>484</span> </span><span class="NAME">minplayer.players.base.prototype.play</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>485</span> </span><span class="WHIT">  </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">this.isReady</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>486</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>487</span> 
+<span class='line'>488</span> </span><span class="COMM">/**
+<span class='line'>489</span>  * Pause the loaded media file.
+<span class='line'>490</span>  * @return {boolean} If this action was performed.
+<span class='line'>491</span>  */</span><span class="WHIT">
+<span class='line'>492</span> </span><span class="NAME">minplayer.players.base.prototype.pause</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>493</span> </span><span class="WHIT">  </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">this.isReady</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>494</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>495</span> 
+<span class='line'>496</span> </span><span class="COMM">/**
+<span class='line'>497</span>  * Stop the loaded media file.
+<span class='line'>498</span>  * @return {boolean} If this action was performed.
+<span class='line'>499</span>  */</span><span class="WHIT">
+<span class='line'>500</span> </span><span class="NAME">minplayer.players.base.prototype.stop</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>501</span> </span><span class="WHIT">  </span><span class="NAME">this.playing</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">false</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>502</span> </span><span class="WHIT">  </span><span class="NAME">this.loading</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">false</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>503</span> </span><span class="WHIT">  </span><span class="NAME">this.hasFocus</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">false</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>504</span> </span><span class="WHIT">  </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">this.isReady</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>505</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>506</span> 
+<span class='line'>507</span> </span><span class="COMM">/**
+<span class='line'>508</span>  * Seeks to relative position.
+<span class='line'>509</span>  *
+<span class='line'>510</span>  * @param {number} pos Relative position.  -1 to 1 (percent), > 1 (seconds).
+<span class='line'>511</span>  */</span><span class="WHIT">
+<span class='line'>512</span> </span><span class="NAME">minplayer.players.base.prototype.seekRelative</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">pos</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>513</span> 
+<span class='line'>514</span> </span><span class="WHIT">  </span><span class="COMM">// Get the current time asyncrhonously.</span><span class="WHIT">
+<span class='line'>515</span> </span><span class="WHIT">  </span><span class="NAME">this.getCurrentTime</span><span class="PUNC">(</span><span class="PUNC">(</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">player</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>516</span> </span><span class="WHIT">    </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">currentTime</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>517</span> 
+<span class='line'>518</span> </span><span class="WHIT">      </span><span class="COMM">// Get the duration asynchronously.</span><span class="WHIT">
+<span class='line'>519</span> </span><span class="WHIT">      </span><span class="NAME">player.getDuration</span><span class="PUNC">(</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">duration</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>520</span> 
+<span class='line'>521</span> </span><span class="WHIT">        </span><span class="COMM">// Only do this if we have a duration.</span><span class="WHIT">
+<span class='line'>522</span> </span><span class="WHIT">        </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">duration</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>523</span> 
+<span class='line'>524</span> </span><span class="WHIT">          </span><span class="COMM">// Get the position.</span><span class="WHIT">
+<span class='line'>525</span> </span><span class="WHIT">          </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">seekPos</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>526</span> </span><span class="WHIT">          </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">(</span><span class="NAME">pos</span><span class="WHIT"> </span><span class="PUNC">></span><span class="WHIT"> </span><span class="PUNC">-</span><span class="NUMB">1</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">pos</span><span class="WHIT"> </span><span class="PUNC">&lt;</span><span class="WHIT"> </span><span class="NUMB">1</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>527</span> </span><span class="WHIT">            </span><span class="NAME">seekPos</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">(</span><span class="NAME">currentTime</span><span class="WHIT"> </span><span class="PUNC">/</span><span class="WHIT"> </span><span class="NAME">duration</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">parseFloat</span><span class="PUNC">(</span><span class="NAME">pos</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">*</span><span class="WHIT"> </span><span class="NAME">duration</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>528</span> </span><span class="WHIT">          </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>529</span> </span><span class="WHIT">          </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>530</span> </span><span class="WHIT">            </span><span class="NAME">seekPos</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">currentTime</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">parseFloat</span><span class="PUNC">(</span><span class="NAME">pos</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>531</span> </span><span class="WHIT">          </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>532</span> 
+<span class='line'>533</span> </span><span class="WHIT">          </span><span class="COMM">// Set the seek value.</span><span class="WHIT">
+<span class='line'>534</span> </span><span class="WHIT">          </span><span class="NAME">player.seek</span><span class="PUNC">(</span><span class="NAME">seekPos</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>535</span> </span><span class="WHIT">        </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>536</span> </span><span class="WHIT">      </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>537</span> </span><span class="WHIT">    </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>538</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>539</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>540</span> 
+<span class='line'>541</span> </span><span class="COMM">/**
+<span class='line'>542</span>  * Seek the loaded media.
+<span class='line'>543</span>  *
+<span class='line'>544</span>  * @param {number} pos The position to seek the minplayer. 0 to 1.
+<span class='line'>545</span>  * @return {boolean} If this action was performed.
+<span class='line'>546</span>  */</span><span class="WHIT">
+<span class='line'>547</span> </span><span class="NAME">minplayer.players.base.prototype.seek</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">pos</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>548</span> </span><span class="WHIT">  </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">this.isReady</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>549</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>550</span> 
+<span class='line'>551</span> </span><span class="COMM">/**
+<span class='line'>552</span>  * Gets a value from the player.
+<span class='line'>553</span>  *
+<span class='line'>554</span>  * @param {string} getter The getter method on the player.
+<span class='line'>555</span>  * @param {function} callback The callback function.
+<span class='line'>556</span>  */</span><span class="WHIT">
+<span class='line'>557</span> </span><span class="NAME">minplayer.players.base.prototype.getValue</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">getter</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">callback</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>558</span> </span><span class="WHIT">  </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">this.isReady</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>559</span> </span><span class="WHIT">    </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">value</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.player</span><span class="PUNC">[</span><span class="NAME">getter</span><span class="PUNC">]</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>560</span> </span><span class="WHIT">    </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">(</span><span class="NAME">value</span><span class="WHIT"> </span><span class="PUNC">!==</span><span class="WHIT"> </span><span class="NAME">undefined</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">value</span><span class="WHIT"> </span><span class="PUNC">!==</span><span class="WHIT"> </span><span class="KEYW">null</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>561</span> </span><span class="WHIT">      </span><span class="NAME">callback</span><span class="PUNC">(</span><span class="NAME">value</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>562</span> </span><span class="WHIT">    </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>563</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>564</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>565</span> 
+<span class='line'>566</span> </span><span class="COMM">/**
+<span class='line'>567</span>  * Set the volume of the loaded minplayer.
+<span class='line'>568</span>  *
+<span class='line'>569</span>  * @param {number} vol -1 to 1 - The relative amount to increase or decrease.
+<span class='line'>570</span>  */</span><span class="WHIT">
+<span class='line'>571</span> </span><span class="NAME">minplayer.players.base.prototype.setVolumeRelative</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">vol</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>572</span> 
+<span class='line'>573</span> </span><span class="WHIT">  </span><span class="COMM">// Get the volume</span><span class="WHIT">
+<span class='line'>574</span> </span><span class="WHIT">  </span><span class="NAME">this.getVolume</span><span class="PUNC">(</span><span class="PUNC">(</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">player</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>575</span> </span><span class="WHIT">    </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">newVol</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>576</span> </span><span class="WHIT">      </span><span class="NAME">newVol</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">parseFloat</span><span class="PUNC">(</span><span class="NAME">vol</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>577</span> </span><span class="WHIT">      </span><span class="NAME">newVol</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">newVol</span><span class="WHIT"> </span><span class="PUNC">&lt;</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">newVol</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>578</span> </span><span class="WHIT">      </span><span class="NAME">newVol</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">newVol</span><span class="WHIT"> </span><span class="PUNC">></span><span class="WHIT"> </span><span class="NUMB">1</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="NUMB">1</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">newVol</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>579</span> </span><span class="WHIT">      </span><span class="NAME">player.setVolume</span><span class="PUNC">(</span><span class="NAME">newVol</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>580</span> </span><span class="WHIT">    </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>581</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>582</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>583</span> 
+<span class='line'>584</span> </span><span class="COMM">/**
+<span class='line'>585</span>  * Set the volume of the loaded minplayer.
+<span class='line'>586</span>  *
+<span class='line'>587</span>  * @param {number} vol The volume to set the media. 0 to 1.
+<span class='line'>588</span>  * @return {boolean} If this action was performed.
+<span class='line'>589</span>  */</span><span class="WHIT">
+<span class='line'>590</span> </span><span class="NAME">minplayer.players.base.prototype.setVolume</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">vol</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>591</span> </span><span class="WHIT">  </span><span class="NAME">this.trigger</span><span class="PUNC">(</span><span class="STRN">'volumeupdate'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">vol</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>592</span> </span><span class="WHIT">  </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">this.isReady</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>593</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>594</span> 
+<span class='line'>595</span> </span><span class="COMM">/**
+<span class='line'>596</span>  * Get the volume from the loaded media.
+<span class='line'>597</span>  *
+<span class='line'>598</span>  * @param {function} callback Called when the volume is determined.
+<span class='line'>599</span>  * @return {number} The volume of the media; 0 to 1.
+<span class='line'>600</span>  */</span><span class="WHIT">
+<span class='line'>601</span> </span><span class="NAME">minplayer.players.base.prototype.getVolume</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">callback</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>602</span> </span><span class="WHIT">  </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">this.volume.get</span><span class="PUNC">(</span><span class="NAME">callback</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>603</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>604</span> 
+<span class='line'>605</span> </span><span class="COMM">/**
+<span class='line'>606</span>  * Get the current time for the media being played.
+<span class='line'>607</span>  *
+<span class='line'>608</span>  * @param {function} callback Called when the time is determined.
+<span class='line'>609</span>  * @return {number} The volume of the media; 0 to 1.
+<span class='line'>610</span>  */</span><span class="WHIT">
+<span class='line'>611</span> </span><span class="NAME">minplayer.players.base.prototype.getCurrentTime</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">callback</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>612</span> </span><span class="WHIT">  </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">this.currentTime.get</span><span class="PUNC">(</span><span class="NAME">callback</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>613</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>614</span> 
+<span class='line'>615</span> </span><span class="COMM">/**
+<span class='line'>616</span>  * Return the duration of the loaded media.
+<span class='line'>617</span>  *
+<span class='line'>618</span>  * @param {function} callback Called when the duration is determined.
+<span class='line'>619</span>  * @return {number} The duration of the loaded media.
+<span class='line'>620</span>  */</span><span class="WHIT">
+<span class='line'>621</span> </span><span class="NAME">minplayer.players.base.prototype.getDuration</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">callback</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>622</span> </span><span class="WHIT">  </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">this.duration.get</span><span class="PUNC">(</span><span class="NAME">callback</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>623</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>624</span> 
+<span class='line'>625</span> </span><span class="COMM">/**
+<span class='line'>626</span>  * Return the start bytes for the loaded media.
+<span class='line'>627</span>  *
+<span class='line'>628</span>  * @param {function} callback Called when the start bytes is determined.
+<span class='line'>629</span>  * @return {int} The bytes that were started.
+<span class='line'>630</span>  */</span><span class="WHIT">
+<span class='line'>631</span> </span><span class="NAME">minplayer.players.base.prototype.getBytesStart</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">callback</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>632</span> </span><span class="WHIT">  </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">this.bytesStart.get</span><span class="PUNC">(</span><span class="NAME">callback</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>633</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>634</span> 
+<span class='line'>635</span> </span><span class="COMM">/**
+<span class='line'>636</span>  * Return the bytes of media loaded.
+<span class='line'>637</span>  *
+<span class='line'>638</span>  * @param {function} callback Called when the bytes loaded is determined.
+<span class='line'>639</span>  * @return {int} The amount of bytes loaded.
+<span class='line'>640</span>  */</span><span class="WHIT">
+<span class='line'>641</span> </span><span class="NAME">minplayer.players.base.prototype.getBytesLoaded</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">callback</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>642</span> </span><span class="WHIT">  </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">this.bytesLoaded.get</span><span class="PUNC">(</span><span class="NAME">callback</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>643</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>644</span> 
+<span class='line'>645</span> </span><span class="COMM">/**
+<span class='line'>646</span>  * Return the total amount of bytes.
+<span class='line'>647</span>  *
+<span class='line'>648</span>  * @param {function} callback Called when the bytes total is determined.
+<span class='line'>649</span>  * @return {int} The total amount of bytes for this media.
+<span class='line'>650</span>  */</span><span class="WHIT">
+<span class='line'>651</span> </span><span class="NAME">minplayer.players.base.prototype.getBytesTotal</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">callback</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>652</span> </span><span class="WHIT">  </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">this.bytesTotal.get</span><span class="PUNC">(</span><span class="NAME">callback</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>653</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>654</span> </span></pre></body></html>
\ No newline at end of file
diff --git a/public/admin/js/osmplayer/doc/symbols/src/minplayer_src_minplayer.players.flash.js.html b/public/admin/js/osmplayer/doc/symbols/src/minplayer_src_minplayer.players.flash.js.html
new file mode 100644
index 00000000000..20f9af1cbc3
--- /dev/null
+++ b/public/admin/js/osmplayer/doc/symbols/src/minplayer_src_minplayer.players.flash.js.html
@@ -0,0 +1,132 @@
+<html><head><meta http-equiv="content-type" content="text/html; charset=utf-8"> <style>
+	.KEYW {color: #933;}
+	.COMM {color: #bbb; font-style: italic;}
+	.NUMB {color: #393;}
+	.STRN {color: #393;}
+	.REGX {color: #339;}
+	.line {border-right: 1px dotted #666; color: #666; font-style: normal;}
+	</style></head><body><pre><span class='line'>  1</span> <span class="COMM">/** The minplayer namespace. */</span><span class="WHIT">
+<span class='line'>  2</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">minplayer</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">minplayer</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>  3</span> 
+<span class='line'>  4</span> </span><span class="COMM">/** All the media player implementations */</span><span class="WHIT">
+<span class='line'>  5</span> </span><span class="NAME">minplayer.players</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">minplayer.players</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>  6</span> 
+<span class='line'>  7</span> </span><span class="COMM">/**
+<span class='line'>  8</span>  * @constructor
+<span class='line'>  9</span>  * @extends minplayer.display
+<span class='line'> 10</span>  * @class The Flash media player class to control the flash fallback.
+<span class='line'> 11</span>  *
+<span class='line'> 12</span>  * @param {object} context The jQuery context.
+<span class='line'> 13</span>  * @param {object} options This components options.
+<span class='line'> 14</span>  * @param {object} queue The event queue to pass events around.
+<span class='line'> 15</span>  */</span><span class="WHIT">
+<span class='line'> 16</span> </span><span class="NAME">minplayer.players.flash</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">context</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">options</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">queue</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 17</span> 
+<span class='line'> 18</span> </span><span class="WHIT">  </span><span class="COMM">// Derive from players base.</span><span class="WHIT">
+<span class='line'> 19</span> </span><span class="WHIT">  </span><span class="NAME">minplayer.players.base.call</span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">context</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">options</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">queue</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 20</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 21</span> 
+<span class='line'> 22</span> </span><span class="COMM">/** Derive from minplayer.players.base. */</span><span class="WHIT">
+<span class='line'> 23</span> </span><span class="NAME">minplayer.players.flash.prototype</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">new</span><span class="WHIT"> </span><span class="NAME">minplayer.players.base</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 24</span> 
+<span class='line'> 25</span> </span><span class="COMM">/** Reset the constructor. */</span><span class="WHIT">
+<span class='line'> 26</span> </span><span class="NAME">minplayer.players.flash.prototype.constructor</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">minplayer.players.flash</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 27</span> 
+<span class='line'> 28</span> </span><span class="COMM">/**
+<span class='line'> 29</span>  * @see minplayer.plugin.construct
+<span class='line'> 30</span>  * @this minplayer.players.flash
+<span class='line'> 31</span>  */</span><span class="WHIT">
+<span class='line'> 32</span> </span><span class="NAME">minplayer.players.flash.prototype.construct</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 33</span> 
+<span class='line'> 34</span> </span><span class="WHIT">  </span><span class="COMM">// Call the players.base constructor.</span><span class="WHIT">
+<span class='line'> 35</span> </span><span class="WHIT">  </span><span class="NAME">minplayer.players.base.prototype.construct.call</span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 36</span> 
+<span class='line'> 37</span> </span><span class="WHIT">  </span><span class="COMM">// Set the plugin name within the options.</span><span class="WHIT">
+<span class='line'> 38</span> </span><span class="WHIT">  </span><span class="NAME">this.options.pluginName</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">'flash'</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 39</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 40</span> 
+<span class='line'> 41</span> </span><span class="COMM">/**
+<span class='line'> 42</span>  * @see minplayer.players.base#getPriority
+<span class='line'> 43</span>  * @return {number} The priority of this media player.
+<span class='line'> 44</span>  */</span><span class="WHIT">
+<span class='line'> 45</span> </span><span class="NAME">minplayer.players.flash.getPriority</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 46</span> </span><span class="WHIT">  </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 47</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 48</span> 
+<span class='line'> 49</span> </span><span class="COMM">/**
+<span class='line'> 50</span>  * @see minplayer.players.base#canPlay
+<span class='line'> 51</span>  * @return {boolean} If this player can play this media type.
+<span class='line'> 52</span>  */</span><span class="WHIT">
+<span class='line'> 53</span> </span><span class="NAME">minplayer.players.flash.canPlay</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">file</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 54</span> </span><span class="WHIT">  </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">false</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 55</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 56</span> 
+<span class='line'> 57</span> </span><span class="COMM">/**
+<span class='line'> 58</span>  * API to return the Flash player code provided params.
+<span class='line'> 59</span>  *
+<span class='line'> 60</span>  * @param {object} params The params used to populate the Flash code.
+<span class='line'> 61</span>  * @return {object} A Flash DOM element.
+<span class='line'> 62</span>  */</span><span class="WHIT">
+<span class='line'> 63</span> </span><span class="NAME">minplayer.players.flash.prototype.getFlash</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">params</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 64</span> </span><span class="WHIT">  </span><span class="COMM">// Get the protocol.</span><span class="WHIT">
+<span class='line'> 65</span> </span><span class="WHIT">  </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">protocol</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">window.location.protocol</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 66</span> </span><span class="WHIT">  </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">protocol.charAt</span><span class="PUNC">(</span><span class="NAME">protocol.length</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="WHIT"> </span><span class="NUMB">1</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">==</span><span class="WHIT"> </span><span class="STRN">':'</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 67</span> </span><span class="WHIT">    </span><span class="NAME">protocol</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">protocol.substring</span><span class="PUNC">(</span><span class="NUMB">0</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">protocol.length</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="WHIT"> </span><span class="NUMB">1</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 68</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'> 69</span> 
+<span class='line'> 70</span> </span><span class="WHIT">  </span><span class="COMM">// Insert the swfobject javascript.</span><span class="WHIT">
+<span class='line'> 71</span> </span><span class="WHIT">  </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">tag</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">document.createElement</span><span class="PUNC">(</span><span class="STRN">'script'</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 72</span> </span><span class="WHIT">  </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">src</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">protocol</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 73</span> </span><span class="WHIT">  </span><span class="NAME">src</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">'://ajax.googleapis.com/ajax/libs/swfobject/2.2/swfobject.js'</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 74</span> </span><span class="WHIT">  </span><span class="NAME">tag.src</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">src</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 75</span> </span><span class="WHIT">  </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">firstScriptTag</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">document.getElementsByTagName</span><span class="PUNC">(</span><span class="STRN">'script'</span><span class="PUNC">)</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 76</span> </span><span class="WHIT">  </span><span class="NAME">firstScriptTag.parentNode.insertBefore</span><span class="PUNC">(</span><span class="NAME">tag</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">firstScriptTag</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 77</span> 
+<span class='line'> 78</span> </span><span class="WHIT">  </span><span class="COMM">// Create the swfobject.</span><span class="WHIT">
+<span class='line'> 79</span> </span><span class="WHIT">  </span><span class="NAME">setTimeout</span><span class="PUNC">(</span><span class="PUNC">(</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">player</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 80</span> </span><span class="WHIT">    </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="NAME">tryAgain</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 81</span> </span><span class="WHIT">      </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">swfobject</span><span class="WHIT"> </span><span class="PUNC">!==</span><span class="WHIT"> </span><span class="STRN">'undefined'</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 82</span> </span><span class="WHIT">        </span><span class="NAME">swfobject.embedSWF</span><span class="PUNC">(</span><span class="WHIT">
+<span class='line'> 83</span> </span><span class="WHIT">          </span><span class="NAME">params.swf</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'> 84</span> </span><span class="WHIT">          </span><span class="NAME">params.id</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'> 85</span> </span><span class="WHIT">          </span><span class="NAME">params.width</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'> 86</span> </span><span class="WHIT">          </span><span class="NAME">params.height</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'> 87</span> </span><span class="WHIT">          </span><span class="STRN">'9.0.0'</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'> 88</span> </span><span class="WHIT">          </span><span class="KEYW">false</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'> 89</span> </span><span class="WHIT">          </span><span class="NAME">params.flashvars</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'> 90</span> </span><span class="WHIT">          </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 91</span> </span><span class="WHIT">            </span><span class="NAME">allowscriptaccess</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="STRN">'always'</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'> 92</span> </span><span class="WHIT">            </span><span class="NAME">allowfullscreen</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="STRN">'true'</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'> 93</span> </span><span class="WHIT">            </span><span class="NAME">wmode</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">params.wmode</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'> 94</span> </span><span class="WHIT">            </span><span class="NAME">quality</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="STRN">'high'</span><span class="WHIT">
+<span class='line'> 95</span> </span><span class="WHIT">          </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'> 96</span> </span><span class="WHIT">          </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 97</span> </span><span class="WHIT">            </span><span class="NAME">id</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">params.id</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'> 98</span> </span><span class="WHIT">            </span><span class="NAME">name</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">params.id</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'> 99</span> </span><span class="WHIT">            </span><span class="NAME">playerType</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="STRN">'flash'</span><span class="WHIT">
+<span class='line'>100</span> </span><span class="WHIT">          </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'>101</span> </span><span class="WHIT">          </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">e</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>102</span> </span><span class="WHIT">            </span><span class="NAME">player.player</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">e.ref</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>103</span> </span><span class="WHIT">          </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>104</span> </span><span class="WHIT">        </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>105</span> </span><span class="WHIT">      </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>106</span> </span><span class="WHIT">      </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>107</span> 
+<span class='line'>108</span> </span><span class="WHIT">        </span><span class="COMM">// Try again after 200 ms.</span><span class="WHIT">
+<span class='line'>109</span> </span><span class="WHIT">        </span><span class="NAME">setTimeout</span><span class="PUNC">(</span><span class="NAME">tryAgain</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NUMB">200</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>110</span> </span><span class="WHIT">      </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>111</span> </span><span class="WHIT">    </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>112</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NUMB">200</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>113</span> 
+<span class='line'>114</span> </span><span class="WHIT">  </span><span class="COMM">// Return the div tag...</span><span class="WHIT">
+<span class='line'>115</span> </span><span class="WHIT">  </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="STRN">'&lt;div id="'</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">params.id</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">'">&lt;/div>'</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>116</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>117</span> 
+<span class='line'>118</span> </span><span class="COMM">/**
+<span class='line'>119</span>  * @see minplayer.players.base#playerFound
+<span class='line'>120</span>  * @return {boolean} TRUE - if the player is in the DOM, FALSE otherwise.
+<span class='line'>121</span>  */</span><span class="WHIT">
+<span class='line'>122</span> </span><span class="NAME">minplayer.players.flash.prototype.playerFound</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>123</span> </span><span class="WHIT">  </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">this.display.find</span><span class="PUNC">(</span><span class="STRN">'object[playerType="flash"]'</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">length</span><span class="WHIT"> </span><span class="PUNC">></span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>124</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>125</span> </span></pre></body></html>
\ No newline at end of file
diff --git a/public/admin/js/osmplayer/doc/symbols/src/minplayer_src_minplayer.players.html5.js.html b/public/admin/js/osmplayer/doc/symbols/src/minplayer_src_minplayer.players.html5.js.html
new file mode 100644
index 00000000000..f4e6ff166fd
--- /dev/null
+++ b/public/admin/js/osmplayer/doc/symbols/src/minplayer_src_minplayer.players.html5.js.html
@@ -0,0 +1,429 @@
+<html><head><meta http-equiv="content-type" content="text/html; charset=utf-8"> <style>
+	.KEYW {color: #933;}
+	.COMM {color: #bbb; font-style: italic;}
+	.NUMB {color: #393;}
+	.STRN {color: #393;}
+	.REGX {color: #339;}
+	.line {border-right: 1px dotted #666; color: #666; font-style: normal;}
+	</style></head><body><pre><span class='line'>  1</span> <span class="COMM">/** The minplayer namespace. */</span><span class="WHIT">
+<span class='line'>  2</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">minplayer</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">minplayer</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>  3</span> 
+<span class='line'>  4</span> </span><span class="COMM">/** All the media player implementations */</span><span class="WHIT">
+<span class='line'>  5</span> </span><span class="NAME">minplayer.players</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">minplayer.players</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>  6</span> 
+<span class='line'>  7</span> </span><span class="COMM">/**
+<span class='line'>  8</span>  * @constructor
+<span class='line'>  9</span>  * @extends minplayer.display
+<span class='line'> 10</span>  * @class The HTML5 media player implementation.
+<span class='line'> 11</span>  *
+<span class='line'> 12</span>  * @param {object} context The jQuery context.
+<span class='line'> 13</span>  * @param {object} options This components options.
+<span class='line'> 14</span>  * @param {object} queue The event queue to pass events around.
+<span class='line'> 15</span>  */</span><span class="WHIT">
+<span class='line'> 16</span> </span><span class="NAME">minplayer.players.html5</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">context</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">options</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">queue</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 17</span> 
+<span class='line'> 18</span> </span><span class="WHIT">  </span><span class="COMM">// Derive players base.</span><span class="WHIT">
+<span class='line'> 19</span> </span><span class="WHIT">  </span><span class="NAME">minplayer.players.base.call</span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">context</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">options</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">queue</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 20</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 21</span> 
+<span class='line'> 22</span> </span><span class="COMM">/** Derive from minplayer.players.base. */</span><span class="WHIT">
+<span class='line'> 23</span> </span><span class="NAME">minplayer.players.html5.prototype</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">new</span><span class="WHIT"> </span><span class="NAME">minplayer.players.base</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 24</span> 
+<span class='line'> 25</span> </span><span class="COMM">/** Reset the constructor. */</span><span class="WHIT">
+<span class='line'> 26</span> </span><span class="NAME">minplayer.players.html5.prototype.constructor</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">minplayer.players.html5</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 27</span> 
+<span class='line'> 28</span> </span><span class="COMM">/**
+<span class='line'> 29</span>  * @see minplayer.players.base#getPriority
+<span class='line'> 30</span>  * @return {number} The priority of this media player.
+<span class='line'> 31</span>  */</span><span class="WHIT">
+<span class='line'> 32</span> </span><span class="NAME">minplayer.players.html5.getPriority</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 33</span> </span><span class="WHIT">  </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NUMB">10</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 34</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 35</span> 
+<span class='line'> 36</span> </span><span class="COMM">/**
+<span class='line'> 37</span>  * @see minplayer.players.base#canPlay
+<span class='line'> 38</span>  * @return {boolean} If this player can play this media type.
+<span class='line'> 39</span>  */</span><span class="WHIT">
+<span class='line'> 40</span> </span><span class="NAME">minplayer.players.html5.canPlay</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">file</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 41</span> </span><span class="WHIT">  </span><span class="KEYW">switch</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">file.mimetype</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 42</span> </span><span class="WHIT">    </span><span class="KEYW">case</span><span class="WHIT"> </span><span class="STRN">'video/ogg'</span><span class="PUNC">:</span><span class="WHIT">
+<span class='line'> 43</span> </span><span class="WHIT">      </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="PUNC">!</span><span class="PUNC">!</span><span class="NAME">minplayer.playTypes.videoOGG</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 44</span> </span><span class="WHIT">    </span><span class="KEYW">case</span><span class="WHIT"> </span><span class="STRN">'video/mp4'</span><span class="PUNC">:</span><span class="WHIT">
+<span class='line'> 45</span> </span><span class="WHIT">    </span><span class="KEYW">case</span><span class="WHIT"> </span><span class="STRN">'video/x-mp4'</span><span class="PUNC">:</span><span class="WHIT">
+<span class='line'> 46</span> </span><span class="WHIT">    </span><span class="KEYW">case</span><span class="WHIT"> </span><span class="STRN">'video/m4v'</span><span class="PUNC">:</span><span class="WHIT">
+<span class='line'> 47</span> </span><span class="WHIT">    </span><span class="KEYW">case</span><span class="WHIT"> </span><span class="STRN">'video/x-m4v'</span><span class="PUNC">:</span><span class="WHIT">
+<span class='line'> 48</span> </span><span class="WHIT">      </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="PUNC">!</span><span class="PUNC">!</span><span class="NAME">minplayer.playTypes.videoH264</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 49</span> </span><span class="WHIT">    </span><span class="KEYW">case</span><span class="WHIT"> </span><span class="STRN">'video/x-webm'</span><span class="PUNC">:</span><span class="WHIT">
+<span class='line'> 50</span> </span><span class="WHIT">    </span><span class="KEYW">case</span><span class="WHIT"> </span><span class="STRN">'video/webm'</span><span class="PUNC">:</span><span class="WHIT">
+<span class='line'> 51</span> </span><span class="WHIT">    </span><span class="KEYW">case</span><span class="WHIT"> </span><span class="STRN">'application/octet-stream'</span><span class="PUNC">:</span><span class="WHIT">
+<span class='line'> 52</span> </span><span class="WHIT">      </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="PUNC">!</span><span class="PUNC">!</span><span class="NAME">minplayer.playTypes.videoWEBM</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 53</span> </span><span class="WHIT">    </span><span class="KEYW">case</span><span class="WHIT"> </span><span class="STRN">'audio/ogg'</span><span class="PUNC">:</span><span class="WHIT">
+<span class='line'> 54</span> </span><span class="WHIT">      </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="PUNC">!</span><span class="PUNC">!</span><span class="NAME">minplayer.playTypes.audioOGG</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 55</span> </span><span class="WHIT">    </span><span class="KEYW">case</span><span class="WHIT"> </span><span class="STRN">'audio/mpeg'</span><span class="PUNC">:</span><span class="WHIT">
+<span class='line'> 56</span> </span><span class="WHIT">      </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="PUNC">!</span><span class="PUNC">!</span><span class="NAME">minplayer.playTypes.audioMP3</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 57</span> </span><span class="WHIT">    </span><span class="KEYW">case</span><span class="WHIT"> </span><span class="STRN">'audio/mp4'</span><span class="PUNC">:</span><span class="WHIT">
+<span class='line'> 58</span> </span><span class="WHIT">      </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="PUNC">!</span><span class="PUNC">!</span><span class="NAME">minplayer.playTypes.audioMP4</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 59</span> </span><span class="WHIT">    </span><span class="KEYW">default</span><span class="PUNC">:</span><span class="WHIT">
+<span class='line'> 60</span> </span><span class="WHIT">      </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">false</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 61</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'> 62</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 63</span> 
+<span class='line'> 64</span> </span><span class="COMM">/**
+<span class='line'> 65</span>  * @see minplayer.plugin.construct
+<span class='line'> 66</span>  */</span><span class="WHIT">
+<span class='line'> 67</span> </span><span class="NAME">minplayer.players.html5.prototype.construct</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 68</span> 
+<span class='line'> 69</span> </span><span class="WHIT">  </span><span class="COMM">// Call base constructor.</span><span class="WHIT">
+<span class='line'> 70</span> </span><span class="WHIT">  </span><span class="NAME">minplayer.players.base.prototype.construct.call</span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 71</span> 
+<span class='line'> 72</span> </span><span class="WHIT">  </span><span class="COMM">// Set the plugin name within the options.</span><span class="WHIT">
+<span class='line'> 73</span> </span><span class="WHIT">  </span><span class="NAME">this.options.pluginName</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">'html5'</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 74</span> 
+<span class='line'> 75</span> </span><span class="WHIT">  </span><span class="COMM">// Add the player events.</span><span class="WHIT">
+<span class='line'> 76</span> </span><span class="WHIT">  </span><span class="NAME">this.addPlayerEvents</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 77</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 78</span> 
+<span class='line'> 79</span> </span><span class="COMM">/**
+<span class='line'> 80</span>  * Adds a new player event.
+<span class='line'> 81</span>  *
+<span class='line'> 82</span>  * @param {string} type The type of event being fired.
+<span class='line'> 83</span>  * @param {function} callback Called when the event is fired.
+<span class='line'> 84</span>  */</span><span class="WHIT">
+<span class='line'> 85</span> </span><span class="NAME">minplayer.players.html5.prototype.addPlayerEvent</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">type</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">callback</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 86</span> </span><span class="WHIT">  </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">this.player</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 87</span> 
+<span class='line'> 88</span> </span><span class="WHIT">    </span><span class="COMM">// Add an event listener for this event type.</span><span class="WHIT">
+<span class='line'> 89</span> </span><span class="WHIT">    </span><span class="NAME">this.player.addEventListener</span><span class="PUNC">(</span><span class="NAME">type</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">player</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 90</span> 
+<span class='line'> 91</span> </span><span class="WHIT">      </span><span class="COMM">// Get the function name.</span><span class="WHIT">
+<span class='line'> 92</span> </span><span class="WHIT">      </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">func</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">type</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">'Event'</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 93</span> 
+<span class='line'> 94</span> </span><span class="WHIT">      </span><span class="COMM">// If the callback already exists, then remove it from the player.</span><span class="WHIT">
+<span class='line'> 95</span> </span><span class="WHIT">      </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">player</span><span class="PUNC">[</span><span class="NAME">func</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 96</span> </span><span class="WHIT">        </span><span class="NAME">player.player.removeEventListener</span><span class="PUNC">(</span><span class="NAME">type</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">player</span><span class="PUNC">[</span><span class="NAME">func</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="KEYW">false</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 97</span> </span><span class="WHIT">      </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'> 98</span> 
+<span class='line'> 99</span> </span><span class="WHIT">      </span><span class="COMM">// Create a new callback.</span><span class="WHIT">
+<span class='line'>100</span> </span><span class="WHIT">      </span><span class="NAME">player</span><span class="PUNC">[</span><span class="NAME">func</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">event</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>101</span> </span><span class="WHIT">        </span><span class="NAME">callback.call</span><span class="PUNC">(</span><span class="NAME">player</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">event</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>102</span> </span><span class="WHIT">      </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>103</span> 
+<span class='line'>104</span> </span><span class="WHIT">      </span><span class="COMM">// Return the callback.</span><span class="WHIT">
+<span class='line'>105</span> </span><span class="WHIT">      </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">player</span><span class="PUNC">[</span><span class="NAME">func</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>106</span> 
+<span class='line'>107</span> </span><span class="WHIT">    </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="KEYW">false</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>108</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>109</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>110</span> 
+<span class='line'>111</span> </span><span class="COMM">/**
+<span class='line'>112</span>  * Add events.
+<span class='line'>113</span>  * @return {boolean} If this action was performed.
+<span class='line'>114</span>  */</span><span class="WHIT">
+<span class='line'>115</span> </span><span class="NAME">minplayer.players.html5.prototype.addPlayerEvents</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>116</span> 
+<span class='line'>117</span> </span><span class="WHIT">  </span><span class="COMM">// Check if the player exists.</span><span class="WHIT">
+<span class='line'>118</span> </span><span class="WHIT">  </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">this.player</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>119</span> 
+<span class='line'>120</span> </span><span class="WHIT">    </span><span class="NAME">this.addPlayerEvent</span><span class="PUNC">(</span><span class="STRN">'abort'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>121</span> </span><span class="WHIT">      </span><span class="NAME">this.trigger</span><span class="PUNC">(</span><span class="STRN">'abort'</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>122</span> </span><span class="WHIT">    </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>123</span> </span><span class="WHIT">    </span><span class="NAME">this.addPlayerEvent</span><span class="PUNC">(</span><span class="STRN">'loadstart'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>124</span> </span><span class="WHIT">      </span><span class="NAME">this.onReady</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>125</span> </span><span class="WHIT">    </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>126</span> </span><span class="WHIT">    </span><span class="NAME">this.addPlayerEvent</span><span class="PUNC">(</span><span class="STRN">'loadeddata'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>127</span> </span><span class="WHIT">      </span><span class="NAME">this.onLoaded</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>128</span> </span><span class="WHIT">    </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>129</span> </span><span class="WHIT">    </span><span class="NAME">this.addPlayerEvent</span><span class="PUNC">(</span><span class="STRN">'loadedmetadata'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>130</span> </span><span class="WHIT">      </span><span class="NAME">this.onLoaded</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>131</span> </span><span class="WHIT">    </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>132</span> </span><span class="WHIT">    </span><span class="NAME">this.addPlayerEvent</span><span class="PUNC">(</span><span class="STRN">'canplaythrough'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>133</span> </span><span class="WHIT">      </span><span class="NAME">this.onLoaded</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>134</span> </span><span class="WHIT">    </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>135</span> </span><span class="WHIT">    </span><span class="NAME">this.addPlayerEvent</span><span class="PUNC">(</span><span class="STRN">'ended'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>136</span> </span><span class="WHIT">      </span><span class="NAME">this.onComplete</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>137</span> </span><span class="WHIT">    </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>138</span> </span><span class="WHIT">    </span><span class="NAME">this.addPlayerEvent</span><span class="PUNC">(</span><span class="STRN">'pause'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>139</span> </span><span class="WHIT">      </span><span class="NAME">this.onPaused</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>140</span> </span><span class="WHIT">    </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>141</span> </span><span class="WHIT">    </span><span class="NAME">this.addPlayerEvent</span><span class="PUNC">(</span><span class="STRN">'play'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>142</span> </span><span class="WHIT">      </span><span class="NAME">this.onPlaying</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>143</span> </span><span class="WHIT">    </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>144</span> </span><span class="WHIT">    </span><span class="NAME">this.addPlayerEvent</span><span class="PUNC">(</span><span class="STRN">'playing'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>145</span> </span><span class="WHIT">      </span><span class="NAME">this.onPlaying</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>146</span> </span><span class="WHIT">    </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>147</span> 
+<span class='line'>148</span> </span><span class="WHIT">    </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">errorSent</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">false</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>149</span> </span><span class="WHIT">    </span><span class="NAME">this.addPlayerEvent</span><span class="PUNC">(</span><span class="STRN">'error'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>150</span> </span><span class="WHIT">      </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">errorSent</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>151</span> </span><span class="WHIT">        </span><span class="NAME">errorSent</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">true</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>152</span> </span><span class="WHIT">        </span><span class="NAME">this.trigger</span><span class="PUNC">(</span><span class="STRN">'error'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'An error occured - '</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">this.player.error.code</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>153</span> </span><span class="WHIT">      </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>154</span> </span><span class="WHIT">    </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>155</span> 
+<span class='line'>156</span> </span><span class="WHIT">    </span><span class="NAME">this.addPlayerEvent</span><span class="PUNC">(</span><span class="STRN">'waiting'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>157</span> </span><span class="WHIT">      </span><span class="NAME">this.onWaiting</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>158</span> </span><span class="WHIT">    </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>159</span> </span><span class="WHIT">    </span><span class="NAME">this.addPlayerEvent</span><span class="PUNC">(</span><span class="STRN">'durationchange'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>160</span> </span><span class="WHIT">      </span><span class="NAME">this.duration.set</span><span class="PUNC">(</span><span class="NAME">this.player.duration</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>161</span> </span><span class="WHIT">      </span><span class="NAME">this.trigger</span><span class="PUNC">(</span><span class="STRN">'durationchange'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="NAME">duration</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">this.player.duration</span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>162</span> </span><span class="WHIT">    </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>163</span> </span><span class="WHIT">    </span><span class="NAME">this.addPlayerEvent</span><span class="PUNC">(</span><span class="STRN">'progress'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">event</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>164</span> </span><span class="WHIT">      </span><span class="NAME">this.bytesTotal.set</span><span class="PUNC">(</span><span class="NAME">event.total</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>165</span> </span><span class="WHIT">      </span><span class="NAME">this.bytesLoaded.set</span><span class="PUNC">(</span><span class="NAME">event.loaded</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>166</span> </span><span class="WHIT">    </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>167</span> </span><span class="WHIT">    </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">true</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>168</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>169</span> 
+<span class='line'>170</span> </span><span class="WHIT">  </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">false</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>171</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>172</span> 
+<span class='line'>173</span> </span><span class="COMM">/**
+<span class='line'>174</span>  * @see minplayer.players.base#onReady
+<span class='line'>175</span>  */</span><span class="WHIT">
+<span class='line'>176</span> </span><span class="NAME">minplayer.players.html5.prototype.onReady</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>177</span> </span><span class="WHIT">  </span><span class="NAME">minplayer.players.base.prototype.onReady.call</span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>178</span> 
+<span class='line'>179</span> </span><span class="WHIT">  </span><span class="COMM">// Android just say we are loaded here.</span><span class="WHIT">
+<span class='line'>180</span> </span><span class="WHIT">  </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">minplayer.isAndroid</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>181</span> </span><span class="WHIT">    </span><span class="NAME">this.onLoaded</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>182</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>183</span> 
+<span class='line'>184</span> </span><span class="WHIT">  </span><span class="COMM">// iOS devices are strange in that they don't autoload.</span><span class="WHIT">
+<span class='line'>185</span> </span><span class="WHIT">  </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">minplayer.isIDevice</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>186</span> </span><span class="WHIT">    </span><span class="NAME">this.play</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>187</span> </span><span class="WHIT">    </span><span class="NAME">setTimeout</span><span class="PUNC">(</span><span class="PUNC">(</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">player</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>188</span> </span><span class="WHIT">      </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>189</span> </span><span class="WHIT">        </span><span class="NAME">player.pause</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>190</span> </span><span class="WHIT">        </span><span class="NAME">player.onLoaded</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>191</span> </span><span class="WHIT">      </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>192</span> </span><span class="WHIT">    </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NUMB">1</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>193</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>194</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>195</span> 
+<span class='line'>196</span> </span><span class="COMM">/**
+<span class='line'>197</span>  * @see minplayer.players.base#playerFound
+<span class='line'>198</span>  * @return {boolean} TRUE - if the player is in the DOM, FALSE otherwise.
+<span class='line'>199</span>  */</span><span class="WHIT">
+<span class='line'>200</span> </span><span class="NAME">minplayer.players.html5.prototype.playerFound</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>201</span> </span><span class="WHIT">  </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">this.display.find</span><span class="PUNC">(</span><span class="NAME">this.mediaFile.type</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">length</span><span class="WHIT"> </span><span class="PUNC">></span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>202</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>203</span> 
+<span class='line'>204</span> </span><span class="COMM">/**
+<span class='line'>205</span>  * @see minplayer.players.base#create
+<span class='line'>206</span>  * @return {object} The media player entity.
+<span class='line'>207</span>  */</span><span class="WHIT">
+<span class='line'>208</span> </span><span class="NAME">minplayer.players.html5.prototype.create</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>209</span> </span><span class="WHIT">  </span><span class="NAME">minplayer.players.base.prototype.create.call</span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>210</span> </span><span class="WHIT">  </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">element</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">jQuery</span><span class="PUNC">(</span><span class="NAME">document.createElement</span><span class="PUNC">(</span><span class="NAME">this.mediaFile.type</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'>211</span> </span><span class="WHIT">  </span><span class="PUNC">.</span><span class="NAME">attr</span><span class="PUNC">(</span><span class="NAME">this.options.attributes</span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'>212</span> </span><span class="WHIT">  </span><span class="PUNC">.</span><span class="NAME">append</span><span class="PUNC">(</span><span class="WHIT">
+<span class='line'>213</span> </span><span class="WHIT">    </span><span class="NAME">jQuery</span><span class="PUNC">(</span><span class="NAME">document.createElement</span><span class="PUNC">(</span><span class="STRN">'source'</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">attr</span><span class="PUNC">(</span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>214</span> </span><span class="WHIT">      </span><span class="STRN">'src'</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">this.mediaFile.path</span><span class="WHIT">
+<span class='line'>215</span> </span><span class="WHIT">    </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'>216</span> </span><span class="WHIT">  </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>217</span> 
+<span class='line'>218</span> </span><span class="WHIT">  </span><span class="COMM">// Fix the fluid width and height.</span><span class="WHIT">
+<span class='line'>219</span> </span><span class="WHIT">  </span><span class="NAME">element.eq</span><span class="PUNC">(</span><span class="NUMB">0</span><span class="PUNC">)</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">setAttribute</span><span class="PUNC">(</span><span class="STRN">'width'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'100%'</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>220</span> </span><span class="WHIT">  </span><span class="NAME">element.eq</span><span class="PUNC">(</span><span class="NUMB">0</span><span class="PUNC">)</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">setAttribute</span><span class="PUNC">(</span><span class="STRN">'height'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'100%'</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>221</span> </span><span class="WHIT">  </span><span class="NAME">element.eq</span><span class="PUNC">(</span><span class="NUMB">0</span><span class="PUNC">)</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">setAttribute</span><span class="PUNC">(</span><span class="STRN">'autobuffer'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="KEYW">true</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>222</span> </span><span class="WHIT">  </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">option</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.options.autoload</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="STRN">'auto'</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="STRN">'metadata'</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>223</span> </span><span class="WHIT">  </span><span class="NAME">option</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">minplayer.isIDevice</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="STRN">'metadata'</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">option</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>224</span> </span><span class="WHIT">  </span><span class="NAME">element.eq</span><span class="PUNC">(</span><span class="NUMB">0</span><span class="PUNC">)</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">setAttribute</span><span class="PUNC">(</span><span class="STRN">'preload'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">option</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>225</span> </span><span class="WHIT">  </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">element</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>226</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>227</span> 
+<span class='line'>228</span> </span><span class="COMM">/**
+<span class='line'>229</span>  * @see minplayer.players.base#getPlayer
+<span class='line'>230</span>  * @return {object} The media player object.
+<span class='line'>231</span>  */</span><span class="WHIT">
+<span class='line'>232</span> </span><span class="NAME">minplayer.players.html5.prototype.getPlayer</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>233</span> </span><span class="WHIT">  </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">this.elements.media.eq</span><span class="PUNC">(</span><span class="NUMB">0</span><span class="PUNC">)</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>234</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>235</span> 
+<span class='line'>236</span> </span><span class="COMM">/**
+<span class='line'>237</span>  * @see minplayer.players.base#load
+<span class='line'>238</span>  * @return {boolean} If this action was performed.
+<span class='line'>239</span>  */</span><span class="WHIT">
+<span class='line'>240</span> </span><span class="NAME">minplayer.players.html5.prototype.load</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">file</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>241</span> 
+<span class='line'>242</span> </span><span class="WHIT">  </span><span class="COMM">// See if a load is even necessary.</span><span class="WHIT">
+<span class='line'>243</span> </span><span class="WHIT">  </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">minplayer.players.base.prototype.load.call</span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">file</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>244</span> 
+<span class='line'>245</span> </span><span class="WHIT">    </span><span class="COMM">// Get the current source.</span><span class="WHIT">
+<span class='line'>246</span> </span><span class="WHIT">    </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">src</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.elements.media.attr</span><span class="PUNC">(</span><span class="STRN">'src'</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>247</span> </span><span class="WHIT">    </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">src</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>248</span> </span><span class="WHIT">      </span><span class="NAME">src</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">jQuery</span><span class="PUNC">(</span><span class="STRN">'source'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">this.elements.media</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">eq</span><span class="PUNC">(</span><span class="NUMB">0</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">attr</span><span class="PUNC">(</span><span class="STRN">'src'</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>249</span> </span><span class="WHIT">    </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>250</span> 
+<span class='line'>251</span> </span><span class="WHIT">    </span><span class="COMM">// Only swap out if the new file is different from the source.</span><span class="WHIT">
+<span class='line'>252</span> </span><span class="WHIT">    </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">src</span><span class="WHIT"> </span><span class="PUNC">!=</span><span class="WHIT"> </span><span class="NAME">file.path</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>253</span> 
+<span class='line'>254</span> </span><span class="WHIT">      </span><span class="COMM">// Add a new player.</span><span class="WHIT">
+<span class='line'>255</span> </span><span class="WHIT">      </span><span class="NAME">this.addPlayer</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>256</span> 
+<span class='line'>257</span> </span><span class="WHIT">      </span><span class="COMM">// Set the new player.</span><span class="WHIT">
+<span class='line'>258</span> </span><span class="WHIT">      </span><span class="NAME">this.player</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.getPlayer</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>259</span> 
+<span class='line'>260</span> </span><span class="WHIT">      </span><span class="COMM">// Add the events again.</span><span class="WHIT">
+<span class='line'>261</span> </span><span class="WHIT">      </span><span class="NAME">this.addPlayerEvents</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>262</span> 
+<span class='line'>263</span> </span><span class="WHIT">      </span><span class="COMM">// Change the source...</span><span class="WHIT">
+<span class='line'>264</span> </span><span class="WHIT">      </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">code</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">'&lt;source src="'</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">file.path</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">'">&lt;/source>'</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>265</span> </span><span class="WHIT">      </span><span class="NAME">this.elements.media.removeAttr</span><span class="PUNC">(</span><span class="STRN">'src'</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">empty</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">html</span><span class="PUNC">(</span><span class="NAME">code</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>266</span> </span><span class="WHIT">      </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">true</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>267</span> </span><span class="WHIT">    </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>268</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>269</span> 
+<span class='line'>270</span> </span><span class="WHIT">  </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">false</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>271</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>272</span> 
+<span class='line'>273</span> </span><span class="COMM">/**
+<span class='line'>274</span>  * @see minplayer.players.base#play
+<span class='line'>275</span>  * @return {boolean} If this action was performed.
+<span class='line'>276</span>  */</span><span class="WHIT">
+<span class='line'>277</span> </span><span class="NAME">minplayer.players.html5.prototype.play</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>278</span> </span><span class="WHIT">  </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">minplayer.players.base.prototype.play.call</span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>279</span> </span><span class="WHIT">    </span><span class="NAME">this.player.play</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>280</span> </span><span class="WHIT">    </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">true</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>281</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>282</span> 
+<span class='line'>283</span> </span><span class="WHIT">  </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">false</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>284</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>285</span> 
+<span class='line'>286</span> </span><span class="COMM">/**
+<span class='line'>287</span>  * @see minplayer.players.base#pause
+<span class='line'>288</span>  * @return {boolean} If this action was performed.
+<span class='line'>289</span>  */</span><span class="WHIT">
+<span class='line'>290</span> </span><span class="NAME">minplayer.players.html5.prototype.pause</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>291</span> </span><span class="WHIT">  </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">minplayer.players.base.prototype.pause.call</span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>292</span> </span><span class="WHIT">    </span><span class="NAME">this.player.pause</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>293</span> </span><span class="WHIT">    </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">true</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>294</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>295</span> 
+<span class='line'>296</span> </span><span class="WHIT">  </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">false</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>297</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>298</span> 
+<span class='line'>299</span> </span><span class="COMM">/**
+<span class='line'>300</span>  * @see minplayer.players.base#stop
+<span class='line'>301</span>  * @return {boolean} If this action was performed.
+<span class='line'>302</span>  */</span><span class="WHIT">
+<span class='line'>303</span> </span><span class="NAME">minplayer.players.html5.prototype.stop</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>304</span> </span><span class="WHIT">  </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">minplayer.players.base.prototype.stop.call</span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>305</span> </span><span class="WHIT">    </span><span class="NAME">this.player.pause</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>306</span> </span><span class="WHIT">    </span><span class="NAME">this.player.src</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">''</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>307</span> </span><span class="WHIT">    </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">true</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>308</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>309</span> 
+<span class='line'>310</span> </span><span class="WHIT">  </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">false</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>311</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>312</span> 
+<span class='line'>313</span> </span><span class="COMM">/**
+<span class='line'>314</span>  * @see minplayer.players.base#seek
+<span class='line'>315</span>  * @return {boolean} If this action was performed.
+<span class='line'>316</span>  */</span><span class="WHIT">
+<span class='line'>317</span> </span><span class="NAME">minplayer.players.html5.prototype.seek</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">pos</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>318</span> </span><span class="WHIT">  </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">minplayer.players.base.prototype.seek.call</span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">pos</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>319</span> </span><span class="WHIT">    </span><span class="NAME">this.player.currentTime</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">pos</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>320</span> </span><span class="WHIT">    </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">true</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>321</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>322</span> 
+<span class='line'>323</span> </span><span class="WHIT">  </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">false</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>324</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>325</span> 
+<span class='line'>326</span> </span><span class="COMM">/**
+<span class='line'>327</span>  * @see minplayer.players.base#setVolume
+<span class='line'>328</span>  * @return {boolean} If this action was performed.
+<span class='line'>329</span>  */</span><span class="WHIT">
+<span class='line'>330</span> </span><span class="NAME">minplayer.players.html5.prototype.setVolume</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">vol</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>331</span> </span><span class="WHIT">  </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">minplayer.players.base.prototype.setVolume.call</span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">vol</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>332</span> </span><span class="WHIT">    </span><span class="NAME">this.player.volume</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">vol</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>333</span> </span><span class="WHIT">    </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">true</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>334</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>335</span> 
+<span class='line'>336</span> </span><span class="WHIT">  </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">false</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>337</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>338</span> 
+<span class='line'>339</span> </span><span class="COMM">/**
+<span class='line'>340</span>  * @see minplayer.players.base#getVolume
+<span class='line'>341</span>  */</span><span class="WHIT">
+<span class='line'>342</span> </span><span class="NAME">minplayer.players.html5.prototype.getVolume</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">callback</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>343</span> </span><span class="WHIT">  </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">this.isReady</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>344</span> </span><span class="WHIT">    </span><span class="NAME">callback</span><span class="PUNC">(</span><span class="NAME">this.player.volume</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>345</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>346</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>347</span> 
+<span class='line'>348</span> </span><span class="COMM">/**
+<span class='line'>349</span>  * @see minplayer.players.base#getDuration
+<span class='line'>350</span>  */</span><span class="WHIT">
+<span class='line'>351</span> </span><span class="NAME">minplayer.players.html5.prototype.getDuration</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">callback</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>352</span> </span><span class="WHIT">  </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">this.isReady</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>353</span> </span><span class="WHIT">    </span><span class="NAME">callback</span><span class="PUNC">(</span><span class="NAME">this.player.duration</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>354</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>355</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>356</span> 
+<span class='line'>357</span> </span><span class="COMM">/**
+<span class='line'>358</span>  * @see minplayer.players.base#getCurrentTime
+<span class='line'>359</span>  */</span><span class="WHIT">
+<span class='line'>360</span> </span><span class="NAME">minplayer.players.html5.prototype.getCurrentTime</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">callback</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>361</span> </span><span class="WHIT">  </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">this.isReady</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>362</span> </span><span class="WHIT">    </span><span class="NAME">callback</span><span class="PUNC">(</span><span class="NAME">this.player.currentTime</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>363</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>364</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>365</span> 
+<span class='line'>366</span> </span><span class="COMM">/**
+<span class='line'>367</span>  * @see minplayer.players.base#getBytesLoaded
+<span class='line'>368</span>  */</span><span class="WHIT">
+<span class='line'>369</span> </span><span class="NAME">minplayer.players.html5.prototype.getBytesLoaded</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">callback</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>370</span> </span><span class="WHIT">  </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">this.isReady</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>371</span> </span><span class="WHIT">    </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">loaded</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>372</span> 
+<span class='line'>373</span> </span><span class="WHIT">    </span><span class="COMM">// Check several different possibilities.</span><span class="WHIT">
+<span class='line'>374</span> </span><span class="WHIT">    </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">this.bytesLoaded.value</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>375</span> </span><span class="WHIT">      </span><span class="NAME">loaded</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.bytesLoaded.value</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>376</span> </span><span class="WHIT">    </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>377</span> </span><span class="WHIT">    </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">this.player.buffered</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT">
+<span class='line'>378</span> </span><span class="WHIT">        </span><span class="NAME">this.player.buffered.length</span><span class="WHIT"> </span><span class="PUNC">></span><span class="WHIT"> </span><span class="NUMB">0</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT">
+<span class='line'>379</span> </span><span class="WHIT">        </span><span class="NAME">this.player.buffered.end</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT">
+<span class='line'>380</span> </span><span class="WHIT">        </span><span class="NAME">this.player.duration</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>381</span> </span><span class="WHIT">      </span><span class="NAME">loaded</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.player.buffered.end</span><span class="PUNC">(</span><span class="NUMB">0</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>382</span> </span><span class="WHIT">    </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>383</span> </span><span class="WHIT">    </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">this.player.bytesTotal</span><span class="WHIT"> </span><span class="PUNC">!=</span><span class="WHIT"> </span><span class="NAME">undefined</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT">
+<span class='line'>384</span> </span><span class="WHIT">             </span><span class="NAME">this.player.bytesTotal</span><span class="WHIT"> </span><span class="PUNC">></span><span class="WHIT"> </span><span class="NUMB">0</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT">
+<span class='line'>385</span> </span><span class="WHIT">             </span><span class="NAME">this.player.bufferedBytes</span><span class="WHIT"> </span><span class="PUNC">!=</span><span class="WHIT"> </span><span class="NAME">undefined</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>386</span> </span><span class="WHIT">      </span><span class="NAME">loaded</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.player.bufferedBytes</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>387</span> </span><span class="WHIT">    </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>388</span> 
+<span class='line'>389</span> </span><span class="WHIT">    </span><span class="COMM">// Return the loaded amount.</span><span class="WHIT">
+<span class='line'>390</span> </span><span class="WHIT">    </span><span class="NAME">callback</span><span class="PUNC">(</span><span class="NAME">loaded</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>391</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>392</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>393</span> 
+<span class='line'>394</span> </span><span class="COMM">/**
+<span class='line'>395</span>  * @see minplayer.players.base#getBytesTotal
+<span class='line'>396</span>  */</span><span class="WHIT">
+<span class='line'>397</span> </span><span class="NAME">minplayer.players.html5.prototype.getBytesTotal</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">callback</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>398</span> </span><span class="WHIT">  </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">this.isReady</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>399</span> 
+<span class='line'>400</span> </span><span class="WHIT">    </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">total</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>401</span> 
+<span class='line'>402</span> </span><span class="WHIT">    </span><span class="COMM">// Check several different possibilities.</span><span class="WHIT">
+<span class='line'>403</span> </span><span class="WHIT">    </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">this.bytesTotal.value</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>404</span> </span><span class="WHIT">      </span><span class="NAME">total</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.bytesTotal.value</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>405</span> </span><span class="WHIT">    </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>406</span> </span><span class="WHIT">    </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">this.player.buffered</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT">
+<span class='line'>407</span> </span><span class="WHIT">        </span><span class="NAME">this.player.buffered.length</span><span class="WHIT"> </span><span class="PUNC">></span><span class="WHIT"> </span><span class="NUMB">0</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT">
+<span class='line'>408</span> </span><span class="WHIT">        </span><span class="NAME">this.player.buffered.end</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT">
+<span class='line'>409</span> </span><span class="WHIT">        </span><span class="NAME">this.player.duration</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>410</span> </span><span class="WHIT">      </span><span class="NAME">total</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.player.duration</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>411</span> </span><span class="WHIT">    </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>412</span> </span><span class="WHIT">    </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">this.player.bytesTotal</span><span class="WHIT"> </span><span class="PUNC">!=</span><span class="WHIT"> </span><span class="NAME">undefined</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT">
+<span class='line'>413</span> </span><span class="WHIT">             </span><span class="NAME">this.player.bytesTotal</span><span class="WHIT"> </span><span class="PUNC">></span><span class="WHIT"> </span><span class="NUMB">0</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT">
+<span class='line'>414</span> </span><span class="WHIT">             </span><span class="NAME">this.player.bufferedBytes</span><span class="WHIT"> </span><span class="PUNC">!=</span><span class="WHIT"> </span><span class="NAME">undefined</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>415</span> </span><span class="WHIT">      </span><span class="NAME">total</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.player.bytesTotal</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>416</span> </span><span class="WHIT">    </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>417</span> 
+<span class='line'>418</span> </span><span class="WHIT">    </span><span class="COMM">// Return the loaded amount.</span><span class="WHIT">
+<span class='line'>419</span> </span><span class="WHIT">    </span><span class="NAME">callback</span><span class="PUNC">(</span><span class="NAME">total</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>420</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>421</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>422</span> </span></pre></body></html>
\ No newline at end of file
diff --git a/public/admin/js/osmplayer/doc/symbols/src/minplayer_src_minplayer.players.minplayer.js.html b/public/admin/js/osmplayer/doc/symbols/src/minplayer_src_minplayer.players.minplayer.js.html
new file mode 100644
index 00000000000..16c83ed9eee
--- /dev/null
+++ b/public/admin/js/osmplayer/doc/symbols/src/minplayer_src_minplayer.players.minplayer.js.html
@@ -0,0 +1,313 @@
+<html><head><meta http-equiv="content-type" content="text/html; charset=utf-8"> <style>
+	.KEYW {color: #933;}
+	.COMM {color: #bbb; font-style: italic;}
+	.NUMB {color: #393;}
+	.STRN {color: #393;}
+	.REGX {color: #339;}
+	.line {border-right: 1px dotted #666; color: #666; font-style: normal;}
+	</style></head><body><pre><span class='line'>  1</span> <span class="COMM">/** The minplayer namespace. */</span><span class="WHIT">
+<span class='line'>  2</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">minplayer</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">minplayer</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>  3</span> 
+<span class='line'>  4</span> </span><span class="COMM">/** All the media player implementations */</span><span class="WHIT">
+<span class='line'>  5</span> </span><span class="NAME">minplayer.players</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">minplayer.players</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>  6</span> 
+<span class='line'>  7</span> </span><span class="COMM">/**
+<span class='line'>  8</span>  * @constructor
+<span class='line'>  9</span>  * @extends minplayer.display
+<span class='line'> 10</span>  * @class The Flash media player class to control the flash fallback.
+<span class='line'> 11</span>  *
+<span class='line'> 12</span>  * @param {object} context The jQuery context.
+<span class='line'> 13</span>  * @param {object} options This components options.
+<span class='line'> 14</span>  * @param {object} queue The event queue to pass events around.
+<span class='line'> 15</span>  */</span><span class="WHIT">
+<span class='line'> 16</span> </span><span class="NAME">minplayer.players.minplayer</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">context</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">options</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">queue</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 17</span> 
+<span class='line'> 18</span> </span><span class="WHIT">  </span><span class="COMM">// Derive from players flash.</span><span class="WHIT">
+<span class='line'> 19</span> </span><span class="WHIT">  </span><span class="NAME">minplayer.players.flash.call</span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">context</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">options</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">queue</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 20</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 21</span> 
+<span class='line'> 22</span> </span><span class="COMM">/** Derive from minplayer.players.flash. */</span><span class="WHIT">
+<span class='line'> 23</span> </span><span class="NAME">minplayer.players.minplayer.prototype</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">new</span><span class="WHIT"> </span><span class="NAME">minplayer.players.flash</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 24</span> 
+<span class='line'> 25</span> </span><span class="COMM">/** Reset the constructor. */</span><span class="WHIT">
+<span class='line'> 26</span> </span><span class="NAME">minplayer.players.minplayer.prototype.constructor</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">minplayer.players.minplayer</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 27</span> 
+<span class='line'> 28</span> </span><span class="COMM">/**
+<span class='line'> 29</span>  * @see minplayer.plugin.construct
+<span class='line'> 30</span>  * @this minplayer.players.minplayer
+<span class='line'> 31</span>  */</span><span class="WHIT">
+<span class='line'> 32</span> </span><span class="NAME">minplayer.players.minplayer.prototype.construct</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 33</span> 
+<span class='line'> 34</span> </span><span class="WHIT">  </span><span class="COMM">// Call the players.flash constructor.</span><span class="WHIT">
+<span class='line'> 35</span> </span><span class="WHIT">  </span><span class="NAME">minplayer.players.flash.prototype.construct.call</span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 36</span> 
+<span class='line'> 37</span> </span><span class="WHIT">  </span><span class="COMM">// Set the plugin name within the options.</span><span class="WHIT">
+<span class='line'> 38</span> </span><span class="WHIT">  </span><span class="NAME">this.options.pluginName</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">'minplayer'</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 39</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 40</span> 
+<span class='line'> 41</span> </span><span class="COMM">/**
+<span class='line'> 42</span>  * Called when the Flash player is ready.
+<span class='line'> 43</span>  *
+<span class='line'> 44</span>  * @param {string} id The media player ID.
+<span class='line'> 45</span>  */</span><span class="WHIT">
+<span class='line'> 46</span> </span><span class="NAME">window.onFlashPlayerReady</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">id</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 47</span> </span><span class="WHIT">  </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">media</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">minplayer.get</span><span class="PUNC">(</span><span class="NAME">id</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'media'</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 48</span> </span><span class="WHIT">  </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">media.length</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 49</span> </span><span class="WHIT">  </span><span class="KEYW">while</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">i</span><span class="PUNC">--</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 50</span> </span><span class="WHIT">    </span><span class="NAME">media</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">onReady</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 51</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'> 52</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 53</span> 
+<span class='line'> 54</span> </span><span class="COMM">/**
+<span class='line'> 55</span>  * Called when the Flash player updates.
+<span class='line'> 56</span>  *
+<span class='line'> 57</span>  * @param {string} id The media player ID.
+<span class='line'> 58</span>  * @param {string} eventType The event type that was triggered.
+<span class='line'> 59</span>  */</span><span class="WHIT">
+<span class='line'> 60</span> </span><span class="NAME">window.onFlashPlayerUpdate</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">id</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">eventType</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 61</span> </span><span class="WHIT">  </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">media</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">minplayer.get</span><span class="PUNC">(</span><span class="NAME">id</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'media'</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 62</span> </span><span class="WHIT">  </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">media.length</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 63</span> </span><span class="WHIT">  </span><span class="KEYW">while</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">i</span><span class="PUNC">--</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 64</span> </span><span class="WHIT">    </span><span class="NAME">media</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">onMediaUpdate</span><span class="PUNC">(</span><span class="NAME">eventType</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 65</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'> 66</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 67</span> 
+<span class='line'> 68</span> </span><span class="COMM">/**
+<span class='line'> 69</span>  * Used to debug from the Flash player to the browser console.
+<span class='line'> 70</span>  *
+<span class='line'> 71</span>  * @param {string} debug The debug string.
+<span class='line'> 72</span>  */</span><span class="WHIT">
+<span class='line'> 73</span> </span><span class="NAME">window.onFlashPlayerDebug</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">debug</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 74</span> </span><span class="WHIT">  </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">console</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">console.log</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 75</span> </span><span class="WHIT">    </span><span class="NAME">console.log</span><span class="PUNC">(</span><span class="NAME">debug</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 76</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'> 77</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 78</span> 
+<span class='line'> 79</span> </span><span class="COMM">/**
+<span class='line'> 80</span>  * @see minplayer.players.base#getPriority
+<span class='line'> 81</span>  * @return {number} The priority of this media player.
+<span class='line'> 82</span>  */</span><span class="WHIT">
+<span class='line'> 83</span> </span><span class="NAME">minplayer.players.minplayer.getPriority</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 84</span> </span><span class="WHIT">  </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NUMB">1</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 85</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 86</span> 
+<span class='line'> 87</span> </span><span class="COMM">/**
+<span class='line'> 88</span>  * @see minplayer.players.base#canPlay
+<span class='line'> 89</span>  * @return {boolean} If this player can play this media type.
+<span class='line'> 90</span>  */</span><span class="WHIT">
+<span class='line'> 91</span> </span><span class="NAME">minplayer.players.minplayer.canPlay</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">file</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 92</span> </span><span class="WHIT">  </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">isWEBM</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">jQuery.inArray</span><span class="PUNC">(</span><span class="NAME">file.mimetype</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="STRN">'video/x-webm'</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'> 93</span> </span><span class="WHIT">    </span><span class="STRN">'video/webm'</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'> 94</span> </span><span class="WHIT">    </span><span class="STRN">'application/octet-stream'</span><span class="WHIT">
+<span class='line'> 95</span> </span><span class="WHIT">  </span><span class="PUNC">]</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">>=</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 96</span> </span><span class="WHIT">  </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="PUNC">!</span><span class="NAME">isWEBM</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">file.type</span><span class="WHIT"> </span><span class="PUNC">==</span><span class="WHIT"> </span><span class="STRN">'video'</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="NAME">file.type</span><span class="WHIT"> </span><span class="PUNC">==</span><span class="WHIT"> </span><span class="STRN">'audio'</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 97</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 98</span> 
+<span class='line'> 99</span> </span><span class="COMM">/**
+<span class='line'>100</span>  * @see minplayer.players.base#create
+<span class='line'>101</span>  * @return {object} The media player entity.
+<span class='line'>102</span>  */</span><span class="WHIT">
+<span class='line'>103</span> </span><span class="NAME">minplayer.players.minplayer.prototype.create</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>104</span> 
+<span class='line'>105</span> </span><span class="WHIT">  </span><span class="COMM">// Make sure we provide default options...</span><span class="WHIT">
+<span class='line'>106</span> </span><span class="WHIT">  </span><span class="NAME">this.options</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">jQuery.extend</span><span class="PUNC">(</span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>107</span> </span><span class="WHIT">    </span><span class="NAME">swfplayer</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="STRN">'flash/minplayer.swf'</span><span class="WHIT">
+<span class='line'>108</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">this.options</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>109</span> 
+<span class='line'>110</span> </span><span class="WHIT">  </span><span class="NAME">minplayer.players.flash.prototype.create.call</span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>111</span> 
+<span class='line'>112</span> </span><span class="WHIT">  </span><span class="COMM">// The flash variables for this flash player.</span><span class="WHIT">
+<span class='line'>113</span> </span><span class="WHIT">  </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">flashVars</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>114</span> </span><span class="WHIT">    </span><span class="STRN">'id'</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">this.options.id</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'>115</span> </span><span class="WHIT">    </span><span class="STRN">'debug'</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">this.options.debug</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'>116</span> </span><span class="WHIT">    </span><span class="STRN">'config'</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="STRN">'nocontrols'</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'>117</span> </span><span class="WHIT">    </span><span class="STRN">'file'</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">this.mediaFile.path</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'>118</span> </span><span class="WHIT">    </span><span class="STRN">'autostart'</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">this.options.autoplay</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'>119</span> </span><span class="WHIT">    </span><span class="STRN">'autoload'</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">this.options.autoload</span><span class="WHIT">
+<span class='line'>120</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>121</span> 
+<span class='line'>122</span> </span><span class="WHIT">  </span><span class="COMM">// Return a flash media player object.</span><span class="WHIT">
+<span class='line'>123</span> </span><span class="WHIT">  </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">this.getFlash</span><span class="PUNC">(</span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>124</span> </span><span class="WHIT">    </span><span class="NAME">swf</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">this.options.swfplayer</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'>125</span> </span><span class="WHIT">    </span><span class="NAME">id</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">this.options.id</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">'_player'</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'>126</span> </span><span class="WHIT">    </span><span class="NAME">width</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="STRN">'100%'</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'>127</span> </span><span class="WHIT">    </span><span class="NAME">height</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="STRN">'100%'</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'>128</span> </span><span class="WHIT">    </span><span class="NAME">flashvars</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">flashVars</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'>129</span> </span><span class="WHIT">    </span><span class="NAME">wmode</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">this.options.wmode</span><span class="WHIT">
+<span class='line'>130</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>131</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>132</span> 
+<span class='line'>133</span> </span><span class="COMM">/**
+<span class='line'>134</span>  * Called when the Flash player has an update.
+<span class='line'>135</span>  *
+<span class='line'>136</span>  * @param {string} eventType The event that was triggered in the player.
+<span class='line'>137</span>  */</span><span class="WHIT">
+<span class='line'>138</span> </span><span class="NAME">minplayer.players.minplayer.prototype.onMediaUpdate</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">eventType</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>139</span> </span><span class="WHIT">  </span><span class="KEYW">switch</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">eventType</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>140</span> </span><span class="WHIT">    </span><span class="KEYW">case</span><span class="WHIT"> </span><span class="STRN">'mediaMeta'</span><span class="PUNC">:</span><span class="WHIT">
+<span class='line'>141</span> </span><span class="WHIT">      </span><span class="NAME">this.onLoaded</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>142</span> </span><span class="WHIT">      </span><span class="KEYW">break</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>143</span> </span><span class="WHIT">    </span><span class="KEYW">case</span><span class="WHIT"> </span><span class="STRN">'mediaPlaying'</span><span class="PUNC">:</span><span class="WHIT">
+<span class='line'>144</span> </span><span class="WHIT">      </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">this.minplayerloaded</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>145</span> </span><span class="WHIT">        </span><span class="NAME">this.onPlaying</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>146</span> </span><span class="WHIT">      </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>147</span> </span><span class="WHIT">      </span><span class="KEYW">break</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>148</span> </span><span class="WHIT">    </span><span class="KEYW">case</span><span class="WHIT"> </span><span class="STRN">'mediaPaused'</span><span class="PUNC">:</span><span class="WHIT">
+<span class='line'>149</span> </span><span class="WHIT">      </span><span class="NAME">this.minplayerloaded</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">true</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>150</span> </span><span class="WHIT">      </span><span class="NAME">this.onPaused</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>151</span> </span><span class="WHIT">      </span><span class="KEYW">break</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>152</span> </span><span class="WHIT">    </span><span class="KEYW">case</span><span class="WHIT"> </span><span class="STRN">'mediaComplete'</span><span class="PUNC">:</span><span class="WHIT">
+<span class='line'>153</span> </span><span class="WHIT">      </span><span class="NAME">this.onComplete</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>154</span> </span><span class="WHIT">      </span><span class="KEYW">break</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>155</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>156</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>157</span> 
+<span class='line'>158</span> </span><span class="COMM">/**
+<span class='line'>159</span>  * Resets all variables.
+<span class='line'>160</span>  */</span><span class="WHIT">
+<span class='line'>161</span> </span><span class="NAME">minplayer.players.minplayer.prototype.clear</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>162</span> </span><span class="WHIT">  </span><span class="NAME">minplayer.players.flash.prototype.clear.call</span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>163</span> </span><span class="WHIT">  </span><span class="NAME">this.minplayerloaded</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.options.autoplay</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>164</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>165</span> 
+<span class='line'>166</span> </span><span class="COMM">/**
+<span class='line'>167</span>  * @see minplayer.players.base#load
+<span class='line'>168</span>  * @return {boolean} If this action was performed.
+<span class='line'>169</span>  */</span><span class="WHIT">
+<span class='line'>170</span> </span><span class="NAME">minplayer.players.minplayer.prototype.load</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">file</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>171</span> </span><span class="WHIT">  </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">minplayer.players.flash.prototype.load.call</span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">file</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>172</span> </span><span class="WHIT">    </span><span class="NAME">this.player.loadMedia</span><span class="PUNC">(</span><span class="NAME">file.path</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">file.stream</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>173</span> </span><span class="WHIT">    </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">true</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>174</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>175</span> 
+<span class='line'>176</span> </span><span class="WHIT">  </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">false</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>177</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>178</span> 
+<span class='line'>179</span> </span><span class="COMM">/**
+<span class='line'>180</span>  * @see minplayer.players.base#play
+<span class='line'>181</span>  * @return {boolean} If this action was performed.
+<span class='line'>182</span>  */</span><span class="WHIT">
+<span class='line'>183</span> </span><span class="NAME">minplayer.players.minplayer.prototype.play</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>184</span> </span><span class="WHIT">  </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">minplayer.players.flash.prototype.play.call</span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>185</span> </span><span class="WHIT">    </span><span class="NAME">this.player.playMedia</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>186</span> </span><span class="WHIT">    </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">true</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>187</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>188</span> 
+<span class='line'>189</span> </span><span class="WHIT">  </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">false</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>190</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>191</span> 
+<span class='line'>192</span> </span><span class="COMM">/**
+<span class='line'>193</span>  * @see minplayer.players.base#pause
+<span class='line'>194</span>  * @return {boolean} If this action was performed.
+<span class='line'>195</span>  */</span><span class="WHIT">
+<span class='line'>196</span> </span><span class="NAME">minplayer.players.minplayer.prototype.pause</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>197</span> </span><span class="WHIT">  </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">minplayer.players.flash.prototype.pause.call</span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>198</span> </span><span class="WHIT">    </span><span class="NAME">this.player.pauseMedia</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>199</span> </span><span class="WHIT">    </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">true</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>200</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>201</span> 
+<span class='line'>202</span> </span><span class="WHIT">  </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">false</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>203</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>204</span> 
+<span class='line'>205</span> </span><span class="COMM">/**
+<span class='line'>206</span>  * @see minplayer.players.base#stop
+<span class='line'>207</span>  * @return {boolean} If this action was performed.
+<span class='line'>208</span>  */</span><span class="WHIT">
+<span class='line'>209</span> </span><span class="NAME">minplayer.players.minplayer.prototype.stop</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>210</span> </span><span class="WHIT">  </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">minplayer.players.flash.prototype.stop.call</span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>211</span> </span><span class="WHIT">    </span><span class="NAME">this.player.stopMedia</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>212</span> </span><span class="WHIT">    </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">true</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>213</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>214</span> 
+<span class='line'>215</span> </span><span class="WHIT">  </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">false</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>216</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>217</span> 
+<span class='line'>218</span> </span><span class="COMM">/**
+<span class='line'>219</span>  * @see minplayer.players.base#seek
+<span class='line'>220</span>  * @return {boolean} If this action was performed.
+<span class='line'>221</span>  */</span><span class="WHIT">
+<span class='line'>222</span> </span><span class="NAME">minplayer.players.minplayer.prototype.seek</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">pos</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>223</span> </span><span class="WHIT">  </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">minplayer.players.flash.prototype.seek.call</span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">pos</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>224</span> </span><span class="WHIT">    </span><span class="NAME">this.player.seekMedia</span><span class="PUNC">(</span><span class="NAME">pos</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>225</span> </span><span class="WHIT">    </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">true</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>226</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>227</span> 
+<span class='line'>228</span> </span><span class="WHIT">  </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">false</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>229</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>230</span> 
+<span class='line'>231</span> </span><span class="COMM">/**
+<span class='line'>232</span>  * @see minplayer.players.base#setVolume
+<span class='line'>233</span>  * @return {boolean} If this action was performed.
+<span class='line'>234</span>  */</span><span class="WHIT">
+<span class='line'>235</span> </span><span class="NAME">minplayer.players.minplayer.prototype.setVolume</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">vol</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>236</span> </span><span class="WHIT">  </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">minplayer.players.flash.prototype.setVolume.call</span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">vol</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>237</span> </span><span class="WHIT">    </span><span class="NAME">this.player.setVolume</span><span class="PUNC">(</span><span class="NAME">vol</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>238</span> </span><span class="WHIT">    </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">true</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>239</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>240</span> 
+<span class='line'>241</span> </span><span class="WHIT">  </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">false</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>242</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>243</span> 
+<span class='line'>244</span> </span><span class="COMM">/**
+<span class='line'>245</span>  * @see minplayer.players.base#getVolume
+<span class='line'>246</span>  */</span><span class="WHIT">
+<span class='line'>247</span> </span><span class="NAME">minplayer.players.minplayer.prototype.getVolume</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">callback</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>248</span> </span><span class="WHIT">  </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">this.isReady</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>249</span> </span><span class="WHIT">    </span><span class="NAME">callback</span><span class="PUNC">(</span><span class="NAME">this.player.getVolume</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>250</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>251</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>252</span> 
+<span class='line'>253</span> </span><span class="COMM">/**
+<span class='line'>254</span>  * @see minplayer.players.flash#getDuration
+<span class='line'>255</span>  */</span><span class="WHIT">
+<span class='line'>256</span> </span><span class="NAME">minplayer.players.minplayer.prototype.getDuration</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">callback</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>257</span> </span><span class="WHIT">  </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">this.isReady</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>258</span> 
+<span class='line'>259</span> </span><span class="WHIT">    </span><span class="COMM">// Check to see if it is immediately available.</span><span class="WHIT">
+<span class='line'>260</span> </span><span class="WHIT">    </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">duration</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.player.getDuration</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>261</span> </span><span class="WHIT">    </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">duration</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>262</span> </span><span class="WHIT">      </span><span class="NAME">callback</span><span class="PUNC">(</span><span class="NAME">duration</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>263</span> </span><span class="WHIT">    </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>264</span> </span><span class="WHIT">    </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>265</span> 
+<span class='line'>266</span> </span><span class="WHIT">      </span><span class="COMM">// If not, then poll every second for the duration.</span><span class="WHIT">
+<span class='line'>267</span> </span><span class="WHIT">      </span><span class="NAME">this.poll</span><span class="PUNC">(</span><span class="PUNC">(</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">player</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>268</span> </span><span class="WHIT">        </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>269</span> </span><span class="WHIT">          </span><span class="NAME">duration</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">player.player.getDuration</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>270</span> </span><span class="WHIT">          </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">duration</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>271</span> </span><span class="WHIT">            </span><span class="NAME">callback</span><span class="PUNC">(</span><span class="NAME">duration</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>272</span> </span><span class="WHIT">          </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>273</span> </span><span class="WHIT">          </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="PUNC">!</span><span class="NAME">duration</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>274</span> </span><span class="WHIT">        </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>275</span> </span><span class="WHIT">      </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NUMB">1000</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>276</span> </span><span class="WHIT">    </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>277</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>278</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>279</span> 
+<span class='line'>280</span> </span><span class="COMM">/**
+<span class='line'>281</span>  * @see minplayer.players.base#getCurrentTime
+<span class='line'>282</span>  */</span><span class="WHIT">
+<span class='line'>283</span> </span><span class="NAME">minplayer.players.minplayer.prototype.getCurrentTime</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">callback</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>284</span> </span><span class="WHIT">  </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">this.isReady</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>285</span> </span><span class="WHIT">    </span><span class="NAME">callback</span><span class="PUNC">(</span><span class="NAME">this.player.getCurrentTime</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>286</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>287</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>288</span> 
+<span class='line'>289</span> </span><span class="COMM">/**
+<span class='line'>290</span>  * @see minplayer.players.base#getBytesLoaded
+<span class='line'>291</span>  */</span><span class="WHIT">
+<span class='line'>292</span> </span><span class="NAME">minplayer.players.minplayer.prototype.getBytesLoaded</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">callback</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>293</span> </span><span class="WHIT">  </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">this.isReady</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>294</span> </span><span class="WHIT">    </span><span class="NAME">callback</span><span class="PUNC">(</span><span class="NAME">this.player.getMediaBytesLoaded</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>295</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>296</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>297</span> 
+<span class='line'>298</span> </span><span class="COMM">/**
+<span class='line'>299</span>  * @see minplayer.players.base#getBytesTotal.
+<span class='line'>300</span>  */</span><span class="WHIT">
+<span class='line'>301</span> </span><span class="NAME">minplayer.players.minplayer.prototype.getBytesTotal</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">callback</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>302</span> </span><span class="WHIT">  </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">this.isReady</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>303</span> </span><span class="WHIT">    </span><span class="NAME">callback</span><span class="PUNC">(</span><span class="NAME">this.player.getMediaBytesTotal</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>304</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>305</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>306</span> </span></pre></body></html>
\ No newline at end of file
diff --git a/public/admin/js/osmplayer/doc/symbols/src/minplayer_src_minplayer.players.vimeo.js.html b/public/admin/js/osmplayer/doc/symbols/src/minplayer_src_minplayer.players.vimeo.js.html
new file mode 100644
index 00000000000..90bbc0f64b2
--- /dev/null
+++ b/public/admin/js/osmplayer/doc/symbols/src/minplayer_src_minplayer.players.vimeo.js.html
@@ -0,0 +1,355 @@
+<html><head><meta http-equiv="content-type" content="text/html; charset=utf-8"> <style>
+	.KEYW {color: #933;}
+	.COMM {color: #bbb; font-style: italic;}
+	.NUMB {color: #393;}
+	.STRN {color: #393;}
+	.REGX {color: #339;}
+	.line {border-right: 1px dotted #666; color: #666; font-style: normal;}
+	</style></head><body><pre><span class='line'>  1</span> <span class="COMM">/** The minplayer namespace. */</span><span class="WHIT">
+<span class='line'>  2</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">minplayer</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">minplayer</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>  3</span> 
+<span class='line'>  4</span> </span><span class="COMM">/** All the media player implementations */</span><span class="WHIT">
+<span class='line'>  5</span> </span><span class="NAME">minplayer.players</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">minplayer.players</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>  6</span> 
+<span class='line'>  7</span> </span><span class="COMM">/**
+<span class='line'>  8</span>  * @constructor
+<span class='line'>  9</span>  * @extends minplayer.players.base
+<span class='line'> 10</span>  * @class The vimeo media player.
+<span class='line'> 11</span>  *
+<span class='line'> 12</span>  * @param {object} context The jQuery context.
+<span class='line'> 13</span>  * @param {object} options This components options.
+<span class='line'> 14</span>  * @param {object} queue The event queue to pass events around.
+<span class='line'> 15</span>  */</span><span class="WHIT">
+<span class='line'> 16</span> </span><span class="NAME">minplayer.players.vimeo</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">context</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">options</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">queue</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 17</span> 
+<span class='line'> 18</span> </span><span class="WHIT">  </span><span class="COMM">// Derive from players base.</span><span class="WHIT">
+<span class='line'> 19</span> </span><span class="WHIT">  </span><span class="NAME">minplayer.players.base.call</span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">context</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">options</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">queue</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 20</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 21</span> 
+<span class='line'> 22</span> </span><span class="COMM">/** Derive from minplayer.players.base. */</span><span class="WHIT">
+<span class='line'> 23</span> </span><span class="NAME">minplayer.players.vimeo.prototype</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">new</span><span class="WHIT"> </span><span class="NAME">minplayer.players.base</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 24</span> 
+<span class='line'> 25</span> </span><span class="COMM">/** Reset the constructor. */</span><span class="WHIT">
+<span class='line'> 26</span> </span><span class="NAME">minplayer.players.vimeo.prototype.constructor</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">minplayer.players.vimeo</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 27</span> 
+<span class='line'> 28</span> </span><span class="COMM">/**
+<span class='line'> 29</span>  * @see minplayer.plugin.construct
+<span class='line'> 30</span>  * @this minplayer.players.vimeo
+<span class='line'> 31</span>  */</span><span class="WHIT">
+<span class='line'> 32</span> </span><span class="NAME">minplayer.players.vimeo.prototype.construct</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 33</span> 
+<span class='line'> 34</span> </span><span class="WHIT">  </span><span class="COMM">// Call the players.flash constructor.</span><span class="WHIT">
+<span class='line'> 35</span> </span><span class="WHIT">  </span><span class="NAME">minplayer.players.base.prototype.construct.call</span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 36</span> 
+<span class='line'> 37</span> </span><span class="WHIT">  </span><span class="COMM">// Set the plugin name within the options.</span><span class="WHIT">
+<span class='line'> 38</span> </span><span class="WHIT">  </span><span class="NAME">this.options.pluginName</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">'vimeo'</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 39</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 40</span> 
+<span class='line'> 41</span> </span><span class="COMM">/**
+<span class='line'> 42</span>  * @see minplayer.players.base#getPriority
+<span class='line'> 43</span>  * @return {number} The priority of this media player.
+<span class='line'> 44</span>  */</span><span class="WHIT">
+<span class='line'> 45</span> </span><span class="NAME">minplayer.players.vimeo.getPriority</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 46</span> </span><span class="WHIT">  </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NUMB">10</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 47</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 48</span> 
+<span class='line'> 49</span> </span><span class="COMM">/**
+<span class='line'> 50</span>  * @see minplayer.players.base#canPlay
+<span class='line'> 51</span>  * @return {boolean} If this player can play this media type.
+<span class='line'> 52</span>  */</span><span class="WHIT">
+<span class='line'> 53</span> </span><span class="NAME">minplayer.players.vimeo.canPlay</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">file</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 54</span> 
+<span class='line'> 55</span> </span><span class="WHIT">  </span><span class="COMM">// Check for the mimetype for vimeo.</span><span class="WHIT">
+<span class='line'> 56</span> </span><span class="WHIT">  </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">file.mimetype</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="STRN">'video/vimeo'</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 57</span> </span><span class="WHIT">    </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">true</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 58</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'> 59</span> 
+<span class='line'> 60</span> </span><span class="WHIT">  </span><span class="COMM">// If the path is a vimeo path, then return true.</span><span class="WHIT">
+<span class='line'> 61</span> </span><span class="WHIT">  </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">file.path.search</span><span class="PUNC">(</span><span class="REGX">/^http(s)?\:\/\/(www\.)?vimeo\.com/i</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 62</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 63</span> 
+<span class='line'> 64</span> </span><span class="COMM">/**
+<span class='line'> 65</span>  * Determines if the player should show the playloader.
+<span class='line'> 66</span>  *
+<span class='line'> 67</span>  * @param {string} preview The preview image.
+<span class='line'> 68</span>  * @return {bool} If this player implements its own playLoader.
+<span class='line'> 69</span>  */</span><span class="WHIT">
+<span class='line'> 70</span> </span><span class="NAME">minplayer.players.vimeo.prototype.hasPlayLoader</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">preview</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 71</span> </span><span class="WHIT">  </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">minplayer.hasTouch</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="PUNC">!</span><span class="NAME">preview</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 72</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 73</span> 
+<span class='line'> 74</span> </span><span class="COMM">/**
+<span class='line'> 75</span>  * Determines if the player should show the playloader.
+<span class='line'> 76</span>  *
+<span class='line'> 77</span>  * @return {bool} If this player implements its own playLoader.
+<span class='line'> 78</span>  */</span><span class="WHIT">
+<span class='line'> 79</span> </span><span class="NAME">minplayer.players.vimeo.prototype.hasController</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 80</span> </span><span class="WHIT">  </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">minplayer.hasTouch</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 81</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 82</span> 
+<span class='line'> 83</span> </span><span class="COMM">/**
+<span class='line'> 84</span>  * Return the ID for a provided media file.
+<span class='line'> 85</span>  *
+<span class='line'> 86</span>  * @param {object} file A {@link minplayer.file} object.
+<span class='line'> 87</span>  * @return {string} The ID for the provided media.
+<span class='line'> 88</span>  */</span><span class="WHIT">
+<span class='line'> 89</span> </span><span class="NAME">minplayer.players.vimeo.getMediaId</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">file</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 90</span> </span><span class="WHIT">  </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">regex</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="REGX">/^http[s]?\:\/\/(www\.)?vimeo\.com\/(\?v\=)?([0-9]+)/i</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 91</span> </span><span class="WHIT">  </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">file.path.search</span><span class="PUNC">(</span><span class="NAME">regex</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 92</span> </span><span class="WHIT">    </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">file.path.match</span><span class="PUNC">(</span><span class="NAME">regex</span><span class="PUNC">)</span><span class="PUNC">[</span><span class="NUMB">3</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 93</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'> 94</span> </span><span class="WHIT">  </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 95</span> </span><span class="WHIT">    </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">file.path</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 96</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'> 97</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 98</span> 
+<span class='line'> 99</span> </span><span class="COMM">/**
+<span class='line'>100</span>  * Returns a preview image for this media player.
+<span class='line'>101</span>  *
+<span class='line'>102</span>  * @param {object} file A {@link minplayer.file} object.
+<span class='line'>103</span>  * @param {string} type The type of image.
+<span class='line'>104</span>  * @param {function} callback Called when the image is retrieved.
+<span class='line'>105</span>  */</span><span class="WHIT">
+<span class='line'>106</span> </span><span class="NAME">minplayer.players.vimeo.getImage</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">file</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">type</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">callback</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>107</span> </span><span class="WHIT">  </span><span class="NAME">jQuery.ajax</span><span class="PUNC">(</span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>108</span> </span><span class="WHIT">    </span><span class="NAME">url</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="STRN">'http://vimeo.com/api/v2/video/'</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">file.id</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">'.json'</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'>109</span> </span><span class="WHIT">    </span><span class="NAME">dataType</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="STRN">'jsonp'</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'>110</span> </span><span class="WHIT">    </span><span class="NAME">success</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">data</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>111</span> </span><span class="WHIT">      </span><span class="NAME">callback</span><span class="PUNC">(</span><span class="NAME">data</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">thumbnail_large</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>112</span> </span><span class="WHIT">    </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>113</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>114</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>115</span> 
+<span class='line'>116</span> </span><span class="COMM">/**
+<span class='line'>117</span>  * @see minplayer.players.base#reset
+<span class='line'>118</span>  */</span><span class="WHIT">
+<span class='line'>119</span> </span><span class="NAME">minplayer.players.vimeo.prototype.reset</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>120</span> 
+<span class='line'>121</span> </span><span class="WHIT">  </span><span class="COMM">// Reset the flash variables..</span><span class="WHIT">
+<span class='line'>122</span> </span><span class="WHIT">  </span><span class="NAME">minplayer.players.base.prototype.reset.call</span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>123</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>124</span> 
+<span class='line'>125</span> </span><span class="COMM">/**
+<span class='line'>126</span>  * @see minplayer.players.base#create
+<span class='line'>127</span>  * @return {object} The media player entity.
+<span class='line'>128</span>  */</span><span class="WHIT">
+<span class='line'>129</span> </span><span class="NAME">minplayer.players.vimeo.prototype.create</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>130</span> </span><span class="WHIT">  </span><span class="NAME">minplayer.players.base.prototype.create.call</span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>131</span> 
+<span class='line'>132</span> </span><span class="WHIT">  </span><span class="COMM">// Insert the Vimeo Froogaloop player.</span><span class="WHIT">
+<span class='line'>133</span> </span><span class="WHIT">  </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">tag</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">document.createElement</span><span class="PUNC">(</span><span class="STRN">'script'</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>134</span> </span><span class="WHIT">  </span><span class="NAME">tag.src</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">'http://a.vimeocdn.com/js/froogaloop2.min.js'</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>135</span> </span><span class="WHIT">  </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">firstScriptTag</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">document.getElementsByTagName</span><span class="PUNC">(</span><span class="STRN">'script'</span><span class="PUNC">)</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>136</span> </span><span class="WHIT">  </span><span class="NAME">firstScriptTag.parentNode.insertBefore</span><span class="PUNC">(</span><span class="NAME">tag</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">firstScriptTag</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>137</span> 
+<span class='line'>138</span> </span><span class="WHIT">  </span><span class="COMM">// Create the iframe for this player.</span><span class="WHIT">
+<span class='line'>139</span> </span><span class="WHIT">  </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">iframe</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">document.createElement</span><span class="PUNC">(</span><span class="STRN">'iframe'</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>140</span> </span><span class="WHIT">  </span><span class="NAME">iframe.setAttribute</span><span class="PUNC">(</span><span class="STRN">'id'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">this.options.id</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">'-player'</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>141</span> </span><span class="WHIT">  </span><span class="NAME">iframe.setAttribute</span><span class="PUNC">(</span><span class="STRN">'type'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'text/html'</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>142</span> </span><span class="WHIT">  </span><span class="NAME">iframe.setAttribute</span><span class="PUNC">(</span><span class="STRN">'width'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'100%'</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>143</span> </span><span class="WHIT">  </span><span class="NAME">iframe.setAttribute</span><span class="PUNC">(</span><span class="STRN">'height'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'100%'</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>144</span> </span><span class="WHIT">  </span><span class="NAME">iframe.setAttribute</span><span class="PUNC">(</span><span class="STRN">'frameborder'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'0'</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>145</span> </span><span class="WHIT">  </span><span class="NAME">jQuery</span><span class="PUNC">(</span><span class="NAME">iframe</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">addClass</span><span class="PUNC">(</span><span class="STRN">'vimeo-player'</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>146</span> 
+<span class='line'>147</span> </span><span class="WHIT">  </span><span class="COMM">// Get the source.</span><span class="WHIT">
+<span class='line'>148</span> </span><span class="WHIT">  </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">src</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">'http://player.vimeo.com/video/'</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>149</span> </span><span class="WHIT">  </span><span class="NAME">src</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.mediaFile.id</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">'?'</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>150</span> 
+<span class='line'>151</span> </span><span class="WHIT">  </span><span class="COMM">// Add the parameters to the src.</span><span class="WHIT">
+<span class='line'>152</span> </span><span class="WHIT">  </span><span class="NAME">src</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">jQuery.param</span><span class="PUNC">(</span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>153</span> </span><span class="WHIT">    </span><span class="STRN">'wmode'</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="STRN">'opaque'</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'>154</span> </span><span class="WHIT">    </span><span class="STRN">'api'</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NUMB">1</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'>155</span> </span><span class="WHIT">    </span><span class="STRN">'player_id'</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">this.options.id</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">'-player'</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'>156</span> </span><span class="WHIT">    </span><span class="STRN">'title'</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'>157</span> </span><span class="WHIT">    </span><span class="STRN">'byline'</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'>158</span> </span><span class="WHIT">    </span><span class="STRN">'portrait'</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'>159</span> </span><span class="WHIT">    </span><span class="STRN">'autoplay'</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">this.options.autoplay</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'>160</span> </span><span class="WHIT">    </span><span class="STRN">'loop'</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">this.options.loop</span><span class="WHIT">
+<span class='line'>161</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>162</span> 
+<span class='line'>163</span> </span><span class="WHIT">  </span><span class="COMM">// Set the source of the iframe.</span><span class="WHIT">
+<span class='line'>164</span> </span><span class="WHIT">  </span><span class="NAME">iframe.setAttribute</span><span class="PUNC">(</span><span class="STRN">'src'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">src</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>165</span> 
+<span class='line'>166</span> </span><span class="WHIT">  </span><span class="COMM">// Now register this player when the froogaloop code is loaded.</span><span class="WHIT">
+<span class='line'>167</span> </span><span class="WHIT">  </span><span class="NAME">this.poll</span><span class="PUNC">(</span><span class="PUNC">(</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">player</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>168</span> </span><span class="WHIT">    </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>169</span> </span><span class="WHIT">      </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">window.Froogaloop</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>170</span> </span><span class="WHIT">        </span><span class="NAME">player.player</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">window.Froogaloop</span><span class="PUNC">(</span><span class="NAME">iframe</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>171</span> </span><span class="WHIT">        </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">playerTimeout</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>172</span> </span><span class="WHIT">        </span><span class="NAME">player.player.addEvent</span><span class="PUNC">(</span><span class="STRN">'ready'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>173</span> </span><span class="WHIT">          </span><span class="NAME">clearTimeout</span><span class="PUNC">(</span><span class="NAME">playerTimeout</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>174</span> </span><span class="WHIT">          </span><span class="NAME">player.onReady</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>175</span> </span><span class="WHIT">          </span><span class="NAME">player.onError</span><span class="PUNC">(</span><span class="STRN">''</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>176</span> </span><span class="WHIT">        </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>177</span> </span><span class="WHIT">        </span><span class="NAME">playerTimeout</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">setTimeout</span><span class="PUNC">(</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>178</span> </span><span class="WHIT">          </span><span class="NAME">player.onReady</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>179</span> </span><span class="WHIT">          </span><span class="NAME">player.onError</span><span class="PUNC">(</span><span class="STRN">'Unable to play video.'</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>180</span> </span><span class="WHIT">        </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NUMB">2000</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>181</span> </span><span class="WHIT">      </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>182</span> </span><span class="WHIT">      </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="PUNC">!</span><span class="NAME">window.Froogaloop</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>183</span> </span><span class="WHIT">    </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>184</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NUMB">200</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>185</span> 
+<span class='line'>186</span> </span><span class="WHIT">  </span><span class="COMM">// Trigger that the load has started.</span><span class="WHIT">
+<span class='line'>187</span> </span><span class="WHIT">  </span><span class="NAME">this.trigger</span><span class="PUNC">(</span><span class="STRN">'loadstart'</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>188</span> 
+<span class='line'>189</span> </span><span class="WHIT">  </span><span class="COMM">// Return the player.</span><span class="WHIT">
+<span class='line'>190</span> </span><span class="WHIT">  </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">iframe</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>191</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>192</span> 
+<span class='line'>193</span> </span><span class="COMM">/**
+<span class='line'>194</span>  * @see minplayer.players.base#onReady
+<span class='line'>195</span>  */</span><span class="WHIT">
+<span class='line'>196</span> </span><span class="NAME">minplayer.players.vimeo.prototype.onReady</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">player_id</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>197</span> 
+<span class='line'>198</span> </span><span class="WHIT">  </span><span class="COMM">// Add the other listeners.</span><span class="WHIT">
+<span class='line'>199</span> </span><span class="WHIT">  </span><span class="NAME">this.player.addEvent</span><span class="PUNC">(</span><span class="STRN">'loadProgress'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">player</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>200</span> </span><span class="WHIT">    </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">progress</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>201</span> </span><span class="WHIT">      </span><span class="NAME">player.duration.set</span><span class="PUNC">(</span><span class="NAME">parseFloat</span><span class="PUNC">(</span><span class="NAME">progress.duration</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>202</span> </span><span class="WHIT">      </span><span class="NAME">player.bytesLoaded.set</span><span class="PUNC">(</span><span class="NAME">progress.bytesLoaded</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>203</span> </span><span class="WHIT">      </span><span class="NAME">player.bytesTotal.set</span><span class="PUNC">(</span><span class="NAME">progress.bytesTotal</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>204</span> </span><span class="WHIT">    </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>205</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>206</span> 
+<span class='line'>207</span> </span><span class="WHIT">  </span><span class="NAME">this.player.addEvent</span><span class="PUNC">(</span><span class="STRN">'playProgress'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">player</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>208</span> </span><span class="WHIT">    </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">progress</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>209</span> </span><span class="WHIT">      </span><span class="NAME">player.duration.set</span><span class="PUNC">(</span><span class="NAME">parseFloat</span><span class="PUNC">(</span><span class="NAME">progress.duration</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>210</span> </span><span class="WHIT">      </span><span class="NAME">player.currentTime.set</span><span class="PUNC">(</span><span class="NAME">parseFloat</span><span class="PUNC">(</span><span class="NAME">progress.seconds</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>211</span> </span><span class="WHIT">    </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>212</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>213</span> 
+<span class='line'>214</span> </span><span class="WHIT">  </span><span class="NAME">this.player.addEvent</span><span class="PUNC">(</span><span class="STRN">'play'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">player</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>215</span> </span><span class="WHIT">    </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>216</span> </span><span class="WHIT">      </span><span class="NAME">player.onPlaying</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>217</span> </span><span class="WHIT">    </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>218</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>219</span> 
+<span class='line'>220</span> </span><span class="WHIT">  </span><span class="NAME">this.player.addEvent</span><span class="PUNC">(</span><span class="STRN">'pause'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">player</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>221</span> </span><span class="WHIT">    </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>222</span> </span><span class="WHIT">      </span><span class="NAME">player.onPaused</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>223</span> </span><span class="WHIT">    </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>224</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>225</span> 
+<span class='line'>226</span> </span><span class="WHIT">  </span><span class="NAME">this.player.addEvent</span><span class="PUNC">(</span><span class="STRN">'finish'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">player</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>227</span> </span><span class="WHIT">    </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>228</span> </span><span class="WHIT">      </span><span class="NAME">player.onComplete</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>229</span> </span><span class="WHIT">    </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>230</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>231</span> 
+<span class='line'>232</span> </span><span class="WHIT">  </span><span class="NAME">minplayer.players.base.prototype.onReady.call</span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>233</span> </span><span class="WHIT">  </span><span class="NAME">this.onLoaded</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>234</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>235</span> 
+<span class='line'>236</span> </span><span class="COMM">/**
+<span class='line'>237</span>  * Clears the media player.
+<span class='line'>238</span>  */</span><span class="WHIT">
+<span class='line'>239</span> </span><span class="NAME">minplayer.players.vimeo.prototype.clear</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>240</span> </span><span class="WHIT">  </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">this.player</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>241</span> </span><span class="WHIT">    </span><span class="NAME">this.player.api</span><span class="PUNC">(</span><span class="STRN">'unload'</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>242</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>243</span> </span><span class="WHIT">  </span><span class="NAME">minplayer.players.base.prototype.clear.call</span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>244</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>245</span> 
+<span class='line'>246</span> </span><span class="COMM">/**
+<span class='line'>247</span>  * @see minplayer.players.base#load
+<span class='line'>248</span>  * @return {boolean} If this action was performed.
+<span class='line'>249</span>  */</span><span class="WHIT">
+<span class='line'>250</span> </span><span class="NAME">minplayer.players.vimeo.prototype.load</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">file</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>251</span> </span><span class="WHIT">  </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">minplayer.players.base.prototype.load.call</span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">file</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>252</span> </span><span class="WHIT">    </span><span class="NAME">this.construct</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>253</span> </span><span class="WHIT">    </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">true</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>254</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>255</span> </span><span class="WHIT">  </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">false</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>256</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>257</span> 
+<span class='line'>258</span> </span><span class="COMM">/**
+<span class='line'>259</span>  * @see minplayer.players.base#play
+<span class='line'>260</span>  * @return {boolean} If this action was performed.
+<span class='line'>261</span>  */</span><span class="WHIT">
+<span class='line'>262</span> </span><span class="NAME">minplayer.players.vimeo.prototype.play</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>263</span> </span><span class="WHIT">  </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">minplayer.players.base.prototype.play.call</span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>264</span> </span><span class="WHIT">    </span><span class="NAME">this.player.api</span><span class="PUNC">(</span><span class="STRN">'play'</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>265</span> </span><span class="WHIT">    </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">true</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>266</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>267</span> 
+<span class='line'>268</span> </span><span class="WHIT">  </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">false</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>269</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>270</span> 
+<span class='line'>271</span> </span><span class="COMM">/**
+<span class='line'>272</span>  * @see minplayer.players.base#pause
+<span class='line'>273</span>  * @return {boolean} If this action was performed.
+<span class='line'>274</span>  */</span><span class="WHIT">
+<span class='line'>275</span> </span><span class="NAME">minplayer.players.vimeo.prototype.pause</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>276</span> </span><span class="WHIT">  </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">minplayer.players.base.prototype.pause.call</span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>277</span> </span><span class="WHIT">    </span><span class="NAME">this.player.api</span><span class="PUNC">(</span><span class="STRN">'pause'</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>278</span> </span><span class="WHIT">    </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">true</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>279</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>280</span> 
+<span class='line'>281</span> </span><span class="WHIT">  </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">false</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>282</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>283</span> 
+<span class='line'>284</span> </span><span class="COMM">/**
+<span class='line'>285</span>  * @see minplayer.players.base#stop
+<span class='line'>286</span>  * @return {boolean} If this action was performed.
+<span class='line'>287</span>  */</span><span class="WHIT">
+<span class='line'>288</span> </span><span class="NAME">minplayer.players.vimeo.prototype.stop</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>289</span> </span><span class="WHIT">  </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">minplayer.players.base.prototype.stop.call</span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>290</span> </span><span class="WHIT">    </span><span class="NAME">this.player.api</span><span class="PUNC">(</span><span class="STRN">'unload'</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>291</span> </span><span class="WHIT">    </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">true</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>292</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>293</span> 
+<span class='line'>294</span> </span><span class="WHIT">  </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">false</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>295</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>296</span> 
+<span class='line'>297</span> </span><span class="COMM">/**
+<span class='line'>298</span>  * @see minplayer.players.base#seek
+<span class='line'>299</span>  * @return {boolean} If this action was performed.
+<span class='line'>300</span>  */</span><span class="WHIT">
+<span class='line'>301</span> </span><span class="NAME">minplayer.players.vimeo.prototype.seek</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">pos</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>302</span> </span><span class="WHIT">  </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">minplayer.players.base.prototype.seek.call</span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">pos</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>303</span> </span><span class="WHIT">    </span><span class="NAME">this.player.api</span><span class="PUNC">(</span><span class="STRN">'seekTo'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">pos</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>304</span> </span><span class="WHIT">    </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">true</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>305</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>306</span> 
+<span class='line'>307</span> </span><span class="WHIT">  </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">false</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>308</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>309</span> 
+<span class='line'>310</span> </span><span class="COMM">/**
+<span class='line'>311</span>  * @see minplayer.players.base#setVolume
+<span class='line'>312</span>  * @return {boolean} If this action was performed.
+<span class='line'>313</span>  */</span><span class="WHIT">
+<span class='line'>314</span> </span><span class="NAME">minplayer.players.vimeo.prototype.setVolume</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">vol</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>315</span> </span><span class="WHIT">  </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">minplayer.players.base.prototype.setVolume.call</span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">vol</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>316</span> </span><span class="WHIT">    </span><span class="NAME">this.volume.set</span><span class="PUNC">(</span><span class="NAME">vol</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>317</span> </span><span class="WHIT">    </span><span class="NAME">this.player.api</span><span class="PUNC">(</span><span class="STRN">'setVolume'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">vol</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>318</span> </span><span class="WHIT">    </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">true</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>319</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>320</span> 
+<span class='line'>321</span> </span><span class="WHIT">  </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">false</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>322</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>323</span> 
+<span class='line'>324</span> </span><span class="COMM">/**
+<span class='line'>325</span>  * @see minplayer.players.base#getVolume
+<span class='line'>326</span>  */</span><span class="WHIT">
+<span class='line'>327</span> </span><span class="NAME">minplayer.players.vimeo.prototype.getVolume</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">callback</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>328</span> </span><span class="WHIT">  </span><span class="NAME">this.player.api</span><span class="PUNC">(</span><span class="STRN">'getVolume'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">vol</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>329</span> </span><span class="WHIT">    </span><span class="NAME">callback</span><span class="PUNC">(</span><span class="NAME">vol</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>330</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>331</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>332</span> 
+<span class='line'>333</span> </span><span class="COMM">/**
+<span class='line'>334</span>  * @see minplayer.players.base#getDuration.
+<span class='line'>335</span>  */</span><span class="WHIT">
+<span class='line'>336</span> </span><span class="NAME">minplayer.players.vimeo.prototype.getDuration</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">callback</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>337</span> </span><span class="WHIT">  </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">this.isReady</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>338</span> </span><span class="WHIT">    </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">this.duration.value</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>339</span> </span><span class="WHIT">      </span><span class="NAME">callback</span><span class="PUNC">(</span><span class="NAME">this.duration.value</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>340</span> </span><span class="WHIT">    </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>341</span> </span><span class="WHIT">    </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>342</span> </span><span class="WHIT">      </span><span class="NAME">this.player.api</span><span class="PUNC">(</span><span class="STRN">'getDuration'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">duration</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>343</span> </span><span class="WHIT">        </span><span class="NAME">callback</span><span class="PUNC">(</span><span class="NAME">duration</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>344</span> </span><span class="WHIT">      </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>345</span> </span><span class="WHIT">    </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>346</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>347</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>348</span> </span></pre></body></html>
\ No newline at end of file
diff --git a/public/admin/js/osmplayer/doc/symbols/src/minplayer_src_minplayer.players.youtube.js.html b/public/admin/js/osmplayer/doc/symbols/src/minplayer_src_minplayer.players.youtube.js.html
new file mode 100644
index 00000000000..f262a9d4027
--- /dev/null
+++ b/public/admin/js/osmplayer/doc/symbols/src/minplayer_src_minplayer.players.youtube.js.html
@@ -0,0 +1,384 @@
+<html><head><meta http-equiv="content-type" content="text/html; charset=utf-8"> <style>
+	.KEYW {color: #933;}
+	.COMM {color: #bbb; font-style: italic;}
+	.NUMB {color: #393;}
+	.STRN {color: #393;}
+	.REGX {color: #339;}
+	.line {border-right: 1px dotted #666; color: #666; font-style: normal;}
+	</style></head><body><pre><span class='line'>  1</span> <span class="COMM">/** The minplayer namespace. */</span><span class="WHIT">
+<span class='line'>  2</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">minplayer</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">minplayer</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>  3</span> 
+<span class='line'>  4</span> </span><span class="COMM">/** All the media player implementations */</span><span class="WHIT">
+<span class='line'>  5</span> </span><span class="NAME">minplayer.players</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">minplayer.players</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>  6</span> 
+<span class='line'>  7</span> </span><span class="COMM">/**
+<span class='line'>  8</span>  * @constructor
+<span class='line'>  9</span>  * @extends minplayer.players.base
+<span class='line'> 10</span>  * @class The YouTube media player.
+<span class='line'> 11</span>  *
+<span class='line'> 12</span>  * @param {object} context The jQuery context.
+<span class='line'> 13</span>  * @param {object} options This components options.
+<span class='line'> 14</span>  * @param {object} queue The event queue to pass events around.
+<span class='line'> 15</span>  */</span><span class="WHIT">
+<span class='line'> 16</span> </span><span class="NAME">minplayer.players.youtube</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">context</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">options</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">queue</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 17</span> 
+<span class='line'> 18</span> </span><span class="WHIT">  </span><span class="COMM">/** The quality of the YouTube stream. */</span><span class="WHIT">
+<span class='line'> 19</span> </span><span class="WHIT">  </span><span class="NAME">this.quality</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">'default'</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 20</span> 
+<span class='line'> 21</span> </span><span class="WHIT">  </span><span class="COMM">// Derive from players base.</span><span class="WHIT">
+<span class='line'> 22</span> </span><span class="WHIT">  </span><span class="NAME">minplayer.players.base.call</span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">context</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">options</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">queue</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 23</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 24</span> 
+<span class='line'> 25</span> </span><span class="COMM">/** Derive from minplayer.players.base. */</span><span class="WHIT">
+<span class='line'> 26</span> </span><span class="NAME">minplayer.players.youtube.prototype</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">new</span><span class="WHIT"> </span><span class="NAME">minplayer.players.base</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 27</span> 
+<span class='line'> 28</span> </span><span class="COMM">/** Reset the constructor. */</span><span class="WHIT">
+<span class='line'> 29</span> </span><span class="NAME">minplayer.players.youtube.prototype.constructor</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">minplayer.players.youtube</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 30</span> 
+<span class='line'> 31</span> </span><span class="COMM">/**
+<span class='line'> 32</span>  * @see minplayer.plugin.construct
+<span class='line'> 33</span>  * @this minplayer.players.youtube
+<span class='line'> 34</span>  */</span><span class="WHIT">
+<span class='line'> 35</span> </span><span class="NAME">minplayer.players.youtube.prototype.construct</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 36</span> 
+<span class='line'> 37</span> </span><span class="WHIT">  </span><span class="COMM">// Call the players.flash constructor.</span><span class="WHIT">
+<span class='line'> 38</span> </span><span class="WHIT">  </span><span class="NAME">minplayer.players.base.prototype.construct.call</span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 39</span> 
+<span class='line'> 40</span> </span><span class="WHIT">  </span><span class="COMM">// Set the plugin name within the options.</span><span class="WHIT">
+<span class='line'> 41</span> </span><span class="WHIT">  </span><span class="NAME">this.options.pluginName</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">'youtube'</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 42</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 43</span> 
+<span class='line'> 44</span> </span><span class="COMM">/**
+<span class='line'> 45</span>  * @see minplayer.players.base#getPriority
+<span class='line'> 46</span>  * @return {number} The priority of this media player.
+<span class='line'> 47</span>  */</span><span class="WHIT">
+<span class='line'> 48</span> </span><span class="NAME">minplayer.players.youtube.getPriority</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 49</span> </span><span class="WHIT">  </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NUMB">10</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 50</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 51</span> 
+<span class='line'> 52</span> </span><span class="COMM">/**
+<span class='line'> 53</span>  * @see minplayer.players.base#canPlay
+<span class='line'> 54</span>  * @return {boolean} If this player can play this media type.
+<span class='line'> 55</span>  */</span><span class="WHIT">
+<span class='line'> 56</span> </span><span class="NAME">minplayer.players.youtube.canPlay</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">file</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 57</span> 
+<span class='line'> 58</span> </span><span class="WHIT">  </span><span class="COMM">// Check for the mimetype for youtube.</span><span class="WHIT">
+<span class='line'> 59</span> </span><span class="WHIT">  </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">file.mimetype</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="STRN">'video/youtube'</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 60</span> </span><span class="WHIT">    </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">true</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 61</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'> 62</span> 
+<span class='line'> 63</span> </span><span class="WHIT">  </span><span class="COMM">// If the path is a YouTube path, then return true.</span><span class="WHIT">
+<span class='line'> 64</span> </span><span class="WHIT">  </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">file.path.search</span><span class="PUNC">(</span><span class="REGX">/^http(s)?\:\/\/(www\.)?youtube\.com/i</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 65</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 66</span> 
+<span class='line'> 67</span> </span><span class="COMM">/**
+<span class='line'> 68</span>  * Return the ID for a provided media file.
+<span class='line'> 69</span>  *
+<span class='line'> 70</span>  * @param {object} file A {@link minplayer.file} object.
+<span class='line'> 71</span>  * @return {string} The ID for the provided media.
+<span class='line'> 72</span>  */</span><span class="WHIT">
+<span class='line'> 73</span> </span><span class="NAME">minplayer.players.youtube.getMediaId</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">file</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 74</span> </span><span class="WHIT">  </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">reg</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="REGX">/^http[s]?\:\/\/(www\.)?youtube\.com\/watch\?v=([a-zA-Z0-9_\-]+)/i</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 75</span> </span><span class="WHIT">  </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">file.path.search</span><span class="PUNC">(</span><span class="NAME">reg</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 76</span> </span><span class="WHIT">    </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">file.path.match</span><span class="PUNC">(</span><span class="NAME">reg</span><span class="PUNC">)</span><span class="PUNC">[</span><span class="NUMB">2</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 77</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'> 78</span> </span><span class="WHIT">  </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 79</span> </span><span class="WHIT">    </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">file.path</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 80</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'> 81</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 82</span> 
+<span class='line'> 83</span> </span><span class="COMM">/**
+<span class='line'> 84</span>  * Returns a preview image for this media player.
+<span class='line'> 85</span>  *
+<span class='line'> 86</span>  * @param {object} file A {@link minplayer.file} object.
+<span class='line'> 87</span>  * @param {string} type The type of image.
+<span class='line'> 88</span>  * @param {function} callback Called when the image is retrieved.
+<span class='line'> 89</span>  */</span><span class="WHIT">
+<span class='line'> 90</span> </span><span class="NAME">minplayer.players.youtube.getImage</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">file</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">type</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">callback</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 91</span> </span><span class="WHIT">  </span><span class="NAME">type</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">type</span><span class="WHIT"> </span><span class="PUNC">==</span><span class="WHIT"> </span><span class="STRN">'thumbnail'</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="STRN">'1'</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="STRN">'0'</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 92</span> </span><span class="WHIT">  </span><span class="NAME">callback</span><span class="PUNC">(</span><span class="STRN">'http://img.youtube.com/vi/'</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">file.id</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">'/'</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">type</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">'.jpg'</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 93</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 94</span> 
+<span class='line'> 95</span> </span><span class="COMM">/**
+<span class='line'> 96</span>  * Translates the player state for the YouTube API player.
+<span class='line'> 97</span>  *
+<span class='line'> 98</span>  * @param {number} playerState The YouTube player state.
+<span class='line'> 99</span>  */</span><span class="WHIT">
+<span class='line'>100</span> </span><span class="NAME">minplayer.players.youtube.prototype.setPlayerState</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">playerState</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>101</span> </span><span class="WHIT">  </span><span class="KEYW">switch</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">playerState</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>102</span> </span><span class="WHIT">    </span><span class="KEYW">case</span><span class="WHIT"> </span><span class="NAME">YT.PlayerState.CUED</span><span class="PUNC">:</span><span class="WHIT">
+<span class='line'>103</span> </span><span class="WHIT">      </span><span class="KEYW">break</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>104</span> </span><span class="WHIT">    </span><span class="KEYW">case</span><span class="WHIT"> </span><span class="NAME">YT.PlayerState.BUFFERING</span><span class="PUNC">:</span><span class="WHIT">
+<span class='line'>105</span> </span><span class="WHIT">      </span><span class="NAME">this.onWaiting</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>106</span> </span><span class="WHIT">      </span><span class="KEYW">break</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>107</span> </span><span class="WHIT">    </span><span class="KEYW">case</span><span class="WHIT"> </span><span class="NAME">YT.PlayerState.PAUSED</span><span class="PUNC">:</span><span class="WHIT">
+<span class='line'>108</span> </span><span class="WHIT">      </span><span class="NAME">this.onPaused</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>109</span> </span><span class="WHIT">      </span><span class="KEYW">break</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>110</span> </span><span class="WHIT">    </span><span class="KEYW">case</span><span class="WHIT"> </span><span class="NAME">YT.PlayerState.PLAYING</span><span class="PUNC">:</span><span class="WHIT">
+<span class='line'>111</span> </span><span class="WHIT">      </span><span class="NAME">this.onPlaying</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>112</span> </span><span class="WHIT">      </span><span class="KEYW">break</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>113</span> </span><span class="WHIT">    </span><span class="KEYW">case</span><span class="WHIT"> </span><span class="NAME">YT.PlayerState.ENDED</span><span class="PUNC">:</span><span class="WHIT">
+<span class='line'>114</span> </span><span class="WHIT">      </span><span class="NAME">this.onComplete</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>115</span> </span><span class="WHIT">      </span><span class="KEYW">break</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>116</span> </span><span class="WHIT">    </span><span class="KEYW">default</span><span class="PUNC">:</span><span class="WHIT">
+<span class='line'>117</span> </span><span class="WHIT">      </span><span class="KEYW">break</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>118</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>119</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>120</span> 
+<span class='line'>121</span> </span><span class="COMM">/**
+<span class='line'>122</span>  * Called when an error occurs.
+<span class='line'>123</span>  *
+<span class='line'>124</span>  * @param {string} event The onReady event that was triggered.
+<span class='line'>125</span>  */</span><span class="WHIT">
+<span class='line'>126</span> </span><span class="NAME">minplayer.players.youtube.prototype.onReady</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">event</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>127</span> </span><span class="WHIT">  </span><span class="NAME">minplayer.players.base.prototype.onReady.call</span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>128</span> </span><span class="WHIT">  </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">this.options.autoplay</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>129</span> </span><span class="WHIT">    </span><span class="NAME">this.pause</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>130</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>131</span> </span><span class="WHIT">  </span><span class="NAME">this.onLoaded</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>132</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>133</span> 
+<span class='line'>134</span> </span><span class="COMM">/**
+<span class='line'>135</span>  * Checks to see if this player can be found.
+<span class='line'>136</span>  * @return {bool} TRUE - Player is found, FALSE - otherwise.
+<span class='line'>137</span>  */</span><span class="WHIT">
+<span class='line'>138</span> </span><span class="NAME">minplayer.players.youtube.prototype.playerFound</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>139</span> </span><span class="WHIT">  </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">id</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">'iframe#'</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">this.options.id</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">'-player.youtube-player'</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>140</span> </span><span class="WHIT">  </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">iframe</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.display.find</span><span class="PUNC">(</span><span class="NAME">id</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>141</span> </span><span class="WHIT">  </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">iframe.length</span><span class="WHIT"> </span><span class="PUNC">></span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>142</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>143</span> 
+<span class='line'>144</span> </span><span class="COMM">/**
+<span class='line'>145</span>  * Called when the player state changes.
+<span class='line'>146</span>  *
+<span class='line'>147</span>  * @param {object} event A JavaScript Event.
+<span class='line'>148</span>  */</span><span class="WHIT">
+<span class='line'>149</span> </span><span class="NAME">minplayer.players.youtube.prototype.onPlayerStateChange</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">event</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>150</span> </span><span class="WHIT">  </span><span class="NAME">this.setPlayerState</span><span class="PUNC">(</span><span class="NAME">event.data</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>151</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>152</span> 
+<span class='line'>153</span> </span><span class="COMM">/**
+<span class='line'>154</span>  * Called when the player quality changes.
+<span class='line'>155</span>  *
+<span class='line'>156</span>  * @param {string} newQuality The new quality for the change.
+<span class='line'>157</span>  */</span><span class="WHIT">
+<span class='line'>158</span> </span><span class="NAME">minplayer.players.youtube.prototype.onQualityChange</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">newQuality</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>159</span> </span><span class="WHIT">  </span><span class="NAME">this.quality</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">newQuality.data</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>160</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>161</span> 
+<span class='line'>162</span> </span><span class="COMM">/**
+<span class='line'>163</span>  * Determines if the player should show the playloader.
+<span class='line'>164</span>  *
+<span class='line'>165</span>  * @param {string} preview The preview image.
+<span class='line'>166</span>  * @return {bool} If this player implements its own playLoader.
+<span class='line'>167</span>  */</span><span class="WHIT">
+<span class='line'>168</span> </span><span class="NAME">minplayer.players.youtube.prototype.hasPlayLoader</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">preview</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>169</span> </span><span class="WHIT">  </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">minplayer.hasTouch</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="PUNC">!</span><span class="NAME">preview</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>170</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>171</span> 
+<span class='line'>172</span> </span><span class="COMM">/**
+<span class='line'>173</span>  * Determines if the player should show the controller.
+<span class='line'>174</span>  *
+<span class='line'>175</span>  * @return {bool} If this player implements its own playLoader.
+<span class='line'>176</span>  */</span><span class="WHIT">
+<span class='line'>177</span> </span><span class="NAME">minplayer.players.youtube.prototype.hasController</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>178</span> </span><span class="WHIT">  </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">minplayer.isIDevice</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>179</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>180</span> 
+<span class='line'>181</span> </span><span class="COMM">/**
+<span class='line'>182</span>  * @see minplayer.players.base#create
+<span class='line'>183</span>  * @return {object} The media player entity.
+<span class='line'>184</span>  */</span><span class="WHIT">
+<span class='line'>185</span> </span><span class="NAME">minplayer.players.youtube.prototype.create</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>186</span> </span><span class="WHIT">  </span><span class="NAME">minplayer.players.base.prototype.create.call</span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>187</span> 
+<span class='line'>188</span> </span><span class="WHIT">  </span><span class="COMM">// Insert the YouTube iframe API player.</span><span class="WHIT">
+<span class='line'>189</span> </span><span class="WHIT">  </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">tag</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">document.createElement</span><span class="PUNC">(</span><span class="STRN">'script'</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>190</span> </span><span class="WHIT">  </span><span class="NAME">tag.src</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">'https://www.youtube.com/player_api'</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>191</span> </span><span class="WHIT">  </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">firstScriptTag</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">document.getElementsByTagName</span><span class="PUNC">(</span><span class="STRN">'script'</span><span class="PUNC">)</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>192</span> </span><span class="WHIT">  </span><span class="NAME">firstScriptTag.parentNode.insertBefore</span><span class="PUNC">(</span><span class="NAME">tag</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">firstScriptTag</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>193</span> 
+<span class='line'>194</span> </span><span class="WHIT">  </span><span class="COMM">// Get the player ID.</span><span class="WHIT">
+<span class='line'>195</span> </span><span class="WHIT">  </span><span class="NAME">this.playerId</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.options.id</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">'-player'</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>196</span> 
+<span class='line'>197</span> </span><span class="WHIT">  </span><span class="COMM">// Poll until the YouTube API is ready.</span><span class="WHIT">
+<span class='line'>198</span> </span><span class="WHIT">  </span><span class="NAME">this.poll</span><span class="PUNC">(</span><span class="PUNC">(</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">player</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>199</span> </span><span class="WHIT">    </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>200</span> </span><span class="WHIT">      </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">ready</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">jQuery</span><span class="PUNC">(</span><span class="STRN">'#'</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">player.playerId</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">length</span><span class="WHIT"> </span><span class="PUNC">></span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>201</span> </span><span class="WHIT">      </span><span class="NAME">ready</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">ready</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="STRN">'YT'</span><span class="WHIT"> </span><span class="KEYW">in</span><span class="WHIT"> </span><span class="NAME">window</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>202</span> </span><span class="WHIT">      </span><span class="NAME">ready</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">ready</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">YT.Player</span><span class="WHIT"> </span><span class="PUNC">==</span><span class="WHIT"> </span><span class="STRN">'function'</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>203</span> </span><span class="WHIT">      </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">ready</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>204</span> </span><span class="WHIT">        </span><span class="COMM">// Determine the origin of this script.</span><span class="WHIT">
+<span class='line'>205</span> </span><span class="WHIT">        </span><span class="NAME">jQuery</span><span class="PUNC">(</span><span class="STRN">'#'</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">player.playerId</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">addClass</span><span class="PUNC">(</span><span class="STRN">'youtube-player'</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>206</span> </span><span class="WHIT">        </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">origin</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">location.protocol</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>207</span> </span><span class="WHIT">        </span><span class="NAME">origin</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">'//'</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">location.hostname</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>208</span> </span><span class="WHIT">        </span><span class="NAME">origin</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">location.port</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="STRN">':'</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">location.port</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>209</span> 
+<span class='line'>210</span> </span><span class="WHIT">        </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">playerVars</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>211</span> </span><span class="WHIT">        </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">minplayer.isIDevice</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>212</span> </span><span class="WHIT">          </span><span class="NAME">playerVars.origin</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">origin</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>213</span> </span><span class="WHIT">        </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>214</span> </span><span class="WHIT">        </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>215</span> </span><span class="WHIT">          </span><span class="NAME">playerVars</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>216</span> </span><span class="WHIT">            </span><span class="NAME">enablejsapi</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">minplayer.isIDevice</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NUMB">1</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'>217</span> </span><span class="WHIT">            </span><span class="NAME">origin</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">origin</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'>218</span> </span><span class="WHIT">            </span><span class="NAME">wmode</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="STRN">'opaque'</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'>219</span> </span><span class="WHIT">            </span><span class="NAME">controls</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">minplayer.isAndroid</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="NUMB">1</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="WHIT">
+<span class='line'>220</span> </span><span class="WHIT">          </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>221</span> </span><span class="WHIT">        </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>222</span> 
+<span class='line'>223</span> </span><span class="WHIT">        </span><span class="COMM">// Create the player.</span><span class="WHIT">
+<span class='line'>224</span> </span><span class="WHIT">        </span><span class="NAME">player.player</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">new</span><span class="WHIT"> </span><span class="NAME">YT.Player</span><span class="PUNC">(</span><span class="NAME">player.playerId</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>225</span> </span><span class="WHIT">          </span><span class="NAME">height</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="STRN">'100%'</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'>226</span> </span><span class="WHIT">          </span><span class="NAME">width</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="STRN">'100%'</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'>227</span> </span><span class="WHIT">          </span><span class="NAME">frameborder</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'>228</span> </span><span class="WHIT">          </span><span class="NAME">videoId</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">player.mediaFile.id</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'>229</span> </span><span class="WHIT">          </span><span class="NAME">playerVars</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">playerVars</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'>230</span> </span><span class="WHIT">          </span><span class="NAME">events</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>231</span> </span><span class="WHIT">            </span><span class="STRN">'onReady'</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">event</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>232</span> </span><span class="WHIT">              </span><span class="NAME">player.onReady</span><span class="PUNC">(</span><span class="NAME">event</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>233</span> </span><span class="WHIT">            </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'>234</span> </span><span class="WHIT">            </span><span class="STRN">'onStateChange'</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">event</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>235</span> </span><span class="WHIT">              </span><span class="NAME">player.onPlayerStateChange</span><span class="PUNC">(</span><span class="NAME">event</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>236</span> </span><span class="WHIT">            </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'>237</span> </span><span class="WHIT">            </span><span class="STRN">'onPlaybackQualityChange'</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">newQuality</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>238</span> </span><span class="WHIT">              </span><span class="NAME">player.onQualityChange</span><span class="PUNC">(</span><span class="NAME">newQuality</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>239</span> </span><span class="WHIT">            </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'>240</span> </span><span class="WHIT">            </span><span class="STRN">'onError'</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">errorCode</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>241</span> </span><span class="WHIT">              </span><span class="NAME">player.onError</span><span class="PUNC">(</span><span class="NAME">errorCode</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>242</span> </span><span class="WHIT">            </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>243</span> </span><span class="WHIT">          </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>244</span> </span><span class="WHIT">        </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>245</span> </span><span class="WHIT">      </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>246</span> </span><span class="WHIT">      </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="PUNC">!</span><span class="NAME">ready</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>247</span> </span><span class="WHIT">    </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>248</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NUMB">200</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>249</span> 
+<span class='line'>250</span> </span><span class="WHIT">  </span><span class="COMM">// Return the player.</span><span class="WHIT">
+<span class='line'>251</span> </span><span class="WHIT">  </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">jQuery</span><span class="PUNC">(</span><span class="NAME">document.createElement</span><span class="PUNC">(</span><span class="STRN">'div'</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">attr</span><span class="PUNC">(</span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>252</span> </span><span class="WHIT">    </span><span class="NAME">id</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">this.playerId</span><span class="WHIT">
+<span class='line'>253</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>254</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>255</span> 
+<span class='line'>256</span> </span><span class="COMM">/**
+<span class='line'>257</span>  * @see minplayer.players.base#load
+<span class='line'>258</span>  * @return {boolean} If this action was performed.
+<span class='line'>259</span>  */</span><span class="WHIT">
+<span class='line'>260</span> </span><span class="NAME">minplayer.players.youtube.prototype.load</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">file</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>261</span> </span><span class="WHIT">  </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">minplayer.players.base.prototype.load.call</span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">file</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>262</span> </span><span class="WHIT">    </span><span class="NAME">this.player.loadVideoById</span><span class="PUNC">(</span><span class="NAME">file.id</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">this.quality</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>263</span> </span><span class="WHIT">    </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">true</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>264</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>265</span> 
+<span class='line'>266</span> </span><span class="WHIT">  </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">false</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>267</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>268</span> 
+<span class='line'>269</span> </span><span class="COMM">/**
+<span class='line'>270</span>  * @see minplayer.players.base#play
+<span class='line'>271</span>  * @return {boolean} If this action was performed.
+<span class='line'>272</span>  */</span><span class="WHIT">
+<span class='line'>273</span> </span><span class="NAME">minplayer.players.youtube.prototype.play</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>274</span> </span><span class="WHIT">  </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">minplayer.players.base.prototype.play.call</span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>275</span> </span><span class="WHIT">    </span><span class="NAME">this.onWaiting</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>276</span> </span><span class="WHIT">    </span><span class="NAME">this.player.playVideo</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>277</span> </span><span class="WHIT">    </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">true</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>278</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>279</span> 
+<span class='line'>280</span> </span><span class="WHIT">  </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">false</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>281</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>282</span> 
+<span class='line'>283</span> </span><span class="COMM">/**
+<span class='line'>284</span>  * @see minplayer.players.base#pause
+<span class='line'>285</span>  * @return {boolean} If this action was performed.
+<span class='line'>286</span>  */</span><span class="WHIT">
+<span class='line'>287</span> </span><span class="NAME">minplayer.players.youtube.prototype.pause</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>288</span> </span><span class="WHIT">  </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">minplayer.players.base.prototype.pause.call</span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>289</span> </span><span class="WHIT">    </span><span class="NAME">this.player.pauseVideo</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>290</span> </span><span class="WHIT">    </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">true</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>291</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>292</span> 
+<span class='line'>293</span> </span><span class="WHIT">  </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">false</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>294</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>295</span> 
+<span class='line'>296</span> </span><span class="COMM">/**
+<span class='line'>297</span>  * @see minplayer.players.base#stop
+<span class='line'>298</span>  * @return {boolean} If this action was performed.
+<span class='line'>299</span>  */</span><span class="WHIT">
+<span class='line'>300</span> </span><span class="NAME">minplayer.players.youtube.prototype.stop</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>301</span> </span><span class="WHIT">  </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">minplayer.players.base.prototype.stop.call</span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>302</span> </span><span class="WHIT">    </span><span class="NAME">this.player.stopVideo</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>303</span> </span><span class="WHIT">    </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">true</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>304</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>305</span> 
+<span class='line'>306</span> </span><span class="WHIT">  </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">false</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>307</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>308</span> 
+<span class='line'>309</span> </span><span class="COMM">/**
+<span class='line'>310</span>  * @see minplayer.players.base#seek
+<span class='line'>311</span>  * @return {boolean} If this action was performed.
+<span class='line'>312</span>  */</span><span class="WHIT">
+<span class='line'>313</span> </span><span class="NAME">minplayer.players.youtube.prototype.seek</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">pos</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>314</span> </span><span class="WHIT">  </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">minplayer.players.base.prototype.seek.call</span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">pos</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>315</span> </span><span class="WHIT">    </span><span class="NAME">this.onWaiting</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>316</span> </span><span class="WHIT">    </span><span class="NAME">this.player.seekTo</span><span class="PUNC">(</span><span class="NAME">pos</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="KEYW">true</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>317</span> </span><span class="WHIT">    </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">true</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>318</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>319</span> 
+<span class='line'>320</span> </span><span class="WHIT">  </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">false</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>321</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>322</span> 
+<span class='line'>323</span> </span><span class="COMM">/**
+<span class='line'>324</span>  * @see minplayer.players.base#setVolume
+<span class='line'>325</span>  * @return {boolean} If this action was performed.
+<span class='line'>326</span>  */</span><span class="WHIT">
+<span class='line'>327</span> </span><span class="NAME">minplayer.players.youtube.prototype.setVolume</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">vol</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>328</span> </span><span class="WHIT">  </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">minplayer.players.base.prototype.setVolume.call</span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">vol</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>329</span> </span><span class="WHIT">    </span><span class="NAME">this.player.setVolume</span><span class="PUNC">(</span><span class="NAME">vol</span><span class="WHIT"> </span><span class="PUNC">*</span><span class="WHIT"> </span><span class="NUMB">100</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>330</span> </span><span class="WHIT">    </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">true</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>331</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>332</span> 
+<span class='line'>333</span> </span><span class="WHIT">  </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">false</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>334</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>335</span> 
+<span class='line'>336</span> </span><span class="COMM">/**
+<span class='line'>337</span>  * @see minplayer.players.base#getVolume
+<span class='line'>338</span>  */</span><span class="WHIT">
+<span class='line'>339</span> </span><span class="NAME">minplayer.players.youtube.prototype.getVolume</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">callback</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>340</span> </span><span class="WHIT">  </span><span class="NAME">this.getValue</span><span class="PUNC">(</span><span class="STRN">'getVolume'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">callback</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>341</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>342</span> 
+<span class='line'>343</span> </span><span class="COMM">/**
+<span class='line'>344</span>  * @see minplayer.players.base#getDuration.
+<span class='line'>345</span>  */</span><span class="WHIT">
+<span class='line'>346</span> </span><span class="NAME">minplayer.players.youtube.prototype.getDuration</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">callback</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>347</span> </span><span class="WHIT">  </span><span class="NAME">this.getValue</span><span class="PUNC">(</span><span class="STRN">'getDuration'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">callback</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>348</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>349</span> 
+<span class='line'>350</span> </span><span class="COMM">/**
+<span class='line'>351</span>  * @see minplayer.players.base#getCurrentTime
+<span class='line'>352</span>  */</span><span class="WHIT">
+<span class='line'>353</span> </span><span class="NAME">minplayer.players.youtube.prototype.getCurrentTime</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">callback</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>354</span> </span><span class="WHIT">  </span><span class="NAME">this.getValue</span><span class="PUNC">(</span><span class="STRN">'getCurrentTime'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">callback</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>355</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>356</span> 
+<span class='line'>357</span> </span><span class="COMM">/**
+<span class='line'>358</span>  * @see minplayer.players.base#getBytesStart.
+<span class='line'>359</span>  */</span><span class="WHIT">
+<span class='line'>360</span> </span><span class="NAME">minplayer.players.youtube.prototype.getBytesStart</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">callback</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>361</span> </span><span class="WHIT">  </span><span class="NAME">this.getValue</span><span class="PUNC">(</span><span class="STRN">'getVideoStartBytes'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">callback</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>362</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>363</span> 
+<span class='line'>364</span> </span><span class="COMM">/**
+<span class='line'>365</span>  * @see minplayer.players.base#getBytesLoaded.
+<span class='line'>366</span>  */</span><span class="WHIT">
+<span class='line'>367</span> </span><span class="NAME">minplayer.players.youtube.prototype.getBytesLoaded</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">callback</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>368</span> </span><span class="WHIT">  </span><span class="NAME">this.getValue</span><span class="PUNC">(</span><span class="STRN">'getVideoBytesLoaded'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">callback</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>369</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>370</span> 
+<span class='line'>371</span> </span><span class="COMM">/**
+<span class='line'>372</span>  * @see minplayer.players.base#getBytesTotal.
+<span class='line'>373</span>  */</span><span class="WHIT">
+<span class='line'>374</span> </span><span class="NAME">minplayer.players.youtube.prototype.getBytesTotal</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">callback</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>375</span> </span><span class="WHIT">  </span><span class="NAME">this.getValue</span><span class="PUNC">(</span><span class="STRN">'getVideoBytesTotal'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">callback</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>376</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>377</span> </span></pre></body></html>
\ No newline at end of file
diff --git a/public/admin/js/osmplayer/doc/symbols/src/minplayer_src_minplayer.plugin.js.html b/public/admin/js/osmplayer/doc/symbols/src/minplayer_src_minplayer.plugin.js.html
new file mode 100644
index 00000000000..0201da4e629
--- /dev/null
+++ b/public/admin/js/osmplayer/doc/symbols/src/minplayer_src_minplayer.plugin.js.html
@@ -0,0 +1,639 @@
+<html><head><meta http-equiv="content-type" content="text/html; charset=utf-8"> <style>
+	.KEYW {color: #933;}
+	.COMM {color: #bbb; font-style: italic;}
+	.NUMB {color: #393;}
+	.STRN {color: #393;}
+	.REGX {color: #339;}
+	.line {border-right: 1px dotted #666; color: #666; font-style: normal;}
+	</style></head><body><pre><span class='line'>  1</span> <span class="COMM">/** The minplayer namespace. */</span><span class="WHIT">
+<span class='line'>  2</span> </span><span class="NAME">minplayer</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">minplayer</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>  3</span> 
+<span class='line'>  4</span> </span><span class="COMM">/** Static array to keep track of all plugins. */</span><span class="WHIT">
+<span class='line'>  5</span> </span><span class="NAME">minplayer.plugins</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">minplayer.plugins</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>  6</span> 
+<span class='line'>  7</span> </span><span class="COMM">/** Static array to keep track of queues. */</span><span class="WHIT">
+<span class='line'>  8</span> </span><span class="NAME">minplayer.queue</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">minplayer.queue</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>  9</span> 
+<span class='line'> 10</span> </span><span class="COMM">/** Mutex lock to keep multiple triggers from occuring. */</span><span class="WHIT">
+<span class='line'> 11</span> </span><span class="NAME">minplayer.lock</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">false</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 12</span> 
+<span class='line'> 13</span> </span><span class="COMM">/**
+<span class='line'> 14</span>  * @constructor
+<span class='line'> 15</span>  * @class The base class for all plugins.
+<span class='line'> 16</span>  *
+<span class='line'> 17</span>  * @param {string} name The name of this plugin.
+<span class='line'> 18</span>  * @param {object} context The jQuery context.
+<span class='line'> 19</span>  * @param {object} options This components options.
+<span class='line'> 20</span>  * @param {object} queue The event queue to pass events around.
+<span class='line'> 21</span>  */</span><span class="WHIT">
+<span class='line'> 22</span> </span><span class="NAME">minplayer.plugin</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">name</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">context</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">options</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">queue</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 23</span> 
+<span class='line'> 24</span> </span><span class="WHIT">  </span><span class="COMM">/** The name of this plugin. */</span><span class="WHIT">
+<span class='line'> 25</span> </span><span class="WHIT">  </span><span class="NAME">this.name</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">name</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 26</span> 
+<span class='line'> 27</span> </span><span class="WHIT">  </span><span class="COMM">/** The ready flag. */</span><span class="WHIT">
+<span class='line'> 28</span> </span><span class="WHIT">  </span><span class="NAME">this.pluginReady</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">false</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 29</span> 
+<span class='line'> 30</span> </span><span class="WHIT">  </span><span class="COMM">/** The options for this plugin. */</span><span class="WHIT">
+<span class='line'> 31</span> </span><span class="WHIT">  </span><span class="NAME">this.options</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">options</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 32</span> 
+<span class='line'> 33</span> </span><span class="WHIT">  </span><span class="COMM">/** The event queue. */</span><span class="WHIT">
+<span class='line'> 34</span> </span><span class="WHIT">  </span><span class="NAME">this.queue</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">queue</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 35</span> 
+<span class='line'> 36</span> </span><span class="WHIT">  </span><span class="COMM">/** Keep track of already triggered events. */</span><span class="WHIT">
+<span class='line'> 37</span> </span><span class="WHIT">  </span><span class="NAME">this.triggered</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 38</span> 
+<span class='line'> 39</span> </span><span class="WHIT">  </span><span class="COMM">/** Create a queue lock. */</span><span class="WHIT">
+<span class='line'> 40</span> </span><span class="WHIT">  </span><span class="NAME">this.lock</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">false</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 41</span> 
+<span class='line'> 42</span> </span><span class="WHIT">  </span><span class="COMM">// Only call the constructor if we have a context.</span><span class="WHIT">
+<span class='line'> 43</span> </span><span class="WHIT">  </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">context</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 44</span> 
+<span class='line'> 45</span> </span><span class="WHIT">    </span><span class="COMM">/** Say that we are active. */</span><span class="WHIT">
+<span class='line'> 46</span> </span><span class="WHIT">    </span><span class="NAME">this.active</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">true</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 47</span> 
+<span class='line'> 48</span> </span><span class="WHIT">    </span><span class="COMM">/** Keep track of the context. */</span><span class="WHIT">
+<span class='line'> 49</span> </span><span class="WHIT">    </span><span class="NAME">this.context</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">jQuery</span><span class="PUNC">(</span><span class="NAME">context</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 50</span> 
+<span class='line'> 51</span> </span><span class="WHIT">    </span><span class="COMM">// Construct this plugin.</span><span class="WHIT">
+<span class='line'> 52</span> </span><span class="WHIT">    </span><span class="NAME">this.construct</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 53</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'> 54</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 55</span> 
+<span class='line'> 56</span> </span><span class="COMM">/**
+<span class='line'> 57</span>  * The constructor which is called once the context is set.
+<span class='line'> 58</span>  * Any class deriving from the plugin class should place all context
+<span class='line'> 59</span>  * dependant functionality within this function instead of the standard
+<span class='line'> 60</span>  * constructor function since it is called on object derivation as well
+<span class='line'> 61</span>  * as object creation.
+<span class='line'> 62</span>  */</span><span class="WHIT">
+<span class='line'> 63</span> </span><span class="NAME">minplayer.plugin.prototype.construct</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 64</span> 
+<span class='line'> 65</span> </span><span class="WHIT">  </span><span class="COMM">// Adds this as a plugin.</span><span class="WHIT">
+<span class='line'> 66</span> </span><span class="WHIT">  </span><span class="NAME">this.addPlugin</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 67</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 68</span> 
+<span class='line'> 69</span> </span><span class="COMM">/**
+<span class='line'> 70</span>  * Destructor.
+<span class='line'> 71</span>  */</span><span class="WHIT">
+<span class='line'> 72</span> </span><span class="NAME">minplayer.plugin.prototype.destroy</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 73</span> 
+<span class='line'> 74</span> </span><span class="WHIT">  </span><span class="COMM">// Unbind all events.</span><span class="WHIT">
+<span class='line'> 75</span> </span><span class="WHIT">  </span><span class="NAME">this.active</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">false</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 76</span> </span><span class="WHIT">  </span><span class="NAME">this.unbind</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 77</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 78</span> 
+<span class='line'> 79</span> </span><span class="COMM">/**
+<span class='line'> 80</span>  * Creates a new plugin within this context.
+<span class='line'> 81</span>  *
+<span class='line'> 82</span>  * @param {string} name The name of the plugin you wish to create.
+<span class='line'> 83</span>  * @param {object} base The base object for this plugin.
+<span class='line'> 84</span>  * @param {object} context The context which you would like to create.
+<span class='line'> 85</span>  * @return {object} The new plugin object.
+<span class='line'> 86</span>  */</span><span class="WHIT">
+<span class='line'> 87</span> </span><span class="NAME">minplayer.plugin.prototype.create</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">name</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">base</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">context</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 88</span> </span><span class="WHIT">  </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">plugin</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">null</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 89</span> 
+<span class='line'> 90</span> </span><span class="WHIT">  </span><span class="COMM">// Make sure we have a base object.</span><span class="WHIT">
+<span class='line'> 91</span> </span><span class="WHIT">  </span><span class="NAME">base</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">base</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="STRN">'minplayer'</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 92</span> </span><span class="WHIT">  </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">window</span><span class="PUNC">[</span><span class="NAME">base</span><span class="PUNC">]</span><span class="PUNC">[</span><span class="NAME">name</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 93</span> </span><span class="WHIT">    </span><span class="NAME">base</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">'minplayer'</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 94</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'> 95</span> 
+<span class='line'> 96</span> </span><span class="WHIT">  </span><span class="COMM">// Make sure there is a context.</span><span class="WHIT">
+<span class='line'> 97</span> </span><span class="WHIT">  </span><span class="NAME">context</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">context</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="NAME">this.display</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 98</span> 
+<span class='line'> 99</span> </span><span class="WHIT">  </span><span class="COMM">// See if this plugin exists within this object.</span><span class="WHIT">
+<span class='line'>100</span> </span><span class="WHIT">  </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">window</span><span class="PUNC">[</span><span class="NAME">base</span><span class="PUNC">]</span><span class="PUNC">[</span><span class="NAME">name</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>101</span> 
+<span class='line'>102</span> </span><span class="WHIT">    </span><span class="COMM">// Set the plugin.</span><span class="WHIT">
+<span class='line'>103</span> </span><span class="WHIT">    </span><span class="NAME">plugin</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">window</span><span class="PUNC">[</span><span class="NAME">base</span><span class="PUNC">]</span><span class="PUNC">[</span><span class="NAME">name</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>104</span> 
+<span class='line'>105</span> </span><span class="WHIT">    </span><span class="COMM">// See if a template version of the plugin exists.</span><span class="WHIT">
+<span class='line'>106</span> </span><span class="WHIT">    </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">plugin</span><span class="PUNC">[</span><span class="NAME">this.options.template</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>107</span> 
+<span class='line'>108</span> </span><span class="WHIT">      </span><span class="NAME">plugin</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">plugin</span><span class="PUNC">[</span><span class="NAME">this.options.template</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>109</span> </span><span class="WHIT">    </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>110</span> 
+<span class='line'>111</span> </span><span class="WHIT">    </span><span class="COMM">// Make sure the plugin is a function.</span><span class="WHIT">
+<span class='line'>112</span> </span><span class="WHIT">    </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">plugin</span><span class="WHIT"> </span><span class="PUNC">!==</span><span class="WHIT"> </span><span class="STRN">'function'</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>113</span> </span><span class="WHIT">      </span><span class="NAME">plugin</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">window</span><span class="PUNC">[</span><span class="STRN">'minplayer'</span><span class="PUNC">]</span><span class="PUNC">[</span><span class="NAME">name</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>114</span> </span><span class="WHIT">    </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>115</span> 
+<span class='line'>116</span> </span><span class="WHIT">    </span><span class="COMM">// Make sure it is a function.</span><span class="WHIT">
+<span class='line'>117</span> </span><span class="WHIT">    </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">plugin</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="STRN">'function'</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>118</span> </span><span class="WHIT">      </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">new</span><span class="WHIT"> </span><span class="NAME">plugin</span><span class="PUNC">(</span><span class="NAME">context</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">this.options</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>119</span> </span><span class="WHIT">    </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>120</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>121</span> 
+<span class='line'>122</span> </span><span class="WHIT">  </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">null</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>123</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>124</span> 
+<span class='line'>125</span> </span><span class="COMM">/**
+<span class='line'>126</span>  * Plugins should call this method when they are ready.
+<span class='line'>127</span>  */</span><span class="WHIT">
+<span class='line'>128</span> </span><span class="NAME">minplayer.plugin.prototype.ready</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>129</span> 
+<span class='line'>130</span> </span><span class="WHIT">  </span><span class="COMM">// Keep this plugin from triggering multiple ready events.</span><span class="WHIT">
+<span class='line'>131</span> </span><span class="WHIT">  </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">this.pluginReady</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>132</span> 
+<span class='line'>133</span> </span><span class="WHIT">    </span><span class="COMM">// Set the ready flag.</span><span class="WHIT">
+<span class='line'>134</span> </span><span class="WHIT">    </span><span class="NAME">this.pluginReady</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">true</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>135</span> 
+<span class='line'>136</span> </span><span class="WHIT">    </span><span class="COMM">// Now trigger that I am ready.</span><span class="WHIT">
+<span class='line'>137</span> </span><span class="WHIT">    </span><span class="NAME">this.trigger</span><span class="PUNC">(</span><span class="STRN">'ready'</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>138</span> 
+<span class='line'>139</span> </span><span class="WHIT">    </span><span class="COMM">// Check the queue.</span><span class="WHIT">
+<span class='line'>140</span> </span><span class="WHIT">    </span><span class="NAME">this.checkQueue</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>141</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>142</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>143</span> 
+<span class='line'>144</span> </span><span class="COMM">/**
+<span class='line'>145</span>  * Returns if this component is valid.
+<span class='line'>146</span>  *
+<span class='line'>147</span>  * @return {boolean} TRUE if the plugin display is valid.
+<span class='line'>148</span>  */</span><span class="WHIT">
+<span class='line'>149</span> </span><span class="NAME">minplayer.plugin.prototype.isValid</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>150</span> </span><span class="WHIT">  </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="PUNC">!</span><span class="PUNC">!</span><span class="NAME">this.options.id</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">this.active</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>151</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>152</span> 
+<span class='line'>153</span> </span><span class="COMM">/**
+<span class='line'>154</span>  * Adds a new plugin to this player.
+<span class='line'>155</span>  *
+<span class='line'>156</span>  * @param {string} name The name of this plugin.
+<span class='line'>157</span>  * @param {object} plugin A new plugin object, derived from media.plugin.
+<span class='line'>158</span>  */</span><span class="WHIT">
+<span class='line'>159</span> </span><span class="NAME">minplayer.plugin.prototype.addPlugin</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">name</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">plugin</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>160</span> </span><span class="WHIT">  </span><span class="NAME">name</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">name</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="NAME">this.name</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>161</span> </span><span class="WHIT">  </span><span class="NAME">plugin</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">plugin</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="KEYW">this</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>162</span> 
+<span class='line'>163</span> </span><span class="WHIT">  </span><span class="COMM">// Make sure the plugin is valid.</span><span class="WHIT">
+<span class='line'>164</span> </span><span class="WHIT">  </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">plugin.isValid</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>165</span> 
+<span class='line'>166</span> </span><span class="WHIT">    </span><span class="COMM">// If the plugins for this instance do not exist.</span><span class="WHIT">
+<span class='line'>167</span> </span><span class="WHIT">    </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">minplayer.plugins</span><span class="PUNC">[</span><span class="NAME">this.options.id</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>168</span> 
+<span class='line'>169</span> </span><span class="WHIT">      </span><span class="COMM">// Initialize the plugins.</span><span class="WHIT">
+<span class='line'>170</span> </span><span class="WHIT">      </span><span class="NAME">minplayer.plugins</span><span class="PUNC">[</span><span class="NAME">this.options.id</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>171</span> </span><span class="WHIT">    </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>172</span> 
+<span class='line'>173</span> </span><span class="WHIT">    </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">minplayer.plugins</span><span class="PUNC">[</span><span class="NAME">this.options.id</span><span class="PUNC">]</span><span class="PUNC">[</span><span class="NAME">name</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>174</span> 
+<span class='line'>175</span> </span><span class="WHIT">      </span><span class="COMM">// Add the plugins array.</span><span class="WHIT">
+<span class='line'>176</span> </span><span class="WHIT">      </span><span class="NAME">minplayer.plugins</span><span class="PUNC">[</span><span class="NAME">this.options.id</span><span class="PUNC">]</span><span class="PUNC">[</span><span class="NAME">name</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>177</span> </span><span class="WHIT">    </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>178</span> 
+<span class='line'>179</span> </span><span class="WHIT">    </span><span class="COMM">// Add this plugin.</span><span class="WHIT">
+<span class='line'>180</span> </span><span class="WHIT">    </span><span class="NAME">minplayer.plugins</span><span class="PUNC">[</span><span class="NAME">this.options.id</span><span class="PUNC">]</span><span class="PUNC">[</span><span class="NAME">name</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">push</span><span class="PUNC">(</span><span class="NAME">plugin</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>181</span> 
+<span class='line'>182</span> </span><span class="WHIT">    </span><span class="COMM">// Now check the queue for this plugin.</span><span class="WHIT">
+<span class='line'>183</span> </span><span class="WHIT">    </span><span class="NAME">this.checkQueue</span><span class="PUNC">(</span><span class="NAME">plugin</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>184</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>185</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>186</span> 
+<span class='line'>187</span> </span><span class="COMM">/**
+<span class='line'>188</span>  * Create a polling timer.
+<span class='line'>189</span>  *
+<span class='line'>190</span>  * @param {function} callback The function to call when you poll.
+<span class='line'>191</span>  * @param {integer} interval The interval you would like to poll.
+<span class='line'>192</span>  */</span><span class="WHIT">
+<span class='line'>193</span> </span><span class="NAME">minplayer.plugin.prototype.poll</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">callback</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">interval</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>194</span> </span><span class="WHIT">  </span><span class="NAME">setTimeout</span><span class="PUNC">(</span><span class="PUNC">(</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">context</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>195</span> </span><span class="WHIT">    </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="NAME">callLater</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>196</span> </span><span class="WHIT">      </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">callback.call</span><span class="PUNC">(</span><span class="NAME">context</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>197</span> </span><span class="WHIT">        </span><span class="NAME">setTimeout</span><span class="PUNC">(</span><span class="NAME">callLater</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">interval</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>198</span> </span><span class="WHIT">      </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>199</span> </span><span class="WHIT">    </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>200</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">interval</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>201</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>202</span> 
+<span class='line'>203</span> </span><span class="COMM">/**
+<span class='line'>204</span>  * Gets a plugin by name and calls callback when it is ready.
+<span class='line'>205</span>  *
+<span class='line'>206</span>  * @param {string} plugin The plugin of the plugin.
+<span class='line'>207</span>  * @param {function} callback Called when the plugin is ready.
+<span class='line'>208</span>  * @return {object} The plugin if no callback is provided.
+<span class='line'>209</span>  */</span><span class="WHIT">
+<span class='line'>210</span> </span><span class="NAME">minplayer.plugin.prototype.get</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">plugin</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">callback</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>211</span> 
+<span class='line'>212</span> </span><span class="WHIT">  </span><span class="COMM">// If they pass just a callback, then return all plugins when ready.</span><span class="WHIT">
+<span class='line'>213</span> </span><span class="WHIT">  </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">plugin</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="STRN">'function'</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>214</span> </span><span class="WHIT">    </span><span class="NAME">callback</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">plugin</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>215</span> </span><span class="WHIT">    </span><span class="NAME">plugin</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">null</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>216</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>217</span> 
+<span class='line'>218</span> </span><span class="WHIT">  </span><span class="COMM">// Return the minplayer.get equivalent.</span><span class="WHIT">
+<span class='line'>219</span> </span><span class="WHIT">  </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">minplayer.get.call</span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">this.options.id</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">plugin</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">callback</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>220</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>221</span> 
+<span class='line'>222</span> </span><span class="COMM">/**
+<span class='line'>223</span>  * Check the queue and execute it.
+<span class='line'>224</span>  *
+<span class='line'>225</span>  * @param {object} plugin The plugin object to check the queue against.
+<span class='line'>226</span>  */</span><span class="WHIT">
+<span class='line'>227</span> </span><span class="NAME">minplayer.plugin.prototype.checkQueue</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">plugin</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>228</span> 
+<span class='line'>229</span> </span><span class="WHIT">  </span><span class="COMM">// Initialize our variables.</span><span class="WHIT">
+<span class='line'>230</span> </span><span class="WHIT">  </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">q</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">null</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">check</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">false</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">newqueue</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>231</span> 
+<span class='line'>232</span> </span><span class="WHIT">  </span><span class="COMM">// Normalize the plugin variable.</span><span class="WHIT">
+<span class='line'>233</span> </span><span class="WHIT">  </span><span class="NAME">plugin</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">plugin</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="KEYW">this</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>234</span> 
+<span class='line'>235</span> </span><span class="WHIT">  </span><span class="COMM">// Set the lock.</span><span class="WHIT">
+<span class='line'>236</span> </span><span class="WHIT">  </span><span class="NAME">minplayer.lock</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">true</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>237</span> 
+<span class='line'>238</span> </span><span class="WHIT">  </span><span class="COMM">// Iterate through all the queues.</span><span class="WHIT">
+<span class='line'>239</span> </span><span class="WHIT">  </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">length</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">minplayer.queue.length</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>240</span> </span><span class="WHIT">  </span><span class="KEYW">for</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC">&lt;</span><span class="WHIT"> </span><span class="NAME">length</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">++</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>241</span> </span><span class="WHIT">    </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">minplayer.queue.hasOwnProperty</span><span class="PUNC">(</span><span class="NAME">i</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>242</span> </span><span class="WHIT">      </span><span class="COMM">// Get the queue.</span><span class="WHIT">
+<span class='line'>243</span> </span><span class="WHIT">      </span><span class="NAME">q</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">minplayer.queue</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>244</span> 
+<span class='line'>245</span> </span><span class="WHIT">      </span><span class="COMM">// Now check to see if this queue is about us.</span><span class="WHIT">
+<span class='line'>246</span> </span><span class="WHIT">      </span><span class="NAME">check</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">!</span><span class="NAME">q.id</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="PUNC">!</span><span class="NAME">q.plugin</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>247</span> </span><span class="WHIT">      </span><span class="NAME">check</span><span class="WHIT"> </span><span class="PUNC">|</span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">q.plugin</span><span class="WHIT"> </span><span class="PUNC">==</span><span class="WHIT"> </span><span class="NAME">plugin.name</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>248</span> </span><span class="WHIT">      </span><span class="NAME">check</span><span class="WHIT"> </span><span class="PUNC">&</span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">q.id</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">q.id</span><span class="WHIT"> </span><span class="PUNC">==</span><span class="WHIT"> </span><span class="NAME">this.options.id</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>249</span> 
+<span class='line'>250</span> </span><span class="WHIT">      </span><span class="COMM">// If the check passes...</span><span class="WHIT">
+<span class='line'>251</span> </span><span class="WHIT">      </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">check</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>252</span> </span><span class="WHIT">        </span><span class="NAME">check</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">minplayer.bind.call</span><span class="PUNC">(</span><span class="WHIT">
+<span class='line'>253</span> </span><span class="WHIT">          </span><span class="NAME">q.context</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'>254</span> </span><span class="WHIT">          </span><span class="NAME">q.event</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'>255</span> </span><span class="WHIT">          </span><span class="NAME">this.options.id</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'>256</span> </span><span class="WHIT">          </span><span class="NAME">plugin.name</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'>257</span> </span><span class="WHIT">          </span><span class="NAME">q.callback</span><span class="WHIT">
+<span class='line'>258</span> </span><span class="WHIT">        </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>259</span> </span><span class="WHIT">      </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>260</span> 
+<span class='line'>261</span> </span><span class="WHIT">      </span><span class="COMM">// Add the queue back if it doesn't check out.</span><span class="WHIT">
+<span class='line'>262</span> </span><span class="WHIT">      </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">check</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>263</span> 
+<span class='line'>264</span> </span><span class="WHIT">        </span><span class="COMM">// Add this back to the queue.</span><span class="WHIT">
+<span class='line'>265</span> </span><span class="WHIT">        </span><span class="NAME">newqueue.push</span><span class="PUNC">(</span><span class="NAME">q</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>266</span> </span><span class="WHIT">      </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>267</span> </span><span class="WHIT">    </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>268</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>269</span> 
+<span class='line'>270</span> </span><span class="WHIT">  </span><span class="COMM">// Set the old queue to the new queue.</span><span class="WHIT">
+<span class='line'>271</span> </span><span class="WHIT">  </span><span class="NAME">minplayer.queue</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">newqueue</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>272</span> 
+<span class='line'>273</span> </span><span class="WHIT">  </span><span class="COMM">// Release the lock.</span><span class="WHIT">
+<span class='line'>274</span> </span><span class="WHIT">  </span><span class="NAME">minplayer.lock</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">false</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>275</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>276</span> 
+<span class='line'>277</span> </span><span class="COMM">/**
+<span class='line'>278</span>  * Trigger a media event.
+<span class='line'>279</span>  *
+<span class='line'>280</span>  * @param {string} type The event type.
+<span class='line'>281</span>  * @param {object} data The event data object.
+<span class='line'>282</span>  * @return {object} The plugin object.
+<span class='line'>283</span>  */</span><span class="WHIT">
+<span class='line'>284</span> </span><span class="NAME">minplayer.plugin.prototype.trigger</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">type</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">data</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>285</span> 
+<span class='line'>286</span> </span><span class="WHIT">  </span><span class="COMM">// Don't trigger if this plugin is inactive.</span><span class="WHIT">
+<span class='line'>287</span> </span><span class="WHIT">  </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">this.active</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>288</span> </span><span class="WHIT">    </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">this</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>289</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>290</span> 
+<span class='line'>291</span> </span><span class="WHIT">  </span><span class="COMM">// Add this to our triggered array.</span><span class="WHIT">
+<span class='line'>292</span> </span><span class="WHIT">  </span><span class="NAME">this.triggered</span><span class="PUNC">[</span><span class="NAME">type</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">data</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>293</span> 
+<span class='line'>294</span> </span><span class="WHIT">  </span><span class="COMM">// Check to make sure the queue for this type exists.</span><span class="WHIT">
+<span class='line'>295</span> </span><span class="WHIT">  </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">this.queue.hasOwnProperty</span><span class="PUNC">(</span><span class="NAME">type</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>296</span> 
+<span class='line'>297</span> </span><span class="WHIT">    </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">queue</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">queuetype</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.queue</span><span class="PUNC">[</span><span class="NAME">type</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>298</span> 
+<span class='line'>299</span> </span><span class="WHIT">    </span><span class="COMM">// Iterate through all the callbacks in this queue.</span><span class="WHIT">
+<span class='line'>300</span> </span><span class="WHIT">    </span><span class="KEYW">for</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">i</span><span class="WHIT"> </span><span class="KEYW">in</span><span class="WHIT"> </span><span class="NAME">queuetype</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>301</span> 
+<span class='line'>302</span> </span><span class="WHIT">      </span><span class="COMM">// Check to make sure the queue index exists.</span><span class="WHIT">
+<span class='line'>303</span> </span><span class="WHIT">      </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">queuetype.hasOwnProperty</span><span class="PUNC">(</span><span class="NAME">i</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>304</span> 
+<span class='line'>305</span> </span><span class="WHIT">        </span><span class="COMM">// Setup the event object, and call the callback.</span><span class="WHIT">
+<span class='line'>306</span> </span><span class="WHIT">        </span><span class="NAME">queue</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">queuetype</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>307</span> </span><span class="WHIT">        </span><span class="NAME">queue.callback</span><span class="PUNC">(</span><span class="PUNC">{</span><span class="NAME">target</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">this</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">data</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">queue.data</span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">data</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>308</span> </span><span class="WHIT">      </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>309</span> </span><span class="WHIT">    </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>310</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>311</span> 
+<span class='line'>312</span> </span><span class="WHIT">  </span><span class="COMM">// Return the plugin object.</span><span class="WHIT">
+<span class='line'>313</span> </span><span class="WHIT">  </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">this</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>314</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>315</span> 
+<span class='line'>316</span> </span><span class="COMM">/**
+<span class='line'>317</span>  * Bind to a media event.
+<span class='line'>318</span>  *
+<span class='line'>319</span>  * @param {string} type The event type.
+<span class='line'>320</span>  * @param {object} data The data to bind with the event.
+<span class='line'>321</span>  * @param {function} fn The callback function.
+<span class='line'>322</span>  * @return {object} The plugin object.
+<span class='line'>323</span>  **/</span><span class="WHIT">
+<span class='line'>324</span> </span><span class="NAME">minplayer.plugin.prototype.bind</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">type</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">data</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">fn</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>325</span> 
+<span class='line'>326</span> </span><span class="WHIT">  </span><span class="COMM">// Only bind if active.</span><span class="WHIT">
+<span class='line'>327</span> </span><span class="WHIT">  </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">this.active</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>328</span> </span><span class="WHIT">    </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">this</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>329</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>330</span> 
+<span class='line'>331</span> </span><span class="WHIT">  </span><span class="COMM">// Allow the data to be the callback.</span><span class="WHIT">
+<span class='line'>332</span> </span><span class="WHIT">  </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">data</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="STRN">'function'</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>333</span> </span><span class="WHIT">    </span><span class="NAME">fn</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">data</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>334</span> </span><span class="WHIT">    </span><span class="NAME">data</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">null</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>335</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>336</span> 
+<span class='line'>337</span> </span><span class="WHIT">  </span><span class="COMM">// You must bind to a specific event and have a callback.</span><span class="WHIT">
+<span class='line'>338</span> </span><span class="WHIT">  </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">type</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="PUNC">!</span><span class="NAME">fn</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>339</span> </span><span class="WHIT">    </span><span class="KEYW">return</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>340</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>341</span> 
+<span class='line'>342</span> </span><span class="WHIT">  </span><span class="COMM">// Initialize the queue for this type.</span><span class="WHIT">
+<span class='line'>343</span> </span><span class="WHIT">  </span><span class="NAME">this.queue</span><span class="PUNC">[</span><span class="NAME">type</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.queue</span><span class="PUNC">[</span><span class="NAME">type</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>344</span> 
+<span class='line'>345</span> </span><span class="WHIT">  </span><span class="COMM">// Unbind any existing equivalent events.</span><span class="WHIT">
+<span class='line'>346</span> </span><span class="WHIT">  </span><span class="NAME">this.unbind</span><span class="PUNC">(</span><span class="NAME">type</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">fn</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>347</span> 
+<span class='line'>348</span> </span><span class="WHIT">  </span><span class="COMM">// Now add this event to the queue.</span><span class="WHIT">
+<span class='line'>349</span> </span><span class="WHIT">  </span><span class="NAME">this.queue</span><span class="PUNC">[</span><span class="NAME">type</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">push</span><span class="PUNC">(</span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>350</span> </span><span class="WHIT">    </span><span class="NAME">callback</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">fn</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'>351</span> </span><span class="WHIT">    </span><span class="NAME">data</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">data</span><span class="WHIT">
+<span class='line'>352</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>353</span> 
+<span class='line'>354</span> </span><span class="WHIT">  </span><span class="COMM">// Now see if this event has already been triggered.</span><span class="WHIT">
+<span class='line'>355</span> </span><span class="WHIT">  </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">this.triggered.hasOwnProperty</span><span class="PUNC">(</span><span class="NAME">type</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>356</span> 
+<span class='line'>357</span> </span><span class="WHIT">    </span><span class="COMM">// Go ahead and trigger the event.</span><span class="WHIT">
+<span class='line'>358</span> </span><span class="WHIT">    </span><span class="NAME">fn</span><span class="PUNC">(</span><span class="PUNC">{</span><span class="NAME">target</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">this</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">data</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">data</span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">this.triggered</span><span class="PUNC">[</span><span class="NAME">type</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>359</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>360</span> 
+<span class='line'>361</span> </span><span class="WHIT">  </span><span class="COMM">// Return the plugin.</span><span class="WHIT">
+<span class='line'>362</span> </span><span class="WHIT">  </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">this</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>363</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>364</span> 
+<span class='line'>365</span> </span><span class="COMM">/**
+<span class='line'>366</span>  * Unbind a media event.
+<span class='line'>367</span>  *
+<span class='line'>368</span>  * @param {string} type The event type.
+<span class='line'>369</span>  * @param {function} fn The callback function.
+<span class='line'>370</span>  * @return {object} The plugin object.
+<span class='line'>371</span>  **/</span><span class="WHIT">
+<span class='line'>372</span> </span><span class="NAME">minplayer.plugin.prototype.unbind</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">type</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">fn</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>373</span> 
+<span class='line'>374</span> </span><span class="WHIT">  </span><span class="COMM">// If this is locked then try again after 10ms.</span><span class="WHIT">
+<span class='line'>375</span> </span><span class="WHIT">  </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">this.lock</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>376</span> </span><span class="WHIT">    </span><span class="NAME">setTimeout</span><span class="PUNC">(</span><span class="PUNC">(</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">plugin</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>377</span> </span><span class="WHIT">      </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>378</span> </span><span class="WHIT">        </span><span class="NAME">plugin.unbind</span><span class="PUNC">(</span><span class="NAME">type</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">fn</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>379</span> </span><span class="WHIT">      </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>380</span> </span><span class="WHIT">    </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NUMB">10</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>381</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>382</span> 
+<span class='line'>383</span> </span><span class="WHIT">  </span><span class="COMM">// Set the lock.</span><span class="WHIT">
+<span class='line'>384</span> </span><span class="WHIT">  </span><span class="NAME">this.lock</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">true</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>385</span> 
+<span class='line'>386</span> </span><span class="WHIT">  </span><span class="COMM">// Get the queue type.</span><span class="WHIT">
+<span class='line'>387</span> </span><span class="WHIT">  </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">queuetype</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.queue.hasOwnProperty</span><span class="PUNC">(</span><span class="NAME">type</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="NAME">this.queue</span><span class="PUNC">[</span><span class="NAME">type</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">null</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>388</span> 
+<span class='line'>389</span> </span><span class="WHIT">  </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">type</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>390</span> </span><span class="WHIT">    </span><span class="NAME">this.queue</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>391</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>392</span> </span><span class="WHIT">  </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">fn</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>393</span> </span><span class="WHIT">    </span><span class="NAME">this.queue</span><span class="PUNC">[</span><span class="NAME">type</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>394</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>395</span> </span><span class="WHIT">  </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">queuetype</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>396</span> </span><span class="WHIT">    </span><span class="COMM">// Iterate through all the callbacks and search for equal callbacks.</span><span class="WHIT">
+<span class='line'>397</span> </span><span class="WHIT">    </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">queue</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>398</span> </span><span class="WHIT">    </span><span class="KEYW">for</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">i</span><span class="WHIT"> </span><span class="KEYW">in</span><span class="WHIT"> </span><span class="NAME">queuetype</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>399</span> </span><span class="WHIT">      </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">queuetype.hasOwnProperty</span><span class="PUNC">(</span><span class="NAME">i</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>400</span> </span><span class="WHIT">        </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">queuetype</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">callback</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="NAME">fn</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>401</span> </span><span class="WHIT">          </span><span class="NAME">queue</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.queue</span><span class="PUNC">[</span><span class="NAME">type</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">splice</span><span class="PUNC">(</span><span class="NAME">i</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NUMB">1</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>402</span> </span><span class="WHIT">          </span><span class="KEYW">delete</span><span class="WHIT"> </span><span class="NAME">queue</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>403</span> </span><span class="WHIT">        </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>404</span> </span><span class="WHIT">      </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>405</span> </span><span class="WHIT">    </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>406</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>407</span> 
+<span class='line'>408</span> </span><span class="WHIT">  </span><span class="COMM">// Reset the lock.</span><span class="WHIT">
+<span class='line'>409</span> </span><span class="WHIT">  </span><span class="NAME">this.lock</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">false</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>410</span> 
+<span class='line'>411</span> </span><span class="WHIT">  </span><span class="COMM">// Return the plugin.</span><span class="WHIT">
+<span class='line'>412</span> </span><span class="WHIT">  </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">this</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>413</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>414</span> 
+<span class='line'>415</span> </span><span class="COMM">/**
+<span class='line'>416</span>  * Adds an item to the queue.
+<span class='line'>417</span>  *
+<span class='line'>418</span>  * @param {object} context The context which this is called within.
+<span class='line'>419</span>  * @param {string} event The event to trigger on.
+<span class='line'>420</span>  * @param {string} id The player ID.
+<span class='line'>421</span>  * @param {string} plugin The name of the plugin.
+<span class='line'>422</span>  * @param {function} callback Called when the event occurs.
+<span class='line'>423</span>  */</span><span class="WHIT">
+<span class='line'>424</span> </span><span class="NAME">minplayer.addQueue</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">context</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">event</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">id</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">plugin</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">callback</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>425</span> 
+<span class='line'>426</span> </span><span class="WHIT">  </span><span class="COMM">// See if it is locked...</span><span class="WHIT">
+<span class='line'>427</span> </span><span class="WHIT">  </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">minplayer.lock</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>428</span> </span><span class="WHIT">    </span><span class="NAME">minplayer.queue.push</span><span class="PUNC">(</span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>429</span> </span><span class="WHIT">      </span><span class="NAME">context</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">context</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'>430</span> </span><span class="WHIT">      </span><span class="NAME">id</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">id</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'>431</span> </span><span class="WHIT">      </span><span class="NAME">event</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">event</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'>432</span> </span><span class="WHIT">      </span><span class="NAME">plugin</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">plugin</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'>433</span> </span><span class="WHIT">      </span><span class="NAME">callback</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">callback</span><span class="WHIT">
+<span class='line'>434</span> </span><span class="WHIT">    </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>435</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>436</span> </span><span class="WHIT">  </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>437</span> 
+<span class='line'>438</span> </span><span class="WHIT">    </span><span class="COMM">// If so, then try again after 10 milliseconds.</span><span class="WHIT">
+<span class='line'>439</span> </span><span class="WHIT">    </span><span class="NAME">setTimeout</span><span class="PUNC">(</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>440</span> </span><span class="WHIT">      </span><span class="NAME">minplayer.addQueue</span><span class="PUNC">(</span><span class="NAME">context</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">id</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">event</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">plugin</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">callback</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>441</span> </span><span class="WHIT">    </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NUMB">10</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>442</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>443</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>444</span> 
+<span class='line'>445</span> </span><span class="COMM">/**
+<span class='line'>446</span>  * Binds an event to a plugin instance, and if it doesn't exist, then caches
+<span class='line'>447</span>  * it for a later time.
+<span class='line'>448</span>  *
+<span class='line'>449</span>  * @param {string} event The event to trigger on.
+<span class='line'>450</span>  * @param {string} id The player ID.
+<span class='line'>451</span>  * @param {string} plugin The name of the plugin.
+<span class='line'>452</span>  * @param {function} callback Called when the event occurs.
+<span class='line'>453</span>  * @return {boolean} If the bind was successful.
+<span class='line'>454</span>  * @this The object in context who called this method.
+<span class='line'>455</span>  */</span><span class="WHIT">
+<span class='line'>456</span> </span><span class="NAME">minplayer.bind</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">event</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">id</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">plugin</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">callback</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>457</span> 
+<span class='line'>458</span> </span><span class="WHIT">  </span><span class="COMM">// If no callback exists, then just return false.</span><span class="WHIT">
+<span class='line'>459</span> </span><span class="WHIT">  </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">callback</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>460</span> </span><span class="WHIT">    </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">false</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>461</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>462</span> 
+<span class='line'>463</span> </span><span class="WHIT">  </span><span class="COMM">// Get the plugins.</span><span class="WHIT">
+<span class='line'>464</span> </span><span class="WHIT">  </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">plugins</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">minplayer.plugins</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>465</span> 
+<span class='line'>466</span> </span><span class="WHIT">  </span><span class="COMM">// Determine the selected plugins.</span><span class="WHIT">
+<span class='line'>467</span> </span><span class="WHIT">  </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">selected</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>468</span> 
+<span class='line'>469</span> </span><span class="WHIT">  </span><span class="COMM">// Create a quick add.</span><span class="WHIT">
+<span class='line'>470</span> </span><span class="WHIT">  </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">addSelected</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">id</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">plugin</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>471</span> </span><span class="WHIT">    </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">plugins.hasOwnProperty</span><span class="PUNC">(</span><span class="NAME">id</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">plugins</span><span class="PUNC">[</span><span class="NAME">id</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">hasOwnProperty</span><span class="PUNC">(</span><span class="NAME">plugin</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>472</span> </span><span class="WHIT">      </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">plugins</span><span class="PUNC">[</span><span class="NAME">id</span><span class="PUNC">]</span><span class="PUNC">[</span><span class="NAME">plugin</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">length</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>473</span> </span><span class="WHIT">      </span><span class="KEYW">while</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">i</span><span class="PUNC">--</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>474</span> </span><span class="WHIT">        </span><span class="NAME">selected.push</span><span class="PUNC">(</span><span class="NAME">plugins</span><span class="PUNC">[</span><span class="NAME">id</span><span class="PUNC">]</span><span class="PUNC">[</span><span class="NAME">plugin</span><span class="PUNC">]</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>475</span> </span><span class="WHIT">      </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>476</span> </span><span class="WHIT">    </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>477</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>478</span> 
+<span class='line'>479</span> </span><span class="WHIT">  </span><span class="COMM">// If they provide id && plugin</span><span class="WHIT">
+<span class='line'>480</span> </span><span class="WHIT">  </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">id</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">plugin</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>481</span> </span><span class="WHIT">    </span><span class="NAME">addSelected</span><span class="PUNC">(</span><span class="NAME">id</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">plugin</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>482</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>483</span> 
+<span class='line'>484</span> </span><span class="WHIT">  </span><span class="COMM">// If they provide no id but a plugin.</span><span class="WHIT">
+<span class='line'>485</span> </span><span class="WHIT">  </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">id</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">plugin</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>486</span> </span><span class="WHIT">    </span><span class="KEYW">for</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">id</span><span class="WHIT"> </span><span class="KEYW">in</span><span class="WHIT"> </span><span class="NAME">plugins</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>487</span> </span><span class="WHIT">      </span><span class="NAME">addSelected</span><span class="PUNC">(</span><span class="NAME">id</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">plugin</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>488</span> </span><span class="WHIT">    </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>489</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>490</span> 
+<span class='line'>491</span> </span><span class="WHIT">  </span><span class="COMM">// If they provide an id but no plugin.</span><span class="WHIT">
+<span class='line'>492</span> </span><span class="WHIT">  </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">id</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="PUNC">!</span><span class="NAME">plugin</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">plugins</span><span class="PUNC">[</span><span class="NAME">id</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>493</span> </span><span class="WHIT">    </span><span class="KEYW">for</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">plugin</span><span class="WHIT"> </span><span class="KEYW">in</span><span class="WHIT"> </span><span class="NAME">plugins</span><span class="PUNC">[</span><span class="NAME">id</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>494</span> </span><span class="WHIT">      </span><span class="NAME">addSelected</span><span class="PUNC">(</span><span class="NAME">id</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">plugin</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>495</span> </span><span class="WHIT">    </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>496</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>497</span> 
+<span class='line'>498</span> </span><span class="WHIT">  </span><span class="COMM">// If they provide niether an id or a plugin.</span><span class="WHIT">
+<span class='line'>499</span> </span><span class="WHIT">  </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">id</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="PUNC">!</span><span class="NAME">plugin</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>500</span> </span><span class="WHIT">    </span><span class="KEYW">for</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">id</span><span class="WHIT"> </span><span class="KEYW">in</span><span class="WHIT"> </span><span class="NAME">plugins</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>501</span> </span><span class="WHIT">      </span><span class="KEYW">for</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">plugin</span><span class="WHIT"> </span><span class="KEYW">in</span><span class="WHIT"> </span><span class="NAME">plugins</span><span class="PUNC">[</span><span class="NAME">id</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>502</span> </span><span class="WHIT">        </span><span class="NAME">addSelected</span><span class="PUNC">(</span><span class="NAME">id</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">plugin</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>503</span> </span><span class="WHIT">      </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>504</span> </span><span class="WHIT">    </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>505</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>506</span> 
+<span class='line'>507</span> </span><span class="WHIT">  </span><span class="COMM">// Iterate through the selected plugins and bind.</span><span class="WHIT">
+<span class='line'>508</span> </span><span class="WHIT">  </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">selected.length</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>509</span> </span><span class="WHIT">  </span><span class="KEYW">while</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">i</span><span class="PUNC">--</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>510</span> </span><span class="WHIT">    </span><span class="NAME">selected</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">bind</span><span class="PUNC">(</span><span class="NAME">event</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">context</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>511</span> </span><span class="WHIT">      </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">event</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>512</span> </span><span class="WHIT">        </span><span class="NAME">callback.call</span><span class="PUNC">(</span><span class="NAME">context</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">event.target</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>513</span> </span><span class="WHIT">      </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>514</span> </span><span class="WHIT">    </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>515</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>516</span> 
+<span class='line'>517</span> </span><span class="WHIT">  </span><span class="COMM">// Add it to the queue for post bindings...</span><span class="WHIT">
+<span class='line'>518</span> </span><span class="WHIT">  </span><span class="NAME">minplayer.addQueue</span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">event</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">id</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">plugin</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">callback</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>519</span> 
+<span class='line'>520</span> </span><span class="WHIT">  </span><span class="COMM">// Return that this wasn't handled.</span><span class="WHIT">
+<span class='line'>521</span> </span><span class="WHIT">  </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">selected.length</span><span class="WHIT"> </span><span class="PUNC">></span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>522</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>523</span> 
+<span class='line'>524</span> </span><span class="COMM">/**
+<span class='line'>525</span>  * The main API for minPlayer.
+<span class='line'>526</span>  *
+<span class='line'>527</span>  * Provided that this function takes three parameters, there are 8 different
+<span class='line'>528</span>  * ways to use this api.
+<span class='line'>529</span>  *
+<span class='line'>530</span>  *   id (0x100) - You want a specific player.
+<span class='line'>531</span>  *   plugin (0x010) - You want a specific plugin.
+<span class='line'>532</span>  *   callback (0x001) - You only want it when it is ready.
+<span class='line'>533</span>  *
+<span class='line'>534</span>  *   000 - You want all plugins from all players, ready or not.
+<span class='line'>535</span>  *
+<span class='line'>536</span>  *          var plugins = minplayer.get();
+<span class='line'>537</span>  *
+<span class='line'>538</span>  *   001 - You want all plugins from all players, but only when ready.
+<span class='line'>539</span>  *
+<span class='line'>540</span>  *          minplayer.get(function(plugin) {
+<span class='line'>541</span>  *            // Code goes here.
+<span class='line'>542</span>  *          });
+<span class='line'>543</span>  *
+<span class='line'>544</span>  *   010 - You want a specific plugin from all players, ready or not...
+<span class='line'>545</span>  *
+<span class='line'>546</span>  *          var medias = minplayer.get(null, 'media');
+<span class='line'>547</span>  *
+<span class='line'>548</span>  *   011 - You want a specific plugin from all players, but only when ready.
+<span class='line'>549</span>  *
+<span class='line'>550</span>  *          minplayer.get('player', function(player) {
+<span class='line'>551</span>  *            // Code goes here.
+<span class='line'>552</span>  *          });
+<span class='line'>553</span>  *
+<span class='line'>554</span>  *   100 - You want all plugins from a specific player, ready or not.
+<span class='line'>555</span>  *
+<span class='line'>556</span>  *          var plugins = minplayer.get('player_id');
+<span class='line'>557</span>  *
+<span class='line'>558</span>  *   101 - You want all plugins from a specific player, but only when ready.
+<span class='line'>559</span>  *
+<span class='line'>560</span>  *          minplayer.get('player_id', null, function(plugin) {
+<span class='line'>561</span>  *            // Code goes here.
+<span class='line'>562</span>  *          });
+<span class='line'>563</span>  *
+<span class='line'>564</span>  *   110 - You want a specific plugin from a specific player, ready or not.
+<span class='line'>565</span>  *
+<span class='line'>566</span>  *          var plugin = minplayer.get('player_id', 'media');
+<span class='line'>567</span>  *
+<span class='line'>568</span>  *   111 - You want a specific plugin from a specific player, only when ready.
+<span class='line'>569</span>  *
+<span class='line'>570</span>  *          minplayer.get('player_id', 'media', function(media) {
+<span class='line'>571</span>  *            // Code goes here.
+<span class='line'>572</span>  *          });
+<span class='line'>573</span>  *
+<span class='line'>574</span>  * @this The context in which this function was called.
+<span class='line'>575</span>  * @param {string} id The ID of the widget to get the plugins from.
+<span class='line'>576</span>  * @param {string} plugin The name of the plugin.
+<span class='line'>577</span>  * @param {function} callback Called when the plugin is ready.
+<span class='line'>578</span>  * @return {object} The plugin object if it is immediately available.
+<span class='line'>579</span>  */</span><span class="WHIT">
+<span class='line'>580</span> </span><span class="NAME">minplayer.get</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">id</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">plugin</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">callback</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>581</span> 
+<span class='line'>582</span> </span><span class="WHIT">  </span><span class="COMM">// Normalize the arguments for a better interface.</span><span class="WHIT">
+<span class='line'>583</span> </span><span class="WHIT">  </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">id</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="STRN">'function'</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>584</span> </span><span class="WHIT">    </span><span class="NAME">callback</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">id</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>585</span> </span><span class="WHIT">    </span><span class="NAME">plugin</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">id</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">null</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>586</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>587</span> 
+<span class='line'>588</span> </span><span class="WHIT">  </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">plugin</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="STRN">'function'</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>589</span> </span><span class="WHIT">    </span><span class="NAME">callback</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">plugin</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>590</span> </span><span class="WHIT">    </span><span class="NAME">plugin</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">id</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>591</span> </span><span class="WHIT">    </span><span class="NAME">id</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">null</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>592</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>593</span> 
+<span class='line'>594</span> </span><span class="WHIT">  </span><span class="COMM">// Make sure the callback is a callback.</span><span class="WHIT">
+<span class='line'>595</span> </span><span class="WHIT">  </span><span class="NAME">callback</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">callback</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="STRN">'function'</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="NAME">callback</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">null</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>596</span> 
+<span class='line'>597</span> </span><span class="WHIT">  </span><span class="COMM">// If a callback was provided, then just go ahead and bind.</span><span class="WHIT">
+<span class='line'>598</span> </span><span class="WHIT">  </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">callback</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>599</span> </span><span class="WHIT">    </span><span class="NAME">minplayer.bind.call</span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'ready'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">id</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">plugin</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">callback</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>600</span> </span><span class="WHIT">    </span><span class="KEYW">return</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>601</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>602</span> 
+<span class='line'>603</span> </span><span class="WHIT">  </span><span class="COMM">// Get the plugins.</span><span class="WHIT">
+<span class='line'>604</span> </span><span class="WHIT">  </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">plugins</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">minplayer.plugins</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>605</span> 
+<span class='line'>606</span> </span><span class="WHIT">  </span><span class="COMM">// 0x000</span><span class="WHIT">
+<span class='line'>607</span> </span><span class="WHIT">  </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">id</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="PUNC">!</span><span class="NAME">plugin</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="PUNC">!</span><span class="NAME">callback</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>608</span> </span><span class="WHIT">    </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">plugins</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>609</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>610</span> </span><span class="WHIT">  </span><span class="COMM">// 0x100</span><span class="WHIT">
+<span class='line'>611</span> </span><span class="WHIT">  </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">id</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="PUNC">!</span><span class="NAME">plugin</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="PUNC">!</span><span class="NAME">callback</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>612</span> </span><span class="WHIT">    </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">plugins</span><span class="PUNC">[</span><span class="NAME">id</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>613</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>614</span> </span><span class="WHIT">  </span><span class="COMM">// 0x110</span><span class="WHIT">
+<span class='line'>615</span> </span><span class="WHIT">  </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">id</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">plugin</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="PUNC">!</span><span class="NAME">callback</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>616</span> </span><span class="WHIT">    </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">plugins</span><span class="PUNC">[</span><span class="NAME">id</span><span class="PUNC">]</span><span class="PUNC">[</span><span class="NAME">plugin</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>617</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>618</span> </span><span class="WHIT">  </span><span class="COMM">// 0x010</span><span class="WHIT">
+<span class='line'>619</span> </span><span class="WHIT">  </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">id</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">plugin</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="PUNC">!</span><span class="NAME">callback</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>620</span> </span><span class="WHIT">    </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">plugin_types</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>621</span> </span><span class="WHIT">    </span><span class="KEYW">for</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">id</span><span class="WHIT"> </span><span class="KEYW">in</span><span class="WHIT"> </span><span class="NAME">plugins</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>622</span> </span><span class="WHIT">      </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">plugins.hasOwnProperty</span><span class="PUNC">(</span><span class="NAME">id</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">plugins</span><span class="PUNC">[</span><span class="NAME">id</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">hasOwnProperty</span><span class="PUNC">(</span><span class="NAME">plugin</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>623</span> </span><span class="WHIT">        </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">plugins</span><span class="PUNC">[</span><span class="NAME">id</span><span class="PUNC">]</span><span class="PUNC">[</span><span class="NAME">plugin</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">length</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>624</span> </span><span class="WHIT">        </span><span class="KEYW">while</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">i</span><span class="PUNC">--</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>625</span> </span><span class="WHIT">          </span><span class="NAME">plugin_types.push</span><span class="PUNC">(</span><span class="NAME">plugins</span><span class="PUNC">[</span><span class="NAME">id</span><span class="PUNC">]</span><span class="PUNC">[</span><span class="NAME">plugin</span><span class="PUNC">]</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>626</span> </span><span class="WHIT">        </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>627</span> </span><span class="WHIT">      </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>628</span> </span><span class="WHIT">    </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>629</span> </span><span class="WHIT">    </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">plugin_types</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>630</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>631</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>632</span> </span></pre></body></html>
\ No newline at end of file
diff --git a/public/admin/js/osmplayer/doc/symbols/src/src_osmplayer.js.html b/public/admin/js/osmplayer/doc/symbols/src/src_osmplayer.js.html
new file mode 100644
index 00000000000..d8c0ee7e7b6
--- /dev/null
+++ b/public/admin/js/osmplayer/doc/symbols/src/src_osmplayer.js.html
@@ -0,0 +1,276 @@
+<html><head><meta http-equiv="content-type" content="text/html; charset=utf-8"> <style>
+	.KEYW {color: #933;}
+	.COMM {color: #bbb; font-style: italic;}
+	.NUMB {color: #393;}
+	.STRN {color: #393;}
+	.REGX {color: #339;}
+	.line {border-right: 1px dotted #666; color: #666; font-style: normal;}
+	</style></head><body><pre><span class='line'>  1</span> <span class="COMM">// Add a way to instanciate using jQuery prototype.</span><span class="WHIT">
+<span class='line'>  2</span> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">jQuery.fn.osmplayer</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>  3</span> 
+<span class='line'>  4</span> </span><span class="WHIT">  </span><span class="COMM">/**
+<span class='line'>  5</span>    * @constructor
+<span class='line'>  6</span>    *
+<span class='line'>  7</span>    * Define a jQuery osmplayer prototype.
+<span class='line'>  8</span>    *
+<span class='line'>  9</span>    * @param {object} options The options for this jQuery prototype.
+<span class='line'> 10</span>    * @return {Array} jQuery object.
+<span class='line'> 11</span>    */</span><span class="WHIT">
+<span class='line'> 12</span> </span><span class="WHIT">  </span><span class="NAME">jQuery.fn.osmplayer</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">options</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 13</span> </span><span class="WHIT">    </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">jQuery</span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">each</span><span class="PUNC">(</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 14</span> </span><span class="WHIT">      </span><span class="NAME">options</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">options</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 15</span> </span><span class="WHIT">      </span><span class="NAME">options.id</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">options.id</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="NAME">jQuery</span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">attr</span><span class="PUNC">(</span><span class="STRN">'id'</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="NAME">Math.random</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 16</span> </span><span class="WHIT">      </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">minplayer.plugins</span><span class="PUNC">[</span><span class="NAME">options.id</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 17</span> </span><span class="WHIT">        </span><span class="NAME">options.template</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">options.template</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="STRN">'default'</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 18</span> </span><span class="WHIT">        </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">osmplayer</span><span class="PUNC">[</span><span class="NAME">options.template</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 19</span> </span><span class="WHIT">          </span><span class="KEYW">new</span><span class="WHIT"> </span><span class="NAME">osmplayer</span><span class="PUNC">[</span><span class="NAME">options.template</span><span class="PUNC">]</span><span class="PUNC">(</span><span class="NAME">jQuery</span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">options</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 20</span> </span><span class="WHIT">        </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'> 21</span> </span><span class="WHIT">        </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 22</span> </span><span class="WHIT">          </span><span class="KEYW">new</span><span class="WHIT"> </span><span class="NAME">osmplayer</span><span class="PUNC">(</span><span class="NAME">jQuery</span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">options</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 23</span> </span><span class="WHIT">        </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'> 24</span> </span><span class="WHIT">      </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'> 25</span> </span><span class="WHIT">    </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 26</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 27</span> </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'> 28</span> 
+<span class='line'> 29</span> </span><span class="COMM">/**
+<span class='line'> 30</span>  * @constructor
+<span class='line'> 31</span>  * @extends minplayer
+<span class='line'> 32</span>  * @class The main osmplayer class.
+<span class='line'> 33</span>  *
+<span class='line'> 34</span>  * &lt;p>&lt;strong>Usage:&lt;/strong>
+<span class='line'> 35</span>  * &lt;pre>&lt;code>
+<span class='line'> 36</span>  *
+<span class='line'> 37</span>  *   // Create a media player.
+<span class='line'> 38</span>  *   var player = jQuery("#player").osmplayer({
+<span class='line'> 39</span>  *
+<span class='line'> 40</span>  *   });
+<span class='line'> 41</span>  *
+<span class='line'> 42</span>  * &lt;/code>&lt;/pre>
+<span class='line'> 43</span>  * &lt;/p>
+<span class='line'> 44</span>  *
+<span class='line'> 45</span>  * @param {object} context The jQuery context.
+<span class='line'> 46</span>  * @param {object} options This components options.
+<span class='line'> 47</span>  */</span><span class="WHIT">
+<span class='line'> 48</span> </span><span class="NAME">osmplayer</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">context</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">options</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 49</span> 
+<span class='line'> 50</span> </span><span class="WHIT">  </span><span class="COMM">// Derive from minplayer</span><span class="WHIT">
+<span class='line'> 51</span> </span><span class="WHIT">  </span><span class="NAME">minplayer.call</span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">context</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">options</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 52</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 53</span> 
+<span class='line'> 54</span> </span><span class="COMM">/** Derive from minplayer. */</span><span class="WHIT">
+<span class='line'> 55</span> </span><span class="NAME">osmplayer.prototype</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">new</span><span class="WHIT"> </span><span class="NAME">minplayer</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 56</span> 
+<span class='line'> 57</span> </span><span class="COMM">/** Reset the constructor. */</span><span class="WHIT">
+<span class='line'> 58</span> </span><span class="NAME">osmplayer.prototype.constructor</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">osmplayer</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 59</span> 
+<span class='line'> 60</span> </span><span class="COMM">/**
+<span class='line'> 61</span>  * Creates a new plugin within this context.
+<span class='line'> 62</span>  *
+<span class='line'> 63</span>  * @param {string} name The name of the plugin you wish to create.
+<span class='line'> 64</span>  * @param {object} base The base object for this plugin.
+<span class='line'> 65</span>  * @param {object} context The context which you would like to create.
+<span class='line'> 66</span>  * @return {object} The new plugin object.
+<span class='line'> 67</span>  */</span><span class="WHIT">
+<span class='line'> 68</span> </span><span class="NAME">osmplayer.prototype.create</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">name</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">base</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">context</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 69</span> </span><span class="WHIT">  </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">minplayer.prototype.create.call</span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">name</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'osmplayer'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">context</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 70</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 71</span> 
+<span class='line'> 72</span> </span><span class="COMM">/**
+<span class='line'> 73</span>  * @see minplayer.plugin.construct
+<span class='line'> 74</span>  */</span><span class="WHIT">
+<span class='line'> 75</span> </span><span class="NAME">osmplayer.prototype.construct</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 76</span> 
+<span class='line'> 77</span> </span><span class="WHIT">  </span><span class="COMM">// Make sure we provide default options...</span><span class="WHIT">
+<span class='line'> 78</span> </span><span class="WHIT">  </span><span class="NAME">this.options</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">jQuery.extend</span><span class="PUNC">(</span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 79</span> </span><span class="WHIT">    </span><span class="NAME">playlist</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="STRN">''</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'> 80</span> </span><span class="WHIT">    </span><span class="NAME">node</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'> 81</span> </span><span class="WHIT">    </span><span class="NAME">swfplayer</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="STRN">'minplayer/flash/minplayer.swf'</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'> 82</span> </span><span class="WHIT">    </span><span class="NAME">logo</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="STRN">'logo.png'</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'> 83</span> </span><span class="WHIT">    </span><span class="NAME">link</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="STRN">'http://www.mediafront.org'</span><span class="WHIT">
+<span class='line'> 84</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">this.options</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 85</span> 
+<span class='line'> 86</span> </span><span class="WHIT">  </span><span class="COMM">// Call the minplayer display constructor.</span><span class="WHIT">
+<span class='line'> 87</span> </span><span class="WHIT">  </span><span class="NAME">minplayer.prototype.construct.call</span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 88</span> 
+<span class='line'> 89</span> </span><span class="WHIT">  </span><span class="COMM">/** The play queue and index. */</span><span class="WHIT">
+<span class='line'> 90</span> </span><span class="WHIT">  </span><span class="NAME">this.playQueue</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 91</span> </span><span class="WHIT">  </span><span class="NAME">this.playIndex</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 92</span> 
+<span class='line'> 93</span> </span><span class="WHIT">  </span><span class="COMM">/** The playlist for this media player. */</span><span class="WHIT">
+<span class='line'> 94</span> </span><span class="WHIT">  </span><span class="NAME">this.create</span><span class="PUNC">(</span><span class="STRN">'playlist'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'osmplayer'</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 95</span> 
+<span class='line'> 96</span> </span><span class="WHIT">  </span><span class="COMM">/** Get the playlist or any other playlist that connects. */</span><span class="WHIT">
+<span class='line'> 97</span> </span><span class="WHIT">  </span><span class="NAME">this.get</span><span class="PUNC">(</span><span class="STRN">'playlist'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">playlist</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 98</span> </span><span class="WHIT">    </span><span class="NAME">playlist.bind</span><span class="PUNC">(</span><span class="STRN">'nodeLoad'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">player</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 99</span> </span><span class="WHIT">      </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">event</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">data</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>100</span> </span><span class="WHIT">        </span><span class="NAME">player.loadNode</span><span class="PUNC">(</span><span class="NAME">data</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>101</span> </span><span class="WHIT">      </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>102</span> </span><span class="WHIT">    </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>103</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>104</span> 
+<span class='line'>105</span> </span><span class="WHIT">  </span><span class="COMM">// Play each media sequentially...</span><span class="WHIT">
+<span class='line'>106</span> </span><span class="WHIT">  </span><span class="NAME">this.get</span><span class="PUNC">(</span><span class="STRN">'media'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">player</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>107</span> </span><span class="WHIT">    </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">media</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>108</span> </span><span class="WHIT">      </span><span class="NAME">media.bind</span><span class="PUNC">(</span><span class="STRN">'ended'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>109</span> </span><span class="WHIT">        </span><span class="NAME">player.options.autoplay</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">true</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>110</span> </span><span class="WHIT">        </span><span class="NAME">player.playNext</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>111</span> </span><span class="WHIT">      </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>112</span> </span><span class="WHIT">    </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>113</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>114</span> 
+<span class='line'>115</span> </span><span class="WHIT">  </span><span class="COMM">// Load the node if one is provided.</span><span class="WHIT">
+<span class='line'>116</span> </span><span class="WHIT">  </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">this.options.node</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>117</span> </span><span class="WHIT">    </span><span class="NAME">this.loadNode</span><span class="PUNC">(</span><span class="NAME">this.options.node</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>118</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>119</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>120</span> 
+<span class='line'>121</span> </span><span class="COMM">/**
+<span class='line'>122</span>  * Gets the full screen element.
+<span class='line'>123</span>  *
+<span class='line'>124</span>  * @return {object} The element that will go into fullscreen.
+<span class='line'>125</span>  */</span><span class="WHIT">
+<span class='line'>126</span> </span><span class="NAME">osmplayer.prototype.fullScreenElement</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>127</span> </span><span class="WHIT">  </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">this.elements.minplayer</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>128</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>129</span> 
+<span class='line'>130</span> </span><span class="COMM">/**
+<span class='line'>131</span>  * The load node function.
+<span class='line'>132</span>  *
+<span class='line'>133</span>  * @param {object} node A media node object.
+<span class='line'>134</span>  */</span><span class="WHIT">
+<span class='line'>135</span> </span><span class="NAME">osmplayer.prototype.loadNode</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">node</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>136</span> </span><span class="WHIT">  </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">node</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">node.mediafiles</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>137</span> 
+<span class='line'>138</span> </span><span class="WHIT">    </span><span class="COMM">// Load the media files.</span><span class="WHIT">
+<span class='line'>139</span> </span><span class="WHIT">    </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">media</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">node.mediafiles.media</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>140</span> </span><span class="WHIT">    </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">media</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>141</span> </span><span class="WHIT">      </span><span class="NAME">this.playQueue.length</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>142</span> </span><span class="WHIT">      </span><span class="NAME">this.playQueue</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>143</span> </span><span class="WHIT">      </span><span class="NAME">this.playIndex</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>144</span> </span><span class="WHIT">      </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">file</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">null</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>145</span> </span><span class="WHIT">      </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">types</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>146</span> 
+<span class='line'>147</span> </span><span class="WHIT">      </span><span class="COMM">// For mobile devices, we should only show the main media.</span><span class="WHIT">
+<span class='line'>148</span> </span><span class="WHIT">      </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">minplayer.isAndroid</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="NAME">minplayer.isIDevice</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>149</span> </span><span class="WHIT">        </span><span class="NAME">types</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="STRN">'media'</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>150</span> </span><span class="WHIT">      </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>151</span> </span><span class="WHIT">      </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>152</span> </span><span class="WHIT">        </span><span class="NAME">types</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="STRN">'intro'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'commercial'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'prereel'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'media'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'postreel'</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>153</span> </span><span class="WHIT">      </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>154</span> 
+<span class='line'>155</span> </span><span class="WHIT">      </span><span class="COMM">// Iterate through the types.</span><span class="WHIT">
+<span class='line'>156</span> </span><span class="WHIT">      </span><span class="NAME">jQuery.each</span><span class="PUNC">(</span><span class="NAME">types</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">player</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>157</span> </span><span class="WHIT">        </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">key</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">type</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>158</span> </span><span class="WHIT">          </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">file</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">player.addToQueue</span><span class="PUNC">(</span><span class="NAME">media</span><span class="PUNC">[</span><span class="NAME">type</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>159</span> </span><span class="WHIT">            </span><span class="NAME">file.queueType</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">type</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>160</span> </span><span class="WHIT">          </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>161</span> </span><span class="WHIT">        </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>162</span> </span><span class="WHIT">      </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>163</span> </span><span class="WHIT">    </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>164</span> 
+<span class='line'>165</span> </span><span class="WHIT">    </span><span class="COMM">// Load the preview image.</span><span class="WHIT">
+<span class='line'>166</span> </span><span class="WHIT">    </span><span class="NAME">osmplayer.getImage</span><span class="PUNC">(</span><span class="NAME">node.mediafiles</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'preview'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">player</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>167</span> </span><span class="WHIT">      </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">image</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>168</span> </span><span class="WHIT">        </span><span class="NAME">player.options.preview</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">image.path</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>169</span> </span><span class="WHIT">        </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">player.playLoader</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>170</span> </span><span class="WHIT">          </span><span class="NAME">player.playLoader.initialize</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>171</span> </span><span class="WHIT">        </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>172</span> </span><span class="WHIT">      </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>173</span> </span><span class="WHIT">    </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>174</span> 
+<span class='line'>175</span> </span><span class="WHIT">    </span><span class="COMM">// Play the next media</span><span class="WHIT">
+<span class='line'>176</span> </span><span class="WHIT">    </span><span class="NAME">this.playNext</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>177</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>178</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>179</span> 
+<span class='line'>180</span> </span><span class="COMM">/**
+<span class='line'>181</span>  * Adds a file to the play queue.
+<span class='line'>182</span>  *
+<span class='line'>183</span>  * @param {object} file The file to add to the queue.
+<span class='line'>184</span>  * @return {object} The file that was added to the queue.
+<span class='line'>185</span>  */</span><span class="WHIT">
+<span class='line'>186</span> </span><span class="NAME">osmplayer.prototype.addToQueue</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">file</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>187</span> </span><span class="WHIT">  </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">file</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">minplayer.getMediaFile</span><span class="PUNC">(</span><span class="NAME">file</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>188</span> </span><span class="WHIT">    </span><span class="NAME">this.playQueue.push</span><span class="PUNC">(</span><span class="NAME">file</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>189</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>190</span> </span><span class="WHIT">  </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">file</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>191</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>192</span> 
+<span class='line'>193</span> </span><span class="COMM">/**
+<span class='line'>194</span>  * Plays the next media file in the queue.
+<span class='line'>195</span>  */</span><span class="WHIT">
+<span class='line'>196</span> </span><span class="NAME">osmplayer.prototype.playNext</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>197</span> </span><span class="WHIT">  </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">this.playQueue.length</span><span class="WHIT"> </span><span class="PUNC">></span><span class="WHIT"> </span><span class="NAME">this.playIndex</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>198</span> </span><span class="WHIT">    </span><span class="NAME">this.load</span><span class="PUNC">(</span><span class="NAME">this.playQueue</span><span class="PUNC">[</span><span class="NAME">this.playIndex</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>199</span> </span><span class="WHIT">    </span><span class="NAME">this.playIndex</span><span class="PUNC">++</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>200</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>201</span> </span><span class="WHIT">  </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">this.options.repeat</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>202</span> </span><span class="WHIT">    </span><span class="NAME">this.playIndex</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>203</span> </span><span class="WHIT">    </span><span class="NAME">this.playNext</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>204</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>205</span> </span><span class="WHIT">  </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">this.playQueue.length</span><span class="WHIT"> </span><span class="PUNC">></span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>206</span> </span><span class="WHIT">    </span><span class="COMM">// If there is no playlist, and no repeat, we will</span><span class="WHIT">
+<span class='line'>207</span> </span><span class="WHIT">    </span><span class="COMM">// just seek to the beginning and pause.</span><span class="WHIT">
+<span class='line'>208</span> </span><span class="WHIT">    </span><span class="NAME">this.options.autoplay</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">false</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>209</span> </span><span class="WHIT">    </span><span class="NAME">this.playIndex</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>210</span> </span><span class="WHIT">    </span><span class="NAME">this.playNext</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>211</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>212</span> </span><span class="WHIT">  </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">this.media</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>213</span> </span><span class="WHIT">    </span><span class="COMM">// Stop the player and unload.</span><span class="WHIT">
+<span class='line'>214</span> </span><span class="WHIT">    </span><span class="NAME">this.media.stop</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>215</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>216</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>217</span> 
+<span class='line'>218</span> </span><span class="COMM">/**
+<span class='line'>219</span>  * Returns an image provided image array.
+<span class='line'>220</span>  *
+<span class='line'>221</span>  * @param {object} mediafiles The mediafiles to search within.
+<span class='line'>222</span>  * @param {string} type The type of image to look for.
+<span class='line'>223</span>  * @param {function} callback Called when the image is retrieved.
+<span class='line'>224</span>  */</span><span class="WHIT">
+<span class='line'>225</span> </span><span class="NAME">osmplayer.getImage</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">mediafiles</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">type</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">callback</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>226</span> 
+<span class='line'>227</span> </span><span class="WHIT">  </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">image</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">''</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>228</span> </span><span class="WHIT">  </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">images</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">mediafiles.image</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>229</span> </span><span class="WHIT">  </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">images</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>230</span> 
+<span class='line'>231</span> </span><span class="WHIT">    </span><span class="COMM">// If the image type exists, then just use that one...</span><span class="WHIT">
+<span class='line'>232</span> </span><span class="WHIT">    </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">images</span><span class="PUNC">[</span><span class="NAME">type</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>233</span> </span><span class="WHIT">      </span><span class="NAME">image</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">images</span><span class="PUNC">[</span><span class="NAME">type</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>234</span> </span><span class="WHIT">    </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>235</span> </span><span class="WHIT">    </span><span class="COMM">// Or try the original image...</span><span class="WHIT">
+<span class='line'>236</span> </span><span class="WHIT">    </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">images</span><span class="PUNC">[</span><span class="STRN">'image'</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>237</span> </span><span class="WHIT">      </span><span class="NAME">image</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">images</span><span class="PUNC">[</span><span class="STRN">'image'</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>238</span> </span><span class="WHIT">    </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>239</span> </span><span class="WHIT">    </span><span class="COMM">// Otherwise, just try ANY image...</span><span class="WHIT">
+<span class='line'>240</span> </span><span class="WHIT">    </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>241</span> 
+<span class='line'>242</span> </span><span class="WHIT">      </span><span class="COMM">// Or, just pick the first one available.</span><span class="WHIT">
+<span class='line'>243</span> </span><span class="WHIT">      </span><span class="KEYW">for</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">type</span><span class="WHIT"> </span><span class="KEYW">in</span><span class="WHIT"> </span><span class="NAME">images</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>244</span> </span><span class="WHIT">        </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">images.hasOwnProperty</span><span class="PUNC">(</span><span class="NAME">type</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>245</span> </span><span class="WHIT">          </span><span class="NAME">image</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">images</span><span class="PUNC">[</span><span class="NAME">type</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>246</span> </span><span class="WHIT">          </span><span class="KEYW">break</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>247</span> </span><span class="WHIT">        </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>248</span> </span><span class="WHIT">      </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>249</span> </span><span class="WHIT">    </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>250</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>251</span> 
+<span class='line'>252</span> </span><span class="WHIT">  </span><span class="COMM">// If the image exists, then callback with that image.</span><span class="WHIT">
+<span class='line'>253</span> </span><span class="WHIT">  </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">image</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>254</span> </span><span class="WHIT">    </span><span class="NAME">callback</span><span class="PUNC">(</span><span class="KEYW">new</span><span class="WHIT"> </span><span class="NAME">minplayer.file</span><span class="PUNC">(</span><span class="NAME">image</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>255</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>256</span> </span><span class="WHIT">  </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>257</span> </span><span class="WHIT">    </span><span class="COMM">// Get the image from the media player...</span><span class="WHIT">
+<span class='line'>258</span> </span><span class="WHIT">    </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">mediaFile</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">minplayer.getMediaFile</span><span class="PUNC">(</span><span class="NAME">mediafiles.media.media</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>259</span> </span><span class="WHIT">    </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">mediaFile</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>260</span> </span><span class="WHIT">      </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">player</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">minplayer.players</span><span class="PUNC">[</span><span class="NAME">mediaFile.player</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>261</span> </span><span class="WHIT">      </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">player</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">player.getImage</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="STRN">'function'</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>262</span> </span><span class="WHIT">        </span><span class="NAME">player.getImage</span><span class="PUNC">(</span><span class="NAME">mediaFile</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">type</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">src</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>263</span> </span><span class="WHIT">          </span><span class="NAME">callback</span><span class="PUNC">(</span><span class="KEYW">new</span><span class="WHIT"> </span><span class="NAME">minplayer.file</span><span class="PUNC">(</span><span class="NAME">src</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>264</span> </span><span class="WHIT">        </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>265</span> </span><span class="WHIT">      </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>266</span> </span><span class="WHIT">    </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>267</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>268</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>269</span> </span></pre></body></html>
\ No newline at end of file
diff --git a/public/admin/js/osmplayer/doc/symbols/src/src_osmplayer.pager.js.html b/public/admin/js/osmplayer/doc/symbols/src/src_osmplayer.pager.js.html
new file mode 100644
index 00000000000..b2f6a62e0ec
--- /dev/null
+++ b/public/admin/js/osmplayer/doc/symbols/src/src_osmplayer.pager.js.html
@@ -0,0 +1,59 @@
+<html><head><meta http-equiv="content-type" content="text/html; charset=utf-8"> <style>
+	.KEYW {color: #933;}
+	.COMM {color: #bbb; font-style: italic;}
+	.NUMB {color: #393;}
+	.STRN {color: #393;}
+	.REGX {color: #339;}
+	.line {border-right: 1px dotted #666; color: #666; font-style: normal;}
+	</style></head><body><pre><span class='line'>  1</span> <span class="COMM">/** The osmplayer namespace. */</span><span class="WHIT">
+<span class='line'>  2</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">osmplayer</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">osmplayer</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>  3</span> 
+<span class='line'>  4</span> </span><span class="COMM">/**
+<span class='line'>  5</span>  * @constructor
+<span class='line'>  6</span>  * @extends minplayer.display
+<span class='line'>  7</span>  * @class This class provides pager functionality.
+<span class='line'>  8</span>  *
+<span class='line'>  9</span>  * @param {object} context The jQuery context.
+<span class='line'> 10</span>  * @param {object} options This components options.
+<span class='line'> 11</span>  */</span><span class="WHIT">
+<span class='line'> 12</span> </span><span class="NAME">osmplayer.pager</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">context</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">options</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 13</span> 
+<span class='line'> 14</span> </span><span class="WHIT">  </span><span class="COMM">// Derive from display</span><span class="WHIT">
+<span class='line'> 15</span> </span><span class="WHIT">  </span><span class="NAME">minplayer.display.call</span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'pager'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">context</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">options</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 16</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 17</span> 
+<span class='line'> 18</span> </span><span class="COMM">/** Derive from minplayer.display. */</span><span class="WHIT">
+<span class='line'> 19</span> </span><span class="NAME">osmplayer.pager.prototype</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">new</span><span class="WHIT"> </span><span class="NAME">minplayer.display</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 20</span> 
+<span class='line'> 21</span> </span><span class="COMM">/** Reset the constructor. */</span><span class="WHIT">
+<span class='line'> 22</span> </span><span class="NAME">osmplayer.pager.prototype.constructor</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">osmplayer.pager</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 23</span> 
+<span class='line'> 24</span> </span><span class="COMM">/**
+<span class='line'> 25</span>  * @see minplayer.plugin#construct
+<span class='line'> 26</span>  */</span><span class="WHIT">
+<span class='line'> 27</span> </span><span class="NAME">osmplayer.pager.prototype.construct</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 28</span> 
+<span class='line'> 29</span> </span><span class="WHIT">  </span><span class="COMM">// Call the minplayer plugin constructor.</span><span class="WHIT">
+<span class='line'> 30</span> </span><span class="WHIT">  </span><span class="NAME">minplayer.display.prototype.construct.call</span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 31</span> 
+<span class='line'> 32</span> </span><span class="WHIT">  </span><span class="COMM">// Setup the prev button.</span><span class="WHIT">
+<span class='line'> 33</span> </span><span class="WHIT">  </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">this.elements.prevPage</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 34</span> </span><span class="WHIT">    </span><span class="NAME">this.prevPage</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.elements.prevPage.click</span><span class="PUNC">(</span><span class="PUNC">(</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">pager</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 35</span> </span><span class="WHIT">      </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">event</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 36</span> </span><span class="WHIT">        </span><span class="NAME">event.preventDefault</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 37</span> </span><span class="WHIT">        </span><span class="NAME">pager.trigger</span><span class="PUNC">(</span><span class="STRN">'prevPage'</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 38</span> </span><span class="WHIT">      </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 39</span> </span><span class="WHIT">    </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 40</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'> 41</span> 
+<span class='line'> 42</span> </span><span class="WHIT">  </span><span class="COMM">// Setup the next button.</span><span class="WHIT">
+<span class='line'> 43</span> </span><span class="WHIT">  </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">this.elements.nextPage</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 44</span> </span><span class="WHIT">    </span><span class="NAME">this.nextPage</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.elements.nextPage.click</span><span class="PUNC">(</span><span class="PUNC">(</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">pager</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 45</span> </span><span class="WHIT">      </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">event</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 46</span> </span><span class="WHIT">        </span><span class="NAME">event.preventDefault</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 47</span> </span><span class="WHIT">        </span><span class="NAME">pager.trigger</span><span class="PUNC">(</span><span class="STRN">'nextPage'</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 48</span> </span><span class="WHIT">      </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 49</span> </span><span class="WHIT">    </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 50</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'> 51</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 52</span> </span></pre></body></html>
\ No newline at end of file
diff --git a/public/admin/js/osmplayer/doc/symbols/src/src_osmplayer.parser.asx.js.html b/public/admin/js/osmplayer/doc/symbols/src/src_osmplayer.parser.asx.js.html
new file mode 100644
index 00000000000..8c38c6ee74f
--- /dev/null
+++ b/public/admin/js/osmplayer/doc/symbols/src/src_osmplayer.parser.asx.js.html
@@ -0,0 +1,52 @@
+<html><head><meta http-equiv="content-type" content="text/html; charset=utf-8"> <style>
+	.KEYW {color: #933;}
+	.COMM {color: #bbb; font-style: italic;}
+	.NUMB {color: #393;}
+	.STRN {color: #393;}
+	.REGX {color: #339;}
+	.line {border-right: 1px dotted #666; color: #666; font-style: normal;}
+	</style></head><body><pre><span class='line'>  1</span> <span class="COMM">/** The osmplayer namespace. */</span><span class="WHIT">
+<span class='line'>  2</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">osmplayer</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">osmplayer</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>  3</span> 
+<span class='line'>  4</span> </span><span class="COMM">/** The parser object. */</span><span class="WHIT">
+<span class='line'>  5</span> </span><span class="NAME">osmplayer.parser</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">osmplayer.parser</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>  6</span> 
+<span class='line'>  7</span> </span><span class="COMM">/**
+<span class='line'>  8</span>  * The asx parser object.
+<span class='line'>  9</span>  *
+<span class='line'> 10</span>  * @return {object} The asx parser.
+<span class='line'> 11</span>  **/</span><span class="WHIT">
+<span class='line'> 12</span> </span><span class="NAME">osmplayer.parser.asx</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 13</span> 
+<span class='line'> 14</span> </span><span class="WHIT">  </span><span class="COMM">// The priority for this parser.</span><span class="WHIT">
+<span class='line'> 15</span> </span><span class="WHIT">  </span><span class="NAME">priority</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NUMB">8</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'> 16</span> 
+<span class='line'> 17</span> </span><span class="WHIT">  </span><span class="COMM">// Return if this is a valid youtube feed.</span><span class="WHIT">
+<span class='line'> 18</span> </span><span class="WHIT">  </span><span class="NAME">valid</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">feed</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 19</span> </span><span class="WHIT">    </span><span class="NAME">feed</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">feed.replace</span><span class="PUNC">(</span><span class="REGX">/(.*)\??(.*)/i</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'$1'</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 20</span> </span><span class="WHIT">    </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">feed.match</span><span class="PUNC">(</span><span class="REGX">/\.asx$/i</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">!==</span><span class="WHIT"> </span><span class="KEYW">null</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 21</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'> 22</span> 
+<span class='line'> 23</span> </span><span class="WHIT">  </span><span class="COMM">// Returns the type of request to make.</span><span class="WHIT">
+<span class='line'> 24</span> </span><span class="WHIT">  </span><span class="NAME">getType</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">feed</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 25</span> </span><span class="WHIT">    </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="STRN">'xml'</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 26</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'> 27</span> 
+<span class='line'> 28</span> </span><span class="WHIT">  </span><span class="COMM">// Returns the feed provided the start and numItems.</span><span class="WHIT">
+<span class='line'> 29</span> </span><span class="WHIT">  </span><span class="NAME">getFeed</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">feed</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">start</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">numItems</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 30</span> </span><span class="WHIT">    </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">feed</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 31</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'> 32</span> 
+<span class='line'> 33</span> </span><span class="WHIT">  </span><span class="COMM">// Parse the feed.</span><span class="WHIT">
+<span class='line'> 34</span> </span><span class="WHIT">  </span><span class="NAME">parse</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">data</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 35</span> </span><span class="WHIT">    </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">playlist</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 36</span> </span><span class="WHIT">      </span><span class="NAME">total_rows</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'> 37</span> </span><span class="WHIT">      </span><span class="NAME">nodes</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="PUNC">]</span><span class="WHIT">
+<span class='line'> 38</span> </span><span class="WHIT">    </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 39</span> </span><span class="WHIT">    </span><span class="NAME">jQuery</span><span class="PUNC">(</span><span class="STRN">'asx entry'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">data</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">each</span><span class="PUNC">(</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">index</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 40</span> </span><span class="WHIT">      </span><span class="NAME">osmplayer.parser.rss.addRSSItem</span><span class="PUNC">(</span><span class="NAME">playlist</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">jQuery</span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 41</span> </span><span class="WHIT">    </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 42</span> </span><span class="WHIT">    </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">playlist</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 43</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'> 44</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 45</span> </span></pre></body></html>
\ No newline at end of file
diff --git a/public/admin/js/osmplayer/doc/symbols/src/src_osmplayer.parser.default.js.html b/public/admin/js/osmplayer/doc/symbols/src/src_osmplayer.parser.default.js.html
new file mode 100644
index 00000000000..9bbc95673f9
--- /dev/null
+++ b/public/admin/js/osmplayer/doc/symbols/src/src_osmplayer.parser.default.js.html
@@ -0,0 +1,47 @@
+<html><head><meta http-equiv="content-type" content="text/html; charset=utf-8"> <style>
+	.KEYW {color: #933;}
+	.COMM {color: #bbb; font-style: italic;}
+	.NUMB {color: #393;}
+	.STRN {color: #393;}
+	.REGX {color: #339;}
+	.line {border-right: 1px dotted #666; color: #666; font-style: normal;}
+	</style></head><body><pre><span class='line'>  1</span> <span class="COMM">/** The osmplayer namespace. */</span><span class="WHIT">
+<span class='line'>  2</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">osmplayer</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">osmplayer</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>  3</span> 
+<span class='line'>  4</span> </span><span class="COMM">/** The parser object. */</span><span class="WHIT">
+<span class='line'>  5</span> </span><span class="NAME">osmplayer.parser</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">osmplayer.parser</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>  6</span> 
+<span class='line'>  7</span> </span><span class="COMM">/**
+<span class='line'>  8</span>  * The default parser object.
+<span class='line'>  9</span>  *
+<span class='line'> 10</span>  * @return {object} The default parser.
+<span class='line'> 11</span>  **/</span><span class="WHIT">
+<span class='line'> 12</span> </span><span class="NAME">osmplayer.parser</span><span class="PUNC">[</span><span class="STRN">'default'</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 13</span> 
+<span class='line'> 14</span> </span><span class="WHIT">  </span><span class="COMM">// The priority for this parser.</span><span class="WHIT">
+<span class='line'> 15</span> </span><span class="WHIT">  </span><span class="NAME">priority</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NUMB">1</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'> 16</span> 
+<span class='line'> 17</span> </span><span class="WHIT">  </span><span class="COMM">// This parser is always valid.</span><span class="WHIT">
+<span class='line'> 18</span> </span><span class="WHIT">  </span><span class="NAME">valid</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">feed</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 19</span> </span><span class="WHIT">    </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">true</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 20</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'> 21</span> 
+<span class='line'> 22</span> </span><span class="WHIT">  </span><span class="COMM">// Returns the type of request to make.</span><span class="WHIT">
+<span class='line'> 23</span> </span><span class="WHIT">  </span><span class="NAME">getType</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">feed</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 24</span> </span><span class="WHIT">    </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="STRN">'json'</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 25</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'> 26</span> 
+<span class='line'> 27</span> </span><span class="WHIT">  </span><span class="COMM">// Returns the feed provided the start and numItems.</span><span class="WHIT">
+<span class='line'> 28</span> </span><span class="WHIT">  </span><span class="NAME">getFeed</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">feed</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">start</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">numItems</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 29</span> </span><span class="WHIT">    </span><span class="NAME">feed</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">feed.replace</span><span class="PUNC">(</span><span class="REGX">/(.*)\??(.*)/i</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'$1'</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 30</span> </span><span class="WHIT">    </span><span class="NAME">feed</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">'?start-index='</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">start</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 31</span> </span><span class="WHIT">    </span><span class="NAME">feed</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">'&max-results='</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">numItems</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 32</span> </span><span class="WHIT">    </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">feed</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 33</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'> 34</span> 
+<span class='line'> 35</span> </span><span class="WHIT">  </span><span class="COMM">// Parse the feed.</span><span class="WHIT">
+<span class='line'> 36</span> </span><span class="WHIT">  </span><span class="NAME">parse</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">data</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 37</span> </span><span class="WHIT">    </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">data</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 38</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'> 39</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 40</span> </span></pre></body></html>
\ No newline at end of file
diff --git a/public/admin/js/osmplayer/doc/symbols/src/src_osmplayer.parser.rss.js.html b/public/admin/js/osmplayer/doc/symbols/src/src_osmplayer.parser.rss.js.html
new file mode 100644
index 00000000000..c216948c941
--- /dev/null
+++ b/public/admin/js/osmplayer/doc/symbols/src/src_osmplayer.parser.rss.js.html
@@ -0,0 +1,73 @@
+<html><head><meta http-equiv="content-type" content="text/html; charset=utf-8"> <style>
+	.KEYW {color: #933;}
+	.COMM {color: #bbb; font-style: italic;}
+	.NUMB {color: #393;}
+	.STRN {color: #393;}
+	.REGX {color: #339;}
+	.line {border-right: 1px dotted #666; color: #666; font-style: normal;}
+	</style></head><body><pre><span class='line'>  1</span> <span class="COMM">/** The osmplayer namespace. */</span><span class="WHIT">
+<span class='line'>  2</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">osmplayer</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">osmplayer</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>  3</span> 
+<span class='line'>  4</span> </span><span class="COMM">/** The parser object. */</span><span class="WHIT">
+<span class='line'>  5</span> </span><span class="NAME">osmplayer.parser</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">osmplayer.parser</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>  6</span> 
+<span class='line'>  7</span> </span><span class="COMM">/**
+<span class='line'>  8</span>  * The rss parser object.
+<span class='line'>  9</span>  *
+<span class='line'> 10</span>  * @return {object} The rss parser.
+<span class='line'> 11</span>  **/</span><span class="WHIT">
+<span class='line'> 12</span> </span><span class="NAME">osmplayer.parser.rss</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 13</span> 
+<span class='line'> 14</span> </span><span class="WHIT">  </span><span class="COMM">// The priority for this parser.</span><span class="WHIT">
+<span class='line'> 15</span> </span><span class="WHIT">  </span><span class="NAME">priority</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NUMB">8</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'> 16</span> 
+<span class='line'> 17</span> </span><span class="WHIT">  </span><span class="COMM">// Return if this is a valid youtube feed.</span><span class="WHIT">
+<span class='line'> 18</span> </span><span class="WHIT">  </span><span class="NAME">valid</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">feed</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 19</span> </span><span class="WHIT">    </span><span class="NAME">feed</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">feed.replace</span><span class="PUNC">(</span><span class="REGX">/(.*)\??(.*)/i</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'$1'</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 20</span> </span><span class="WHIT">    </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">feed.match</span><span class="PUNC">(</span><span class="REGX">/\.rss$/i</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">!==</span><span class="WHIT"> </span><span class="KEYW">null</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 21</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'> 22</span> 
+<span class='line'> 23</span> </span><span class="WHIT">  </span><span class="COMM">// Returns the type of request to make.</span><span class="WHIT">
+<span class='line'> 24</span> </span><span class="WHIT">  </span><span class="NAME">getType</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">feed</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 25</span> </span><span class="WHIT">    </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="STRN">'xml'</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 26</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'> 27</span> 
+<span class='line'> 28</span> </span><span class="WHIT">  </span><span class="COMM">// Returns the feed provided the start and numItems.</span><span class="WHIT">
+<span class='line'> 29</span> </span><span class="WHIT">  </span><span class="NAME">getFeed</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">feed</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">start</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">numItems</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 30</span> </span><span class="WHIT">    </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">feed</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 31</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'> 32</span> 
+<span class='line'> 33</span> </span><span class="WHIT">  </span><span class="COMM">// Parse the feed.</span><span class="WHIT">
+<span class='line'> 34</span> </span><span class="WHIT">  </span><span class="NAME">parse</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">data</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 35</span> </span><span class="WHIT">    </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">playlist</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 36</span> </span><span class="WHIT">      </span><span class="NAME">total_rows</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'> 37</span> </span><span class="WHIT">      </span><span class="NAME">nodes</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="PUNC">]</span><span class="WHIT">
+<span class='line'> 38</span> </span><span class="WHIT">    </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 39</span> </span><span class="WHIT">    </span><span class="NAME">jQuery</span><span class="PUNC">(</span><span class="STRN">'rss channel'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">data</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">find</span><span class="PUNC">(</span><span class="STRN">'item'</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">each</span><span class="PUNC">(</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">index</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 40</span> </span><span class="WHIT">      </span><span class="NAME">osmplayer.parser.rss.addRSSItem</span><span class="PUNC">(</span><span class="NAME">playlist</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">jQuery</span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 41</span> </span><span class="WHIT">    </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 42</span> </span><span class="WHIT">    </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">playlist</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 43</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'> 44</span> 
+<span class='line'> 45</span> </span><span class="WHIT">  </span><span class="COMM">// Parse an RSS item.</span><span class="WHIT">
+<span class='line'> 46</span> </span><span class="WHIT">  </span><span class="NAME">addRSSItem</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">playlist</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">item</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 47</span> </span><span class="WHIT">    </span><span class="NAME">playlist.total_rows</span><span class="PUNC">++</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 48</span> </span><span class="WHIT">    </span><span class="NAME">playlist.nodes.push</span><span class="PUNC">(</span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 49</span> </span><span class="WHIT">      </span><span class="NAME">title</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">item.find</span><span class="PUNC">(</span><span class="STRN">'title'</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">text</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'> 50</span> </span><span class="WHIT">      </span><span class="NAME">description</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">item.find</span><span class="PUNC">(</span><span class="STRN">'annotation'</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">text</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'> 51</span> </span><span class="WHIT">      </span><span class="NAME">mediafiles</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 52</span> </span><span class="WHIT">        </span><span class="NAME">image</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 53</span> </span><span class="WHIT">          </span><span class="STRN">'image'</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 54</span> </span><span class="WHIT">            </span><span class="NAME">path</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">item.find</span><span class="PUNC">(</span><span class="STRN">'image'</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">text</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'> 55</span> </span><span class="WHIT">          </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'> 56</span> </span><span class="WHIT">        </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'> 57</span> </span><span class="WHIT">        </span><span class="NAME">media</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 58</span> </span><span class="WHIT">          </span><span class="STRN">'media'</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 59</span> </span><span class="WHIT">            </span><span class="NAME">path</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">item.find</span><span class="PUNC">(</span><span class="STRN">'location'</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">text</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'> 60</span> </span><span class="WHIT">          </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'> 61</span> </span><span class="WHIT">        </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'> 62</span> </span><span class="WHIT">      </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'> 63</span> </span><span class="WHIT">    </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 64</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'> 65</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 66</span> </span></pre></body></html>
\ No newline at end of file
diff --git a/public/admin/js/osmplayer/doc/symbols/src/src_osmplayer.parser.xspf.js.html b/public/admin/js/osmplayer/doc/symbols/src/src_osmplayer.parser.xspf.js.html
new file mode 100644
index 00000000000..cdfdb18c426
--- /dev/null
+++ b/public/admin/js/osmplayer/doc/symbols/src/src_osmplayer.parser.xspf.js.html
@@ -0,0 +1,52 @@
+<html><head><meta http-equiv="content-type" content="text/html; charset=utf-8"> <style>
+	.KEYW {color: #933;}
+	.COMM {color: #bbb; font-style: italic;}
+	.NUMB {color: #393;}
+	.STRN {color: #393;}
+	.REGX {color: #339;}
+	.line {border-right: 1px dotted #666; color: #666; font-style: normal;}
+	</style></head><body><pre><span class='line'>  1</span> <span class="COMM">/** The osmplayer namespace. */</span><span class="WHIT">
+<span class='line'>  2</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">osmplayer</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">osmplayer</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>  3</span> 
+<span class='line'>  4</span> </span><span class="COMM">/** The parser object. */</span><span class="WHIT">
+<span class='line'>  5</span> </span><span class="NAME">osmplayer.parser</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">osmplayer.parser</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>  6</span> 
+<span class='line'>  7</span> </span><span class="COMM">/**
+<span class='line'>  8</span>  * The xsfp parser object.
+<span class='line'>  9</span>  *
+<span class='line'> 10</span>  * @return {object} The xsfp parser.
+<span class='line'> 11</span>  **/</span><span class="WHIT">
+<span class='line'> 12</span> </span><span class="NAME">osmplayer.parser.xsfp</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 13</span> 
+<span class='line'> 14</span> </span><span class="WHIT">  </span><span class="COMM">// The priority for this parser.</span><span class="WHIT">
+<span class='line'> 15</span> </span><span class="WHIT">  </span><span class="NAME">priority</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NUMB">8</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'> 16</span> 
+<span class='line'> 17</span> </span><span class="WHIT">  </span><span class="COMM">// Return if this is a valid youtube feed.</span><span class="WHIT">
+<span class='line'> 18</span> </span><span class="WHIT">  </span><span class="NAME">valid</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">feed</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 19</span> </span><span class="WHIT">    </span><span class="NAME">feed</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">feed.replace</span><span class="PUNC">(</span><span class="REGX">/(.*)\??(.*)/i</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'$1'</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 20</span> </span><span class="WHIT">    </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">feed.match</span><span class="PUNC">(</span><span class="REGX">/\.xml$/i</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">!==</span><span class="WHIT"> </span><span class="KEYW">null</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 21</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'> 22</span> 
+<span class='line'> 23</span> </span><span class="WHIT">  </span><span class="COMM">// Returns the type of request to make.</span><span class="WHIT">
+<span class='line'> 24</span> </span><span class="WHIT">  </span><span class="NAME">getType</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">feed</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 25</span> </span><span class="WHIT">    </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="STRN">'xml'</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 26</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'> 27</span> 
+<span class='line'> 28</span> </span><span class="WHIT">  </span><span class="COMM">// Returns the feed provided the start and numItems.</span><span class="WHIT">
+<span class='line'> 29</span> </span><span class="WHIT">  </span><span class="NAME">getFeed</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">feed</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">start</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">numItems</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 30</span> </span><span class="WHIT">    </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">feed</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 31</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'> 32</span> 
+<span class='line'> 33</span> </span><span class="WHIT">  </span><span class="COMM">// Parse the feed.</span><span class="WHIT">
+<span class='line'> 34</span> </span><span class="WHIT">  </span><span class="NAME">parse</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">data</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 35</span> </span><span class="WHIT">    </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">playlist</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 36</span> </span><span class="WHIT">      </span><span class="NAME">total_rows</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'> 37</span> </span><span class="WHIT">      </span><span class="NAME">nodes</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="PUNC">]</span><span class="WHIT">
+<span class='line'> 38</span> </span><span class="WHIT">    </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 39</span> </span><span class="WHIT">    </span><span class="NAME">jQuery</span><span class="PUNC">(</span><span class="STRN">'playlist trackList track'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">data</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">each</span><span class="PUNC">(</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">index</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 40</span> </span><span class="WHIT">      </span><span class="NAME">osmplayer.parser.rss.addRSSItem</span><span class="PUNC">(</span><span class="NAME">playlist</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">jQuery</span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 41</span> </span><span class="WHIT">    </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 42</span> </span><span class="WHIT">    </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">playlist</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 43</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'> 44</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 45</span> </span></pre></body></html>
\ No newline at end of file
diff --git a/public/admin/js/osmplayer/doc/symbols/src/src_osmplayer.parser.youtube.js.html b/public/admin/js/osmplayer/doc/symbols/src/src_osmplayer.parser.youtube.js.html
new file mode 100644
index 00000000000..a1a99bbe662
--- /dev/null
+++ b/public/admin/js/osmplayer/doc/symbols/src/src_osmplayer.parser.youtube.js.html
@@ -0,0 +1,81 @@
+<html><head><meta http-equiv="content-type" content="text/html; charset=utf-8"> <style>
+	.KEYW {color: #933;}
+	.COMM {color: #bbb; font-style: italic;}
+	.NUMB {color: #393;}
+	.STRN {color: #393;}
+	.REGX {color: #339;}
+	.line {border-right: 1px dotted #666; color: #666; font-style: normal;}
+	</style></head><body><pre><span class='line'>  1</span> <span class="COMM">/** The osmplayer namespace. */</span><span class="WHIT">
+<span class='line'>  2</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">osmplayer</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">osmplayer</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>  3</span> 
+<span class='line'>  4</span> </span><span class="COMM">/** The parser object. */</span><span class="WHIT">
+<span class='line'>  5</span> </span><span class="NAME">osmplayer.parser</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">osmplayer.parser</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>  6</span> 
+<span class='line'>  7</span> </span><span class="COMM">/**
+<span class='line'>  8</span>  * The youtube parser object.
+<span class='line'>  9</span>  *
+<span class='line'> 10</span>  * @return {object} The youtube parser.
+<span class='line'> 11</span>  **/</span><span class="WHIT">
+<span class='line'> 12</span> </span><span class="NAME">osmplayer.parser.youtube</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 13</span> 
+<span class='line'> 14</span> </span><span class="WHIT">  </span><span class="COMM">// The priority for this parser.</span><span class="WHIT">
+<span class='line'> 15</span> </span><span class="WHIT">  </span><span class="NAME">priority</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NUMB">10</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'> 16</span> 
+<span class='line'> 17</span> </span><span class="WHIT">  </span><span class="COMM">// Return if this is a valid youtube feed.</span><span class="WHIT">
+<span class='line'> 18</span> </span><span class="WHIT">  </span><span class="NAME">valid</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">feed</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 19</span> </span><span class="WHIT">    </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">feed.search</span><span class="PUNC">(</span><span class="REGX">/^http(s)?\:\/\/gdata\.youtube\.com/i</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 20</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'> 21</span> 
+<span class='line'> 22</span> </span><span class="WHIT">  </span><span class="COMM">// Returns the type of request to make.</span><span class="WHIT">
+<span class='line'> 23</span> </span><span class="WHIT">  </span><span class="NAME">getType</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">feed</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 24</span> </span><span class="WHIT">    </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="STRN">'jsonp'</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 25</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'> 26</span> 
+<span class='line'> 27</span> </span><span class="WHIT">  </span><span class="COMM">// Returns the feed provided the start and numItems.</span><span class="WHIT">
+<span class='line'> 28</span> </span><span class="WHIT">  </span><span class="NAME">getFeed</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">feed</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">start</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">numItems</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 29</span> </span><span class="WHIT">    </span><span class="NAME">feed</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">feed.replace</span><span class="PUNC">(</span><span class="REGX">/(.*)\??(.*)/i</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'$1'</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 30</span> </span><span class="WHIT">    </span><span class="NAME">feed</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">'?start-index='</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">start</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NUMB">1</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 31</span> </span><span class="WHIT">    </span><span class="NAME">feed</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">'&max-results='</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">numItems</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 32</span> </span><span class="WHIT">    </span><span class="NAME">feed</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">'&v=2&alt=jsonc'</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 33</span> </span><span class="WHIT">    </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">feed</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 34</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'> 35</span> 
+<span class='line'> 36</span> </span><span class="WHIT">  </span><span class="COMM">// Parse the feed.</span><span class="WHIT">
+<span class='line'> 37</span> </span><span class="WHIT">  </span><span class="NAME">parse</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">data</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 38</span> </span><span class="WHIT">    </span><span class="NAME">data</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">data.data</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 39</span> </span><span class="WHIT">    </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">playlist</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 40</span> </span><span class="WHIT">      </span><span class="NAME">total_rows</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">data.totalItems</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'> 41</span> </span><span class="WHIT">      </span><span class="NAME">nodes</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="PUNC">]</span><span class="WHIT">
+<span class='line'> 42</span> </span><span class="WHIT">    </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 43</span> 
+<span class='line'> 44</span> </span><span class="WHIT">    </span><span class="COMM">// Iterate through the items and parse it.</span><span class="WHIT">
+<span class='line'> 45</span> </span><span class="WHIT">    </span><span class="KEYW">for</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">index</span><span class="WHIT"> </span><span class="KEYW">in</span><span class="WHIT"> </span><span class="NAME">data.items</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 46</span> </span><span class="WHIT">      </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">data.items.hasOwnProperty</span><span class="PUNC">(</span><span class="NAME">index</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 47</span> </span><span class="WHIT">        </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">item</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">data.items</span><span class="PUNC">[</span><span class="NAME">index</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 48</span> </span><span class="WHIT">        </span><span class="NAME">playlist.nodes.push</span><span class="PUNC">(</span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 49</span> </span><span class="WHIT">          </span><span class="NAME">title</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">item.title</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'> 50</span> </span><span class="WHIT">          </span><span class="NAME">description</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">item.description</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'> 51</span> </span><span class="WHIT">          </span><span class="NAME">mediafiles</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 52</span> </span><span class="WHIT">            </span><span class="NAME">image</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 53</span> </span><span class="WHIT">              </span><span class="STRN">'thumbnail'</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 54</span> </span><span class="WHIT">                </span><span class="NAME">path</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">item.thumbnail.sqDefault</span><span class="WHIT">
+<span class='line'> 55</span> </span><span class="WHIT">              </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'> 56</span> </span><span class="WHIT">              </span><span class="STRN">'image'</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 57</span> </span><span class="WHIT">                </span><span class="NAME">path</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">item.thumbnail.hqDefault</span><span class="WHIT">
+<span class='line'> 58</span> </span><span class="WHIT">              </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'> 59</span> </span><span class="WHIT">            </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'> 60</span> </span><span class="WHIT">            </span><span class="NAME">media</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 61</span> </span><span class="WHIT">              </span><span class="STRN">'media'</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 62</span> </span><span class="WHIT">                </span><span class="NAME">player</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="STRN">'youtube'</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'> 63</span> </span><span class="WHIT">                </span><span class="NAME">id</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">item.id</span><span class="WHIT">
+<span class='line'> 64</span> </span><span class="WHIT">              </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'> 65</span> </span><span class="WHIT">            </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'> 66</span> </span><span class="WHIT">          </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'> 67</span> </span><span class="WHIT">        </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 68</span> </span><span class="WHIT">      </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'> 69</span> </span><span class="WHIT">    </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'> 70</span> 
+<span class='line'> 71</span> </span><span class="WHIT">    </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">playlist</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 72</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'> 73</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 74</span> </span></pre></body></html>
\ No newline at end of file
diff --git a/public/admin/js/osmplayer/doc/symbols/src/src_osmplayer.playlist.js.html b/public/admin/js/osmplayer/doc/symbols/src/src_osmplayer.playlist.js.html
new file mode 100644
index 00000000000..2129dedd25c
--- /dev/null
+++ b/public/admin/js/osmplayer/doc/symbols/src/src_osmplayer.playlist.js.html
@@ -0,0 +1,558 @@
+<html><head><meta http-equiv="content-type" content="text/html; charset=utf-8"> <style>
+	.KEYW {color: #933;}
+	.COMM {color: #bbb; font-style: italic;}
+	.NUMB {color: #393;}
+	.STRN {color: #393;}
+	.REGX {color: #339;}
+	.line {border-right: 1px dotted #666; color: #666; font-style: normal;}
+	</style></head><body><pre><span class='line'>  1</span> <span class="COMM">/** The osmplayer namespace. */</span><span class="WHIT">
+<span class='line'>  2</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">osmplayer</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">osmplayer</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>  3</span> 
+<span class='line'>  4</span> </span><span class="COMM">/**
+<span class='line'>  5</span>  * @constructor
+<span class='line'>  6</span>  * @extends minplayer.display
+<span class='line'>  7</span>  * @class This class creates the playlist functionality for the minplayer.
+<span class='line'>  8</span>  *
+<span class='line'>  9</span>  * @param {object} context The jQuery context.
+<span class='line'> 10</span>  * @param {object} options This components options.
+<span class='line'> 11</span>  */</span><span class="WHIT">
+<span class='line'> 12</span> </span><span class="NAME">osmplayer.playlist</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">context</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">options</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 13</span> 
+<span class='line'> 14</span> </span><span class="WHIT">  </span><span class="COMM">// Derive from display</span><span class="WHIT">
+<span class='line'> 15</span> </span><span class="WHIT">  </span><span class="NAME">minplayer.display.call</span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'playlist'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">context</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">options</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 16</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 17</span> 
+<span class='line'> 18</span> </span><span class="COMM">/** Derive from minplayer.display. */</span><span class="WHIT">
+<span class='line'> 19</span> </span><span class="NAME">osmplayer.playlist.prototype</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">new</span><span class="WHIT"> </span><span class="NAME">minplayer.display</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 20</span> 
+<span class='line'> 21</span> </span><span class="COMM">/** Reset the constructor. */</span><span class="WHIT">
+<span class='line'> 22</span> </span><span class="NAME">osmplayer.playlist.prototype.constructor</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">osmplayer.playlist</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 23</span> 
+<span class='line'> 24</span> </span><span class="COMM">/**
+<span class='line'> 25</span>  * @see minplayer.plugin#construct
+<span class='line'> 26</span>  */</span><span class="WHIT">
+<span class='line'> 27</span> </span><span class="NAME">osmplayer.playlist.prototype.construct</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 28</span> 
+<span class='line'> 29</span> </span><span class="WHIT">  </span><span class="COMM">// Make sure we provide default options...</span><span class="WHIT">
+<span class='line'> 30</span> </span><span class="WHIT">  </span><span class="NAME">this.options</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">jQuery.extend</span><span class="PUNC">(</span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 31</span> </span><span class="WHIT">    </span><span class="NAME">vertical</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">true</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'> 32</span> </span><span class="WHIT">    </span><span class="NAME">playlist</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="STRN">''</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'> 33</span> </span><span class="WHIT">    </span><span class="NAME">pageLimit</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NUMB">10</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'> 34</span> </span><span class="WHIT">    </span><span class="NAME">autoNext</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">true</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'> 35</span> </span><span class="WHIT">    </span><span class="NAME">shuffle</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">false</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'> 36</span> </span><span class="WHIT">    </span><span class="NAME">loop</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">false</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'> 37</span> </span><span class="WHIT">    </span><span class="NAME">hysteresis</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NUMB">40</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'> 38</span> </span><span class="WHIT">    </span><span class="NAME">scrollSpeed</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NUMB">20</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'> 39</span> </span><span class="WHIT">    </span><span class="NAME">scrollMode</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="STRN">'auto'</span><span class="WHIT">
+<span class='line'> 40</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">this.options</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 41</span> 
+<span class='line'> 42</span> </span><span class="WHIT">  </span><span class="COMM">// Call the minplayer plugin constructor.</span><span class="WHIT">
+<span class='line'> 43</span> </span><span class="WHIT">  </span><span class="NAME">minplayer.display.prototype.construct.call</span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 44</span> 
+<span class='line'> 45</span> </span><span class="WHIT">  </span><span class="COMM">/** The nodes within this playlist. */</span><span class="WHIT">
+<span class='line'> 46</span> </span><span class="WHIT">  </span><span class="NAME">this.nodes</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 47</span> 
+<span class='line'> 48</span> </span><span class="WHIT">  </span><span class="COMM">// Current page.</span><span class="WHIT">
+<span class='line'> 49</span> </span><span class="WHIT">  </span><span class="NAME">this.page</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="NUMB">1</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 50</span> 
+<span class='line'> 51</span> </span><span class="WHIT">  </span><span class="COMM">// The total amount of nodes.</span><span class="WHIT">
+<span class='line'> 52</span> </span><span class="WHIT">  </span><span class="NAME">this.totalItems</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 53</span> 
+<span class='line'> 54</span> </span><span class="WHIT">  </span><span class="COMM">// The current loaded item index.</span><span class="WHIT">
+<span class='line'> 55</span> </span><span class="WHIT">  </span><span class="NAME">this.currentItem</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="NUMB">1</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 56</span> 
+<span class='line'> 57</span> </span><span class="WHIT">  </span><span class="COMM">// The play playqueue.</span><span class="WHIT">
+<span class='line'> 58</span> </span><span class="WHIT">  </span><span class="NAME">this.playqueue</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 59</span> 
+<span class='line'> 60</span> </span><span class="WHIT">  </span><span class="COMM">// The playqueue position.</span><span class="WHIT">
+<span class='line'> 61</span> </span><span class="WHIT">  </span><span class="NAME">this.playqueuepos</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 62</span> 
+<span class='line'> 63</span> </span><span class="WHIT">  </span><span class="COMM">// The current playlist.</span><span class="WHIT">
+<span class='line'> 64</span> </span><span class="WHIT">  </span><span class="NAME">this.playlist</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.options.playlist</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 65</span> 
+<span class='line'> 66</span> </span><span class="WHIT">  </span><span class="COMM">// Create the scroll bar.</span><span class="WHIT">
+<span class='line'> 67</span> </span><span class="WHIT">  </span><span class="NAME">this.scroll</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">null</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 68</span> 
+<span class='line'> 69</span> </span><span class="WHIT">  </span><span class="COMM">// Create our orientation variable.</span><span class="WHIT">
+<span class='line'> 70</span> </span><span class="WHIT">  </span><span class="NAME">this.orient</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 71</span> </span><span class="WHIT">    </span><span class="NAME">pos</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">this.options.vertical</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="STRN">'y'</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="STRN">'x'</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'> 72</span> </span><span class="WHIT">    </span><span class="NAME">pagePos</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">this.options.vertical</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="STRN">'pageY'</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="STRN">'pageX'</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'> 73</span> </span><span class="WHIT">    </span><span class="NAME">offset</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">this.options.vertical</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="STRN">'top'</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="STRN">'left'</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'> 74</span> </span><span class="WHIT">    </span><span class="NAME">wrapperSize</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">this.options.vertical</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="STRN">'wrapperH'</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="STRN">'wrapperW'</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'> 75</span> </span><span class="WHIT">    </span><span class="NAME">minScroll</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">this.options.vertical</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="STRN">'minScrollY'</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="STRN">'minScrollX'</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'> 76</span> </span><span class="WHIT">    </span><span class="NAME">maxScroll</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">this.options.vertical</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="STRN">'maxScrollY'</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="STRN">'maxScrollX'</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'> 77</span> </span><span class="WHIT">    </span><span class="NAME">size</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">this.options.vertical</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="STRN">'height'</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="STRN">'width'</span><span class="WHIT">
+<span class='line'> 78</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 79</span> 
+<span class='line'> 80</span> </span><span class="WHIT">  </span><span class="COMM">// Create the pager.</span><span class="WHIT">
+<span class='line'> 81</span> </span><span class="WHIT">  </span><span class="NAME">this.pager</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.create</span><span class="PUNC">(</span><span class="STRN">'pager'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'osmplayer'</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 82</span> </span><span class="WHIT">  </span><span class="NAME">this.pager.bind</span><span class="PUNC">(</span><span class="STRN">'nextPage'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">playlist</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 83</span> </span><span class="WHIT">    </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">event</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 84</span> </span><span class="WHIT">      </span><span class="NAME">playlist.nextPage</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 85</span> </span><span class="WHIT">    </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 86</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 87</span> </span><span class="WHIT">  </span><span class="NAME">this.pager.bind</span><span class="PUNC">(</span><span class="STRN">'prevPage'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">playlist</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 88</span> </span><span class="WHIT">    </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">event</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 89</span> </span><span class="WHIT">      </span><span class="NAME">playlist.prevPage</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 90</span> </span><span class="WHIT">    </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 91</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 92</span> 
+<span class='line'> 93</span> </span><span class="WHIT">  </span><span class="COMM">// Load the "next" item.</span><span class="WHIT">
+<span class='line'> 94</span> </span><span class="WHIT">  </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">this.next</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 95</span> 
+<span class='line'> 96</span> </span><span class="WHIT">    </span><span class="COMM">// Get the media.</span><span class="WHIT">
+<span class='line'> 97</span> </span><span class="WHIT">    </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">this.options.autoNext</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 98</span> </span><span class="WHIT">      </span><span class="NAME">this.get</span><span class="PUNC">(</span><span class="STRN">'media'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">media</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 99</span> </span><span class="WHIT">        </span><span class="NAME">media.bind</span><span class="PUNC">(</span><span class="STRN">'ended'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">playlist</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>100</span> </span><span class="WHIT">          </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">event</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>101</span> </span><span class="WHIT">            </span><span class="NAME">media.options.autoplay</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">true</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>102</span> </span><span class="WHIT">            </span><span class="NAME">playlist.next</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>103</span> </span><span class="WHIT">          </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>104</span> </span><span class="WHIT">        </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>105</span> </span><span class="WHIT">      </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>106</span> </span><span class="WHIT">    </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>107</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>108</span> 
+<span class='line'>109</span> </span><span class="WHIT">  </span><span class="COMM">// Say that we are ready.</span><span class="WHIT">
+<span class='line'>110</span> </span><span class="WHIT">  </span><span class="NAME">this.ready</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>111</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>112</span> 
+<span class='line'>113</span> </span><span class="COMM">/**
+<span class='line'>114</span>  * Wrapper around the scroll scrollTo method.
+<span class='line'>115</span>  *
+<span class='line'>116</span>  * @param {number} pos The position you would like to set the list.
+<span class='line'>117</span>  * @param {boolean} relative If this is a relative position change.
+<span class='line'>118</span>  */</span><span class="WHIT">
+<span class='line'>119</span> </span><span class="NAME">osmplayer.playlist.prototype.scrollTo</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">pos</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">relative</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>120</span> </span><span class="WHIT">  </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">this.scroll</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>121</span> </span><span class="WHIT">    </span><span class="NAME">this.scroll.options.hideScrollbar</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">false</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>122</span> </span><span class="WHIT">    </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">this.options.vertical</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>123</span> </span><span class="WHIT">      </span><span class="NAME">this.scroll.scrollTo</span><span class="PUNC">(</span><span class="NUMB">0</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">pos</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">relative</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>124</span> </span><span class="WHIT">    </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>125</span> </span><span class="WHIT">    </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>126</span> </span><span class="WHIT">      </span><span class="NAME">this.scroll.scrollTo</span><span class="PUNC">(</span><span class="NAME">pos</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">relative</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>127</span> </span><span class="WHIT">    </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>128</span> </span><span class="WHIT">    </span><span class="NAME">this.scroll.options.hideScrollbar</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">true</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>129</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>130</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>131</span> 
+<span class='line'>132</span> </span><span class="COMM">/**
+<span class='line'>133</span>  * Refresh the scrollbar.
+<span class='line'>134</span>  */</span><span class="WHIT">
+<span class='line'>135</span> </span><span class="NAME">osmplayer.playlist.prototype.refreshScroll</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>136</span> 
+<span class='line'>137</span> </span><span class="WHIT">  </span><span class="COMM">// Make sure that our window has the addEventListener to keep IE happy.</span><span class="WHIT">
+<span class='line'>138</span> </span><span class="WHIT">  </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">window.addEventListener</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>139</span> </span><span class="WHIT">    </span><span class="NAME">setTimeout</span><span class="PUNC">(</span><span class="PUNC">(</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">playlist</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>140</span> </span><span class="WHIT">      </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>141</span> </span><span class="WHIT">        </span><span class="NAME">playlist.refreshScroll.call</span><span class="PUNC">(</span><span class="NAME">playlist</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>142</span> </span><span class="WHIT">      </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>143</span> </span><span class="WHIT">    </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NUMB">200</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>144</span> </span><span class="WHIT">    </span><span class="KEYW">return</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>145</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>146</span> 
+<span class='line'>147</span> </span><span class="WHIT">  </span><span class="COMM">// Check the size of the playlist.</span><span class="WHIT">
+<span class='line'>148</span> </span><span class="WHIT">  </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">list</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.elements.list</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>149</span> </span><span class="WHIT">  </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">scroll</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.elements.scroll</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>150</span> 
+<span class='line'>151</span> </span><span class="WHIT">  </span><span class="COMM">// Check to see if we should add a scroll bar functionality.</span><span class="WHIT">
+<span class='line'>152</span> </span><span class="WHIT">  </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">this.scroll</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT">
+<span class='line'>153</span> </span><span class="WHIT">      </span><span class="PUNC">(</span><span class="NAME">list.length</span><span class="WHIT"> </span><span class="PUNC">></span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT">
+<span class='line'>154</span> </span><span class="WHIT">      </span><span class="PUNC">(</span><span class="NAME">scroll.length</span><span class="WHIT"> </span><span class="PUNC">></span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT">
+<span class='line'>155</span> </span><span class="WHIT">      </span><span class="PUNC">(</span><span class="NAME">list</span><span class="PUNC">[</span><span class="NAME">this.orient.size</span><span class="PUNC">]</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">></span><span class="WHIT"> </span><span class="NAME">scroll</span><span class="PUNC">[</span><span class="NAME">this.orient.size</span><span class="PUNC">]</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>156</span> 
+<span class='line'>157</span> </span><span class="WHIT">    </span><span class="COMM">// Setup the iScroll component.</span><span class="WHIT">
+<span class='line'>158</span> </span><span class="WHIT">    </span><span class="NAME">this.scroll</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">new</span><span class="WHIT"> </span><span class="NAME">iScroll</span><span class="PUNC">(</span><span class="NAME">this.elements.scroll.eq</span><span class="PUNC">(</span><span class="NUMB">0</span><span class="PUNC">)</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>159</span> </span><span class="WHIT">      </span><span class="NAME">hScroll</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="PUNC">!</span><span class="NAME">this.options.vertical</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'>160</span> </span><span class="WHIT">      </span><span class="NAME">hScrollbar</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="PUNC">!</span><span class="NAME">this.options.vertical</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'>161</span> </span><span class="WHIT">      </span><span class="NAME">vScroll</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">this.options.vertical</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'>162</span> </span><span class="WHIT">      </span><span class="NAME">vScrollbar</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">this.options.vertical</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'>163</span> </span><span class="WHIT">      </span><span class="NAME">hideScrollbar</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">true</span><span class="WHIT">
+<span class='line'>164</span> </span><span class="WHIT">    </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>165</span> 
+<span class='line'>166</span> </span><span class="WHIT">    </span><span class="COMM">// Use autoScroll for non-touch devices.</span><span class="WHIT">
+<span class='line'>167</span> </span><span class="WHIT">    </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">(</span><span class="NAME">this.options.scrollMode</span><span class="WHIT"> </span><span class="PUNC">==</span><span class="WHIT"> </span><span class="STRN">'auto'</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="PUNC">!</span><span class="NAME">minplayer.hasTouch</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>168</span> 
+<span class='line'>169</span> </span><span class="WHIT">      </span><span class="COMM">// Bind to the mouse events for autoscrolling.</span><span class="WHIT">
+<span class='line'>170</span> </span><span class="WHIT">      </span><span class="NAME">this.elements.list.bind</span><span class="PUNC">(</span><span class="STRN">'mousemove'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">playlist</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>171</span> </span><span class="WHIT">        </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">event</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>172</span> </span><span class="WHIT">          </span><span class="NAME">event.preventDefault</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>173</span> </span><span class="WHIT">          </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">offset</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">playlist.display.offset</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">[</span><span class="NAME">playlist.orient.offset</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>174</span> </span><span class="WHIT">          </span><span class="NAME">playlist.mousePos</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">event</span><span class="PUNC">[</span><span class="NAME">playlist.orient.pagePos</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>175</span> </span><span class="WHIT">          </span><span class="NAME">playlist.mousePos</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">offset</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>176</span> </span><span class="WHIT">        </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>177</span> </span><span class="WHIT">      </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">bind</span><span class="PUNC">(</span><span class="STRN">'mouseenter'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">playlist</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>178</span> </span><span class="WHIT">        </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">event</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>179</span> </span><span class="WHIT">          </span><span class="NAME">event.preventDefault</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>180</span> </span><span class="WHIT">          </span><span class="NAME">playlist.scrolling</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">true</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>181</span> </span><span class="WHIT">          </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">setScroll</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>182</span> </span><span class="WHIT">            </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">playlist.scrolling</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>183</span> </span><span class="WHIT">              </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">scrollSize</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">playlist.scroll</span><span class="PUNC">[</span><span class="NAME">playlist.orient.wrapperSize</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>184</span> </span><span class="WHIT">              </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">scrollMid</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">scrollSize</span><span class="WHIT"> </span><span class="PUNC">/</span><span class="WHIT"> </span><span class="NUMB">2</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>185</span> </span><span class="WHIT">              </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">delta</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">playlist.mousePos</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="WHIT"> </span><span class="NAME">scrollMid</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>186</span> </span><span class="WHIT">              </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">Math.abs</span><span class="PUNC">(</span><span class="NAME">delta</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">></span><span class="WHIT"> </span><span class="NAME">playlist.options.hysteresis</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>187</span> </span><span class="WHIT">                </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">hyst</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">playlist.options.hysteresis</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>188</span> </span><span class="WHIT">                </span><span class="NAME">hyst</span><span class="WHIT"> </span><span class="PUNC">*</span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">delta</span><span class="WHIT"> </span><span class="PUNC">></span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="NUMB">1</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>189</span> </span><span class="WHIT">                </span><span class="NAME">delta</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">playlist.options.scrollSpeed</span><span class="WHIT"> </span><span class="PUNC">*</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">delta</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">hyst</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>190</span> </span><span class="WHIT">                </span><span class="NAME">delta</span><span class="WHIT"> </span><span class="PUNC">/</span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">scrollMid</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>191</span> </span><span class="WHIT">                </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">pos</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">playlist.scroll</span><span class="PUNC">[</span><span class="NAME">playlist.orient.pos</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="WHIT"> </span><span class="NAME">delta</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>192</span> </span><span class="WHIT">                </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">min</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">playlist.scroll</span><span class="PUNC">[</span><span class="NAME">playlist.orient.minScroll</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>193</span> </span><span class="WHIT">                </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">max</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">playlist.scroll</span><span class="PUNC">[</span><span class="NAME">playlist.orient.maxScroll</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>194</span> </span><span class="WHIT">                </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">pos</span><span class="WHIT"> </span><span class="PUNC">>=</span><span class="WHIT"> </span><span class="NAME">min</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>195</span> </span><span class="WHIT">                  </span><span class="NAME">playlist.scrollTo</span><span class="PUNC">(</span><span class="NAME">min</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>196</span> </span><span class="WHIT">                </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>197</span> </span><span class="WHIT">                </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">pos</span><span class="WHIT"> </span><span class="PUNC">&lt;=</span><span class="WHIT"> </span><span class="NAME">max</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>198</span> </span><span class="WHIT">                  </span><span class="NAME">playlist.scrollTo</span><span class="PUNC">(</span><span class="NAME">max</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>199</span> </span><span class="WHIT">                </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>200</span> </span><span class="WHIT">                </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>201</span> </span><span class="WHIT">                  </span><span class="NAME">playlist.scrollTo</span><span class="PUNC">(</span><span class="NAME">delta</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="KEYW">true</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>202</span> </span><span class="WHIT">                </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>203</span> </span><span class="WHIT">              </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>204</span> 
+<span class='line'>205</span> </span><span class="WHIT">              </span><span class="COMM">// Set timeout to try again.</span><span class="WHIT">
+<span class='line'>206</span> </span><span class="WHIT">              </span><span class="NAME">setTimeout</span><span class="PUNC">(</span><span class="NAME">setScroll</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NUMB">30</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>207</span> </span><span class="WHIT">            </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>208</span> </span><span class="WHIT">          </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>209</span> </span><span class="WHIT">          </span><span class="NAME">setScroll</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>210</span> </span><span class="WHIT">        </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>211</span> </span><span class="WHIT">      </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">bind</span><span class="PUNC">(</span><span class="STRN">'mouseleave'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">playlist</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>212</span> </span><span class="WHIT">        </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">event</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>213</span> </span><span class="WHIT">          </span><span class="NAME">event.preventDefault</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>214</span> </span><span class="WHIT">          </span><span class="NAME">playlist.scrolling</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">false</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>215</span> </span><span class="WHIT">        </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>216</span> </span><span class="WHIT">      </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>217</span> </span><span class="WHIT">    </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>218</span> 
+<span class='line'>219</span> </span><span class="WHIT">    </span><span class="COMM">// Need to force the width of the list.</span><span class="WHIT">
+<span class='line'>220</span> </span><span class="WHIT">    </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">this.options.vertical</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>221</span> </span><span class="WHIT">      </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">listSize</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>222</span> </span><span class="WHIT">      </span><span class="NAME">jQuery.each</span><span class="PUNC">(</span><span class="NAME">this.elements.list.children</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>223</span> </span><span class="WHIT">        </span><span class="NAME">listSize</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">jQuery</span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">outerWidth</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>224</span> </span><span class="WHIT">      </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>225</span> </span><span class="WHIT">      </span><span class="NAME">this.elements.list.width</span><span class="PUNC">(</span><span class="NAME">listSize</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>226</span> </span><span class="WHIT">    </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>227</span> 
+<span class='line'>228</span> </span><span class="WHIT">    </span><span class="NAME">this.scroll.refresh</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>229</span> </span><span class="WHIT">    </span><span class="NAME">this.scroll.scrollTo</span><span class="PUNC">(</span><span class="NUMB">0</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NUMB">200</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>230</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>231</span> </span><span class="WHIT">  </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">this.scroll</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>232</span> 
+<span class='line'>233</span> </span><span class="WHIT">    </span><span class="COMM">// Disable the scroll bar.</span><span class="WHIT">
+<span class='line'>234</span> </span><span class="WHIT">    </span><span class="NAME">this.scroll.disable</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>235</span> </span><span class="WHIT">    </span><span class="NAME">this.elements.list</span><span class="WHIT">
+<span class='line'>236</span> </span><span class="WHIT">      </span><span class="PUNC">.</span><span class="NAME">unbind</span><span class="PUNC">(</span><span class="STRN">'mousemove'</span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'>237</span> </span><span class="WHIT">      </span><span class="PUNC">.</span><span class="NAME">unbind</span><span class="PUNC">(</span><span class="STRN">'mouseenter'</span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'>238</span> </span><span class="WHIT">      </span><span class="PUNC">.</span><span class="NAME">unbind</span><span class="PUNC">(</span><span class="STRN">'mouseleave'</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>239</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>240</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>241</span> 
+<span class='line'>242</span> </span><span class="COMM">/**
+<span class='line'>243</span>  * Sets the playlist.
+<span class='line'>244</span>  *
+<span class='line'>245</span>  * @param {object} playlist The playlist object.
+<span class='line'>246</span>  * @param {integer} loadIndex The index of the item to load.
+<span class='line'>247</span>  */</span><span class="WHIT">
+<span class='line'>248</span> </span><span class="NAME">osmplayer.playlist.prototype.set</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">playlist</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">loadIndex</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>249</span> 
+<span class='line'>250</span> </span><span class="WHIT">  </span><span class="COMM">// Check to make sure the playlist is an object.</span><span class="WHIT">
+<span class='line'>251</span> </span><span class="WHIT">  </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">playlist</span><span class="WHIT"> </span><span class="PUNC">!==</span><span class="WHIT"> </span><span class="STRN">'object'</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>252</span> </span><span class="WHIT">    </span><span class="NAME">this.trigger</span><span class="PUNC">(</span><span class="STRN">'error'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'Playlist must be an object to set'</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>253</span> </span><span class="WHIT">    </span><span class="KEYW">return</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>254</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>255</span> 
+<span class='line'>256</span> </span><span class="WHIT">  </span><span class="COMM">// Check to make sure the playlist has correct format.</span><span class="WHIT">
+<span class='line'>257</span> </span><span class="WHIT">  </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">playlist.hasOwnProperty</span><span class="PUNC">(</span><span class="STRN">'total_rows'</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>258</span> </span><span class="WHIT">    </span><span class="NAME">this.trigger</span><span class="PUNC">(</span><span class="STRN">'error'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'Unknown playlist format.'</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>259</span> </span><span class="WHIT">    </span><span class="KEYW">return</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>260</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>261</span> 
+<span class='line'>262</span> </span><span class="WHIT">  </span><span class="COMM">// Make sure the playlist has some rows.</span><span class="WHIT">
+<span class='line'>263</span> </span><span class="WHIT">  </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">playlist.total_rows</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">playlist.nodes.length</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>264</span> 
+<span class='line'>265</span> </span><span class="WHIT">    </span><span class="COMM">// Set the total rows.</span><span class="WHIT">
+<span class='line'>266</span> </span><span class="WHIT">    </span><span class="NAME">this.totalItems</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">playlist.total_rows</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>267</span> </span><span class="WHIT">    </span><span class="NAME">this.currentItem</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>268</span> 
+<span class='line'>269</span> </span><span class="WHIT">    </span><span class="COMM">// Show or hide the next page if there is or is not a next page.</span><span class="WHIT">
+<span class='line'>270</span> </span><span class="WHIT">    </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">(</span><span class="PUNC">(</span><span class="NAME">this.page</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NUMB">1</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">*</span><span class="WHIT"> </span><span class="NAME">this.options.pageLimit</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">>=</span><span class="WHIT"> </span><span class="NAME">this.totalItems</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>271</span> </span><span class="WHIT">      </span><span class="NAME">this.pager.nextPage.hide</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>272</span> </span><span class="WHIT">    </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>273</span> </span><span class="WHIT">    </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>274</span> </span><span class="WHIT">      </span><span class="NAME">this.pager.nextPage.show</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>275</span> </span><span class="WHIT">    </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>276</span> 
+<span class='line'>277</span> </span><span class="WHIT">    </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">teaser</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">null</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>278</span> </span><span class="WHIT">    </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">numNodes</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">playlist.nodes.length</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>279</span> </span><span class="WHIT">    </span><span class="NAME">this.elements.list.empty</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>280</span> </span><span class="WHIT">    </span><span class="NAME">this.nodes</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>281</span> 
+<span class='line'>282</span> </span><span class="WHIT">    </span><span class="COMM">// Iterate through all the nodes.</span><span class="WHIT">
+<span class='line'>283</span> </span><span class="WHIT">    </span><span class="KEYW">for</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">index</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">index</span><span class="WHIT"> </span><span class="PUNC">&lt;</span><span class="WHIT"> </span><span class="NAME">numNodes</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">index</span><span class="PUNC">++</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>284</span> 
+<span class='line'>285</span> </span><span class="WHIT">      </span><span class="COMM">// Create the teaser object.</span><span class="WHIT">
+<span class='line'>286</span> </span><span class="WHIT">      </span><span class="NAME">teaser</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.create</span><span class="PUNC">(</span><span class="STRN">'teaser'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'osmplayer'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">this.elements.list</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>287</span> </span><span class="WHIT">      </span><span class="NAME">teaser.setNode</span><span class="PUNC">(</span><span class="NAME">playlist.nodes</span><span class="PUNC">[</span><span class="NAME">index</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>288</span> </span><span class="WHIT">      </span><span class="NAME">teaser.bind</span><span class="PUNC">(</span><span class="STRN">'nodeLoad'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">playlist</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">index</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>289</span> </span><span class="WHIT">        </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">event</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">data</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>290</span> </span><span class="WHIT">          </span><span class="NAME">playlist.loadItem</span><span class="PUNC">(</span><span class="NAME">index</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>291</span> </span><span class="WHIT">        </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>292</span> </span><span class="WHIT">      </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">index</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>293</span> 
+<span class='line'>294</span> </span><span class="WHIT">      </span><span class="COMM">// Add this to our nodes array.</span><span class="WHIT">
+<span class='line'>295</span> </span><span class="WHIT">      </span><span class="NAME">this.nodes.push</span><span class="PUNC">(</span><span class="NAME">teaser</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>296</span> 
+<span class='line'>297</span> </span><span class="WHIT">      </span><span class="COMM">// If the index is equal to the loadIndex.</span><span class="WHIT">
+<span class='line'>298</span> </span><span class="WHIT">      </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">loadIndex</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="NAME">index</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>299</span> </span><span class="WHIT">        </span><span class="NAME">this.loadItem</span><span class="PUNC">(</span><span class="NAME">index</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>300</span> </span><span class="WHIT">      </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>301</span> </span><span class="WHIT">    </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>302</span> 
+<span class='line'>303</span> </span><span class="WHIT">    </span><span class="COMM">// Refresh the sizes.</span><span class="WHIT">
+<span class='line'>304</span> </span><span class="WHIT">    </span><span class="NAME">this.refreshScroll</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>305</span> 
+<span class='line'>306</span> </span><span class="WHIT">    </span><span class="COMM">// Trigger that the playlist has loaded.</span><span class="WHIT">
+<span class='line'>307</span> </span><span class="WHIT">    </span><span class="NAME">this.trigger</span><span class="PUNC">(</span><span class="STRN">'playlistLoad'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">playlist</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>308</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>309</span> 
+<span class='line'>310</span> </span><span class="WHIT">  </span><span class="COMM">// Show that we are no longer busy.</span><span class="WHIT">
+<span class='line'>311</span> </span><span class="WHIT">  </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">this.elements.playlist_busy</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>312</span> </span><span class="WHIT">    </span><span class="NAME">this.elements.playlist_busy.hide</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>313</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>314</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>315</span> 
+<span class='line'>316</span> </span><span class="COMM">/**
+<span class='line'>317</span>  * Stores the current playlist state in the playqueue.
+<span class='line'>318</span>  */</span><span class="WHIT">
+<span class='line'>319</span> </span><span class="NAME">osmplayer.playlist.prototype.setQueue</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>320</span> 
+<span class='line'>321</span> </span><span class="WHIT">  </span><span class="COMM">// Add this item to the playqueue.</span><span class="WHIT">
+<span class='line'>322</span> </span><span class="WHIT">  </span><span class="NAME">this.playqueue.push</span><span class="PUNC">(</span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>323</span> </span><span class="WHIT">    </span><span class="NAME">page</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">this.page</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'>324</span> </span><span class="WHIT">    </span><span class="NAME">item</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">this.currentItem</span><span class="WHIT">
+<span class='line'>325</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>326</span> 
+<span class='line'>327</span> </span><span class="WHIT">  </span><span class="COMM">// Store the current playqueue position.</span><span class="WHIT">
+<span class='line'>328</span> </span><span class="WHIT">  </span><span class="NAME">this.playqueuepos</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.playqueue.length</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>329</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>330</span> 
+<span class='line'>331</span> </span><span class="COMM">/**
+<span class='line'>332</span>  * Loads the next item.
+<span class='line'>333</span>  *
+<span class='line'>334</span>  * @return {boolean} TRUE if loaded, FALSE if not.
+<span class='line'>335</span>  */</span><span class="WHIT">
+<span class='line'>336</span> </span><span class="NAME">osmplayer.playlist.prototype.next</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>337</span> </span><span class="WHIT">  </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">item</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">page</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.page</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>338</span> 
+<span class='line'>339</span> </span><span class="WHIT">  </span><span class="COMM">// See if we are at the front of the playqueue.</span><span class="WHIT">
+<span class='line'>340</span> </span><span class="WHIT">  </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">this.playqueuepos</span><span class="WHIT"> </span><span class="PUNC">>=</span><span class="WHIT"> </span><span class="NAME">this.playqueue.length</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>341</span> 
+<span class='line'>342</span> </span><span class="WHIT">    </span><span class="COMM">// If this is shuffle, then load a random item.</span><span class="WHIT">
+<span class='line'>343</span> </span><span class="WHIT">    </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">this.options.shuffle</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>344</span> </span><span class="WHIT">      </span><span class="NAME">item</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">Math.floor</span><span class="PUNC">(</span><span class="NAME">Math.random</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">*</span><span class="WHIT"> </span><span class="NAME">this.totalItems</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>345</span> </span><span class="WHIT">      </span><span class="NAME">page</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">Math.floor</span><span class="PUNC">(</span><span class="NAME">item</span><span class="WHIT"> </span><span class="PUNC">/</span><span class="WHIT"> </span><span class="NAME">this.options.pageLimit</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>346</span> </span><span class="WHIT">      </span><span class="NAME">item</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">item</span><span class="WHIT"> </span><span class="PUNC">%</span><span class="WHIT"> </span><span class="NAME">this.options.pageLimit</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>347</span> </span><span class="WHIT">      </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">this.load</span><span class="PUNC">(</span><span class="NAME">page</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">item</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>348</span> </span><span class="WHIT">    </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>349</span> </span><span class="WHIT">    </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>350</span> 
+<span class='line'>351</span> </span><span class="WHIT">      </span><span class="COMM">// Otherwise, increment the current item by one.</span><span class="WHIT">
+<span class='line'>352</span> </span><span class="WHIT">      </span><span class="NAME">item</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">this.currentItem</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NUMB">1</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>353</span> </span><span class="WHIT">      </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">item</span><span class="WHIT"> </span><span class="PUNC">>=</span><span class="WHIT"> </span><span class="NAME">this.nodes.length</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>354</span> </span><span class="WHIT">        </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">this.load</span><span class="PUNC">(</span><span class="NAME">page</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NUMB">1</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>355</span> </span><span class="WHIT">      </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>356</span> </span><span class="WHIT">      </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>357</span> </span><span class="WHIT">        </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">this.loadItem</span><span class="PUNC">(</span><span class="NAME">item</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>358</span> </span><span class="WHIT">      </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>359</span> </span><span class="WHIT">    </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>360</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>361</span> </span><span class="WHIT">  </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>362</span> 
+<span class='line'>363</span> </span><span class="WHIT">    </span><span class="COMM">// Load the next item in the playqueue.</span><span class="WHIT">
+<span class='line'>364</span> </span><span class="WHIT">    </span><span class="NAME">this.playqueuepos</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.playqueuepos</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NUMB">1</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>365</span> </span><span class="WHIT">    </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">currentQueue</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.playqueue</span><span class="PUNC">[</span><span class="NAME">this.playqueuepos</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>366</span> </span><span class="WHIT">    </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">this.load</span><span class="PUNC">(</span><span class="NAME">currentQueue.page</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">currentQueue.item</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>367</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>368</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>369</span> 
+<span class='line'>370</span> </span><span class="COMM">/**
+<span class='line'>371</span>  * Loads the previous item.
+<span class='line'>372</span>  *
+<span class='line'>373</span>  * @return {boolean} TRUE if loaded, FALSE if not.
+<span class='line'>374</span>  */</span><span class="WHIT">
+<span class='line'>375</span> </span><span class="NAME">osmplayer.playlist.prototype.prev</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>376</span> 
+<span class='line'>377</span> </span><span class="WHIT">  </span><span class="COMM">// Move back into the playqueue.</span><span class="WHIT">
+<span class='line'>378</span> </span><span class="WHIT">  </span><span class="NAME">this.playqueuepos</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.playqueuepos</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="WHIT"> </span><span class="NUMB">1</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>379</span> </span><span class="WHIT">  </span><span class="NAME">this.playqueuepos</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">this.playqueuepos</span><span class="WHIT"> </span><span class="PUNC">&lt;</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">this.playqueuepos</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>380</span> </span><span class="WHIT">  </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">currentQueue</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.playqueue</span><span class="PUNC">[</span><span class="NAME">this.playqueuepos</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>381</span> </span><span class="WHIT">  </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">currentQueue</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>382</span> </span><span class="WHIT">    </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">this.load</span><span class="PUNC">(</span><span class="NAME">currentQueue.page</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">currentQueue.item</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>383</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>384</span> </span><span class="WHIT">  </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">false</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>385</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>386</span> 
+<span class='line'>387</span> </span><span class="COMM">/**
+<span class='line'>388</span>  * Loads a playlist node.
+<span class='line'>389</span>  *
+<span class='line'>390</span>  * @param {number} index The index of the item you would like to load.
+<span class='line'>391</span>  * @return {boolean} TRUE if loaded, FALSE if not.
+<span class='line'>392</span>  */</span><span class="WHIT">
+<span class='line'>393</span> </span><span class="NAME">osmplayer.playlist.prototype.loadItem</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">index</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>394</span> </span><span class="WHIT">  </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">index</span><span class="WHIT"> </span><span class="PUNC">&lt;</span><span class="WHIT"> </span><span class="NAME">this.nodes.length</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>395</span> </span><span class="WHIT">    </span><span class="NAME">this.setQueue</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>396</span> 
+<span class='line'>397</span> </span><span class="WHIT">    </span><span class="COMM">// Get the teaser at the current index and deselect it.</span><span class="WHIT">
+<span class='line'>398</span> </span><span class="WHIT">    </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">teaser</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.nodes</span><span class="PUNC">[</span><span class="NAME">this.currentItem</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>399</span> </span><span class="WHIT">    </span><span class="NAME">teaser.select</span><span class="PUNC">(</span><span class="KEYW">false</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>400</span> </span><span class="WHIT">    </span><span class="NAME">this.currentItem</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">index</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>401</span> 
+<span class='line'>402</span> </span><span class="WHIT">    </span><span class="COMM">// Get the new teaser and select it.</span><span class="WHIT">
+<span class='line'>403</span> </span><span class="WHIT">    </span><span class="NAME">teaser</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.nodes</span><span class="PUNC">[</span><span class="NAME">index</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>404</span> </span><span class="WHIT">    </span><span class="NAME">teaser.select</span><span class="PUNC">(</span><span class="KEYW">true</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>405</span> </span><span class="WHIT">    </span><span class="NAME">this.trigger</span><span class="PUNC">(</span><span class="STRN">'nodeLoad'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">teaser.node</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>406</span> </span><span class="WHIT">    </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">true</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>407</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>408</span> 
+<span class='line'>409</span> </span><span class="WHIT">  </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">false</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>410</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>411</span> 
+<span class='line'>412</span> </span><span class="COMM">/**
+<span class='line'>413</span>  * Loads the next page.
+<span class='line'>414</span>  *
+<span class='line'>415</span>  * @param {integer} loadIndex The index of the item to load.
+<span class='line'>416</span>  * @return {boolean} TRUE if loaded, FALSE if not.
+<span class='line'>417</span>  */</span><span class="WHIT">
+<span class='line'>418</span> </span><span class="NAME">osmplayer.playlist.prototype.nextPage</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">loadIndex</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>419</span> </span><span class="WHIT">  </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">this.load</span><span class="PUNC">(</span><span class="NAME">this.page</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NUMB">1</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">loadIndex</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>420</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>421</span> 
+<span class='line'>422</span> </span><span class="COMM">/**
+<span class='line'>423</span>  * Loads the previous page.
+<span class='line'>424</span>  *
+<span class='line'>425</span>  * @param {integer} loadIndex The index of the item to load.
+<span class='line'>426</span>  * @return {boolean} TRUE if loaded, FALSE if not.
+<span class='line'>427</span>  */</span><span class="WHIT">
+<span class='line'>428</span> </span><span class="NAME">osmplayer.playlist.prototype.prevPage</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">loadIndex</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>429</span> </span><span class="WHIT">  </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">this.load</span><span class="PUNC">(</span><span class="NAME">this.page</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="WHIT"> </span><span class="NUMB">1</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">loadIndex</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>430</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>431</span> 
+<span class='line'>432</span> </span><span class="COMM">/**
+<span class='line'>433</span>  * Loads a playlist.
+<span class='line'>434</span>  *
+<span class='line'>435</span>  * @param {integer} page The page to load.
+<span class='line'>436</span>  * @param {integer} loadIndex The index of the item to load.
+<span class='line'>437</span>  * @return {boolean} TRUE if loaded, FALSE if not.
+<span class='line'>438</span>  */</span><span class="WHIT">
+<span class='line'>439</span> </span><span class="NAME">osmplayer.playlist.prototype.load</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">page</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">loadIndex</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>440</span> 
+<span class='line'>441</span> </span><span class="WHIT">  </span><span class="COMM">// If the playlist and pages are the same, then no need to load.</span><span class="WHIT">
+<span class='line'>442</span> </span><span class="WHIT">  </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">(</span><span class="NAME">this.playlist</span><span class="WHIT"> </span><span class="PUNC">==</span><span class="WHIT"> </span><span class="NAME">this.options.playlist</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">page</span><span class="WHIT"> </span><span class="PUNC">==</span><span class="WHIT"> </span><span class="NAME">this.page</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>443</span> </span><span class="WHIT">    </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">this.loadItem</span><span class="PUNC">(</span><span class="NAME">loadIndex</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>444</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>445</span> 
+<span class='line'>446</span> </span><span class="WHIT">  </span><span class="COMM">// Set the new playlist.</span><span class="WHIT">
+<span class='line'>447</span> </span><span class="WHIT">  </span><span class="NAME">this.playlist</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.options.playlist</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>448</span> 
+<span class='line'>449</span> </span><span class="WHIT">  </span><span class="COMM">// Return if there aren't any playlists to play.</span><span class="WHIT">
+<span class='line'>450</span> </span><span class="WHIT">  </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">this.playlist</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>451</span> </span><span class="WHIT">    </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">false</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>452</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>453</span> 
+<span class='line'>454</span> </span><span class="WHIT">  </span><span class="COMM">// Determine if we need to loop.</span><span class="WHIT">
+<span class='line'>455</span> </span><span class="WHIT">  </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">maxPages</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">Math.floor</span><span class="PUNC">(</span><span class="NAME">this.totalItems</span><span class="WHIT"> </span><span class="PUNC">/</span><span class="WHIT"> </span><span class="NAME">this.options.pageLimit</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>456</span> </span><span class="WHIT">  </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">page</span><span class="WHIT"> </span><span class="PUNC">></span><span class="WHIT"> </span><span class="NAME">maxPages</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>457</span> </span><span class="WHIT">    </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">this.options.loop</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>458</span> </span><span class="WHIT">      </span><span class="NAME">page</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>459</span> </span><span class="WHIT">      </span><span class="NAME">loadIndex</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>460</span> </span><span class="WHIT">    </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>461</span> </span><span class="WHIT">    </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>462</span> </span><span class="WHIT">      </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">false</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>463</span> </span><span class="WHIT">    </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>464</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>465</span> 
+<span class='line'>466</span> </span><span class="WHIT">  </span><span class="COMM">// Say that we are busy.</span><span class="WHIT">
+<span class='line'>467</span> </span><span class="WHIT">  </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">this.elements.playlist_busy</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>468</span> </span><span class="WHIT">    </span><span class="NAME">this.elements.playlist_busy.show</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>469</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>470</span> 
+<span class='line'>471</span> </span><span class="WHIT">  </span><span class="COMM">// Normalize the page.</span><span class="WHIT">
+<span class='line'>472</span> </span><span class="WHIT">  </span><span class="NAME">page</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">page</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>473</span> </span><span class="WHIT">  </span><span class="NAME">page</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">page</span><span class="WHIT"> </span><span class="PUNC">&lt;</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">page</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>474</span> 
+<span class='line'>475</span> </span><span class="WHIT">  </span><span class="COMM">// Set the queue.</span><span class="WHIT">
+<span class='line'>476</span> </span><span class="WHIT">  </span><span class="NAME">this.setQueue</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>477</span> 
+<span class='line'>478</span> </span><span class="WHIT">  </span><span class="COMM">// Set the new page.</span><span class="WHIT">
+<span class='line'>479</span> </span><span class="WHIT">  </span><span class="NAME">this.page</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">page</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>480</span> 
+<span class='line'>481</span> </span><span class="WHIT">  </span><span class="COMM">// Hide or show the page based on if we are on the first page.</span><span class="WHIT">
+<span class='line'>482</span> </span><span class="WHIT">  </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">this.page</span><span class="WHIT"> </span><span class="PUNC">==</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>483</span> </span><span class="WHIT">    </span><span class="NAME">this.pager.prevPage.hide</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>484</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>485</span> </span><span class="WHIT">  </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>486</span> </span><span class="WHIT">    </span><span class="NAME">this.pager.prevPage.show</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>487</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>488</span> 
+<span class='line'>489</span> </span><span class="WHIT">  </span><span class="COMM">// If the playlist is an object, then go ahead and set it.</span><span class="WHIT">
+<span class='line'>490</span> </span><span class="WHIT">  </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">this.playlist</span><span class="WHIT"> </span><span class="PUNC">==</span><span class="WHIT"> </span><span class="STRN">'object'</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>491</span> </span><span class="WHIT">    </span><span class="NAME">this.set</span><span class="PUNC">(</span><span class="NAME">this.playlist</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">loadIndex</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>492</span> </span><span class="WHIT">    </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">this.playlist.endpoint</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>493</span> </span><span class="WHIT">      </span><span class="NAME">this.playlist</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.options.playlist</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.playlist.endpoint</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>494</span> </span><span class="WHIT">    </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>495</span> </span><span class="WHIT">    </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">true</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>496</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>497</span> 
+<span class='line'>498</span> </span><span class="WHIT">  </span><span class="COMM">// Get the highest priority parser.</span><span class="WHIT">
+<span class='line'>499</span> </span><span class="WHIT">  </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">parser</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">osmplayer.parser</span><span class="PUNC">[</span><span class="STRN">'default'</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>500</span> </span><span class="WHIT">  </span><span class="KEYW">for</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">name</span><span class="WHIT"> </span><span class="KEYW">in</span><span class="WHIT"> </span><span class="NAME">osmplayer.parser</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>501</span> </span><span class="WHIT">    </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">osmplayer.parser.hasOwnProperty</span><span class="PUNC">(</span><span class="NAME">name</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>502</span> </span><span class="WHIT">      </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">osmplayer.parser</span><span class="PUNC">[</span><span class="NAME">name</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">valid</span><span class="PUNC">(</span><span class="NAME">this.playlist</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>503</span> </span><span class="WHIT">        </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">osmplayer.parser</span><span class="PUNC">[</span><span class="NAME">name</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">priority</span><span class="WHIT"> </span><span class="PUNC">></span><span class="WHIT"> </span><span class="NAME">parser.priority</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>504</span> </span><span class="WHIT">          </span><span class="NAME">parser</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">osmplayer.parser</span><span class="PUNC">[</span><span class="NAME">name</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>505</span> </span><span class="WHIT">        </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>506</span> </span><span class="WHIT">      </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>507</span> </span><span class="WHIT">    </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>508</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>509</span> 
+<span class='line'>510</span> </span><span class="WHIT">  </span><span class="COMM">// The start index.</span><span class="WHIT">
+<span class='line'>511</span> </span><span class="WHIT">  </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">start</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.page</span><span class="WHIT"> </span><span class="PUNC">*</span><span class="WHIT"> </span><span class="NAME">this.options.pageLimit</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>512</span> 
+<span class='line'>513</span> </span><span class="WHIT">  </span><span class="COMM">// Get the feed from the parser.</span><span class="WHIT">
+<span class='line'>514</span> </span><span class="WHIT">  </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">feed</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">parser.getFeed</span><span class="PUNC">(</span><span class="WHIT">
+<span class='line'>515</span> </span><span class="WHIT">    </span><span class="NAME">this.playlist</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'>516</span> </span><span class="WHIT">    </span><span class="NAME">start</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'>517</span> </span><span class="WHIT">    </span><span class="NAME">this.options.pageLimit</span><span class="WHIT">
+<span class='line'>518</span> </span><span class="WHIT">  </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>519</span> 
+<span class='line'>520</span> </span><span class="WHIT">  </span><span class="COMM">// Build our request.</span><span class="WHIT">
+<span class='line'>521</span> </span><span class="WHIT">  </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">request</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>522</span> </span><span class="WHIT">    </span><span class="NAME">type</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="STRN">'GET'</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'>523</span> </span><span class="WHIT">    </span><span class="NAME">url</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">feed</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'>524</span> </span><span class="WHIT">    </span><span class="NAME">success</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">playlist</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>525</span> </span><span class="WHIT">      </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">data</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>526</span> </span><span class="WHIT">        </span><span class="NAME">playlist.set</span><span class="PUNC">(</span><span class="NAME">parser.parse</span><span class="PUNC">(</span><span class="NAME">data</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">loadIndex</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>527</span> </span><span class="WHIT">      </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>528</span> </span><span class="WHIT">    </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'>529</span> </span><span class="WHIT">    </span><span class="NAME">error</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">playlist</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>530</span> </span><span class="WHIT">      </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">XMLHttpRequest</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">textStatus</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">errorThrown</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>531</span> </span><span class="WHIT">        </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">playlist.elements.playlist_busy</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>532</span> </span><span class="WHIT">          </span><span class="NAME">playlist.elements.playlist_busy.hide</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>533</span> </span><span class="WHIT">        </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>534</span> </span><span class="WHIT">        </span><span class="NAME">playlist.trigger</span><span class="PUNC">(</span><span class="STRN">'error'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">textStatus</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>535</span> </span><span class="WHIT">      </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>536</span> </span><span class="WHIT">    </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'>537</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>538</span> 
+<span class='line'>539</span> </span><span class="WHIT">  </span><span class="COMM">// Set the data if applicable.</span><span class="WHIT">
+<span class='line'>540</span> </span><span class="WHIT">  </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">dataType</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">''</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>541</span> </span><span class="WHIT">  </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">dataType</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">parser.getType</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>542</span> </span><span class="WHIT">    </span><span class="NAME">request.dataType</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">dataType</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>543</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>544</span> 
+<span class='line'>545</span> </span><span class="WHIT">  </span><span class="COMM">// Perform an ajax callback.</span><span class="WHIT">
+<span class='line'>546</span> </span><span class="WHIT">  </span><span class="NAME">jQuery.ajax</span><span class="PUNC">(</span><span class="NAME">request</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>547</span> 
+<span class='line'>548</span> </span><span class="WHIT">  </span><span class="COMM">// Return that we did something.</span><span class="WHIT">
+<span class='line'>549</span> </span><span class="WHIT">  </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">true</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>550</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>551</span> </span></pre></body></html>
\ No newline at end of file
diff --git a/public/admin/js/osmplayer/doc/symbols/src/src_osmplayer.scroll.js.html b/public/admin/js/osmplayer/doc/symbols/src/src_osmplayer.scroll.js.html
new file mode 100644
index 00000000000..99ffddccefe
--- /dev/null
+++ b/public/admin/js/osmplayer/doc/symbols/src/src_osmplayer.scroll.js.html
@@ -0,0 +1,291 @@
+<html><head><meta http-equiv="content-type" content="text/html; charset=utf-8"> <style>
+	.KEYW {color: #933;}
+	.COMM {color: #bbb; font-style: italic;}
+	.NUMB {color: #393;}
+	.STRN {color: #393;}
+	.REGX {color: #339;}
+	.line {border-right: 1px dotted #666; color: #666; font-style: normal;}
+	</style></head><body><pre><span class='line'>  1</span> <span class="COMM">/** The osmplayer namespace. */</span><span class="WHIT">
+<span class='line'>  2</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">osmplayer</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">osmplayer</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>  3</span> 
+<span class='line'>  4</span> </span><span class="COMM">/**
+<span class='line'>  5</span>  * @constructor
+<span class='line'>  6</span>  * @extends minplayer.display
+<span class='line'>  7</span>  * @class This class provides the scroll functionality for the playlists.
+<span class='line'>  8</span>  *
+<span class='line'>  9</span>  * We can calculate how the scrollbar controls the playlist using the
+<span class='line'> 10</span>  * following diagram / equations.
+<span class='line'> 11</span>  *  ___ ____________
+<span class='line'> 12</span>  *  |  |            |\
+<span class='line'> 13</span>  *  |  |    list    | \
+<span class='line'> 14</span>  *  |  |            |y \
+<span class='line'> 15</span>  *  |  |            |   \
+<span class='line'> 16</span>  *  |  |____________|    \ _ _____
+<span class='line'> 17</span>  *  |  |            |\    | |    |
+<span class='line'> 18</span>  *  |  |            | \   | |    |
+<span class='line'> 19</span>  *  |  |            |  \  | |x   |
+<span class='line'> 20</span>  *  |  |            |   \ | |    |
+<span class='line'> 21</span>  *  |  |            |    \|_|_   |
+<span class='line'> 22</span>  *  |  |            |     | | |  |
+<span class='line'> 23</span>  *  l  |   window   |     | | h  w
+<span class='line'> 24</span>  *  |  |            |     |_|_|  |
+<span class='line'> 25</span>  *  |  |            |    /| |    |
+<span class='line'> 26</span>  *  |  |            |   / | |    |
+<span class='line'> 27</span>  *  |  |            |  / v| |    |
+<span class='line'> 28</span>  *  |  |            | /   | |    |
+<span class='line'> 29</span>  *  |  |____________|/    |_|____|
+<span class='line'> 30</span>  *  |  |            |    /
+<span class='line'> 31</span>  *  |  |            |   /
+<span class='line'> 32</span>  *  |  |            |  /
+<span class='line'> 33</span>  *  |  |            | /
+<span class='line'> 34</span>  *  |__|____________|/
+<span class='line'> 35</span>  *
+<span class='line'> 36</span>  *  l - The list height.
+<span class='line'> 37</span>  *  h - Handle Bar height.
+<span class='line'> 38</span>  *  w - Window height.
+<span class='line'> 39</span>  *  x - The distance from top of window to the top of the handle.
+<span class='line'> 40</span>  *  y - The disatnce from the top of the list to the top of the window.
+<span class='line'> 41</span>  *  v - The distance from bottom of window to the bottom of the handle.
+<span class='line'> 42</span>  *
+<span class='line'> 43</span>  *  jQuery UI provides "v".  We already know "l", "h", "w".  We can then
+<span class='line'> 44</span>  *  calculate the relationship between the scroll bar handle position to the
+<span class='line'> 45</span>  *  list position using the following equations.
+<span class='line'> 46</span>  *
+<span class='line'> 47</span>  *  x = (w - (v + h))
+<span class='line'> 48</span>  *  y = ((l - w)/(w - h)) * x
+<span class='line'> 49</span>  *
+<span class='line'> 50</span>  *   -- or --
+<span class='line'> 51</span>  *
+<span class='line'> 52</span>  *  y = ((l - w)/(w - h)) * (w - (v + h))
+<span class='line'> 53</span>  *
+<span class='line'> 54</span>  *  We can statically calculate the ((l - w)/(w - h)) as a ratio and use
+<span class='line'> 55</span>  *  that to speed up calculations as follows.
+<span class='line'> 56</span>  *
+<span class='line'> 57</span>  *  ratio = ((l - w)/(w - h));
+<span class='line'> 58</span>  *
+<span class='line'> 59</span>  *  So, our translation equations are as follows...
+<span class='line'> 60</span>  *
+<span class='line'> 61</span>  *    y = ratio * (w - (v + h))
+<span class='line'> 62</span>  *    v = w - (h + (y / ratio))
+<span class='line'> 63</span>  *
+<span class='line'> 64</span>  *
+<span class='line'> 65</span>  * @param {object} context The jQuery context.
+<span class='line'> 66</span>  * @param {object} options This components options.
+<span class='line'> 67</span>  */</span><span class="WHIT">
+<span class='line'> 68</span> </span><span class="NAME">osmplayer.scroll</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">context</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">options</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 69</span> 
+<span class='line'> 70</span> </span><span class="WHIT">  </span><span class="COMM">// Derive from display</span><span class="WHIT">
+<span class='line'> 71</span> </span><span class="WHIT">  </span><span class="NAME">minplayer.display.call</span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'scroll'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">context</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">options</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 72</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 73</span> 
+<span class='line'> 74</span> </span><span class="COMM">/** Derive from minplayer.display. */</span><span class="WHIT">
+<span class='line'> 75</span> </span><span class="NAME">osmplayer.scroll.prototype</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">new</span><span class="WHIT"> </span><span class="NAME">minplayer.display</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 76</span> 
+<span class='line'> 77</span> </span><span class="COMM">/** Reset the constructor. */</span><span class="WHIT">
+<span class='line'> 78</span> </span><span class="NAME">osmplayer.scroll.prototype.constructor</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">osmplayer.scroll</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 79</span> 
+<span class='line'> 80</span> </span><span class="COMM">/**
+<span class='line'> 81</span>  * @see minplayer.plugin#construct
+<span class='line'> 82</span>  */</span><span class="WHIT">
+<span class='line'> 83</span> </span><span class="NAME">osmplayer.scroll.prototype.construct</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 84</span> 
+<span class='line'> 85</span> </span><span class="WHIT">  </span><span class="COMM">// Make sure we provide default options...</span><span class="WHIT">
+<span class='line'> 86</span> </span><span class="WHIT">  </span><span class="NAME">this.options</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">jQuery.extend</span><span class="PUNC">(</span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 87</span> </span><span class="WHIT">    </span><span class="NAME">vertical</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">true</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'> 88</span> </span><span class="WHIT">    </span><span class="NAME">hysteresis</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NUMB">40</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'> 89</span> </span><span class="WHIT">    </span><span class="NAME">scrollSpeed</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NUMB">20</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'> 90</span> </span><span class="WHIT">    </span><span class="NAME">scrollMode</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="STRN">'auto'</span><span class="WHIT">
+<span class='line'> 91</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">this.options</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 92</span> 
+<span class='line'> 93</span> </span><span class="WHIT">  </span><span class="COMM">// Call the minplayer plugin constructor.</span><span class="WHIT">
+<span class='line'> 94</span> </span><span class="WHIT">  </span><span class="NAME">minplayer.display.prototype.construct.call</span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 95</span> 
+<span class='line'> 96</span> </span><span class="WHIT">  </span><span class="COMM">// Make this component orientation agnostic.</span><span class="WHIT">
+<span class='line'> 97</span> </span><span class="WHIT">  </span><span class="NAME">this.pos</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.options.vertical</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="STRN">'pageY'</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="STRN">'pageX'</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 98</span> </span><span class="WHIT">  </span><span class="NAME">this.offset</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.options.vertical</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="STRN">'top'</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="STRN">'left'</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 99</span> </span><span class="WHIT">  </span><span class="NAME">this.margin</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.options.vertical</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="STRN">'marginTop'</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="STRN">'marginLeft'</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>100</span> </span><span class="WHIT">  </span><span class="NAME">this.size</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.options.vertical</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="STRN">'height'</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="STRN">'width'</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>101</span> </span><span class="WHIT">  </span><span class="NAME">this.outer</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.options.vertical</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="STRN">'outerHeight'</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="STRN">'outerWidth'</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>102</span> 
+<span class='line'>103</span> </span><span class="WHIT">  </span><span class="NAME">this.getMousePos</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">event</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>104</span> </span><span class="WHIT">    </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">event</span><span class="PUNC">[</span><span class="NAME">this.pos</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="WHIT"> </span><span class="NAME">this.display.offset</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">[</span><span class="NAME">this.offset</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>105</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>106</span> </span><span class="WHIT">  </span><span class="NAME">this.getPos</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">handlePos</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>107</span> </span><span class="WHIT">    </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">this.options.vertical</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>108</span> </span><span class="WHIT">      </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">this.ratio</span><span class="WHIT"> </span><span class="PUNC">*</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">this.scrollSize</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">handlePos</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">this.handleSize</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>109</span> </span><span class="WHIT">    </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>110</span> </span><span class="WHIT">    </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>111</span> </span><span class="WHIT">      </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">this.ratio</span><span class="WHIT"> </span><span class="PUNC">*</span><span class="WHIT"> </span><span class="NAME">handlePos</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>112</span> </span><span class="WHIT">    </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>113</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>114</span> </span><span class="WHIT">  </span><span class="NAME">this.getHandlePos</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">pos</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>115</span> </span><span class="WHIT">    </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">this.options.vertical</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>116</span> </span><span class="WHIT">      </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">this.scrollSize</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">this.handleSize</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">pos</span><span class="WHIT"> </span><span class="PUNC">/</span><span class="WHIT"> </span><span class="NAME">this.ratio</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>117</span> </span><span class="WHIT">    </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>118</span> </span><span class="WHIT">    </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>119</span> </span><span class="WHIT">      </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">pos</span><span class="WHIT"> </span><span class="PUNC">/</span><span class="WHIT"> </span><span class="NAME">this.ratio</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>120</span> </span><span class="WHIT">    </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>121</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>122</span> 
+<span class='line'>123</span> </span><span class="WHIT">  </span><span class="COMM">// If they have a scroll bar.</span><span class="WHIT">
+<span class='line'>124</span> </span><span class="WHIT">  </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">this.elements.scroll</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>125</span> 
+<span class='line'>126</span> </span><span class="WHIT">    </span><span class="COMM">// Get the values of our variables.</span><span class="WHIT">
+<span class='line'>127</span> </span><span class="WHIT">    </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">scroll</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.elements.scroll</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>128</span> </span><span class="WHIT">    </span><span class="NAME">this.handleSize</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>129</span> </span><span class="WHIT">    </span><span class="NAME">this.scrollTop</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>130</span> </span><span class="WHIT">    </span><span class="NAME">this.mousePos</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>131</span> 
+<span class='line'>132</span> </span><span class="WHIT">    </span><span class="COMM">// Refresh the scroll.</span><span class="WHIT">
+<span class='line'>133</span> </span><span class="WHIT">    </span><span class="NAME">this.refresh</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>134</span> 
+<span class='line'>135</span> </span><span class="WHIT">    </span><span class="COMM">// Create the scroll bar slider control.</span><span class="WHIT">
+<span class='line'>136</span> </span><span class="WHIT">    </span><span class="NAME">this.scroll</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">scroll.slider</span><span class="PUNC">(</span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>137</span> </span><span class="WHIT">      </span><span class="NAME">orientation</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">this.options.vertical</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="STRN">'vertical'</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="STRN">'horizontal'</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'>138</span> </span><span class="WHIT">      </span><span class="NAME">max</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">this.scrollSize</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'>139</span> </span><span class="WHIT">      </span><span class="NAME">create</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">scroll</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">vertical</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>140</span> </span><span class="WHIT">        </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">event</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">ui</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>141</span> </span><span class="WHIT">          </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">handle</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">jQuery</span><span class="PUNC">(</span><span class="STRN">'.ui-slider-handle'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">event.target</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>142</span> </span><span class="WHIT">          </span><span class="NAME">scroll.handleSize</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">handle</span><span class="PUNC">[</span><span class="NAME">scroll.outer</span><span class="PUNC">]</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>143</span> </span><span class="WHIT">          </span><span class="NAME">scroll.scrollTop</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">scroll.scrollSize</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="WHIT"> </span><span class="NAME">scroll.handleSize</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>144</span> </span><span class="WHIT">          </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">initValue</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">vertical</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="NAME">scroll.scrollTop</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>145</span> </span><span class="WHIT">          </span><span class="NAME">jQuery</span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">slider</span><span class="PUNC">(</span><span class="STRN">'option'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'value'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">initValue</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>146</span> </span><span class="WHIT">        </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>147</span> </span><span class="WHIT">      </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">this.options.vertical</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'>148</span> </span><span class="WHIT">      </span><span class="NAME">slide</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">scroll</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">vertical</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>149</span> </span><span class="WHIT">        </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">event</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">ui</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>150</span> </span><span class="WHIT">          </span><span class="COMM">// Get the new position.</span><span class="WHIT">
+<span class='line'>151</span> </span><span class="WHIT">          </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">pos</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">scroll.getPos</span><span class="PUNC">(</span><span class="NAME">ui.value</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>152</span> 
+<span class='line'>153</span> </span><span class="WHIT">          </span><span class="COMM">// Ensure it doesn't go over the limits.</span><span class="WHIT">
+<span class='line'>154</span> </span><span class="WHIT">          </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">vertical</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">pos</span><span class="WHIT"> </span><span class="PUNC">&lt;</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>155</span> </span><span class="WHIT">            </span><span class="NAME">scroll.scroll.slider</span><span class="PUNC">(</span><span class="STRN">'option'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'value'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">scroll.scrollTop</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>156</span> </span><span class="WHIT">            </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">false</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>157</span> </span><span class="WHIT">          </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>158</span> </span><span class="WHIT">          </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">vertical</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">ui.value</span><span class="WHIT"> </span><span class="PUNC">></span><span class="WHIT"> </span><span class="NAME">scroll.scrollTop</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>159</span> </span><span class="WHIT">            </span><span class="NAME">scroll.scroll.slider</span><span class="PUNC">(</span><span class="STRN">'option'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'value'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">scroll.scrollTop</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>160</span> </span><span class="WHIT">            </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">false</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>161</span> </span><span class="WHIT">          </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>162</span> 
+<span class='line'>163</span> </span><span class="WHIT">          </span><span class="COMM">// Set our list position.</span><span class="WHIT">
+<span class='line'>164</span> </span><span class="WHIT">          </span><span class="NAME">scroll.elements.list.css</span><span class="PUNC">(</span><span class="NAME">scroll.margin</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="NAME">pos</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">'px'</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>165</span> </span><span class="WHIT">          </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">true</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>166</span> </span><span class="WHIT">        </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>167</span> </span><span class="WHIT">      </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">this.options.vertical</span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'>168</span> </span><span class="WHIT">    </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>169</span> 
+<span class='line'>170</span> </span><span class="WHIT">    </span><span class="COMM">// If they wish to have auto scroll mode.</span><span class="WHIT">
+<span class='line'>171</span> </span><span class="WHIT">    </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">this.options.scrollMode</span><span class="WHIT"> </span><span class="PUNC">==</span><span class="WHIT"> </span><span class="STRN">'auto'</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>172</span> 
+<span class='line'>173</span> </span><span class="WHIT">      </span><span class="COMM">// Bind to the mouse events.</span><span class="WHIT">
+<span class='line'>174</span> </span><span class="WHIT">      </span><span class="NAME">this.elements.list.bind</span><span class="PUNC">(</span><span class="STRN">'mousemove'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">scroll</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>175</span> 
+<span class='line'>176</span> </span><span class="WHIT">        </span><span class="COMM">// Return our event function.</span><span class="WHIT">
+<span class='line'>177</span> </span><span class="WHIT">        </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">event</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>178</span> </span><span class="WHIT">          </span><span class="NAME">event.preventDefault</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>179</span> </span><span class="WHIT">          </span><span class="NAME">scroll.mousePos</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">event</span><span class="PUNC">[</span><span class="NAME">scroll.pos</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>180</span> </span><span class="WHIT">          </span><span class="NAME">scroll.mousePos</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">scroll.display.offset</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">[</span><span class="NAME">scroll.offset</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>181</span> </span><span class="WHIT">        </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>182</span> 
+<span class='line'>183</span> </span><span class="WHIT">      </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">bind</span><span class="PUNC">(</span><span class="STRN">'mouseenter'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">scroll</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>184</span> 
+<span class='line'>185</span> </span><span class="WHIT">        </span><span class="COMM">// Return our event function.</span><span class="WHIT">
+<span class='line'>186</span> </span><span class="WHIT">        </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">event</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>187</span> </span><span class="WHIT">          </span><span class="NAME">event.preventDefault</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>188</span> </span><span class="WHIT">          </span><span class="NAME">scroll.scrolling</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">true</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>189</span> </span><span class="WHIT">          </span><span class="NAME">setTimeout</span><span class="PUNC">(</span><span class="KEYW">function</span><span class="WHIT"> </span><span class="NAME">setScroll</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>190</span> </span><span class="WHIT">            </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">scroll.scrolling</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>191</span> 
+<span class='line'>192</span> </span><span class="WHIT">              </span><span class="COMM">// Get the delta.</span><span class="WHIT">
+<span class='line'>193</span> </span><span class="WHIT">              </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">delta</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">scroll.mousePos</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="WHIT"> </span><span class="NAME">scroll.scrollMid</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>194</span> 
+<span class='line'>195</span> </span><span class="WHIT">              </span><span class="COMM">// Determine if we are within our hysteresis.</span><span class="WHIT">
+<span class='line'>196</span> </span><span class="WHIT">              </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">Math.abs</span><span class="PUNC">(</span><span class="NAME">delta</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">></span><span class="WHIT"> </span><span class="NAME">scroll.options.hysteresis</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>197</span> 
+<span class='line'>198</span> </span><span class="WHIT">                </span><span class="COMM">// Get the hysteresis and delta.</span><span class="WHIT">
+<span class='line'>199</span> </span><span class="WHIT">                </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">hyst</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">scroll.options.hysteresis</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>200</span> </span><span class="WHIT">                </span><span class="NAME">hyst</span><span class="WHIT"> </span><span class="PUNC">*</span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">delta</span><span class="WHIT"> </span><span class="PUNC">></span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="NUMB">1</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>201</span> </span><span class="WHIT">                </span><span class="NAME">delta</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">scroll.options.scrollSpeed</span><span class="WHIT"> </span><span class="PUNC">*</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">delta</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">hyst</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>202</span> </span><span class="WHIT">                </span><span class="NAME">delta</span><span class="WHIT"> </span><span class="PUNC">/</span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">scroll.scrollMid</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>203</span> 
+<span class='line'>204</span> </span><span class="WHIT">                </span><span class="COMM">// Get the scroll position.</span><span class="WHIT">
+<span class='line'>205</span> </span><span class="WHIT">                </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">pos</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">scroll.elements.list.css</span><span class="PUNC">(</span><span class="NAME">scroll.margin</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>206</span> </span><span class="WHIT">                </span><span class="NAME">pos</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">parseFloat</span><span class="PUNC">(</span><span class="NAME">pos</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="WHIT"> </span><span class="NAME">delta</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>207</span> </span><span class="WHIT">                </span><span class="NAME">pos</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">pos</span><span class="WHIT"> </span><span class="PUNC">></span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">pos</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>208</span> 
+<span class='line'>209</span> </span><span class="WHIT">                </span><span class="COMM">// Get the maximum top position.</span><span class="WHIT">
+<span class='line'>210</span> </span><span class="WHIT">                </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">top</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="NAME">scroll.listSize</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">scroll.scrollSize</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>211</span> </span><span class="WHIT">                </span><span class="NAME">pos</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">pos</span><span class="WHIT"> </span><span class="PUNC">&lt;</span><span class="WHIT"> </span><span class="NAME">top</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="NAME">top</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">pos</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>212</span> 
+<span class='line'>213</span> </span><span class="WHIT">                </span><span class="COMM">// Set the new scroll position.</span><span class="WHIT">
+<span class='line'>214</span> </span><span class="WHIT">                </span><span class="NAME">scroll.elements.list.css</span><span class="PUNC">(</span><span class="NAME">scroll.margin</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">pos</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">'px'</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>215</span> 
+<span class='line'>216</span> </span><span class="WHIT">                </span><span class="COMM">// Set the scroll position.</span><span class="WHIT">
+<span class='line'>217</span> </span><span class="WHIT">                </span><span class="NAME">pos</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">scroll.getHandlePos</span><span class="PUNC">(</span><span class="PUNC">-</span><span class="NAME">pos</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>218</span> </span><span class="WHIT">                </span><span class="NAME">scroll.scroll.slider</span><span class="PUNC">(</span><span class="STRN">'option'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'value'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">pos</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>219</span> </span><span class="WHIT">              </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>220</span> 
+<span class='line'>221</span> </span><span class="WHIT">              </span><span class="COMM">// Set timeout to try again.</span><span class="WHIT">
+<span class='line'>222</span> </span><span class="WHIT">              </span><span class="NAME">setTimeout</span><span class="PUNC">(</span><span class="NAME">setScroll</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NUMB">20</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>223</span> </span><span class="WHIT">            </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>224</span> </span><span class="WHIT">          </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NUMB">20</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>225</span> </span><span class="WHIT">        </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>226</span> 
+<span class='line'>227</span> </span><span class="WHIT">      </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">bind</span><span class="PUNC">(</span><span class="STRN">'mouseleave'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">scroll</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>228</span> 
+<span class='line'>229</span> </span><span class="WHIT">        </span><span class="COMM">// Return our event function.</span><span class="WHIT">
+<span class='line'>230</span> </span><span class="WHIT">        </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">event</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>231</span> </span><span class="WHIT">          </span><span class="NAME">event.preventDefault</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>232</span> </span><span class="WHIT">          </span><span class="NAME">scroll.scrolling</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">false</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>233</span> </span><span class="WHIT">        </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>234</span> 
+<span class='line'>235</span> </span><span class="WHIT">      </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>236</span> </span><span class="WHIT">    </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>237</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>238</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>239</span> 
+<span class='line'>240</span> </span><span class="COMM">/**
+<span class='line'>241</span>  * Refreshes the scroll list.
+<span class='line'>242</span>  */</span><span class="WHIT">
+<span class='line'>243</span> </span><span class="NAME">osmplayer.scroll.prototype.refresh</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>244</span> 
+<span class='line'>245</span> </span><span class="WHIT">  </span><span class="COMM">// The list size.</span><span class="WHIT">
+<span class='line'>246</span> </span><span class="WHIT">  </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">this.options.vertical</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>247</span> </span><span class="WHIT">    </span><span class="NAME">this.listSize</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.elements.list.height</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>248</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>249</span> </span><span class="WHIT">  </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>250</span> </span><span class="WHIT">    </span><span class="NAME">this.listSize</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>251</span> </span><span class="WHIT">    </span><span class="NAME">jQuery.each</span><span class="PUNC">(</span><span class="NAME">this.elements.list.children</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">scroll</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>252</span> </span><span class="WHIT">      </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>253</span> </span><span class="WHIT">        </span><span class="NAME">scroll.listSize</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">jQuery</span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">)</span><span class="PUNC">[</span><span class="NAME">scroll.outer</span><span class="PUNC">]</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>254</span> </span><span class="WHIT">      </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>255</span> </span><span class="WHIT">    </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>256</span> 
+<span class='line'>257</span> </span><span class="WHIT">    </span><span class="COMM">// Set the list size.</span><span class="WHIT">
+<span class='line'>258</span> </span><span class="WHIT">    </span><span class="NAME">this.elements.list</span><span class="PUNC">[</span><span class="NAME">this.size</span><span class="PUNC">]</span><span class="PUNC">(</span><span class="NAME">this.listSize</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>259</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>260</span> 
+<span class='line'>261</span> </span><span class="WHIT">  </span><span class="COMM">// Refresh the list.</span><span class="WHIT">
+<span class='line'>262</span> </span><span class="WHIT">  </span><span class="NAME">this.onResize</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>263</span> 
+<span class='line'>264</span> </span><span class="WHIT">  </span><span class="COMM">// Set the scroll position.</span><span class="WHIT">
+<span class='line'>265</span> </span><span class="WHIT">  </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">this.scroll</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>266</span> </span><span class="WHIT">    </span><span class="NAME">this.elements.list.css</span><span class="PUNC">(</span><span class="NAME">this.margin</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'0px'</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>267</span> </span><span class="WHIT">    </span><span class="NAME">this.scroll.slider</span><span class="PUNC">(</span><span class="STRN">'option'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'value'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">this.getHandlePos</span><span class="PUNC">(</span><span class="NUMB">0</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>268</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>269</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>270</span> 
+<span class='line'>271</span> </span><span class="COMM">/**
+<span class='line'>272</span>  * Refresh all the variables that may change.
+<span class='line'>273</span>  */</span><span class="WHIT">
+<span class='line'>274</span> </span><span class="NAME">osmplayer.scroll.prototype.onResize</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>275</span> </span><span class="WHIT">  </span><span class="NAME">this.scrollSize</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.elements.scroll</span><span class="PUNC">[</span><span class="NAME">this.size</span><span class="PUNC">]</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>276</span> </span><span class="WHIT">  </span><span class="NAME">this.scrollMid</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.scrollSize</span><span class="WHIT"> </span><span class="PUNC">/</span><span class="WHIT"> </span><span class="NUMB">2</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>277</span> </span><span class="WHIT">  </span><span class="NAME">this.scrollTop</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">this.scrollSize</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="WHIT"> </span><span class="NAME">this.handleSize</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>278</span> </span><span class="WHIT">  </span><span class="NAME">this.ratio</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">this.listSize</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="WHIT"> </span><span class="NAME">this.scrollSize</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>279</span> </span><span class="WHIT">  </span><span class="NAME">this.ratio</span><span class="WHIT"> </span><span class="PUNC">/</span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">this.scrollSize</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="WHIT"> </span><span class="NAME">this.handleSize</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>280</span> </span><span class="WHIT">  </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">this.scroll</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>281</span> </span><span class="WHIT">    </span><span class="NAME">this.scroll.slider</span><span class="PUNC">(</span><span class="STRN">'option'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'max'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">this.scrollSize</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>282</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>283</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>284</span> </span></pre></body></html>
\ No newline at end of file
diff --git a/public/admin/js/osmplayer/doc/symbols/src/src_osmplayer.teaser.js.html b/public/admin/js/osmplayer/doc/symbols/src/src_osmplayer.teaser.js.html
new file mode 100644
index 00000000000..8337d8e979d
--- /dev/null
+++ b/public/admin/js/osmplayer/doc/symbols/src/src_osmplayer.teaser.js.html
@@ -0,0 +1,76 @@
+<html><head><meta http-equiv="content-type" content="text/html; charset=utf-8"> <style>
+	.KEYW {color: #933;}
+	.COMM {color: #bbb; font-style: italic;}
+	.NUMB {color: #393;}
+	.STRN {color: #393;}
+	.REGX {color: #339;}
+	.line {border-right: 1px dotted #666; color: #666; font-style: normal;}
+	</style></head><body><pre><span class='line'>  1</span> <span class="COMM">/** The osmplayer namespace. */</span><span class="WHIT">
+<span class='line'>  2</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">osmplayer</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">osmplayer</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>  3</span> 
+<span class='line'>  4</span> </span><span class="COMM">/**
+<span class='line'>  5</span>  * @constructor
+<span class='line'>  6</span>  * @extends minplayer.display
+<span class='line'>  7</span>  * @class This class provides teaser functionality.
+<span class='line'>  8</span>  *
+<span class='line'>  9</span>  * @param {object} context The jQuery context.
+<span class='line'> 10</span>  * @param {object} options This components options.
+<span class='line'> 11</span>  */</span><span class="WHIT">
+<span class='line'> 12</span> </span><span class="NAME">osmplayer.teaser</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">context</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">options</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 13</span> 
+<span class='line'> 14</span> </span><span class="WHIT">  </span><span class="COMM">/** The preview image. */</span><span class="WHIT">
+<span class='line'> 15</span> </span><span class="WHIT">  </span><span class="NAME">this.preview</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">null</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 16</span> 
+<span class='line'> 17</span> </span><span class="WHIT">  </span><span class="COMM">// Derive from display</span><span class="WHIT">
+<span class='line'> 18</span> </span><span class="WHIT">  </span><span class="NAME">minplayer.display.call</span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'teaser'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">context</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">options</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 19</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 20</span> 
+<span class='line'> 21</span> </span><span class="COMM">/** Derive from minplayer.display. */</span><span class="WHIT">
+<span class='line'> 22</span> </span><span class="NAME">osmplayer.teaser.prototype</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">new</span><span class="WHIT"> </span><span class="NAME">minplayer.display</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 23</span> 
+<span class='line'> 24</span> </span><span class="COMM">/** Reset the constructor. */</span><span class="WHIT">
+<span class='line'> 25</span> </span><span class="NAME">osmplayer.teaser.prototype.constructor</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">osmplayer.teaser</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 26</span> 
+<span class='line'> 27</span> </span><span class="COMM">/**
+<span class='line'> 28</span>  * Selects the teaser.
+<span class='line'> 29</span>  *
+<span class='line'> 30</span>  * @param {boolean} selected TRUE if selected, FALSE otherwise.
+<span class='line'> 31</span>  */</span><span class="WHIT">
+<span class='line'> 32</span> </span><span class="NAME">osmplayer.teaser.prototype.select</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">selected</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 33</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 34</span> 
+<span class='line'> 35</span> </span><span class="COMM">/**
+<span class='line'> 36</span>  * Sets the node.
+<span class='line'> 37</span>  *
+<span class='line'> 38</span>  * @param {object} node The node object to set.
+<span class='line'> 39</span>  */</span><span class="WHIT">
+<span class='line'> 40</span> </span><span class="NAME">osmplayer.teaser.prototype.setNode</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">node</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 41</span> 
+<span class='line'> 42</span> </span><span class="WHIT">  </span><span class="COMM">// Add this to the node info for this teaser.</span><span class="WHIT">
+<span class='line'> 43</span> </span><span class="WHIT">  </span><span class="NAME">this.node</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">node</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 44</span> 
+<span class='line'> 45</span> </span><span class="WHIT">  </span><span class="COMM">// Set the title of the teaser.</span><span class="WHIT">
+<span class='line'> 46</span> </span><span class="WHIT">  </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">this.elements.title</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 47</span> </span><span class="WHIT">    </span><span class="NAME">this.elements.title.text</span><span class="PUNC">(</span><span class="NAME">node.title</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 48</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'> 49</span> 
+<span class='line'> 50</span> </span><span class="WHIT">  </span><span class="COMM">// Load the thumbnail image if it exists.</span><span class="WHIT">
+<span class='line'> 51</span> </span><span class="WHIT">  </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">node.mediafiles</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">node.mediafiles.image</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 52</span> </span><span class="WHIT">    </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">image</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">osmplayer.getImage</span><span class="PUNC">(</span><span class="NAME">node.mediafiles</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'thumbnail'</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 53</span> </span><span class="WHIT">    </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">image</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 54</span> </span><span class="WHIT">      </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">this.elements.image</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 55</span> </span><span class="WHIT">        </span><span class="NAME">this.preview</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">new</span><span class="WHIT"> </span><span class="NAME">minplayer.image</span><span class="PUNC">(</span><span class="NAME">this.elements.image</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 56</span> </span><span class="WHIT">        </span><span class="NAME">this.preview.load</span><span class="PUNC">(</span><span class="NAME">image</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 57</span> </span><span class="WHIT">      </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'> 58</span> </span><span class="WHIT">    </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'> 59</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'> 60</span> 
+<span class='line'> 61</span> </span><span class="WHIT">  </span><span class="COMM">// Bind when they click on this teaser.</span><span class="WHIT">
+<span class='line'> 62</span> </span><span class="WHIT">  </span><span class="NAME">this.display.unbind</span><span class="PUNC">(</span><span class="STRN">'click'</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">click</span><span class="PUNC">(</span><span class="PUNC">(</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">teaser</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 63</span> </span><span class="WHIT">    </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">event</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 64</span> </span><span class="WHIT">      </span><span class="NAME">event.preventDefault</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 65</span> </span><span class="WHIT">      </span><span class="NAME">teaser.trigger</span><span class="PUNC">(</span><span class="STRN">'nodeLoad'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">teaser.node</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 66</span> </span><span class="WHIT">    </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 67</span> </span><span class="WHIT">  </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 68</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 69</span> </span></pre></body></html>
\ No newline at end of file
diff --git a/public/admin/js/osmplayer/index.html b/public/admin/js/osmplayer/index.html
new file mode 100644
index 00000000000..c2e2f029859
--- /dev/null
+++ b/public/admin/js/osmplayer/index.html
@@ -0,0 +1,66 @@
+
+<html>
+  <head>
+    <title>Open Standard Media (OSM) Player: PHP Demo</title>
+    <script type='text/javascript' src="https://ajax.googleapis.com/ajax/libs/jquery/1.5/jquery.js"></script>
+    <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.8/jquery-ui.js"></script>
+
+    <!-- Many more themes to chose from... go to http://jqueryui.com/themeroller! -->
+    <link rel="stylesheet" href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/themes/dark-hive/jquery-ui.css">
+
+    <!-- The compressed osmplayer script. -->
+    <!--<script type="text/javascript" src="bin/osmplayer.compressed.js"></script> -->
+    <script type="text/javascript" src="minplayer/src/minplayer.compatibility.js"></script>
+    <script type="text/javascript" src="minplayer/src/minplayer.flags.js"></script>
+    <script type="text/javascript" src="minplayer/src/minplayer.async.js"></script>
+    <script type="text/javascript" src="minplayer/src/minplayer.plugin.js"></script>
+    <script type="text/javascript" src="minplayer/src/minplayer.display.js"></script>
+    <script type="text/javascript" src="minplayer/src/minplayer.js"></script>
+    <script type="text/javascript" src="minplayer/src/minplayer.image.js"></script>
+    <script type="text/javascript" src="minplayer/src/minplayer.file.js"></script>
+    <script type="text/javascript" src="minplayer/src/minplayer.playLoader.js"></script>
+    <script type="text/javascript" src="minplayer/src/minplayer.players.base.js"></script>
+    <script type="text/javascript" src="minplayer/src/minplayer.players.html5.js"></script>
+    <script type="text/javascript" src="minplayer/src/minplayer.players.flash.js"></script>
+    <script type="text/javascript" src="minplayer/src/minplayer.players.minplayer.js"></script>
+    <script type="text/javascript" src="minplayer/src/minplayer.players.youtube.js"></script>
+    <script type="text/javascript" src="minplayer/src/minplayer.players.vimeo.js"></script>
+    <script type="text/javascript" src="minplayer/src/minplayer.controller.js"></script>
+    <script type="text/javascript" src="src/osmplayer.js"></script>
+    <script type="text/javascript" src="src/osmplayer.parser.default.js"></script>
+    <script type="text/javascript" src="src/osmplayer.parser.youtube.js"></script>
+    <script type="text/javascript" src="src/osmplayer.parser.rss.js"></script>
+    <script type="text/javascript" src="src/osmplayer.parser.asx.js"></script>
+    <script type="text/javascript" src="src/osmplayer.parser.xspf.js"></script>
+    <script type="text/javascript" src="src/osmplayer.playlist.js"></script>
+    <script type="text/javascript" src="src/iscroll/src/iscroll.js"></script>
+    <script type="text/javascript" src="src/osmplayer.pager.js"></script>
+    <script type="text/javascript" src="src/osmplayer.teaser.js"></script>
+
+    <!-- Include the OSM Player template files. -->
+    <link rel="stylesheet" href="templates/default/css/osmplayer_default.css">
+    <script type="text/javascript" src="templates/default/js/osmplayer.default.js"></script>
+    <script type="text/javascript" src="templates/default/js/osmplayer.controller.default.js"></script>
+    <script type="text/javascript" src="templates/default/js/osmplayer.pager.default.js"></script>
+    <script type="text/javascript" src="templates/default/js/osmplayer.playLoader.default.js"></script>
+    <script type="text/javascript" src="templates/default/js/osmplayer.playlist.default.js"></script>
+    <script type="text/javascript" src="templates/default/js/osmplayer.teaser.default.js"></script>
+
+    <!-- Here is how you make it come alive... -->
+    <script type="text/javascript">
+      $(function() {
+        $("#osmplayer").osmplayer({
+          width: '600px',
+          height: '400px',
+          playlist: 'playlist.xml'
+        });
+      });
+    </script>
+  </head>
+  <body>
+    <div id="osmplayer"></div>
+
+    <!-- Or you can get a feed directly from youtube like so... -->
+    <!--<video id="osmplayer" playlist="http://gdata.youtube.com/feeds/api/videos"></video>-->
+  </body>
+</html>
\ No newline at end of file
diff --git a/public/admin/js/osmplayer/jquery-ui/Aristo/Aristo.css b/public/admin/js/osmplayer/jquery-ui/Aristo/Aristo.css
new file mode 100644
index 00000000000..16c2f1aba72
--- /dev/null
+++ b/public/admin/js/osmplayer/jquery-ui/Aristo/Aristo.css
@@ -0,0 +1,735 @@
+/*
+ * jQuery UI CSS Framework 1.8.7
+ *
+ * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Theming/API
+ */
+
+/* Layout helpers
+----------------------------------*/
+.ui-helper-hidden { display: none; }
+.ui-helper-hidden-accessible { position: absolute !important; clip: rect(1px 1px 1px 1px); clip: rect(1px,1px,1px,1px); }
+.ui-helper-reset { margin: 0; padding: 0; border: 0; outline: 0; line-height: 1.3; text-decoration: none; font-size: 100%; list-style: none; }
+.ui-helper-clearfix:after { content: "."; display: block; height: 0; clear: both; visibility: hidden; }
+.ui-helper-clearfix { display: inline-block; }
+/* required comment for clearfix to work in Opera \*/
+* html .ui-helper-clearfix { height:1%; }
+.ui-helper-clearfix { display:block; }
+/* end clearfix */
+.ui-helper-zfix { width: 100%; height: 100%; top: 0; left: 0; position: absolute; opacity: 0; filter:Alpha(Opacity=0); }
+
+
+/* Interaction Cues
+----------------------------------*/
+.ui-state-disabled { cursor: default !important; }
+
+
+/* Icons
+----------------------------------*/
+
+/* states and images */
+.ui-icon { display: block; text-indent: -99999px; overflow: hidden; background-repeat: no-repeat; }
+
+
+/* Misc visuals
+----------------------------------*/
+
+/* Overlays */
+.ui-widget-overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }
+
+
+/*
+ * jQuery UI CSS Framework 1.8.7
+ *
+ * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Theming/API
+ *
+ * To view and modify this theme, visit http://jqueryui.com/themeroller/?ctl=themeroller
+ */
+
+
+/* Component containers
+----------------------------------*/
+.ui-widget { font-family: Arial,sans-serif; font-size: 1.1em; }
+.ui-widget .ui-widget { font-size: 1em; }
+.ui-widget input, .ui-widget select, .ui-widget textarea, .ui-widget button { font-family: Arial,sans-serif; font-size: 1em; }
+.ui-widget-content { border: 1px solid #B6B6B6; background: #ffffff; color: #4F4F4F; }
+.ui-widget-content a { color: #4F4F4F; }
+.ui-widget-header { border: 1px solid #B6B6B6; color: #4F4F4F; font-weight: bold; }
+.ui-widget-header {
+	background: #ededed url(images/bg_fallback.png) 0 0 repeat-x; /* Old browsers */
+		background: -moz-linear-gradient(top, #ededed 0%, #c4c4c4 100%); /* FF3.6+ */
+		background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#ededed), color-stop(100%,#c4c4c4)); /* Chrome,Safari4+ */
+		background: -webkit-linear-gradient(top, #ededed 0%,#c4c4c4 100%); /* Chrome10+,Safari5.1+ */
+		background: -o-linear-gradient(top, #ededed 0%,#c4c4c4 100%); /* Opera11.10+ */
+		background: -ms-linear-gradient(top, #ededed 0%,#c4c4c4 100%); /* IE10+ */
+		background: linear-gradient(top, #ededed 0%,#c4c4c4 100%); /* W3C */
+}
+.ui-widget-header a { color: #4F4F4F; }
+
+/* Interaction states
+----------------------------------*/
+.ui-state-default, .ui-widget-content .ui-state-default, .ui-widget-header .ui-state-default { border: 1px solid #B6B6B6; font-weight: normal; color: #4F4F4F; }
+.ui-state-default, .ui-widget-content .ui-state-default, .ui-widget-header .ui-state-default { 
+	background: #ededed url(images/bg_fallback.png) 0 0 repeat-x; /* Old browsers */
+		background: -moz-linear-gradient(top, #ededed 0%, #c4c4c4 100%); /* FF3.6+ */
+		background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#ededed), color-stop(100%,#c4c4c4)); /* Chrome,Safari4+ */
+		background: -webkit-linear-gradient(top, #ededed 0%,#c4c4c4 100%); /* Chrome10+,Safari5.1+ */
+		background: -o-linear-gradient(top, #ededed 0%,#c4c4c4 100%); /* Opera11.10+ */
+		background: -ms-linear-gradient(top, #ededed 0%,#c4c4c4 100%); /* IE10+ */
+		background: linear-gradient(top, #ededed 0%,#c4c4c4 100%); /* W3C */
+	-webkit-box-shadow: 0 1px 0 rgba(255,255,255,0.6) inset;
+	-moz-box-shadow: 0 1px 0 rgba(255,255,255,0.6) inset;
+	box-shadow: 0 1px 0 rgba(255,255,255,0.6) inset;
+}
+.ui-state-default a, .ui-state-default a:link, .ui-state-default a:visited { color: #4F4F4F; text-decoration: none; }
+.ui-state-hover, .ui-widget-content .ui-state-hover, .ui-widget-header .ui-state-hover, .ui-state-focus, .ui-widget-content .ui-state-focus, .ui-widget-header .ui-state-focus { border: 1px solid #9D9D9D; font-weight: normal; color: #313131; }
+.ui-state-hover a, .ui-state-hover a:hover { color: #313131; text-decoration: none; }
+.ui-state-active, .ui-widget-content .ui-state-active, .ui-widget-header .ui-state-active { 
+	outline: none;
+	color: #1c4257; border: 1px solid #7096ab;
+	background: #ededed url(images/bg_fallback.png) 0 -50px repeat-x; /* Old browsers */
+		background: -moz-linear-gradient(top, #b9e0f5 0%, #92bdd6 100%); /* FF3.6+ */
+		background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#b9e0f5), color-stop(100%,#92bdd6)); /* Chrome,Safari4+ */
+		background: -webkit-linear-gradient(top, #b9e0f5 0%,#92bdd6 100%); /* Chrome10+,Safari5.1+ */
+		background: -o-linear-gradient(top, #b9e0f5 0%,#92bdd6 100%); /* Opera11.10+ */
+		background: -ms-linear-gradient(top, #b9e0f5 0%,#92bdd6 100%); /* IE10+ */
+		background: linear-gradient(top, #b9e0f5 0%,#92bdd6 100%); /* W3C */
+	-webkit-box-shadow: none;
+	-moz-box-shadow: none;
+	box-shadow: none;
+}
+.ui-state-active a, .ui-state-active a:link, .ui-state-active a:visited { color: #313131; text-decoration: none; }
+.ui-widget :active { outline: none; }
+
+/* Interaction Cues
+----------------------------------*/
+.ui-state-highlight, .ui-widget-content .ui-state-highlight, .ui-widget-header .ui-state-highlight  { border: 1px solid #d2dbf4; background: #f4f8fd; color: #0d2054; -moz-border-radius: 0 !important; -webkit-border-radius: 0 !important; border-radius: 0 !important; }
+.ui-state-highlight a, .ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a { color: #363636; }
+.ui-state-error, .ui-widget-content .ui-state-error, .ui-widget-header .ui-state-error { border: 1px solid #e2d0d0; background: #fcf0f0; color: #280b0b; -moz-border-radius: 0 !important; -webkit-border-radius: 0 !important; border-radius: 0 !important; }
+.ui-state-error a, .ui-widget-content .ui-state-error a, .ui-widget-header .ui-state-error a { color: #cd0a0a; }
+.ui-state-error-text, .ui-widget-content .ui-state-error-text, .ui-widget-header .ui-state-error-text { color: #cd0a0a; }
+.ui-priority-primary, .ui-widget-content .ui-priority-primary, .ui-widget-header .ui-priority-primary { font-weight: bold; }
+.ui-priority-secondary, .ui-widget-content .ui-priority-secondary,  .ui-widget-header .ui-priority-secondary { opacity: .7; filter:Alpha(Opacity=70); font-weight: normal; }
+.ui-state-disabled, .ui-widget-content .ui-state-disabled, .ui-widget-header .ui-state-disabled { opacity: .35; filter:Alpha(Opacity=35); background-image: none; }
+
+/* Icons
+----------------------------------*/
+
+/* states and images */
+.ui-icon { width: 16px; height: 16px; background-image: url(images/ui-icons_222222_256x240.png); }
+.ui-widget-content .ui-icon {background-image: url(images/ui-icons_222222_256x240.png); }
+.ui-widget-header .ui-icon {background-image: url(images/ui-icons_222222_256x240.png); }
+.ui-state-default .ui-icon { background-image: url(images/ui-icons_454545_256x240.png); }
+.ui-state-hover .ui-icon, .ui-state-focus .ui-icon {background-image: url(images/ui-icons_454545_256x240.png); }
+.ui-state-active .ui-icon {background-image: url(images/ui-icons_454545_256x240.png); }
+.ui-state-highlight .ui-icon {background-image: url(images/ui-icons_454545_256x240.png); }
+.ui-state-error .ui-icon, .ui-state-error-text .ui-icon { background: url(images/icon_sprite.png) -16px 0 no-repeat !important; }
+.ui-state-highlight .ui-icon, .ui-state-error .ui-icon { margin-top: -1px; }
+
+/* positioning */
+.ui-icon-carat-1-n { background-position: 0 0; }
+.ui-icon-carat-1-ne { background-position: -16px 0; }
+.ui-icon-carat-1-e { background-position: -32px 0; }
+.ui-icon-carat-1-se { background-position: -48px 0; }
+.ui-icon-carat-1-s { background-position: -64px 0; }
+.ui-icon-carat-1-sw { background-position: -80px 0; }
+.ui-icon-carat-1-w { background-position: -96px 0; }
+.ui-icon-carat-1-nw { background-position: -112px 0; }
+.ui-icon-carat-2-n-s { background-position: -128px 0; }
+.ui-icon-carat-2-e-w { background-position: -144px 0; }
+.ui-icon-triangle-1-n { background-position: 0 -16px; }
+.ui-icon-triangle-1-ne { background-position: -16px -16px; }
+.ui-icon-triangle-1-e { background-position: -32px -16px; }
+.ui-icon-triangle-1-se { background-position: -48px -16px; }
+.ui-icon-triangle-1-s { background-position: -64px -16px; }
+.ui-icon-triangle-1-sw { background-position: -80px -16px; }
+.ui-icon-triangle-1-w { background-position: -96px -16px; }
+.ui-icon-triangle-1-nw { background-position: -112px -16px; }
+.ui-icon-triangle-2-n-s { background-position: -128px -16px; }
+.ui-icon-triangle-2-e-w { background-position: -144px -16px; }
+.ui-icon-arrow-1-n { background-position: 0 -32px; }
+.ui-icon-arrow-1-ne { background-position: -16px -32px; }
+.ui-icon-arrow-1-e { background-position: -32px -32px; }
+.ui-icon-arrow-1-se { background-position: -48px -32px; }
+.ui-icon-arrow-1-s { background-position: -64px -32px; }
+.ui-icon-arrow-1-sw { background-position: -80px -32px; }
+.ui-icon-arrow-1-w { background-position: -96px -32px; }
+.ui-icon-arrow-1-nw { background-position: -112px -32px; }
+.ui-icon-arrow-2-n-s { background-position: -128px -32px; }
+.ui-icon-arrow-2-ne-sw { background-position: -144px -32px; }
+.ui-icon-arrow-2-e-w { background-position: -160px -32px; }
+.ui-icon-arrow-2-se-nw { background-position: -176px -32px; }
+.ui-icon-arrowstop-1-n { background-position: -192px -32px; }
+.ui-icon-arrowstop-1-e { background-position: -208px -32px; }
+.ui-icon-arrowstop-1-s { background-position: -224px -32px; }
+.ui-icon-arrowstop-1-w { background-position: -240px -32px; }
+.ui-icon-arrowthick-1-n { background-position: 0 -48px; }
+.ui-icon-arrowthick-1-ne { background-position: -16px -48px; }
+.ui-icon-arrowthick-1-e { background-position: -32px -48px; }
+.ui-icon-arrowthick-1-se { background-position: -48px -48px; }
+.ui-icon-arrowthick-1-s { background-position: -64px -48px; }
+.ui-icon-arrowthick-1-sw { background-position: -80px -48px; }
+.ui-icon-arrowthick-1-w { background-position: -96px -48px; }
+.ui-icon-arrowthick-1-nw { background-position: -112px -48px; }
+.ui-icon-arrowthick-2-n-s { background-position: -128px -48px; }
+.ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px; }
+.ui-icon-arrowthick-2-e-w { background-position: -160px -48px; }
+.ui-icon-arrowthick-2-se-nw { background-position: -176px -48px; }
+.ui-icon-arrowthickstop-1-n { background-position: -192px -48px; }
+.ui-icon-arrowthickstop-1-e { background-position: -208px -48px; }
+.ui-icon-arrowthickstop-1-s { background-position: -224px -48px; }
+.ui-icon-arrowthickstop-1-w { background-position: -240px -48px; }
+.ui-icon-arrowreturnthick-1-w { background-position: 0 -64px; }
+.ui-icon-arrowreturnthick-1-n { background-position: -16px -64px; }
+.ui-icon-arrowreturnthick-1-e { background-position: -32px -64px; }
+.ui-icon-arrowreturnthick-1-s { background-position: -48px -64px; }
+.ui-icon-arrowreturn-1-w { background-position: -64px -64px; }
+.ui-icon-arrowreturn-1-n { background-position: -80px -64px; }
+.ui-icon-arrowreturn-1-e { background-position: -96px -64px; }
+.ui-icon-arrowreturn-1-s { background-position: -112px -64px; }
+.ui-icon-arrowrefresh-1-w { background-position: -128px -64px; }
+.ui-icon-arrowrefresh-1-n { background-position: -144px -64px; }
+.ui-icon-arrowrefresh-1-e { background-position: -160px -64px; }
+.ui-icon-arrowrefresh-1-s { background-position: -176px -64px; }
+.ui-icon-arrow-4 { background-position: 0 -80px; }
+.ui-icon-arrow-4-diag { background-position: -16px -80px; }
+.ui-icon-extlink { background-position: -32px -80px; }
+.ui-icon-newwin { background-position: -48px -80px; }
+.ui-icon-refresh { background-position: -64px -80px; }
+.ui-icon-shuffle { background-position: -80px -80px; }
+.ui-icon-transfer-e-w { background-position: -96px -80px; }
+.ui-icon-transferthick-e-w { background-position: -112px -80px; }
+.ui-icon-folder-collapsed { background-position: 0 -96px; }
+.ui-icon-folder-open { background-position: -16px -96px; }
+.ui-icon-document { background-position: -32px -96px; }
+.ui-icon-document-b { background-position: -48px -96px; }
+.ui-icon-note { background-position: -64px -96px; }
+.ui-icon-mail-closed { background-position: -80px -96px; }
+.ui-icon-mail-open { background-position: -96px -96px; }
+.ui-icon-suitcase { background-position: -112px -96px; }
+.ui-icon-comment { background-position: -128px -96px; }
+.ui-icon-person { background-position: -144px -96px; }
+.ui-icon-print { background-position: -160px -96px; }
+.ui-icon-trash { background-position: -176px -96px; }
+.ui-icon-locked { background-position: -192px -96px; }
+.ui-icon-unlocked { background-position: -208px -96px; }
+.ui-icon-bookmark { background-position: -224px -96px; }
+.ui-icon-tag { background-position: -240px -96px; }
+.ui-icon-home { background-position: 0 -112px; }
+.ui-icon-flag { background-position: -16px -112px; }
+.ui-icon-calendar { background-position: -32px -112px; }
+.ui-icon-cart { background-position: -48px -112px; }
+.ui-icon-pencil { background-position: -64px -112px; }
+.ui-icon-clock { background-position: -80px -112px; }
+.ui-icon-disk { background-position: -96px -112px; }
+.ui-icon-calculator { background-position: -112px -112px; }
+.ui-icon-zoomin { background-position: -128px -112px; }
+.ui-icon-zoomout { background-position: -144px -112px; }
+.ui-icon-search { background-position: -160px -112px; }
+.ui-icon-wrench { background-position: -176px -112px; }
+.ui-icon-gear { background-position: -192px -112px; }
+.ui-icon-heart { background-position: -208px -112px; }
+.ui-icon-star { background-position: -224px -112px; }
+.ui-icon-link { background-position: -240px -112px; }
+.ui-icon-cancel { background-position: 0 -128px; }
+.ui-icon-plus { background-position: -16px -128px; }
+.ui-icon-plusthick { background-position: -32px -128px; }
+.ui-icon-minus { background-position: -48px -128px; }
+.ui-icon-minusthick { background-position: -64px -128px; }
+.ui-icon-close { background-position: -80px -128px; }
+.ui-icon-closethick { background-position: -96px -128px; }
+.ui-icon-key { background-position: -112px -128px; }
+.ui-icon-lightbulb { background-position: -128px -128px; }
+.ui-icon-scissors { background-position: -144px -128px; }
+.ui-icon-clipboard { background-position: -160px -128px; }
+.ui-icon-copy { background-position: -176px -128px; }
+.ui-icon-contact { background-position: -192px -128px; }
+.ui-icon-image { background-position: -208px -128px; }
+.ui-icon-video { background-position: -224px -128px; }
+.ui-icon-script { background-position: -240px -128px; }
+.ui-icon-alert { background-position: 0 -144px; }
+.ui-icon-info { background: url(images/icon_sprite.png) 0 0 no-repeat !important; }
+.ui-icon-notice { background-position: -32px -144px; }
+.ui-icon-help { background-position: -48px -144px; }
+.ui-icon-check { background-position: -64px -144px; }
+.ui-icon-bullet { background-position: -80px -144px; }
+.ui-icon-radio-off { background-position: -96px -144px; }
+.ui-icon-radio-on { background-position: -112px -144px; }
+.ui-icon-pin-w { background-position: -128px -144px; }
+.ui-icon-pin-s { background-position: -144px -144px; }
+.ui-icon-play { background-position: 0 -160px; }
+.ui-icon-pause { background-position: -16px -160px; }
+.ui-icon-seek-next { background-position: -32px -160px; }
+.ui-icon-seek-prev { background-position: -48px -160px; }
+.ui-icon-seek-end { background-position: -64px -160px; }
+.ui-icon-seek-start { background-position: -80px -160px; }
+/* ui-icon-seek-first is deprecated, use ui-icon-seek-start instead */
+.ui-icon-seek-first { background-position: -80px -160px; }
+.ui-icon-stop { background-position: -96px -160px; }
+.ui-icon-eject { background-position: -112px -160px; }
+.ui-icon-volume-off { background-position: -128px -160px; }
+.ui-icon-volume-on { background-position: -144px -160px; }
+.ui-icon-power { background-position: 0 -176px; }
+.ui-icon-signal-diag { background-position: -16px -176px; }
+.ui-icon-signal { background-position: -32px -176px; }
+.ui-icon-battery-0 { background-position: -48px -176px; }
+.ui-icon-battery-1 { background-position: -64px -176px; }
+.ui-icon-battery-2 { background-position: -80px -176px; }
+.ui-icon-battery-3 { background-position: -96px -176px; }
+.ui-icon-circle-plus { background-position: 0 -192px; }
+.ui-icon-circle-minus { background-position: -16px -192px; }
+.ui-icon-circle-close { background-position: -32px -192px; }
+.ui-icon-circle-triangle-e { background-position: -48px -192px; }
+.ui-icon-circle-triangle-s { background-position: -64px -192px; }
+.ui-icon-circle-triangle-w { background-position: -80px -192px; }
+.ui-icon-circle-triangle-n { background-position: -96px -192px; }
+.ui-icon-circle-arrow-e { background-position: -112px -192px; }
+.ui-icon-circle-arrow-s { background-position: -128px -192px; }
+.ui-icon-circle-arrow-w { background-position: -144px -192px; }
+.ui-icon-circle-arrow-n { background-position: -160px -192px; }
+.ui-icon-circle-zoomin { background-position: -176px -192px; }
+.ui-icon-circle-zoomout { background-position: -192px -192px; }
+.ui-icon-circle-check { background-position: -208px -192px; }
+.ui-icon-circlesmall-plus { background-position: 0 -208px; }
+.ui-icon-circlesmall-minus { background-position: -16px -208px; }
+.ui-icon-circlesmall-close { background-position: -32px -208px; }
+.ui-icon-squaresmall-plus { background-position: -48px -208px; }
+.ui-icon-squaresmall-minus { background-position: -64px -208px; }
+.ui-icon-squaresmall-close { background-position: -80px -208px; }
+.ui-icon-grip-dotted-vertical { background-position: 0 -224px; }
+.ui-icon-grip-dotted-horizontal { background-position: -16px -224px; }
+.ui-icon-grip-solid-vertical { background-position: -32px -224px; }
+.ui-icon-grip-solid-horizontal { background-position: -48px -224px; }
+.ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; }
+.ui-icon-grip-diagonal-se { background-position: -80px -224px; }
+
+
+/* Misc visuals
+----------------------------------*/
+
+/* Corner radius */
+.ui-corner-tl { -moz-border-radius-topleft: 3px; -webkit-border-top-left-radius: 3px; border-top-left-radius: 3px; }
+.ui-corner-tr { -moz-border-radius-topright: 3px; -webkit-border-top-right-radius: 3px; border-top-right-radius: 3px; }
+.ui-corner-bl { -moz-border-radius-bottomleft: 3px; -webkit-border-bottom-left-radius: 3px; border-bottom-left-radius: 3px; }
+.ui-corner-br { -moz-border-radius-bottomright: 3px; -webkit-border-bottom-right-radius: 3px; border-bottom-right-radius: 3px; }
+.ui-corner-top { -moz-border-radius-topleft: 3px; -webkit-border-top-left-radius: 3px; border-top-left-radius: 3px; -moz-border-radius-topright: 3px; -webkit-border-top-right-radius: 3px; border-top-right-radius: 3px; }
+.ui-corner-bottom { -moz-border-radius-bottomleft: 3px; -webkit-border-bottom-left-radius: 3px; border-bottom-left-radius: 3px; -moz-border-radius-bottomright: 3px; -webkit-border-bottom-right-radius: 3px; border-bottom-right-radius: 3px; }
+.ui-corner-right {  -moz-border-radius-topright: 3px; -webkit-border-top-right-radius: 3px; border-top-right-radius: 3px; -moz-border-radius-bottomright: 3px; -webkit-border-bottom-right-radius: 3px; border-bottom-right-radius: 3px; }
+.ui-corner-left { -moz-border-radius-topleft: 3px; -webkit-border-top-left-radius: 3px; border-top-left-radius: 3px; -moz-border-radius-bottomleft: 3px; -webkit-border-bottom-left-radius: 3px; border-bottom-left-radius: 3px; }
+.ui-corner-all { -moz-border-radius: 3px; -webkit-border-radius: 3px; border-radius: 3px; }
+
+/* Overlays */
+.ui-widget-overlay { background: #262b33; opacity: .70;filter:Alpha(Opacity=70); }
+.ui-widget-shadow { margin: -8px 0 0 -8px; padding: 8px; background: #000000; opacity: .30;filter:Alpha(Opacity=30); -moz-border-radius: 8px; -webkit-border-radius: 8px; border-radius: 8px; }/*
+ * jQuery UI Resizable 1.8.7
+ *
+ * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Resizable#theming
+ */
+.ui-resizable { position: relative;}
+.ui-resizable-handle { position: absolute; font-size: 0.1px; z-index: 999; display: block;}
+.ui-resizable-disabled .ui-resizable-handle, .ui-resizable-autohide .ui-resizable-handle { display: none; }
+.ui-resizable-n { cursor: n-resize; height: 7px; width: 100%; top: -5px; left: 0; }
+.ui-resizable-s { cursor: s-resize; height: 7px; width: 100%; bottom: -5px; left: 0; }
+.ui-resizable-e { cursor: e-resize; width: 7px; right: -5px; top: 0; height: 100%; }
+.ui-resizable-w { cursor: w-resize; width: 7px; left: -5px; top: 0; height: 100%; }
+.ui-resizable-se { cursor: se-resize; width: 12px; height: 12px; right: 1px; bottom: 1px; }
+.ui-resizable-sw { cursor: sw-resize; width: 9px; height: 9px; left: -5px; bottom: -5px; }
+.ui-resizable-nw { cursor: nw-resize; width: 9px; height: 9px; left: -5px; top: -5px; }
+.ui-resizable-ne { cursor: ne-resize; width: 9px; height: 9px; right: -5px; top: -5px;}/*
+ * jQuery UI Selectable 1.8.7
+ *
+ * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Selectable#theming
+ */
+.ui-selectable-helper { position: absolute; z-index: 100; border:1px dotted black; }
+/*
+ * jQuery UI Accordion 1.8.7
+ *
+ * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Accordion#theming
+ */
+/* IE/Win - Fix animation bug - #4615 */
+.ui-accordion { width: 100%; }
+.ui-accordion .ui-accordion-header { cursor: pointer; position: relative; margin-top: 1px; zoom: 1; }
+.ui-accordion .ui-accordion-header, .ui-accordion .ui-accordion-content { -moz-border-radius: 0; -webkit-border-radius: 0; border-radius: 0; }
+.ui-accordion .ui-accordion-li-fix { display: inline; }
+.ui-accordion .ui-accordion-header-active { border-bottom: 0 !important; }
+.ui-accordion .ui-accordion-header a { display: block; font-size: 12px; font-weight: bold; padding: .5em .5em .5em .7em; }
+.ui-accordion-icons .ui-accordion-header a { padding-left: 2.2em; }
+.ui-accordion .ui-accordion-header .ui-icon { position: absolute; left: .5em; top: 50%; margin-top: -8px; }
+.ui-accordion .ui-accordion-content { padding: 1em 2.2em; border-top: 0; margin-top: -2px; position: relative; top: 1px; margin-bottom: 2px; overflow: auto; display: none; zoom: 1; }
+.ui-accordion .ui-accordion-content-active { display: block; }/*
+ * jQuery UI Autocomplete 1.8.7
+ *
+ * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Autocomplete#theming
+ */
+.ui-autocomplete {
+	position: absolute; cursor: default; z-index: 3;
+		-moz-border-radius: 0; 
+		-webkit-border-radius: 0;
+		border-radius: 0;
+			-moz-box-shadow: 0 1px 5px rgba(0,0,0,0.3);
+			-webkit-box-shadow: 0 1px 5px rgba(0,0,0,0.3);
+			box-shadow: 0 1px 5px rgba(0,0,0,0.3);
+}	
+
+/* workarounds */
+* html .ui-autocomplete { width:1px; } /* without this, the menu expands to 100% in IE6 */
+
+/*
+ * jQuery UI Menu 1.8.7
+ *
+ * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Menu#theming
+ */
+.ui-menu {
+	list-style:none;
+	padding: 2px;
+	margin: 0;
+	display:block;
+	float: left;
+}
+.ui-menu .ui-menu {
+	margin-top: -3px;
+}
+.ui-menu .ui-menu-item {
+	margin:0;
+	padding: 0;
+	zoom: 1;
+	float: left;
+	clear: left;
+	width: 100%;
+}
+.ui-menu .ui-menu-item a {
+	text-decoration:none;
+	display:block;
+	padding:.2em .4em;
+	line-height:1.5;
+	zoom:1;
+}
+.ui-menu .ui-menu-item a.ui-state-hover,
+.ui-menu .ui-menu-item a.ui-state-active {
+	font-weight: normal;
+	margin: -1px;
+	background: #5f83b9;
+	color: #FFFFFF;
+	text-shadow: 0px 1px 1px #234386;
+	border-color: #466086;
+		-moz-border-radius: 0; 
+		-webkit-border-radius: 0;
+		border-radius: 0;
+}
+/*
+ * jQuery UI Button 1.8.7
+ *
+ * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Button#theming
+ */
+.ui-button { display: inline-block; position: relative; padding: 0; margin-right: .1em; text-decoration: none !important; cursor: pointer; text-align: center; zoom: 1; overflow: visible; -webkit-user-select: none; -moz-user-select: none; user-select: none; } /* the overflow property removes extra width in IE */
+.ui-button-icon-only { width: 2.2em; } /* to make room for the icon, a width needs to be set here */
+button.ui-button-icon-only { width: 2.4em; } /* button elements seem to need a little more width */
+.ui-button-icons-only { width: 3.4em; } 
+button.ui-button-icons-only { width: 3.7em; } 
+
+/* button animation properties */
+.ui-button {
+    -webkit-transition: -webkit-box-shadow 0.25s ease-in-out;
+    -moz-transition: -moz-box-shadow 0.25s ease-in-out;
+    -o-transition: -o-box-shadow 0.25s ease-in-out;
+}
+
+/*states*/
+.ui-button.ui-state-hover { 
+	-moz-box-shadow: 0 0 8px rgba(0, 0, 0, 0.15), 0 1px 0 rgba(255,255,255,0.8) inset; 
+	-webkit-box-shadow: 0 0 8px rgba(0, 0, 0, 0.15), 0 1px 0 rgba(255,255,255,0.8) inset;
+	box-shadow: 0 0 8px rgba(0, 0, 0, 0.15), 0 1px 0 rgba(255,255,255,0.8) inset;
+}
+.ui-button.ui-state-focus {
+	outline: none;
+	color: #1c4257;
+	border-color: #7096ab;
+	background: #ededed url(images/bg_fallback.png) 0 -50px repeat-x; /* Old browsers */
+		background: -moz-linear-gradient(top, #b9e0f5 0%, #92bdd6 100%); /* FF3.6+ */
+		background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#b9e0f5), color-stop(100%,#92bdd6)); /* Chrome,Safari4+ */
+		background: -webkit-linear-gradient(top, #b9e0f5 0%,#92bdd6 100%); /* Chrome10+,Safari5.1+ */
+		background: -o-linear-gradient(top, #b9e0f5 0%,#92bdd6 100%); /* Opera11.10+ */
+		background: -ms-linear-gradient(top, #b9e0f5 0%,#92bdd6 100%); /* IE10+ */
+		background: linear-gradient(top, #b9e0f5 0%,#92bdd6 100%); /* W3C */
+	-moz-box-shadow: 0 0 8px rgba(0, 0, 0, 0.15), 0 1px 0 rgba(255,255,255,0.8) inset; 
+	-webkit-box-shadow: 0 0 8px rgba(0, 0, 0, 0.15), 0 1px 0 rgba(255,255,255,0.8) inset;
+	box-shadow: 0 0 8px rgba(0, 0, 0, 0.15), 0 1px 0 rgba(255,255,255,0.8) inset;
+}
+ 
+/*button text element */
+.ui-button .ui-button-text { display: block; line-height: 1.4; font-size: 14px; font-weight: bold; text-shadow: 0 1px 0 rgba(255, 255, 255, 0.6); }
+.ui-button-text-only .ui-button-text { padding: .4em 1em; }
+.ui-button-icon-only .ui-button-text, .ui-button-icons-only .ui-button-text { padding: .4em; text-indent: -9999999px; }
+.ui-button-text-icon-primary .ui-button-text, .ui-button-text-icons .ui-button-text { padding: .4em 1em .4em 2.1em; }
+.ui-button-text-icon-secondary .ui-button-text, .ui-button-text-icons .ui-button-text { padding: .4em 2.1em .4em 1em; }
+.ui-button-text-icons .ui-button-text { padding-left: 2.1em; padding-right: 2.1em; }
+/* no icon support for input elements, provide padding by default */
+input.ui-button { font-size: 14px; font-weight: bold; text-shadow: 0 1px 0 rgba(255, 255, 255, 0.6); padding: 0 1em !important; height: 33px; }
+/*remove submit button internal padding in Firefox*/ 
+input.ui-button::-moz-focus-inner { 
+    border: 0;
+    padding: 0;
+}
+/* fix webkits handling of the box model */
+@media screen and (-webkit-min-device-pixel-ratio:0) {
+	input.ui-button {
+		height: 31px !important;
+	}
+}
+
+
+/*button icon element(s) */
+.ui-button-icon-only .ui-icon, .ui-button-text-icon-primary .ui-icon, .ui-button-text-icon-secondary .ui-icon, .ui-button-text-icons .ui-icon, .ui-button-icons-only .ui-icon { position: absolute; top: 50%; margin-top: -8px; }
+.ui-button-icon-only .ui-icon { left: 50%; margin-left: -8px; }
+.ui-button-text-icon-primary .ui-button-icon-primary, .ui-button-text-icons .ui-button-icon-primary, .ui-button-icons-only .ui-button-icon-primary { left: .5em; }
+.ui-button-text-icon-secondary .ui-button-icon-secondary, .ui-button-text-icons .ui-button-icon-secondary, .ui-button-icons-only .ui-button-icon-secondary { right: .5em; }
+.ui-button-text-icons .ui-button-icon-secondary, .ui-button-icons-only .ui-button-icon-secondary { right: .5em; }
+
+/*button sets*/
+.ui-buttonset { margin-right: 7px; }
+.ui-buttonset .ui-button { margin-left: 0; margin-right: -.3em; }
+.ui-buttonset .ui-button.ui-state-active { color: #1c4257; border-color: #7096ab; }
+.ui-buttonset .ui-button.ui-state-active {
+	background: #ededed url(images/bg_fallback.png) 0 -50px repeat-x; /* Old browsers */
+		background: -moz-linear-gradient(top, #b9e0f5 0%, #92bdd6 100%); /* FF3.6+ */
+		background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#b9e0f5), color-stop(100%,#92bdd6)); /* Chrome,Safari4+ */
+		background: -webkit-linear-gradient(top, #b9e0f5 0%,#92bdd6 100%); /* Chrome10+,Safari5.1+ */
+		background: -o-linear-gradient(top, #b9e0f5 0%,#92bdd6 100%); /* Opera11.10+ */
+		background: -ms-linear-gradient(top, #b9e0f5 0%,#92bdd6 100%); /* IE10+ */
+		background: linear-gradient(top, #b9e0f5 0%,#92bdd6 100%); /* W3C */
+	-webkit-box-shadow: none;
+	-moz-box-shadow: none;
+	box-shadow: none;
+}
+
+/* workarounds */
+button.ui-button::-moz-focus-inner { border: 0; padding: 0; } /* reset extra padding in Firefox */
+/*
+ * jQuery UI Dialog 1.8.7
+ *
+ * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Dialog#theming
+ */
+.ui-dialog { position: absolute; padding: 0; width: 300px; overflow: hidden; }
+.ui-dialog {
+	-webkit-box-shadow: 0 2px 12px rgba(0,0,0,0.6);
+	-moz-box-shadow: 0 2px 12px rgba(0,0,0,0.6);
+}
+.ui-dialog .ui-dialog-titlebar { padding: 0.7em 1em 0.6em 1em; position: relative; border: none; border-bottom: 1px solid #979797; -moz-border-radius: 0; -webkit-border-radius: 0; border-radius: 0;  }
+.ui-dialog .ui-dialog-title { float: left; margin: .1em 16px .2em 0; font-size: 14px; text-shadow: 0 1px 0 rgba(255,255,255,0.5); } 
+.ui-dialog .ui-dialog-titlebar-close { position: absolute; right: .8em; top: 55%; width: 16px; margin: -10px 0 0 0; padding: 0; height: 16px; }
+.ui-dialog .ui-dialog-titlebar-close span { display: block; margin: 1px; background: url(images/icon_sprite.png) 0 -16px no-repeat; }
+.ui-dialog .ui-dialog-titlebar-close:hover span { background-position: -16px -16px; }
+.ui-dialog .ui-dialog-titlebar-close:hover, .ui-dialog .ui-dialog-titlebar-close:focus { padding: 0; border: 0; }
+.ui-dialog .ui-dialog-content { position: relative; border: 0; padding: .5em 1em; background: none; overflow: auto; zoom: 1; }
+.ui-dialog .ui-dialog-buttonpane { text-align: left; border-width: 1px 0 0 0; background-image: none; margin: .5em 0 0 0; padding: .3em 1em .5em .4em; }
+.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset { float: right; }
+.ui-dialog .ui-dialog-buttonpane button { margin: .5em .4em .5em 0; cursor: pointer; }
+.ui-dialog .ui-resizable-se { width: 14px; height: 14px; right: 3px; bottom: 3px; }
+.ui-draggable .ui-dialog-titlebar { cursor: move; }
+/*
+ * jQuery UI Slider 1.8.7
+ *
+ * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Slider#theming
+ */
+.ui-slider { position: relative; text-align: left; background: #d7d7d7; z-index: 1; }
+.ui-slider { -moz-box-shadow: 0 1px 2px rgba(0,0,0,0.5) inset; -webkit-box-shadow: 0 1px 2px rgba(0,0,0,0.5) inset; box-shadow: 0 1px 2px rgba(0,0,0,0.5) inset; }
+.ui-slider .ui-slider-handle { background: url(images/slider_handles.png) 0px -23px no-repeat; position: absolute; z-index: 2; width: 23px; height: 23px; cursor: default; border: none; outline: none; -moz-box-shadow: none; -webkit-box-shadow: none; box-shadow: none; }
+.ui-slider  .ui-state-hover, .ui-slider  .ui-state-active { background-position: 0 0; }
+.ui-slider .ui-slider-range { background: #a3cae0; position: absolute; z-index: 1; font-size: .7em; display: block; border: 0; background-position: 0 0; }
+.ui-slider .ui-slider-range { -moz-box-shadow: 0 1px 2px rgba(17,35,45,0.6) inset; -webkit-box-shadow: 0 1px 2px rgba(17,35,45,0.6) inset; box-shadow: 0 1px 2px rgba(17,35,45,0.6) inset; }
+
+
+.ui-slider-horizontal { height: 5px; }
+.ui-slider-horizontal .ui-slider-handle { top: -8px; margin-left: -13px; }
+.ui-slider-horizontal .ui-slider-range { top: 0; height: 100%; }
+.ui-slider-horizontal .ui-slider-range-min { left: 0; }
+.ui-slider-horizontal .ui-slider-range-max { right: 0; }
+
+.ui-slider-vertical { width: 5px; height: 100px; }
+.ui-slider-vertical .ui-slider-handle { left: -8px; margin-left: 0; margin-bottom: -13px; }
+.ui-slider-vertical .ui-slider-range { left: 0; width: 100%; }
+.ui-slider-vertical .ui-slider-range-min { bottom: 0; }
+.ui-slider-vertical .ui-slider-range-max { top: 0; }/*
+ * jQuery UI Tabs 1.8.7
+ *
+ * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Tabs#theming
+ */
+.ui-tabs { position: relative; zoom: 1; border: 0; background: transparent; } /* position: relative prevents IE scroll bug (element with position: relative inside container with overflow: auto appear as "fixed") */
+.ui-tabs .ui-tabs-nav { margin: 0; padding: 0; background: transparent; border-width: 0 0 1px 0; }
+.ui-tabs .ui-tabs-nav { 
+	-moz-border-radius: 0;
+	-webkit-border-radius: 0;
+	border-radius: 0;
+}
+.ui-tabs .ui-tabs-nav li { list-style: none; float: left; position: relative; top: 1px; margin: 0 .2em 1px 0; border-bottom: 0 !important; padding: 0; white-space: nowrap; }
+.ui-tabs .ui-tabs-nav li a { float: left; padding: .5em 1em; text-decoration: none; font-size: 12px; font-weight: bold; text-shadow: 0 1px 0 rgba(255,255,255,0.5); }
+.ui-tabs .ui-tabs-nav li.ui-tabs-selected { margin-bottom: 0; padding-bottom: 1px; background: #fff; border-color: #B6B6B6; }
+.ui-tabs .ui-tabs-nav li.ui-tabs-selected a, .ui-tabs .ui-tabs-nav li.ui-state-disabled a, .ui-tabs .ui-tabs-nav li.ui-state-processing a { cursor: text; outline: none; }
+.ui-tabs .ui-tabs-nav li a, .ui-tabs.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-selected a { cursor: pointer; } /* first selector in group seems obsolete, but required to overcome bug in Opera applying cursor: text overall if defined elsewhere... */
+.ui-tabs .ui-tabs-panel { display: block; border-width: 0 1px 1px 1px; padding: 1em 1.4em; background: none; }
+.ui-tabs .ui-tabs-panel { background: #FFF;
+	-moz-border-radius: 0;
+	-webkit-border-radius: 0;
+	border-radius: 0;
+}
+.ui-tabs .ui-tabs-hide { display: none !important; }
+/*
+ * jQuery UI Datepicker 1.8.7
+ *
+ * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Datepicker#theming
+ */
+.ui-datepicker { width: 17em; padding: 0; display: none; border-color: #DDDDDD; }
+.ui-datepicker {
+	-moz-box-shadow: 0 4px 8px rgba(0,0,0,0.5);
+	-webkit-box-shadow: 0 4px 8px rgba(0,0,0,0.5);
+	box-shadow: 0 4px 8px rgba(0,0,0,0.5);
+}
+.ui-datepicker .ui-datepicker-header { position:relative; padding:.35em 0; border: none; border-bottom: 1px solid #B6B6B6; -moz-border-radius: 0; -webkit-border-radius: 0; border-radius: 0; }
+.ui-datepicker .ui-datepicker-prev, .ui-datepicker .ui-datepicker-next { position:absolute; top: 6px; width: 1.8em; height: 1.8em; }
+.ui-datepicker .ui-datepicker-prev-hover, .ui-datepicker .ui-datepicker-next-hover { border: 1px none; }
+.ui-datepicker .ui-datepicker-prev { left:2px; }
+.ui-datepicker .ui-datepicker-next { right:2px; }
+.ui-datepicker .ui-datepicker-prev span { background-position: 0px -32px !important; }
+.ui-datepicker .ui-datepicker-next span { background-position: -16px -32px !important; }
+.ui-datepicker .ui-datepicker-prev-hover span { background-position: 0px -48px !important; }
+.ui-datepicker .ui-datepicker-next-hover span { background-position: -16px -48px !important; }
+.ui-datepicker .ui-datepicker-prev span, .ui-datepicker .ui-datepicker-next span { display: block; position: absolute; left: 50%; margin-left: -8px; top: 50%; margin-top: -8px; background: url(images/icon_sprite.png) no-repeat; }
+.ui-datepicker .ui-datepicker-title { margin: 0 2.3em; line-height: 1.8em; text-align: center; font-size: 12px; text-shadow: 0 1px 0 rgba(255,255,255,0.6); }
+.ui-datepicker .ui-datepicker-title select { font-size:1em; margin:1px 0; }
+.ui-datepicker select.ui-datepicker-month-year {width: 100%;}
+.ui-datepicker select.ui-datepicker-month, 
+.ui-datepicker select.ui-datepicker-year { width: 49%;}
+.ui-datepicker table {width: 100%; font-size: .9em; border-collapse: collapse; margin:0 0 .4em; }
+.ui-datepicker th { padding: .7em .3em; text-align: center; font-weight: bold; border: 0;  }
+.ui-datepicker td { border: 0; padding: 1px; }
+.ui-datepicker td span, .ui-datepicker td a { display: block; padding: .2em; text-align: right; text-decoration: none; }
+.ui-datepicker .ui-datepicker-buttonpane { background-image: none; margin: .7em 0 0 0; padding:0 .2em; border-left: 0; border-right: 0; border-bottom: 0; }
+.ui-datepicker .ui-datepicker-buttonpane button { float: right; margin: .5em .2em .4em; cursor: pointer; padding: .2em .6em .3em .6em; width:auto; overflow:visible; }
+.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current { float:left; }
+.ui-datepicker table .ui-state-highlight { border-color: #5F83B9; }
+.ui-datepicker table .ui-state-hover { background: #5F83B9; color: #FFF; font-weight: bold; text-shadow: 0 1px 1px #234386; -webkit-box-shadow: 0 0px 0 rgba(255,255,255,0.6) inset; -moz-box-shadow: 0 0px 0 rgba(255,255,255,0.6) inset; box-shadow: 0 0px 0 rgba(255,255,255,0.6) inset; border-color: #5F83B9; }
+.ui-datepicker-calendar .ui-state-default { background: transparent; border-color: #FFF; }
+.ui-datepicker-calendar .ui-state-active { background: #5F83B9; border-color: #5F83B9; color: #FFF; font-weight: bold; text-shadow: 0 1px 1px #234386; }
+
+/* with multiple calendars */
+.ui-datepicker.ui-datepicker-multi { width:auto; }
+.ui-datepicker-multi .ui-datepicker-group { float:left; }
+.ui-datepicker-multi .ui-datepicker-group table { width:95%; margin:0 auto .4em; }
+.ui-datepicker-multi-2 .ui-datepicker-group { width:50%; }
+.ui-datepicker-multi-3 .ui-datepicker-group { width:33.3%; }
+.ui-datepicker-multi-4 .ui-datepicker-group { width:25%; }
+.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header { border-left-width:0; }
+.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header { border-left-width:0; }
+.ui-datepicker-multi .ui-datepicker-buttonpane { clear:left; }
+.ui-datepicker-row-break { clear:both; width:100%; }
+
+/* RTL support */
+.ui-datepicker-rtl { direction: rtl; }
+.ui-datepicker-rtl .ui-datepicker-prev { right: 2px; left: auto; }
+.ui-datepicker-rtl .ui-datepicker-next { left: 2px; right: auto; }
+.ui-datepicker-rtl .ui-datepicker-prev:hover { right: 1px; left: auto; }
+.ui-datepicker-rtl .ui-datepicker-next:hover { left: 1px; right: auto; }
+.ui-datepicker-rtl .ui-datepicker-buttonpane { clear:right; }
+.ui-datepicker-rtl .ui-datepicker-buttonpane button { float: left; }
+.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current { float:right; }
+.ui-datepicker-rtl .ui-datepicker-group { float:right; }
+.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header { border-right-width:0; border-left-width:1px; }
+.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header { border-right-width:0; border-left-width:1px; }
+
+/* IE6 IFRAME FIX (taken from datepicker 1.5.3 */
+.ui-datepicker-cover {
+    display: none; /*sorry for IE5*/
+    display/**/: block; /*sorry for IE5*/
+    position: absolute; /*must have*/
+    z-index: -1; /*must have*/
+    filter: mask(); /*must have*/
+    top: -4px; /*must have*/
+    left: -4px; /*must have*/
+    width: 200px; /*must have*/
+    height: 200px; /*must have*/
+}/*
+ * jQuery UI Progressbar 1.8.7
+ *
+ * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Progressbar#theming
+ */
+.ui-progressbar { height: 12px; text-align: left; background: #FFF url(images/progress_bar.gif) 0 -14px repeat-x; }
+.ui-progressbar .ui-progressbar-value {margin: -1px; height:100%; background: url(images/progress_bar.gif) 0 0 repeat-x; }
+
+/* Extra Input Field Styling */
+.ui-form textarea, .ui-form input:not([type="submit"]):not([type="button"]):not([type="checkbox"]):not([type="radio"]):not([type="file"]):not([type="range"]) {
+	padding: 3px;
+	-webkit-border-radius: 2px;
+	-moz-border-radius: 2px;
+	border-radius: 2px;
+	border: 1px solid #cecece;
+	outline: none;
+	-webkit-box-shadow: 0 1px 3px rgba(0,0,0,0.1) inset, 0 1px 0 rgba(255,255,255,0.2);
+	-moz-box-shadow: 0 1px 3px rgba(0,0,0,0.1) inset, 0 1px 0 rgba(255,255,255,0.2);
+	box-shadow: 0 1px 3px rgba(0,0,0,0.1) inset, 0 1px 0 rgba(255,255,255,0.2);
+    -webkit-transition: all 0.25s ease-in-out;
+    -moz-transition: all 0.25 ease-in-out;
+    -o-transition: all 0.25s ease-in-out;
+}
+.ui-form textarea:hover, .ui-form input:not([type="submit"]):not([type="button"]):not([type="checkbox"]):not([type="radio"]):not([type="file"]):not([type="range"]):hover {
+	border: 1px solid #bdbdbd;
+	-webkit-box-shadow: 0 1px 3px rgba(0,0,0,0.2) inset, 0 1px 0 rgba(255,255,255,0.2);
+	-moz-box-shadow: 0 1px 3px rgba(0,0,0,0.2) inset, 0 1px 0 rgba(255,255,255,0.2);
+	box-shadow: 0 1px 3px rgba(0,0,0,0.2) inset, 0 1px 0 rgba(255,255,255,0.2);
+}
+.ui-form textarea:focus, .ui-form input:not([type="submit"]):not([type="button"]):not([type="checkbox"]):not([type="radio"]):not([type="file"]):not([type="range"]):focus {
+	border: 1px solid #95bdd4;
+	-webkit-box-shadow: 0 2px 3px rgba(161,202,226,0.5) inset, 0 1px 0 rgba(255,255,255,0.2);
+	-moz-box-shadow: 0 2px 3px rgba(161,202,226,0.5) inset, 0 1px 0 rgba(255,255,255,0.2);
+	box-shadow: 0 2px 3px rgba(161,202,226,0.5) inset, 0 1px 0 rgba(255,255,255,0.2);
+}
\ No newline at end of file
diff --git a/public/admin/js/osmplayer/jquery-ui/Aristo/images/bg_fallback.png b/public/admin/js/osmplayer/jquery-ui/Aristo/images/bg_fallback.png
new file mode 100644
index 0000000000000000000000000000000000000000..4b2754b8040e4bb430bd910225bb9760d25e8794
GIT binary patch
literal 3721
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

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/Aristo/images/icon_sprite.png b/public/admin/js/osmplayer/jquery-ui/Aristo/images/icon_sprite.png
new file mode 100644
index 0000000000000000000000000000000000000000..636c80f221621c2461cb2f78764b21a1d5ce2f5a
GIT binary patch
literal 3217
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
Do!v@z

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/Aristo/images/progress_bar.gif b/public/admin/js/osmplayer/jquery-ui/Aristo/images/progress_bar.gif
new file mode 100644
index 0000000000000000000000000000000000000000..156fbb53137ff519901e8b1021e2468974131c39
GIT binary patch
literal 502
zcmZ?wbhEHbv|x~6xXQrr=g*(_@85s=^y%BTZ@+&1`ug?j@87?F{P^+n=g+@?|DJvE
zeba@9n{IxXyzknygEv=SezpGE+gV5MY`ybo(doy_&p(@Y;z8GjW2c{gJM!SezT2;N
zTzkIz=F3BO-)+0{<m8jDTP{61{^%0}ErH@s7O?R;AQI#!2DbkWtpy%BQvD~ETq>Gq
zG5^Af60fyE`eOXar{7lXf3U&g&Bg|W7h9^%=Iy?pH-Yu@ireph?5R6{KUqgcq^Y^3
zwXMCQvqMHqQn-J@#7UE<Or17WQcPNO&fIzP7c5+~c#*W2l;Fx$tJkbuw|>KVDKS~T
zZQFP3+_ihp-aWEn^1O$S96fgY#K}`9<;A$qU$}Vb@|COCu8T3=x_#&Fz55RyK4N5g
z`t13Om#<#GdCSE5;p3;zU%r0({)3hI_n*K2{xdLh$yhvSIM~b~tQB)&!@|SN97<ku
zJT@*m+AU$Mq;O#4;^X}a&RsH|lNuT)YXq-~Ik{=+>FI0?C+2u=UUqi2Me!?^2@95=
c7oP9X%q8o!C8KGs$7HS8Q(IPEQedzK0Ol*~A^-pY

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/Aristo/images/slider_handles.png b/public/admin/js/osmplayer/jquery-ui/Aristo/images/slider_handles.png
new file mode 100644
index 0000000000000000000000000000000000000000..b95a46eca97b9001da25067948cb05a0021be2a1
GIT binary patch
literal 4453
zcmV-r5t{CaP)<h;3K|Lk000e1NJLTq000*N001rs1^@s6!(W2M00009a7bBm000XU
z000XU0RWnu7ytkYPiaF#P*7-ZbZ>KLZ*U+<Lqi~Na&Km7Y-Iodc-oy)XH-+^7Crag
z^g>IBfRsybQWXdwQbLP>6p<z>Aqfylh#{fb6;Z(vMMVS~$e@S=j*ftg6;Uh<iVD~V
z<RPMtgQJLw%KPDaqifc@_vX$1wbwr9tn;0-&j-K=43<bUQ8j=JsX`tR;Dg7+#^K~H
zK!FM*Z~zbpvt%K2{UZSY_<lS*D<Z%Lz5oGu(+dayz)hRLFdT>f59&ghTmgWD0l;*T
zI7<kC6aYYajzXpYKt=(8otP$50H6c_V9R4-;{Z@C0AMG7=F<Rxo%or10RUT+Ar%3j
zkpLhQWr#!oXgdI`&sK^>09Y^p6lP1rIRMx#05C~cW=H_Aw*bJ-5DT&Z2n+x)QHX^p
z00esgV8|mQcmRZ%02D^@S3L16t`O%c004NIvOKvYIYoh62rY33S640`D9%Y2D-<?i
z0%4j!F2Z@488U%158(66005wo6%pWr^Zj_v4zAA5HjcIqUoGmt2LB>rV&neh&#Q1i
z007~1e$oCcFS8neI|hJl{-P!B1ZZ9hpmq0)X0i`JwE&>$+E?>%_<lS*MWK+n+1cgf
z<k(8YLR(?VSAG6x!e78w{cQPuJpA|d;J)G{fihizM+Erb!p!tcr5w+a34~(Y=8s4G
zw+sLL9n&JjNn*KJDiq^U5^;`1nvC-@r6P$!k}1U{(*I=Q-z@tBKHoI}uxdU5dyy@u
zU1J0GOD7Ombim^G008p4Z^6_k2m^p<gW=D2|L;HjN1!DDfM!XOaR2~bL?kX$%CkSm
z2mk;?pn)o|K^yeJ7%adB9Ki+L!3+FgHiSYX#KJ-lLJDMn9CBbOtb#%)hRv`YDqt_v
zKpix|QD}yfa1JiQRk#j4a1Z)n2%f<xynzV>LC6RbVIkUx0b+_+BaR3cnT7Zv!AJxW
zizFb)h!jyGOOZ85F;a?DAXP{m@;!0_Ifq<Ex{*7`05XF7hP+2Hl!3BQJ=6@fL%FCo
z8iYoo3(#bAF`ADSpqtQgv>H8(HlgRxt7s3}k3K`kFu>>-2Q$QMFfPW!La{h336o>X
zu_CMttHv6zR;&ZNiS=X8v3CR#fknUxHUxJ<AYmRsNLWl*PS{AOARHt#5!wki2?K;t
z!Y3k=s7tgax)J%r7-BLphge7~Bi0g+6E6^Zh(p9TBoc{3GAFr^0!gu?RMHaCM$&Fl
zBk3%un>0uoBa_M6WNWeqIg~6QE69c9o#eyhGvpiOA@W-aonk<7r1(?fC{oI5N*U!4
z<uv66WtcKSRim0x-Ke2d5jBrmLam{;Qm;{ms1r1GnmNsb7D-E`t)i9F8fX`2_i3-_
zbh;7Ul^#x)&{xvS=|||7=mYe33=M`AgU5(xC>fg=2N-7=cNnjjOr{yriy6mMFgG#l
znCF=fnQv8CDz++o6_Lscl}eQ+l^ZHARH>?_s@|##Rr6KLRFA1%Q+=*RRWnoLsR`7U
zt5vF<Q0r40Q)j6=sE4X&sBct1q<&fbi3VB2Ov6t@q*0);U*o*SAPZv|vv@2aYYnT0
zb%8a+Cb7-ge0D0knEf5Qi#@8Tp*ce{N;6lpQuCB%KL_KOarm5cP6_8Ir<e17iry6O
zDdH&`rZh~sF=bq9s+O0QSgS~@QL9Jmy*94xr=6y~MY~!1fet~(N+(<=M`w@D1)b+p
z*;C!83a1uLJv#NSE~;y#8=<>IcfW3@?wFpwUVxrVZ>QdQz32KIeJ}k~{cZZE^+ya?
z2D1z#2HOnI7(B%_ac?{wFUQ;QQA1tBKtrWrm0_3Rgps+?Jfqb{jYbcQX~taRB;#$y
zZN{S}1|}gUOHJxc?wV3fxuz+mJ4`!F$IZ;mqRrNsHJd##*D~ju=bP7?-?v~|cv>vB
zsJ6IeNwVZxrdjT`yl#bBIa#GxRa#xMMy;K#CDyyGyQdMSxlWT#tDe?p!?5wT$+oGt
z8L;Kp2HUQ-ZMJ=3XJQv;x5ci*?vuTfeY$;({XGW_huIFR9a<fJbF^|4I#xQ~n$Dc=
zKYhjYmgz5NSkDm8*fZm{6U!;YX`NG>(?@3)XSs8O^N5RyOM=TTmp(3=8^+zpz2r)C
z^>JO{deZfso3oq3?Wo(Y?l$ge?uXo;%ru`Vo>?<<(8I_>;8Eq#KMS9gFl*neeosSB
zfoHYnBQIkwkyowPu(zdms`p{<7e4kra-ZWq<2*OsGTvEV%s0Td$hXT+!*8Bnh2KMe
zBmZRodjHV?r+_5^X9J0WL4jKW`}lf%A-|44I@@LTvf1rHjG(ze6+w@Jt%Bvjts!X0
z?2xS?_ve_-k<Mujg;0Lz*3buG=3$G&ehepthlN*$KaOySSQ^nWmo<0M+(UEUMEXRQ
zMBbZcF;6+KElM>iKB_KiJlZ$9G`c^=E@oNG)mWWaNo-3TIW8)$Hg0Ub-~8?KhvJ>$
z3*&nim@mj(aCxE5!t{lw7O5^0EIO7zOo&c6l<+|iDySBWCGrz@C5{St!X3hAA}`T4
z(TLbXTq+(;@<=L8dXnssyft|w#WSTW<++3>sgS%(4NTpeI-VAqb|7ssJvzNHgOZVu
zaYCvgO_R1~>SyL=cFU|~g|hy|Zi}}s9+d~lYqOB71z9Z$wnC=pR9Yz4DhIM>Wmjgu
z&56o6maCpC&F##y%G;1PobR9i?GnNg;gYtchD%p19a!eQtZF&3JaKv33gZ<8D~47E
ztUS1iwkmDaPpj=$m#%)jCVEY4fnLGNg2A-`YwHVD3gv};>)hAvT~AmqS>Lr``i7kw
zJ{5_It`yrBmlc25DBO7E8;5VoznR>Ww5hAaxn$2~(q`%A-YuS64wkBy=9dm`4cXeX
z4c}I@?e+FW+b@^RDBHV(wnMq2zdX3SWv9u`%{xC-q*U}&`cyXV(%rRT*Z6MH?i+i&
z_B8C(+grT%{XWUQ+f@NoP1R=AW&26{v-dx)iK^-Nmiuj8txj!m?Z*Ss1N{dh4z}01
z)YTo*JycSU)+_5r4#yw9{+;i4Ee$peRgIj+;v;ZGdF1K$3E%e~4LaI(jC-u%2h$&R
z9cLXcYC@Xwnns&bn)_Q~Te?roKGD|d-g^8;+aC{{G(1^(O7m37Y1-+6)01cN&y1aw
zoqc{T`P^XJqPBbIW6s}d4{z_f5Om?vMgNQEJG?v2T=KYd^0M3I6IZxbny)%vZR&LD
zJpPl@Psh8QyPB@KTx+@RdcC!KX7}kEo;S|j^u2lU7XQ}Oo;f|;z4Ll+_r>@1-xl3|
zawq-H%e&ckC+@AhPrP6BK<z=<L*0kfKU@CX*zeqbYQT4(^U>T#_XdT7&;F71j}Joy
zkC~6lh7E@6o;W@^IpRNZ{ptLtL(gQ-CY~4mqW;US7Zxvm_|@yz&e53Bp_lTPlfP|z
zrTyx_>lv@x#=^!PzR7qqF<$gm`|ZJZ+;<)Cqu&ot<a{81DF0~rvGr5Xr~8u`lav1h
z1DNytV>2z=0000WV@Og>004R=004l4008;_004mL004C`008P>0026e000+nl3&F}
z000J%Nkl<Zc-pj=U2I!t8OMLNkA32=*iIbh%lRmELeh3kL#u5XQ`e;sO)6pnG*yCK
zASABXxPUvjfol+gK{aUz39*5?D`2D2nAE~erAcgb-Kwh1T#`7BojUPn>>Qsjn~Oe9
z-NZ@SNqwb9vd%gFzt8)BpZEWNUdP4jYwR(cfC9JykNkE54Zs2nz?9#OP5{atpl-ki
z1c3+;0{rsa1ZqGTC<2?nmOO9l2kr*EKo}SRMu1UZ2<QP+KnDsy21o%bz#32jG?`=<
zxLY!f0f&KOz;R#(m=J1O!vH=5u1nki?f^NU+L}OVo5T+c0!M)_1J407+SV4@Rt-bf
zF$@Eb$Ad>zJzk&xsMqH^3QPn40=fjtmT0uVJwPuo37i35v~7E6BbOuORXE%qA=2$9
z9Pm@B)+knLWb;MtmdiwAv00bP6#*PVnI<c%D}YO~9s*7PUo{P5D7}(mYIKl8qr=q9
z234y`zGR@fJOm;tCt^_+Q>)xsT4Z!=eB7ldb3)5TiyB2J2?684NoXcA=`_=0gM@lx
ztd#TzcHFX{rr+Dqa5Tn*ZL^%sGCVRe1KbAw2iyf}PN5_Mi~+~Xr4l{CE?j{KCC$LH
ztv#cp8K~hX!7eA|atUBolI#K8ihzfOmXTsU&(L5$nz3C`l=ADm{rd~ty74hn$4+qm
z`#&Ju+Xqq>fnb=_YL-waJORW7Pi-9-zhqCPQlaTmF-?0r{_@5JR&sg5<I}9<^8D%b
z*B*FpqOiHS*~+CC2(&V99di#ry<VpYn3lDj`9`@)_s}?s>c!GE3c2(H@0;>J8LA}g
zP<Chq4hLv;4Mn+szD5&Yq@bBNT?&foWh60$Y2ByIGR=F1cyH*!R@2$06-5BA&rhXX
z#x$+%c<w9n4D>~5*cJnQQRe1fc;J1dQo-x>wZQZ3rD%vQWPo(EuP>g-Wbyg}+o^bc
z0p{k;?kGw7K5e-i@pv4OgtXx4P600h%fR*ifk6yiV=cRiX;}wGCY?fYIq4r50JsJ$
ziLjYY;kzv0A2}S3JI7~c*;vbvO{ey)^K3drVf`*sM~)%_c1>_9faMgCsR66N$H4nO
zzd!Tr=`+x<SxzocDiqM`I+kUl*L6yT0?Ww-XxKb^`V6Y7E&*47Pl2rHyREcIXdYN-
z8G=VupFj2FQ%_`8)1*?%WLFl^bsbez2}gQJBoYh_$B~4t09S#e@NKk9t|hZ&+g6eV
zW`~C3vqQu2i4KnSnb2@eGERzcX)Q-mb{N2B+e8~;03XSb?iJ0h%PP~rqPS7^ASY@`
zg)I|RMcwX*Gz8>(OWqZwDk_qUagc{1AJp3p*GAisZn?kNb`mW~XxDHwn@t|qaPk<(
zV+G&l+~IKSqD;co77kHZyDgd$_a#`UR`ywu3s8Ub+MmB33`bsYt6j$xx95mu8aGY7
z{>f&k_};I6_?>rTW9?2Y-S&pIW$pw#=f3;O=&7?``|ad-e10?*A=(`v+U;kfQe&f1
zC6z0(u#|rP!^{78_0k`ImufG?y)t(K>PxTwbmoa?=H7jB`cQOYEKW(c$(c=-a&>%)
zn?R_Cr(=Ee27U7`<r`OR+kXDNH(yWgtaaxOj+JoVKxp#hGk<vM$QPo)-WWI6H8K^0
zie_S&HWkezQ!%)?t`Y2wadL7jI&*sd*W$yiec1)>1iHTU%1^#MIW~O6@`lJ&^?fBb
zSJffd!*pW&?Du~Do0ml%9Gy<63-AVeqTf_}0c!d~wiXung57lY^t}XJlnpj^X6^#K
zE_c^4%i(#X)<UxtT<)%EX}?{2W$tN0=<~D|jb^i3^rs`Z190l~t%_FHx*xT*(Cb@O
zVWQ)PHi5=wsj%>QT8nDAn3OVXcFNoajO=3a%E0L1Q;*tOtR`>&v&|1Wf@}Z2_{QJ*
z#}nrjk7um6um3=CT3^esbo<7CF28l*9dRPN6D>BNnR-3{!MhiKww%0Oewfx`WieU4
z`qwvqDXz37=CMm#9J1RXU@$h8IQI05FaJ26nEFzvCyLkS$E7IPmW8%eqg>b^oxJtm
z5B~nvFLKMt8{(rCz-kKUPT_KjrFF}#uK(1z^XCQ*Po4Dz!-rgMcfdBy>egmyaqZ5n
z%O75P`;uG}a{_GKtIFp7s@T@Ew=TIpsbO1|-@4=$#cK~##g;)EZCyY`fIV#nZO8<g
rnE6BNc_$}QIyjMakP|&t_y7L@m>jdcNUNmY00000NkvXXu0mjf15at`

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/Aristo/images/ui-icons_222222_256x240.png b/public/admin/js/osmplayer/jquery-ui/Aristo/images/ui-icons_222222_256x240.png
new file mode 100644
index 0000000000000000000000000000000000000000..b273ff111d219c9b9a8b96d57683d0075fb7871a
GIT binary patch
literal 4369
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

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/Aristo/images/ui-icons_454545_256x240.png b/public/admin/js/osmplayer/jquery-ui/Aristo/images/ui-icons_454545_256x240.png
new file mode 100644
index 0000000000000000000000000000000000000000..59bd45b907c4fd965697774ce8c5fc6b2fd9c105
GIT binary patch
literal 4369
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

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/README.md b/public/admin/js/osmplayer/jquery-ui/README.md
new file mode 100644
index 00000000000..e26b1ceb19e
--- /dev/null
+++ b/public/admin/js/osmplayer/jquery-ui/README.md
@@ -0,0 +1,4 @@
+You can place new themes in this folder.
+
+When you generate a new theme, make sure to set the CSS Scope to '.player-ui' within the
+Advanced Theme Settings.
\ No newline at end of file
diff --git a/public/admin/js/osmplayer/jquery-ui/absolution/README.md b/public/admin/js/osmplayer/jquery-ui/absolution/README.md
new file mode 100755
index 00000000000..6a10ee20274
--- /dev/null
+++ b/public/admin/js/osmplayer/jquery-ui/absolution/README.md
@@ -0,0 +1,42 @@
+# Absolution Theme #
+
+* You are free to redistribute or change the theme.
+* You can change the theme, but you should keep the references to contributors!
+
+Copyright 2010, Michael Vanderheeren  
+http://www.michaelvanderheeren.be
+
+jQuery UI CSS Framework, Copyright 2010, http://jqueryui.com/about  
+Dual licensed under the MIT or GPL Version 2 licenses.  
+http://jquery.org/license  
+http://docs.jquery.com/UI/Theming/API
+
+## Donate ##
+
+I designed and coded this theme in my spare time, which I now and then like to spend having a drink. Keeping this hosting up also costs money. If you like the Absolution theme then think about contributing to it and maybe provide me with a drink, or an extra month of hosting by giving me a small donation through PayPal. You can also Flattr the theme through the button below.
+
+[![Flattr this git repo](http://api.flattr.com/button/flattr-badge-large.png)](https://flattr.com/submit/auto?user_id=MichaelVdheeren&url=https://github.com/michaelvanderheeren/Absolution&title=Absolution&language=en_GB&tags=github&category=software)
+
+## Q&A ##
+
+**How do I install the theme?**  
+Download the latest version from the gitHub repository and add a text/css type link in the pages where you want to use the theme. You should set the href to the *absolution.blue.css* file! Do not forget the images folder!  
+Example: <link type="text/css" href="absolution.blue.css" rel="stylesheet" />  
+
+**But I want a different color!**  
+No problem, if it is already generated then just replace the name of the file above. Otherwise, you have to change the color values in the .less files and either recompile the file or include the LESS javascript in the page where you're using the theme.
+
+**What about Wijmo support?**  
+There is no need anymore to include the Wijmo css stylesheets as they are the foundation for our Wijmo support. Currently the following widgets are fully supported: Expander, Slider, Accordion, Tree.
+
+**The theme looks ugly!**  
+Either you have a different taste or an old browser. This theme uses full CSS3 power in every way possible. Gradients, border-radius and box-shadows are just a simple example. There is no way that I will support legacy browsers. Repeated backgrounds limit the font-size and thus limits freedom for the theme user. This is a user-interface theme, and not a font one. Therefore all unneeded font restricting will be removed over time and replaced with inherits where needed.
+
+**Why did you remove the option to include separate widgets?**  
+Sometimes I like to push new technologies. The usage of LESS was a huge improvement for the readability of the code and the ability to change it fast. This came however at the cost of compiling which I do in a minimized single file to make the file smaller. There is however the option to include the necessary LESS files in your page along with the LESS javascript which will process those files.
+
+**Where can I find LESS?**  
+You are a no brainer aren't you? http://LMGTFY.com/?q=less
+
+**How can I support the theme development?**  
+If you have a Flattr account, then click on the button above.
\ No newline at end of file
diff --git a/public/admin/js/osmplayer/jquery-ui/absolution/absolution.blue.css b/public/admin/js/osmplayer/jquery-ui/absolution/absolution.blue.css
new file mode 100644
index 00000000000..0e0848fb3a5
--- /dev/null
+++ b/public/admin/js/osmplayer/jquery-ui/absolution/absolution.blue.css
@@ -0,0 +1,819 @@
+.ui-widget{font-family:Trebuchet MS,Tahoma,Verdana,Arial,sans-serif;font-size:1.1em;}.ui-widget a{color:inherit;}
+.ui-widget .ui-widget{font-size:1em;}
+.ui-widget input,.ui-widget select,.ui-widget textarea,.ui-widget button{font-family:inherit;font-size:1em;}
+.ui-widget-content{border-color:#a9a9a9;background:#eeeeee;border-style:solid;border-width:1px;}
+.ui-widget-header{border-style:solid;border-width:1px;}
+.ui-state-default,.ui-widget-content .ui-state-default,.ui-widget-header .ui-state-default,.ui-widget-header{color:#333333;border-color:#a9a9a9;background:#ffffff;filter:expression("progid:DXImageTransform.Microsoft.gradient(startColorstr='#fdfdfd',endColorstr='#ececec')");-ms-filter:"progid:DXImageTransform.Microsoft.gradient(startColorstr='#fdfdfd',endColorstr='#ececec')";background:-moz-linear-gradient(0% 100% 90deg, #ececec, #fdfdfd);background:-webkit-gradient(linear, left top, left bottom, from(#fdfdfd), to(#ececec));background:-o-linear-gradient(0% 100% 90deg, #ececec, #fdfdfd);}
+.ui-state-hover,.ui-widget-content .ui-state-hover,.ui-widget-header .ui-state-hover{color:#ffffff;border-color:#2e63a5;background:#93ffff;filter:expression("progid:DXImageTransform.Microsoft.gradient(startColorstr='#5e9ae2',endColorstr='#3570b8')");-ms-filter:"progid:DXImageTransform.Microsoft.gradient(startColorstr='#5e9ae2',endColorstr='#3570b8')";background:-moz-linear-gradient(0% 100% 90deg, #3570b8, #5e9ae2);background:-webkit-gradient(linear, left top, left bottom, from(#5e9ae2), to(#3570b8));background:-o-linear-gradient(0% 100% 90deg, #3570b8, #5e9ae2);}
+.ui-state-focus,.ui-widget-content .ui-state-focus,.ui-widget-header .ui-state-focus{color:#ffffff;border-color:#2e63a5;background:#93ffff;filter:expression("progid:DXImageTransform.Microsoft.gradient(startColorstr='#5e9ae2',endColorstr='#3570b8')");-ms-filter:"progid:DXImageTransform.Microsoft.gradient(startColorstr='#5e9ae2',endColorstr='#3570b8')";background:-moz-linear-gradient(0% 100% 90deg, #3570b8, #5e9ae2);background:-webkit-gradient(linear, left top, left bottom, from(#5e9ae2), to(#3570b8));background:-o-linear-gradient(0% 100% 90deg, #3570b8, #5e9ae2);}
+.ui-state-active,.ui-widget-content .ui-state-active,.ui-widget-header .ui-state-active{color:#ffffff;border-color:#2e63a5;background:#93ffff;filter:expression("progid:DXImageTransform.Microsoft.gradient(startColorstr='#3570b8',endColorstr='#5e9ae2')");-ms-filter:"progid:DXImageTransform.Microsoft.gradient(startColorstr='#3570b8',endColorstr='#5e9ae2')";background:-moz-linear-gradient(0% 100% 90deg, #5e9ae2, #3570b8);background:-webkit-gradient(linear, left top, left bottom, from(#3570b8), to(#5e9ae2));background:-o-linear-gradient(0% 100% 90deg, #5e9ae2, #3570b8);}
+.ui-state-default,.ui-widget-content .ui-state-default,.ui-widget-header .ui-state-default,.ui-state-hover,.ui-widget-content .ui-state-hover,.ui-widget-header .ui-state-hover,.ui-state-focus,.ui-widget-content .ui-state-focus,.ui-widget-header .ui-state-focus,.ui-state-active,.ui-widget-content .ui-state-active,.ui-widget-header .ui-state-active{border-style:solid;border-width:1px;}
+.ui-state-default a,.ui-state-hover a,.ui-state-active a{color:inherit;text-decoration:none;}
+.ui-widget:active{outline:none;}
+.ui-state-highlight,.ui-widget-content .ui-state-highlight,.ui-widget-header .ui-state-highlight{border:1px solid #8b9fc2;background:#7cc5e3;}
+.ui-state-highlight a,.ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a{color:inherit;}
+.ui-state-error,.ui-widget-content .ui-state-error,.ui-widget-header .ui-state-error{border:1px solid #953737;background:#f35757;}
+.ui-state-error a,.ui-widget-content .ui-state-error a,.ui-widget-header .ui-state-error a{color:inherit;}
+.ui-state-error-text,.ui-widget-content .ui-state-error-text,.ui-widget-header .ui-state-error-text{color:#363636;}
+.ui-priority-secondary,.ui-widget-content .ui-priority-secondary,.ui-widget-header .ui-priority-secondary{opacity:.7;filter:alpha(opacity=70);}
+.ui-state-disabled,.ui-widget-content .ui-state-disabled,.ui-widget-header .ui-state-disabled{opacity:.35;filter:alpha(opacity=35);background-image:none;}
+.ui-icon{width:16px;height:16px;background-image:url(images/ui-icons_222222_256x240.png);}
+.ui-widget-content .ui-icon{background-image:url(images/ui-icons_222222_256x240.png);}
+.ui-widget-header .ui-icon{background-image:url(images/ui-icons_222222_256x240.png);}
+.ui-state-default .ui-icon{background-image:url(images/ui-icons_222222_256x240.png);}
+.ui-state-hover .ui-icon,.ui-state-focus .ui-icon{background-image:url(images/ui-icons_ffffff_256x240.png);}
+.ui-state-active .ui-icon{background-image:url(images/ui-icons_ffffff_256x240.png);}
+.ui-state-highlight .ui-icon{background-image:url(images/ui-icons_222222_256x240.png);}
+.ui-state-error .ui-icon,.ui-state-error-text .ui-icon{background-image:url(images/ui-icons_222222_256x240.png);}
+.ui-icon-carat-1-n{background-position:0 0;}
+.ui-icon-carat-1-ne{background-position:-16px 0;}
+.ui-icon-carat-1-e{background-position:-32px 0;}
+.ui-icon-carat-1-se{background-position:-48px 0;}
+.ui-icon-carat-1-s{background-position:-64px 0;}
+.ui-icon-carat-1-sw{background-position:-80px 0;}
+.ui-icon-carat-1-w{background-position:-96px 0;}
+.ui-icon-carat-1-nw{background-position:-112px 0;}
+.ui-icon-carat-2-n-s{background-position:-128px 0;}
+.ui-icon-carat-2-e-w{background-position:-144px 0;}
+.ui-icon-triangle-1-n{background-position:0 -16px;}
+.ui-icon-triangle-1-ne{background-position:-16px -16px;}
+.ui-icon-triangle-1-e{background-position:-32px -16px;}
+.ui-icon-triangle-1-se{background-position:-48px -16px;}
+.ui-icon-triangle-1-s{background-position:-64px -16px;}
+.ui-icon-triangle-1-sw{background-position:-80px -16px;}
+.ui-icon-triangle-1-w{background-position:-96px -16px;}
+.ui-icon-triangle-1-nw{background-position:-112px -16px;}
+.ui-icon-triangle-2-n-s{background-position:-128px -16px;}
+.ui-icon-triangle-2-e-w{background-position:-144px -16px;}
+.ui-icon-arrow-1-n{background-position:0 -32px;}
+.ui-icon-arrow-1-ne{background-position:-16px -32px;}
+.ui-icon-arrow-1-e{background-position:-32px -32px;}
+.ui-icon-arrow-1-se{background-position:-48px -32px;}
+.ui-icon-arrow-1-s{background-position:-64px -32px;}
+.ui-icon-arrow-1-sw{background-position:-80px -32px;}
+.ui-icon-arrow-1-w{background-position:-96px -32px;}
+.ui-icon-arrow-1-nw{background-position:-112px -32px;}
+.ui-icon-arrow-2-n-s{background-position:-128px -32px;}
+.ui-icon-arrow-2-ne-sw{background-position:-144px -32px;}
+.ui-icon-arrow-2-e-w{background-position:-160px -32px;}
+.ui-icon-arrow-2-se-nw{background-position:-176px -32px;}
+.ui-icon-arrowstop-1-n{background-position:-192px -32px;}
+.ui-icon-arrowstop-1-e{background-position:-208px -32px;}
+.ui-icon-arrowstop-1-s{background-position:-224px -32px;}
+.ui-icon-arrowstop-1-w{background-position:-240px -32px;}
+.ui-icon-arrowthick-1-n{background-position:0 -48px;}
+.ui-icon-arrowthick-1-ne{background-position:-16px -48px;}
+.ui-icon-arrowthick-1-e{background-position:-32px -48px;}
+.ui-icon-arrowthick-1-se{background-position:-48px -48px;}
+.ui-icon-arrowthick-1-s{background-position:-64px -48px;}
+.ui-icon-arrowthick-1-sw{background-position:-80px -48px;}
+.ui-icon-arrowthick-1-w{background-position:-96px -48px;}
+.ui-icon-arrowthick-1-nw{background-position:-112px -48px;}
+.ui-icon-arrowthick-2-n-s{background-position:-128px -48px;}
+.ui-icon-arrowthick-2-ne-sw{background-position:-144px -48px;}
+.ui-icon-arrowthick-2-e-w{background-position:-160px -48px;}
+.ui-icon-arrowthick-2-se-nw{background-position:-176px -48px;}
+.ui-icon-arrowthickstop-1-n{background-position:-192px -48px;}
+.ui-icon-arrowthickstop-1-e{background-position:-208px -48px;}
+.ui-icon-arrowthickstop-1-s{background-position:-224px -48px;}
+.ui-icon-arrowthickstop-1-w{background-position:-240px -48px;}
+.ui-icon-arrowreturnthick-1-w{background-position:0 -64px;}
+.ui-icon-arrowreturnthick-1-n{background-position:-16px -64px;}
+.ui-icon-arrowreturnthick-1-e{background-position:-32px -64px;}
+.ui-icon-arrowreturnthick-1-s{background-position:-48px -64px;}
+.ui-icon-arrowreturn-1-w{background-position:-64px -64px;}
+.ui-icon-arrowreturn-1-n{background-position:-80px -64px;}
+.ui-icon-arrowreturn-1-e{background-position:-96px -64px;}
+.ui-icon-arrowreturn-1-s{background-position:-112px -64px;}
+.ui-icon-arrowrefresh-1-w{background-position:-128px -64px;}
+.ui-icon-arrowrefresh-1-n{background-position:-144px -64px;}
+.ui-icon-arrowrefresh-1-e{background-position:-160px -64px;}
+.ui-icon-arrowrefresh-1-s{background-position:-176px -64px;}
+.ui-icon-arrow-4{background-position:0 -80px;}
+.ui-icon-arrow-4-diag{background-position:-16px -80px;}
+.ui-icon-extlink{background-position:-32px -80px;}
+.ui-icon-newwin{background-position:-48px -80px;}
+.ui-icon-refresh{background-position:-64px -80px;}
+.ui-icon-shuffle{background-position:-80px -80px;}
+.ui-icon-transfer-e-w{background-position:-96px -80px;}
+.ui-icon-transferthick-e-w{background-position:-112px -80px;}
+.ui-icon-folder-collapsed{background-position:0 -96px;}
+.ui-icon-folder-open{background-position:-16px -96px;}
+.ui-icon-document{background-position:-32px -96px;}
+.ui-icon-document-b{background-position:-48px -96px;}
+.ui-icon-note{background-position:-64px -96px;}
+.ui-icon-mail-closed{background-position:-80px -96px;}
+.ui-icon-mail-open{background-position:-96px -96px;}
+.ui-icon-suitcase{background-position:-112px -96px;}
+.ui-icon-comment{background-position:-128px -96px;}
+.ui-icon-person{background-position:-144px -96px;}
+.ui-icon-print{background-position:-160px -96px;}
+.ui-icon-trash{background-position:-176px -96px;}
+.ui-icon-locked{background-position:-192px -96px;}
+.ui-icon-unlocked{background-position:-208px -96px;}
+.ui-icon-bookmark{background-position:-224px -96px;}
+.ui-icon-tag{background-position:-240px -96px;}
+.ui-icon-home{background-position:0 -112px;}
+.ui-icon-flag{background-position:-16px -112px;}
+.ui-icon-calendar{background-position:-32px -112px;}
+.ui-icon-cart{background-position:-48px -112px;}
+.ui-icon-pencil{background-position:-64px -112px;}
+.ui-icon-clock{background-position:-80px -112px;}
+.ui-icon-disk{background-position:-96px -112px;}
+.ui-icon-calculator{background-position:-112px -112px;}
+.ui-icon-zoomin{background-position:-128px -112px;}
+.ui-icon-zoomout{background-position:-144px -112px;}
+.ui-icon-search{background-position:-160px -112px;}
+.ui-icon-wrench{background-position:-176px -112px;}
+.ui-icon-gear{background-position:-192px -112px;}
+.ui-icon-heart{background-position:-208px -112px;}
+.ui-icon-star{background-position:-224px -112px;}
+.ui-icon-link{background-position:-240px -112px;}
+.ui-icon-cancel{background-position:0 -128px;}
+.ui-icon-plus{background-position:-16px -128px;}
+.ui-icon-plusthick{background-position:-32px -128px;}
+.ui-icon-minus{background-position:-48px -128px;}
+.ui-icon-minusthick{background-position:-64px -128px;}
+.ui-icon-close{background-position:-80px -128px;}
+.ui-icon-closethick{background-position:-96px -128px;}
+.ui-icon-key{background-position:-112px -128px;}
+.ui-icon-lightbulb{background-position:-128px -128px;}
+.ui-icon-scissors{background-position:-144px -128px;}
+.ui-icon-clipboard{background-position:-160px -128px;}
+.ui-icon-copy{background-position:-176px -128px;}
+.ui-icon-contact{background-position:-192px -128px;}
+.ui-icon-image{background-position:-208px -128px;}
+.ui-icon-video{background-position:-224px -128px;}
+.ui-icon-script{background-position:-240px -128px;}
+.ui-icon-alert{background-position:0 -144px;}
+.ui-icon-info{background-position:-16px -144px;}
+.ui-icon-notice{background-position:-32px -144px;}
+.ui-icon-help{background-position:-48px -144px;}
+.ui-icon-check{background-position:-64px -144px;}
+.ui-icon-bullet{background-position:-80px -144px;}
+.ui-icon-radio-off{background-position:-96px -144px;}
+.ui-icon-radio-on{background-position:-112px -144px;}
+.ui-icon-pin-w{background-position:-128px -144px;}
+.ui-icon-pin-s{background-position:-144px -144px;}
+.ui-icon-play{background-position:0 -160px;}
+.ui-icon-pause{background-position:-16px -160px;}
+.ui-icon-seek-next{background-position:-32px -160px;}
+.ui-icon-seek-prev{background-position:-48px -160px;}
+.ui-icon-seek-end{background-position:-64px -160px;}
+.ui-icon-seek-first,.ui-icon-seek-start{background-position:-80px -160px;}
+.ui-icon-stop{background-position:-96px -160px;}
+.ui-icon-eject{background-position:-112px -160px;}
+.ui-icon-volume-off{background-position:-128px -160px;}
+.ui-icon-volume-on{background-position:-144px -160px;}
+.ui-icon-power{background-position:0 -176px;}
+.ui-icon-signal-diag{background-position:-16px -176px;}
+.ui-icon-signal{background-position:-32px -176px;}
+.ui-icon-battery-0{background-position:-48px -176px;}
+.ui-icon-battery-1{background-position:-64px -176px;}
+.ui-icon-battery-2{background-position:-80px -176px;}
+.ui-icon-battery-3{background-position:-96px -176px;}
+.ui-icon-circle-plus{background-position:0 -192px;}
+.ui-icon-circle-minus{background-position:-16px -192px;}
+.ui-icon-circle-close{background-position:-32px -192px;}
+.ui-icon-circle-triangle-e{background-position:-48px -192px;}
+.ui-icon-circle-triangle-s{background-position:-64px -192px;}
+.ui-icon-circle-triangle-w{background-position:-80px -192px;}
+.ui-icon-circle-triangle-n{background-position:-96px -192px;}
+.ui-icon-circle-arrow-e{background-position:-112px -192px;}
+.ui-icon-circle-arrow-s{background-position:-128px -192px;}
+.ui-icon-circle-arrow-w{background-position:-144px -192px;}
+.ui-icon-circle-arrow-n{background-position:-160px -192px;}
+.ui-icon-circle-zoomin{background-position:-176px -192px;}
+.ui-icon-circle-zoomout{background-position:-192px -192px;}
+.ui-icon-circle-check{background-position:-208px -192px;}
+.ui-icon-circlesmall-plus{background-position:0 -208px;}
+.ui-icon-circlesmall-minus{background-position:-16px -208px;}
+.ui-icon-circlesmall-close{background-position:-32px -208px;}
+.ui-icon-squaresmall-plus{background-position:-48px -208px;}
+.ui-icon-squaresmall-minus{background-position:-64px -208px;}
+.ui-icon-squaresmall-close{background-position:-80px -208px;}
+.ui-icon-grip-dotted-vertical{background-position:0 -224px;}
+.ui-icon-grip-dotted-horizontal{background-position:-16px -224px;}
+.ui-icon-grip-solid-vertical{background-position:-32px -224px;}
+.ui-icon-grip-solid-horizontal{background-position:-48px -224px;}
+.ui-icon-gripsmall-diagonal-se{background-position:-64px -224px;}
+.ui-icon-grip-diagonal-se{background-position:-80px -224px;}
+.ui-corner-all,.ui-corner-top,.ui-corner-left,.ui-corner-tl{-moz-border-radius-topleft:5px;-webkit-border-top-left-radius:5px;border-top-left-radius:5px;}
+.ui-corner-all,.ui-corner-top,.ui-corner-right,.ui-corner-tr{-moz-border-radius-topright:5px;-webkit-border-top-right-radius:5px;border-top-right-radius:5px;}
+.ui-corner-all,.ui-corner-bottom,.ui-corner-left,.ui-corner-bl{-moz-border-radius-bottomleft:5px;-webkit-border-bottom-left-radius:5px;border-bottom-left-radius:5px;}
+.ui-corner-all,.ui-corner-bottom,.ui-corner-right,.ui-corner-br{-moz-border-radius-bottomright:5px;-webkit-border-bottom-right-radius:5px;border-bottom-right-radius:5px;}
+.ui-widget-overlay{background:#999999;opacity:.50;filter:alpha(opacity=50);}
+.ui-widget-shadow{-webkit-box-shadow:0px 0px 5px #282425;-moz-box-shadow:0px 0px 5px #282425;box-shadow:0px 0px 5px #282425;}
+.ui-helper-hidden{display:none;}
+.ui-helper-hidden-accessible{position:absolute;left:-99999999px;}
+.ui-helper-reset{margin:0;padding:0;border:0;outline:0;line-height:1.3;text-decoration:none;font-size:100%;list-style:none;}
+.ui-helper-clearfix:after{content:".";display:block;height:0;clear:both;visibility:hidden;}
+.ui-helper-clearfix{display:inline-block;}
+* html .ui-helper-clearfix{height:1%;}
+.ui-helper-clearfix{display:block;}
+.ui-helper-zfix{width:100%;height:100%;top:0;left:0;position:absolute;opacity:0;filter:alpha(opacity=0);}
+.ui-state-disabled{cursor:default !important;}
+.ui-icon{display:block;text-indent:-99999px;overflow:hidden;background-repeat:no-repeat;}
+.ui-widget-overlay{position:absolute;top:0;left:0;width:100%;height:100%;}
+.ui-resizable{position:relative;}
+.ui-resizable-handle{position:absolute;font-size:0.1px;z-index:99999;display:block;}
+.ui-resizable-disabled .ui-resizable-handle,.ui-resizable-autohide .ui-resizable-handle{display:none;}
+.ui-resizable-n{cursor:n-resize;height:7px;width:100%;top:-5px;left:0;}
+.ui-resizable-s{cursor:s-resize;height:7px;width:100%;bottom:-5px;left:0;}
+.ui-resizable-e{cursor:e-resize;width:7px;right:-5px;top:0;height:100%;}
+.ui-resizable-w{cursor:w-resize;width:7px;left:-5px;top:0;height:100%;}
+.ui-resizable-se{cursor:se-resize;width:12px;height:12px;right:1px;bottom:1px;}
+.ui-resizable-sw{cursor:sw-resize;width:9px;height:9px;left:-5px;bottom:-5px;}
+.ui-resizable-nw{cursor:nw-resize;width:9px;height:9px;left:-5px;top:-5px;}
+.ui-resizable-ne{cursor:ne-resize;width:9px;height:9px;right:-5px;top:-5px;}
+.ui-selectable-helper{position:absolute;z-index:100;border:1px dotted black;}
+.ui-accordion{width:100%;}.ui-accordion .ui-accordion-header{cursor:pointer;position:relative;margin-top:1px;zoom:1;border:solid 1px #a9a9a9;border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px;}.ui-accordion .ui-accordion-header a{display:block;padding:.5em .5em .5em .7em;color:inherit;}
+.ui-accordion .ui-accordion-header .ui-icon{position:absolute;left:.5em;top:50%;margin-top:-7px;width:13px;height:13px;border:1px solid #a9a9a9;background:#ffffff url(images/ui-icons_222222_256x240.png);background-position:-34px -2px;border-radius:7px;-webkit-border-radius:7px;-moz-border-radius:7px;-webkit-box-shadow:inset 0 -6px 5px rgba(0, 0, 0, 0.1);-moz-box-shadow:inset 0 -6px 5px rgba(0, 0, 0, 0.1);box-shadow:inset 0 -6px 5px rgba(0, 0, 0, 0.1);}
+.ui-accordion .ui-accordion-content{border-width:0px;border-radius:0px;-webkit-border-radius:0px;-moz-border-radius:0px;background:none;padding:1em 2.2em;border-top:0;margin-top:0px;position:relative;top:1px;margin-bottom:0px;overflow:auto;display:none;zoom:1;}
+.ui-accordion .ui-accordion-li-fix{display:inline;}
+.ui-accordion .ui-accordion-content-active{display:block;}
+.ui-accordion .ui-accordion-header-active{border-width:0px;}
+.ui-accordion .ui-accordion-header.ui-state-hover .ui-icon{background:#5e9ae2 url(images/ui-icons_ffffff_256x240.png);background-position:-34px -2px;border:1px solid #2e63a5;}
+.ui-accordion .ui-accordion-header.ui-state-active .ui-icon,.ui-accordion .ui-accordion-header.ui-state-hover.ui-state-active .ui-icon{background-position:-66px -1px;}
+.ui-accordion .ui-accordion-header,.ui-accordion .ui-accordion-header.ui-state-active,.ui-accordion .ui-accordion-header.ui-state-hover,.ui-accordion .ui-accordion-header.ui-state-focus{color:#333333;border-color:#a9a9a9;background:#ffffff;filter:expression("progid:DXImageTransform.Microsoft.gradient(startColorstr='#fdfdfd',endColorstr='#ececec')");-ms-filter:"progid:DXImageTransform.Microsoft.gradient(startColorstr='#fdfdfd',endColorstr='#ececec')";background:-moz-linear-gradient(0% 100% 90deg, #ececec, #fdfdfd);background:-webkit-gradient(linear, left top, left bottom, from(#fdfdfd), to(#ececec));background:-o-linear-gradient(0% 100% 90deg, #ececec, #fdfdfd);}
+.ui-accordion-icons .ui-accordion-header a{padding-left:2.6em;}
+.ui-autocomplete{position:absolute;cursor:default;}
+* html .ui-autocomplete{width:1px;}
+.ui-menu{list-style:none;padding:5px;margin:0;display:block;float:left;border-color:#ffffff !important;-webkit-box-shadow:0px 0px 5px #282425;-moz-box-shadow:0px 0px 5px #282425;box-shadow:0px 0px 5px #282425;}.ui-menu .ui-menu{margin-top:-3px;}
+.ui-menu .ui-menu-item{margin:0;padding:0;zoom:1;float:left;clear:left;width:100%;}.ui-menu .ui-menu-item a{text-decoration:none;display:block;padding:.2em .4em;line-height:1.7;zoom:1;}.ui-menu .ui-menu-item a.ui-state-hover,.ui-menu .ui-menu-item a.ui-state-active{font-weight:normal;margin:-1px -6px -1px -6px;border-radius:0px;-webkit-border-radius:0px;-moz-border-radius:0px;padding-left:9px;}
+.ui-autocomplete-input{padding:5px;text-shadow:0px 1px 0px #fff;outline:none;border:1px solid #a9a9a9;border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px;background:#ffffff;filter:expression("progid:DXImageTransform.Microsoft.gradient(startColorstr='#eff0f0',endColorstr='#ffffff')");-ms-filter:"progid:DXImageTransform.Microsoft.gradient(startColorstr='#eff0f0',endColorstr='#ffffff')";background:-moz-linear-gradient(0% 100% 90deg, #ffffff, #eff0f0);background:-webkit-gradient(linear, left top, left bottom, from(#eff0f0), to(#ffffff));background:-o-linear-gradient(0% 100% 90deg, #ffffff, #eff0f0);}.ui-autocomplete-input:hover,.ui-autocomplete-input:focus{background:#ffffff;filter:expression("progid:DXImageTransform.Microsoft.gradient(startColorstr='#dfe0e1',endColorstr='#ffffff')");-ms-filter:"progid:DXImageTransform.Microsoft.gradient(startColorstr='#dfe0e1',endColorstr='#ffffff')";background:-moz-linear-gradient(0% 100% 90deg, #ffffff, #dfe0e1);background:-webkit-gradient(linear, left top, left bottom, from(#dfe0e1), to(#ffffff));background:-o-linear-gradient(0% 100% 90deg, #ffffff, #dfe0e1);}
+.ui-autocomplete.ui-menu.ui-widget.ui-widget-content{color:#333333;border-color:#a9a9a9;background:#ffffff;filter:expression("progid:DXImageTransform.Microsoft.gradient(startColorstr='#fdfdfd',endColorstr='#ececec')");-ms-filter:"progid:DXImageTransform.Microsoft.gradient(startColorstr='#fdfdfd',endColorstr='#ececec')";background:-moz-linear-gradient(0% 100% 90deg, #ececec, #fdfdfd);background:-webkit-gradient(linear, left top, left bottom, from(#fdfdfd), to(#ececec));background:-o-linear-gradient(0% 100% 90deg, #ececec, #fdfdfd);}
+.ui-button{display:inline-block;position:relative;padding:0;margin-right:.1em;text-decoration:none !important;cursor:pointer;text-align:center;zoom:1;line-height:1.2em;overflow:visible;}
+.ui-button-icon-only{width:2.2em;}
+button.ui-button-icon-only{width:2.4em;}
+.ui-button-icons-only{width:3.4em;}
+button.ui-button-icons-only{width:3.7em;}
+.ui-button .ui-button-text{display:block;}
+.ui-button-text-only .ui-button-text{padding:.4em 1em;}
+.ui-button-icon-only .ui-button-text,.ui-button-icons-only .ui-button-text{padding:.4em;text-indent:-9999999px;}
+.ui-button-text-icon-primary .ui-button-text,.ui-button-text-icons .ui-button-text{padding:.4em 1em .4em 2.1em;}
+.ui-button-text-icon-secondary .ui-button-text,.ui-button-text-icons .ui-button-text{padding:.4em 2.1em .4em 1em;}
+.ui-button-text-icons .ui-button-text{padding-left:2.1em;padding-right:2.1em;}
+input.ui-button{padding:.4em 1em;}
+.ui-button-icon-only .ui-icon,.ui-button-text-icon-primary .ui-icon,.ui-button-text-icon-secondary .ui-icon,.ui-button-text-icons .ui-icon,.ui-button-icons-only .ui-icon{position:absolute;top:50%;margin-top:-8px;}
+.ui-button-icon-only .ui-icon{left:50%;margin-left:-8px;}
+.ui-button-text-icon-primary .ui-button-icon-primary,.ui-button-text-icons .ui-button-icon-primary,.ui-button-icons-only .ui-button-icon-primary{left:.5em;}
+.ui-button-text-icon-secondary .ui-button-icon-secondary,.ui-button-text-icons .ui-button-icon-secondary,.ui-button-icons-only .ui-button-icon-secondary{right:.5em;}
+.ui-button-text-icons .ui-button-icon-secondary,.ui-button-icons-only .ui-button-icon-secondary{right:.5em;}
+.ui-buttonset{margin-right:7px;}.ui-buttonset .ui-button{margin-left:0;margin-right:-0.3em;}
+button.ui-button::-moz-focus-inner{border:0;padding:0;}
+.ui-dialog{position:absolute;padding:0.0em;width:300px;overflow:hidden;border-color:#ffffff;-webkit-box-shadow:0px 0px 5px #282425;-moz-box-shadow:0px 0px 5px #282425;box-shadow:0px 0px 5px #282425;}.ui-dialog .ui-dialog-title{float:left;margin:.1em 16px .2em 0;}
+.ui-dialog .ui-dialog-titlebar-close{position:absolute;right:.6em;top:50%;width:19px;margin:-10px 0 0 0;padding:0px;height:18px;border-width:1px;border-style:solid;}.ui-dialog .ui-dialog-titlebar-close span{display:block;margin:1px;}
+.ui-dialog .ui-dialog-titlebar-close:hover,.ui-dialog .ui-dialog-titlebar-close:focus{padding:0;}
+.ui-dialog .ui-dialog-content{position:relative;border-width:0px;padding:1em;overflow:auto;zoom:1;}.ui-dialog .ui-dialog-content .ui-tabs{margin:-1em;border:0px;}
+.ui-dialog .ui-dialog-content hr{margin:1em -1em 1em -1em;border:0px;border-top:1px solid #c1c1c1 !important;}
+.ui-dialog .ui-dialog-buttonpane{text-align:left;border-width:1px 0 0 0;margin:.5em 0 0 0;padding:.3em .3em .5em .4em;background:#f7f7f8;}.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset{float:right;}
+.ui-dialog .ui-dialog-buttonpane button{margin:.5em .4em .5em 0;cursor:pointer;font-weight:normal;min-width:7em;}
+.ui-dialog .ui-dialog-titlebar{padding:.5em 1em .3em;position:relative;-moz-border-radius-bottomleft:0px;-webkit-border-bottom-left-radius:0px;border-bottom-left-radius:0px;-moz-border-radius-bottomright:0px;-webkit-border-bottom-right-radius:0px;border-bottom-right-radius:0px;border:0px;font-size:1.5em;font-weight:normal;background:#747073;filter:expression("progid:DXImageTransform.Microsoft.gradient(startColorstr='#4c4c4e',endColorstr='#282425')");-ms-filter:"progid:DXImageTransform.Microsoft.gradient(startColorstr='#4c4c4e',endColorstr='#282425')";background:-moz-linear-gradient(0% 100% 90deg, #282425, #4c4c4e);background:-webkit-gradient(linear, left top, left bottom, from(#4c4c4e), to(#282425));background:-o-linear-gradient(0% 100% 90deg, #282425, #4c4c4e);color:#ffffff;}.ui-dialog .ui-dialog-titlebar .ui-dialog-titlebar-close{border-color:#000000;background:#a8a9ac;filter:expression("progid:DXImageTransform.Microsoft.gradient(startColorstr='#6a6b6e',endColorstr='#3e3e3e')");-ms-filter:"progid:DXImageTransform.Microsoft.gradient(startColorstr='#6a6b6e',endColorstr='#3e3e3e')";background:-moz-linear-gradient(0% 100% 90deg, #3e3e3e, #6a6b6e);background:-webkit-gradient(linear, left top, left bottom, from(#6a6b6e), to(#3e3e3e));background:-o-linear-gradient(0% 100% 90deg, #3e3e3e, #6a6b6e);color:#ffffff;}.ui-dialog .ui-dialog-titlebar .ui-dialog-titlebar-close .ui-icon{background-image:url(images/ui-icons_ffffff_256x240.png);}
+.ui-dialog .ui-dialog-titlebar .ui-dialog-titlebar-close.ui-state-active{color:#ffffff;border-color:#2e63a5;background:#93ffff;filter:expression("progid:DXImageTransform.Microsoft.gradient(startColorstr='#3570b8',endColorstr='#5e9ae2')");-ms-filter:"progid:DXImageTransform.Microsoft.gradient(startColorstr='#3570b8',endColorstr='#5e9ae2')";background:-moz-linear-gradient(0% 100% 90deg, #5e9ae2, #3570b8);background:-webkit-gradient(linear, left top, left bottom, from(#3570b8), to(#5e9ae2));background:-o-linear-gradient(0% 100% 90deg, #5e9ae2, #3570b8);}
+.ui-dialog .ui-dialog-titlebar .ui-dialog-titlebar-close.ui-state-hover,.ui-dialog .ui-dialog-titlebar .ui-dialog-titlebar-close.ui-state-focus{color:#ffffff;border-color:#2e63a5;background:#93ffff;filter:expression("progid:DXImageTransform.Microsoft.gradient(startColorstr='#5e9ae2',endColorstr='#3570b8')");-ms-filter:"progid:DXImageTransform.Microsoft.gradient(startColorstr='#5e9ae2',endColorstr='#3570b8')";background:-moz-linear-gradient(0% 100% 90deg, #3570b8, #5e9ae2);background:-webkit-gradient(linear, left top, left bottom, from(#5e9ae2), to(#3570b8));background:-o-linear-gradient(0% 100% 90deg, #3570b8, #5e9ae2);}
+.ui-dialog .ui-resizable-se{width:14px;height:14px;right:1px;bottom:1px;display:none;}
+.ui-dialog .ui-icon-grip-diagonal-se{background-position:-64px -224px;display:none;}
+.ui-draggable .ui-dialog-titlebar{cursor:move;}
+.ui-slider{position:relative;text-align:left;}.ui-slider .ui-slider-handle{position:absolute;z-index:2;width:1.2em;height:1.2em;cursor:default;color:#333333;border-color:#a9a9a9;background:#ffffff;filter:expression("progid:DXImageTransform.Microsoft.gradient(startColorstr='#fdfdfd',endColorstr='#ececec')");-ms-filter:"progid:DXImageTransform.Microsoft.gradient(startColorstr='#fdfdfd',endColorstr='#ececec')";background:-moz-linear-gradient(0% 100% 90deg, #ececec, #fdfdfd);background:-webkit-gradient(linear, left top, left bottom, from(#fdfdfd), to(#ececec));background:-o-linear-gradient(0% 100% 90deg, #ececec, #fdfdfd);}.ui-slider .ui-slider-handle:hover{border-color:#b8b8b8;background:#ffffff;filter:expression("progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff',endColorstr='#cacbcc')");-ms-filter:"progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff',endColorstr='#cacbcc')";background:-moz-linear-gradient(0% 100% 90deg, #cacbcc, #ffffff);background:-webkit-gradient(linear, left top, left bottom, from(#ffffff), to(#cacbcc));background:-o-linear-gradient(0% 100% 90deg, #cacbcc, #ffffff);}
+.ui-slider .ui-slider-handle:active,.ui-slider .ui-slider-handle:focus{border-color:#b8b8b8;background:#ffffff;filter:expression("progid:DXImageTransform.Microsoft.gradient(startColorstr='#cacbcc',endColorstr='#ffffff')");-ms-filter:"progid:DXImageTransform.Microsoft.gradient(startColorstr='#cacbcc',endColorstr='#ffffff')";background:-moz-linear-gradient(0% 100% 90deg, #ffffff, #cacbcc);background:-webkit-gradient(linear, left top, left bottom, from(#cacbcc), to(#ffffff));background:-o-linear-gradient(0% 100% 90deg, #ffffff, #cacbcc);}
+.ui-slider .ui-slider-range{position:absolute;z-index:1;font-size:.7em;display:block;border:0;background-position:0 0;}
+.ui-slider-horizontal{height:.6em;}.ui-slider-horizontal .ui-slider-handle{top:-0.4em;margin-left:-0.6em;}
+.ui-slider-horizontal .ui-slider-range{top:0;height:100%;}
+.ui-slider-horizontal .ui-widget-header{color:#ffffff;background:#93ffff;filter:expression("progid:DXImageTransform.Microsoft.gradient(startColorstr='#5e9ae2',endColorstr='#3570b8')");-ms-filter:"progid:DXImageTransform.Microsoft.gradient(startColorstr='#5e9ae2',endColorstr='#3570b8')";background:-moz-linear-gradient(0% 100% 90deg, #3570b8, #5e9ae2);background:-webkit-gradient(linear, left top, left bottom, from(#5e9ae2), to(#3570b8));background:-o-linear-gradient(0% 100% 90deg, #3570b8, #5e9ae2);}
+.ui-slider-horizontal .ui-slider-range-min{left:0;}
+.ui-slider-horizontal .ui-slider-range-max{right:0;}
+.ui-slider-horizontal .ui-widget-header{font-weight:bold;}
+.ui-slider-horizontal .ui-slider-handle{border-radius:0.7em;-webkit-border-radius:0.7em;-moz-border-radius:0.7em;}
+.ui-slider-vertical{width:.6em;height:100px;}.ui-slider-vertical .ui-slider-handle{left:-0.4em;margin-left:0;margin-bottom:-0.6em;}
+.ui-slider-vertical .ui-slider-range{left:0;width:100%;}
+.ui-slider-vertical .ui-widget-header{color:#ffffff;background:#93ffff;filter:expression("progid:DXImageTransform.Microsoft.gradient(startColorstr='#5e9ae2',endColorstr='#3570b8',GradientType=1)");-ms-filter:"progid:DXImageTransform.Microsoft.gradient(startColorstr='#5e9ae2',endColorstr='#3570b8',GradientType=1)";background:-moz-linear-gradient(0% 100% 180deg, #3570b8, #5e9ae2);background:-webkit-gradient(linear, left top, right top, from(#5e9ae2), to(#3570b8));background:-o-linear-gradient(0% 100% 180deg, #3570b8, #5e9ae2);}
+.ui-slider-vertical .ui-slider-range-min{bottom:0;}
+.ui-slider-vertical .ui-slider-range-max{top:0;}
+.ui-slider-vertical .ui-widget-header{font-weight:bold;}
+.ui-slider-vertical .ui-slider-handle{border-radius:0.7em;-webkit-border-radius:0.7em;-moz-border-radius:0.7em;}
+.ui-tabs{position:relative;padding:0;zoom:1;border-radius:0px;-webkit-border-radius:0px;-moz-border-radius:0px;}.ui-tabs .ui-tabs-nav{margin:0;padding:-1px;border-radius:0px;-webkit-border-radius:0px;-moz-border-radius:0px;border-bottom:1px solid #a9a9a9;}.ui-tabs .ui-tabs-nav li{list-style:none;float:left;position:relative;top:0px;margin:0px;padding:0;white-space:nowrap;border-width:0px;border-right:1px solid #a9a9a9;border-radius:0px;-webkit-border-radius:0px;-moz-border-radius:0px;}.ui-tabs .ui-tabs-nav li a{float:left;padding:.3em 1em;text-decoration:none;color:inherit;}
+.ui-tabs .ui-tabs-nav li.ui-state-hover{color:inherit;background:#ffffff;filter:expression("progid:DXImageTransform.Microsoft.gradient(startColorstr='#dadada',endColorstr='#b0b0b0')");-ms-filter:"progid:DXImageTransform.Microsoft.gradient(startColorstr='#dadada',endColorstr='#b0b0b0')";background:-moz-linear-gradient(0% 100% 90deg, #b0b0b0, #dadada);background:-webkit-gradient(linear, left top, left bottom, from(#dadada), to(#b0b0b0));background:-o-linear-gradient(0% 100% 90deg, #b0b0b0, #dadada);}
+.ui-tabs .ui-tabs-nav li.ui-state-active,.ui-tabs .ui-tabs-nav li.ui-tabs-selected{color:inherit;background:#ffffff;filter:expression("progid:DXImageTransform.Microsoft.gradient(startColorstr='#bcbcbc',endColorstr='#e4e4e4')");-ms-filter:"progid:DXImageTransform.Microsoft.gradient(startColorstr='#bcbcbc',endColorstr='#e4e4e4')";background:-moz-linear-gradient(0% 100% 90deg, #e4e4e4, #bcbcbc);background:-webkit-gradient(linear, left top, left bottom, from(#bcbcbc), to(#e4e4e4));background:-o-linear-gradient(0% 100% 90deg, #e4e4e4, #bcbcbc);}
+.ui-tabs .ui-tabs-nav li.ui-tabs-selected a,.ui-tabs .ui-tabs-nav li.ui-state-disabled a,.ui-tabs .ui-tabs-nav li.ui-state-processing a{cursor:text;}
+.ui-tabs .ui-tabs-panel{display:block;border-width:0px;padding:1em 1.4em;border-radius:0px;-webkit-border-radius:0px;-moz-border-radius:0px;}
+.ui-tabs .ui-tabs-hide{display:none;}
+.ui-tabs .ui-widget-header{color:#333333;border-color:#a9a9a9;background:#ffffff;filter:expression("progid:DXImageTransform.Microsoft.gradient(startColorstr='#fdfdfd',endColorstr='#ececec')");-ms-filter:"progid:DXImageTransform.Microsoft.gradient(startColorstr='#fdfdfd',endColorstr='#ececec')";background:-moz-linear-gradient(0% 100% 90deg, #ececec, #fdfdfd);background:-webkit-gradient(linear, left top, left bottom, from(#fdfdfd), to(#ececec));background:-o-linear-gradient(0% 100% 90deg, #ececec, #fdfdfd);}
+.ui-tabs .ui-tabs-nav li a,.ui-tabs.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-selected a{cursor:pointer;}
+.ui-datepicker{width:17em;padding:0;border-color:#ffffff;-webkit-box-shadow:0px 0px 5px #282425;-moz-box-shadow:0px 0px 5px #282425;box-shadow:0px 0px 5px #282425;}.ui-datepicker .ui-datepicker-header{position:relative;padding:.5em 0.2em;border:none;-moz-border-radius-bottomleft:0px;-webkit-border-bottom-left-radius:0px;border-bottom-left-radius:0px;-moz-border-radius-bottomright:0px;-webkit-border-bottom-right-radius:0px;border-bottom-right-radius:0px;background:#747073;filter:expression("progid:DXImageTransform.Microsoft.gradient(startColorstr='#4c4c4e',endColorstr='#282425')");-ms-filter:"progid:DXImageTransform.Microsoft.gradient(startColorstr='#4c4c4e',endColorstr='#282425')";background:-moz-linear-gradient(0% 100% 90deg, #282425, #4c4c4e);background:-webkit-gradient(linear, left top, left bottom, from(#4c4c4e), to(#282425));background:-o-linear-gradient(0% 100% 90deg, #282425, #4c4c4e);color:#ffffff;}.ui-datepicker .ui-datepicker-header .ui-icon{background-image:url(images/ui-icons_ffffff_256x240.png);}
+.ui-datepicker .ui-datepicker-prev,.ui-datepicker .ui-datepicker-next{position:absolute;top:4px;width:1.8em;height:1.8em;border-width:1px;border-style:solid;cursor:pointer;border-color:#000000;background:#a8a9ac;filter:expression("progid:DXImageTransform.Microsoft.gradient(startColorstr='#6a6b6e',endColorstr='#3e3e3e')");-ms-filter:"progid:DXImageTransform.Microsoft.gradient(startColorstr='#6a6b6e',endColorstr='#3e3e3e')";background:-moz-linear-gradient(0% 100% 90deg, #3e3e3e, #6a6b6e);background:-webkit-gradient(linear, left top, left bottom, from(#6a6b6e), to(#3e3e3e));background:-o-linear-gradient(0% 100% 90deg, #3e3e3e, #6a6b6e);color:#ffffff;}.ui-datepicker .ui-datepicker-prev:hover,.ui-datepicker .ui-datepicker-next:hover{color:#ffffff;border-color:#2e63a5;background:#93ffff;filter:expression("progid:DXImageTransform.Microsoft.gradient(startColorstr='#5e9ae2',endColorstr='#3570b8')");-ms-filter:"progid:DXImageTransform.Microsoft.gradient(startColorstr='#5e9ae2',endColorstr='#3570b8')";background:-moz-linear-gradient(0% 100% 90deg, #3570b8, #5e9ae2);background:-webkit-gradient(linear, left top, left bottom, from(#5e9ae2), to(#3570b8));background:-o-linear-gradient(0% 100% 90deg, #3570b8, #5e9ae2);}
+.ui-datepicker .ui-datepicker-prev:active,.ui-datepicker .ui-datepicker-next:active{color:#ffffff;border-color:#2e63a5;background:#93ffff;filter:expression("progid:DXImageTransform.Microsoft.gradient(startColorstr='#3570b8',endColorstr='#5e9ae2')");-ms-filter:"progid:DXImageTransform.Microsoft.gradient(startColorstr='#3570b8',endColorstr='#5e9ae2')";background:-moz-linear-gradient(0% 100% 90deg, #5e9ae2, #3570b8);background:-webkit-gradient(linear, left top, left bottom, from(#3570b8), to(#5e9ae2));background:-o-linear-gradient(0% 100% 90deg, #5e9ae2, #3570b8);}
+.ui-datepicker .ui-datepicker-prev .ui-icon{background-position:-96px 0;}
+.ui-datepicker .ui-datepicker-next .ui-icon{background-position:-32px 0;}
+.ui-datepicker table .ui-state-default,.ui-datepicker table .ui-widget-content .ui-state-default,.ui-datepicker table .ui-widget-header .ui-state-default{border:1px #eeeeee solid;background:none;}
+.ui-datepicker table .ui-state-highlight,.ui-datepicker table .ui-widget-content .ui-state-highlight,.ui-datepicker table .ui-widget-header .ui-state-highlight{border-width:1px;border-style:solid;border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px;color:#333333;border-color:#a9a9a9;background:#ffffff;filter:expression("progid:DXImageTransform.Microsoft.gradient(startColorstr='#fdfdfd',endColorstr='#ececec')");-ms-filter:"progid:DXImageTransform.Microsoft.gradient(startColorstr='#fdfdfd',endColorstr='#ececec')";background:-moz-linear-gradient(0% 100% 90deg, #ececec, #fdfdfd);background:-webkit-gradient(linear, left top, left bottom, from(#fdfdfd), to(#ececec));background:-o-linear-gradient(0% 100% 90deg, #ececec, #fdfdfd);}
+.ui-datepicker table .ui-state-focus,.ui-datepicker table .ui-widget-content .ui-state-focus,.ui-datepicker table .ui-widget-header .ui-state-focus{border-width:1px;border-style:solid;border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px;color:#333333;border-color:#a9a9a9;background:#ffffff;filter:expression("progid:DXImageTransform.Microsoft.gradient(startColorstr='#fdfdfd',endColorstr='#ececec')");-ms-filter:"progid:DXImageTransform.Microsoft.gradient(startColorstr='#fdfdfd',endColorstr='#ececec')";background:-moz-linear-gradient(0% 100% 90deg, #ececec, #fdfdfd);background:-webkit-gradient(linear, left top, left bottom, from(#fdfdfd), to(#ececec));background:-o-linear-gradient(0% 100% 90deg, #ececec, #fdfdfd);}
+.ui-datepicker table .ui-state-hover,.ui-datepicker table .ui-widget-content .ui-state-hover,.ui-datepicker table .ui-widget-header .ui-state-hover{border-width:1px;border-style:solid;border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px;color:#ffffff;border-color:#2e63a5;background:#93ffff;filter:expression("progid:DXImageTransform.Microsoft.gradient(startColorstr='#5e9ae2',endColorstr='#3570b8')");-ms-filter:"progid:DXImageTransform.Microsoft.gradient(startColorstr='#5e9ae2',endColorstr='#3570b8')";background:-moz-linear-gradient(0% 100% 90deg, #3570b8, #5e9ae2);background:-webkit-gradient(linear, left top, left bottom, from(#5e9ae2), to(#3570b8));background:-o-linear-gradient(0% 100% 90deg, #3570b8, #5e9ae2);}
+.ui-datepicker table .ui-state-active,.ui-datepicker table .ui-widget-content .ui-state-active,.ui-datepicker table .ui-widget-header .ui-state-active{border-width:1px;border-style:solid;border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px;color:#ffffff;border-color:#2e63a5;background:#93ffff;filter:expression("progid:DXImageTransform.Microsoft.gradient(startColorstr='#3570b8',endColorstr='#5e9ae2')");-ms-filter:"progid:DXImageTransform.Microsoft.gradient(startColorstr='#3570b8',endColorstr='#5e9ae2')";background:-moz-linear-gradient(0% 100% 90deg, #5e9ae2, #3570b8);background:-webkit-gradient(linear, left top, left bottom, from(#3570b8), to(#5e9ae2));background:-o-linear-gradient(0% 100% 90deg, #5e9ae2, #3570b8);}
+.ui-datepicker .ui-datepicker-prev,.ui-datepicker .ui-datepicker-prev:hover{left:4px;}
+.ui-datepicker .ui-datepicker-next,.ui-datepicker .ui-datepicker-next:hover{right:4px;}
+.ui-datepicker .ui-datepicker-prev span,.ui-datepicker .ui-datepicker-next span{display:block;position:absolute;left:50%;margin-left:-8px;top:50%;margin-top:-8px;}
+.ui-datepicker .ui-datepicker-title{margin:0 2.3em;line-height:1.8em;text-align:center;font-weight:normal;}
+.ui-datepicker .ui-datepicker-title select{font-size:1em;margin:1px 0;}
+.ui-datepicker select.ui-datepicker-month-year{width:100%;}
+.ui-datepicker select.ui-datepicker-month,.ui-datepicker select.ui-datepicker-year{width:49%;}
+.ui-datepicker table{width:100%;font-size:.9em;border-collapse:collapse;margin:0 0 .4em;}
+.ui-datepicker th{padding:.7em .3em;text-align:center;font-weight:bold;border:0;}
+.ui-datepicker td{border:0;padding:0px;}
+.ui-datepicker td span,.ui-datepicker td a{display:block;padding:.6em;text-align:center;text-decoration:none;}
+.ui-datepicker .ui-datepicker-buttonpane{margin:.7em 0 0 0;padding:0 .2em;border-left:0;border-right:0;border-bottom:0;}
+.ui-datepicker .ui-datepicker-buttonpane button{float:right;margin:.5em .2em .4em;cursor:pointer;padding:.2em .6em .3em .6em;width:auto;overflow:visible;}
+.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current{float:left;}
+.ui-datepicker.ui-datepicker-multi{width:auto;}
+.ui-datepicker-multi .ui-datepicker-group{float:left;}
+.ui-datepicker-multi .ui-datepicker-group table{width:100%;margin:0 auto .4em;}
+.ui-datepicker-multi-2 .ui-datepicker-group{width:50%;}
+.ui-datepicker-multi-3 .ui-datepicker-group{width:33.4%;}
+.ui-datepicker-multi-4 .ui-datepicker-group{width:25%;}
+.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header{border-left-width:0;}
+.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header{border-left-width:0;}
+.ui-datepicker-multi .ui-datepicker-buttonpane{clear:left;}
+.ui-datepicker-row-break{clear:both;width:100%;}
+.ui-datepicker-rtl{direction:rtl;}
+.ui-datepicker-rtl .ui-datepicker-prev{right:4px;left:auto;}
+.ui-datepicker-rtl .ui-datepicker-next{left:4px;right:auto;}
+.ui-datepicker-rtl .ui-datepicker-prev:hover{right:4px;left:auto;}
+.ui-datepicker-rtl .ui-datepicker-next:hover{left:4px;right:auto;}
+.ui-datepicker-rtl .ui-datepicker-buttonpane{clear:right;}
+.ui-datepicker-rtl .ui-datepicker-buttonpane button{float:left;}
+.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current{float:right;}
+.ui-datepicker-rtl .ui-datepicker-group{float:right;}
+.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header{border-right-width:0;border-left-width:1px;}
+.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header{border-right-width:0;border-left-width:1px;}
+.ui-datepicker-cover{position:absolute;z-index:-1;filter:mask();top:-4px;left:-4px;width:200px;height:200px;}
+.ui-progressbar{height:2em;margin:5px 0px;background:#ffffff;filter:expression("progid:DXImageTransform.Microsoft.gradient(startColorstr='#dfe0e1',endColorstr='#ffffff')");-ms-filter:"progid:DXImageTransform.Microsoft.gradient(startColorstr='#dfe0e1',endColorstr='#ffffff')";background:-moz-linear-gradient(0% 100% 90deg, #ffffff, #dfe0e1);background:-webkit-gradient(linear, left top, left bottom, from(#dfe0e1), to(#ffffff));background:-o-linear-gradient(0% 100% 90deg, #ffffff, #dfe0e1);}.ui-progressbar .ui-progressbar-value{margin:-1px;height:100%;}
+.ui-progressbar .ui-widget-header{border-width:1px;border-style:solid;font-weight:bold;text-align:center;}
+.ui-progressbar .ui-widget-header{color:#ffffff;border-color:#2e63a5;background:#93ffff;filter:expression("progid:DXImageTransform.Microsoft.gradient(startColorstr='#5e9ae2',endColorstr='#3570b8')");-ms-filter:"progid:DXImageTransform.Microsoft.gradient(startColorstr='#5e9ae2',endColorstr='#3570b8')";background:-moz-linear-gradient(0% 100% 90deg, #3570b8, #5e9ae2);background:-webkit-gradient(linear, left top, left bottom, from(#5e9ae2), to(#3570b8));background:-o-linear-gradient(0% 100% 90deg, #3570b8, #5e9ae2);}
+input.text,input.email,input.password,textarea.uniform{border-color:#a9a9a9;background:#ffffff;filter:expression("progid:DXImageTransform.Microsoft.gradient(startColorstr='#eff0f0',endColorstr='#ffffff')");-ms-filter:"progid:DXImageTransform.Microsoft.gradient(startColorstr='#eff0f0',endColorstr='#ffffff')";background:-moz-linear-gradient(0% 100% 90deg, #ffffff, #eff0f0);background:-webkit-gradient(linear, left top, left bottom, from(#eff0f0), to(#ffffff));background:-o-linear-gradient(0% 100% 90deg, #ffffff, #eff0f0);}
+input.text:focus,input.email:focus,input.password:focus,textarea.uniform:focus{background:#ffffff;filter:expression("progid:DXImageTransform.Microsoft.gradient(startColorstr='#dfe0e1',endColorstr='#ffffff')");-ms-filter:"progid:DXImageTransform.Microsoft.gradient(startColorstr='#dfe0e1',endColorstr='#ffffff')";background:-moz-linear-gradient(0% 100% 90deg, #ffffff, #dfe0e1);background:-webkit-gradient(linear, left top, left bottom, from(#dfe0e1), to(#ffffff));background:-o-linear-gradient(0% 100% 90deg, #ffffff, #dfe0e1);}
+div.selector span,div.uploader span.action,div.button{color:#333333;border-color:#a9a9a9;background:#ffffff;filter:expression("progid:DXImageTransform.Microsoft.gradient(startColorstr='#fdfdfd',endColorstr='#ececec')");-ms-filter:"progid:DXImageTransform.Microsoft.gradient(startColorstr='#fdfdfd',endColorstr='#ececec')";background:-moz-linear-gradient(0% 100% 90deg, #ececec, #fdfdfd);background:-webkit-gradient(linear, left top, left bottom, from(#fdfdfd), to(#ececec));background:-o-linear-gradient(0% 100% 90deg, #ececec, #fdfdfd);}
+div.uploader.focus span.action,div.uploader.hover span.action,div.uploader:hover span.action,div.button.focus,div.button:focus,div.button:hover,div.button.hover,div.selector.focus span,div.selector.hover span,div.selector:hover span{color:#ffffff;border-color:#2e63a5;background:#93ffff;filter:expression("progid:DXImageTransform.Microsoft.gradient(startColorstr='#5e9ae2',endColorstr='#3570b8')");-ms-filter:"progid:DXImageTransform.Microsoft.gradient(startColorstr='#5e9ae2',endColorstr='#3570b8')";background:-moz-linear-gradient(0% 100% 90deg, #3570b8, #5e9ae2);background:-webkit-gradient(linear, left top, left bottom, from(#5e9ae2), to(#3570b8));background:-o-linear-gradient(0% 100% 90deg, #3570b8, #5e9ae2);}
+div.uploader.active span.action,div.uploader:active span.action,div.button.active,div.button:active,div.selector.focus:active span,div.selector:hover:active span,div.selector.active:hover span,div.selector.focus.active span{color:#ffffff;border-color:#2e63a5;background:#93ffff;filter:expression("progid:DXImageTransform.Microsoft.gradient(startColorstr='#3570b8',endColorstr='#5e9ae2')");-ms-filter:"progid:DXImageTransform.Microsoft.gradient(startColorstr='#3570b8',endColorstr='#5e9ae2')";background:-moz-linear-gradient(0% 100% 90deg, #5e9ae2, #3570b8);background:-webkit-gradient(linear, left top, left bottom, from(#3570b8), to(#5e9ae2));background:-o-linear-gradient(0% 100% 90deg, #5e9ae2, #3570b8);}
+.selector,.selector *,.radio,.radio *,.checker,.checker *,.uploader,.uploader *,.button,.button *{margin:0;padding:0;}
+.selector,.checker,.button,.radio,.uploader{display:-moz-inline-box;display:inline-block;vertical-align:middle;zoom:1;*display:inline;}
+.selector select:focus,.radio input:focus,.checker input:focus,.uploader input:focus{outline:0;}
+input.text,input.email,input.password,textarea.uniform{padding:3px;border-style:solid;border-width:1px;border-radius:3px;-webkit-border-radius:3px;-moz-border-radius:3px;outline:0;}
+input.text:focus,input.email:focus,input.password:focus,textarea.uniform:focus{-webkit-box-shadow:0px 0px 4px rgba(0, 0, 0, 0.3);-moz-box-shadow:0px 0px 4px rgba(0, 0, 0, 0.3);box-shadow:0px 0px 4px rgba(0, 0, 0, 0.3);}
+div.selector{border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px;border:1px solid #c1c1c1;position:relative;overflow:hidden;background:#ffffff url('images/selector.png') right center no-repeat;-webkit-box-shadow:inset 0 -10px 9px rgba(0, 0, 0, 0.05);-moz-box-shadow:inset 0 -10px 9px rgba(0, 0, 0, 0.05);box-shadow:inset 0 -10px 9px rgba(0, 0, 0, 0.05);margin:2px -2px;}
+div.selector span{-moz-border-radius-topleft:4px;-webkit-border-top-left-radius:4px;border-top-left-radius:4px;-moz-border-radius-bottomleft:4px;-webkit-border-bottom-left-radius:4px;border-bottom-left-radius:4px;border-right:1px solid #c1c1c1;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:5px;margin-right:20px;}
+div.selector select{top:0px;left:0px;position:absolute;height:100%;border:1px solid;background:none;width:100%;opacity:0;filter:alpha(opacity:0);}
+div.selector.focus,div.selector.hover,div.selector:hover,div.selector.focus:active,div.selector.focus.active,div.selector:hover:active,div.selector.active:hover,div.selector:active,div.selector.active{border:1px solid #2e63a5;}
+div.checker{margin-top:-0.3em;margin-right:0.3em;width:1em;height:1em;padding:0.2em;border:1px solid #a9a9a9;position:relative;border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px;background:#ffffff;filter:expression("progid:DXImageTransform.Microsoft.gradient(startColorstr='#eff0f0',endColorstr='#ffffff')");-ms-filter:"progid:DXImageTransform.Microsoft.gradient(startColorstr='#eff0f0',endColorstr='#ffffff')";background:-moz-linear-gradient(0% 100% 90deg, #ffffff, #eff0f0);background:-webkit-gradient(linear, left top, left bottom, from(#eff0f0), to(#ffffff));background:-o-linear-gradient(0% 100% 90deg, #ffffff, #eff0f0);}
+div.checker input{width:1em;height:1em;opacity:0;filter:alpha(opacity:0);display:inline-block;background:none;}
+div.checker span{width:1em;height:1em;display:-moz-inline-box;display:inline-block;text-align:center;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;}
+div.checker.focus span,div.checker:hover span{background-image:url(images/ui-icons_222222_256x240.png);background-position:-66px -147px;}
+div.checker span.checked{background:#5e9ae2;-webkit-box-shadow:inset 0 -6px 5px rgba(0, 0, 0, 0.2);-moz-box-shadow:inset 0 -6px 5px rgba(0, 0, 0, 0.2);box-shadow:inset 0 -6px 5px rgba(0, 0, 0, 0.2);background-image:url(images/ui-icons_ffffff_256x240.png);background-position:-66px -147px;}
+div.radio{margin-top:-0.3em;margin-right:0.3em;width:1em;height:1em;padding:0.2em;border-color:#a9a9a9;background:#ffffff;filter:expression("progid:DXImageTransform.Microsoft.gradient(startColorstr='#eff0f0',endColorstr='#ffffff')");-ms-filter:"progid:DXImageTransform.Microsoft.gradient(startColorstr='#eff0f0',endColorstr='#ffffff')";background:-moz-linear-gradient(0% 100% 90deg, #ffffff, #eff0f0);background:-webkit-gradient(linear, left top, left bottom, from(#eff0f0), to(#ffffff));background:-o-linear-gradient(0% 100% 90deg, #ffffff, #eff0f0);border:1px solid #a9a9a9;border-radius:7px;-webkit-border-radius:7px;-moz-border-radius:7px;position:relative;}
+div.radio input{width:1em;height:1em;opacity:0;filter:alpha(opacity:0);text-align:center;display:inline-block;background:none;}
+div.radio span{width:1em;height:1em;border-radius:7px;-webkit-border-radius:7px;-moz-border-radius:7px;display:-moz-inline-box;display:inline-block;text-align:center;}
+div.radio span.checked{background:#5e9ae2;-webkit-box-shadow:inset 0 -6px 5px rgba(0, 0, 0, 0.2);-moz-box-shadow:inset 0 -6px 5px rgba(0, 0, 0, 0.2);box-shadow:inset 0 -6px 5px rgba(0, 0, 0, 0.2);}
+div.uploader{border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px;border:1px solid #c1c1c1;cursor:pointer;position:relative;overflow:hidden;cursor:default;background:#ffffff;filter:expression("progid:DXImageTransform.Microsoft.gradient(startColorstr='#eff0f0',endColorstr='#ffffff')");-ms-filter:"progid:DXImageTransform.Microsoft.gradient(startColorstr='#eff0f0',endColorstr='#ffffff')";background:-moz-linear-gradient(0% 100% 90deg, #ffffff, #eff0f0);background:-webkit-gradient(linear, left top, left bottom, from(#eff0f0), to(#ffffff));background:-o-linear-gradient(0% 100% 90deg, #ffffff, #eff0f0);}
+div.uploader span.action{line-height:100%;padding:5px;-moz-border-radius-topright:4px;-webkit-border-top-right-radius:4px;border-top-right-radius:4px;-moz-border-radius-bottomright:4px;-webkit-border-bottom-right-radius:4px;border-bottom-right-radius:4px;text-align:center;float:right;display:inline;overflow:hidden;cursor:pointer;font:inherit;border-left:solid 1px #bbb;}
+div.uploader span.filename{line-height:100%;padding:5px !important;font:inherit;color:#777;padding:0px 10px;float:left;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;cursor:default;}
+div.uploader.focus,div.uploader.hover,div.uploader:hover{border-width:1px;border-style:solid;border-color:#2e63a5;}
+div.uploader.disabled span.action{color:#aaa;}
+div.uploader.disabled span.filename{border-color:#ddd;color:#aaa;}
+div.uploader input{opacity:0;filter:alpha(opacity:0);position:absolute;top:0;right:0;bottom:0;float:right;height:100%;border:none;cursor:default;width:100%;}
+div.button,div.button span{border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px;}
+div.button{border-style:solid;border-width:1px;}
+div.button.disabled span,div.button:disabled span{color:#bbb;cursor:default;}
+div.button span{font-weight:bold;font-family:inherit;padding:5px;display:-moz-inline-box;display:inline-block;line-height:1;text-align:center;}
+div.button a,div.button button,div.button input{position:absolute;}
+div.button{cursor:pointer;position:relative;}
+.ui-helper-horizontal>DIV,.ui-helper-horizontal>LI,.ui-helper-horizontal>SPAN,.ui-helper-horizontal>LABEL,.ui-helper-horizontal>H1,.ui-helper-horizontal>H2,.ui-helper-horizontal>H3,.ui-helper-horizontal>H4{float:left;clear:none;display:block;}
+.wijmo-wijsplitter-vertical{overflow:hidden;position:relative;}
+.wijmo-wijsplitter-v-panel1{float:left;position:relative;}
+.wijmo-wijsplitter-v-panel1-content{position:relative;}
+.wijmo-wijsplitter-v-bar{float:left;position:relative;font-size:1px;width:2px;z-index:99;}
+.wijmo-wijsplitter-vertical .ui-resizable-e{right:-7px;width:10px;z-index:999;display:block;background-color:white;filter:alpha(opacity=0);-moz-opacity:0;opacity:0;}
+*html .wijmo-wijsplitter-vertical .ui-resizable-e{right:-4px;}
+*+html .wijmo-wijsplitter-vertical .ui-resizable-e{right:-4px;}
+.wijmo-wijsplitter-v-expander{position:absolute;z-index:999;}
+.wijmo-wijsplitter-v-expanded .wijmo-wijsplitter-v-expander{border-right:medium none;overflow:hidden;padding:12px 0;left:-8px;width:6px;z-index:999;}
+.wijmo-wijsplitter-v-expanded .wijmo-wijsplitter-v-expander .ui-icon{margin-left:-6px;}
+.wijmo-wijsplitter-v-collapsed .wijmo-wijsplitter-v-expander{border-left:medium none;overflow:hidden;padding:12px 0;right:-8px;width:6px;z-index:999;}
+.wijmo-wijsplitter-v-collapsed .wijmo-wijsplitter-v-expander .ui-icon{margin-left:-6px;}
+.wijmo-wijsplitter-v-panel2{float:left;}
+.wijmo-wijsplitter-v-panel2-content{position:relative;}
+.wijmo-wijsplitter-v-resize-helper{border-right:dotted 1px black;overflow:hidden;border-bottom:dotted 0 black;}
+.wijmo-wijsplitter-horizontal{overflow:hidden;position:relative;}
+.wijmo-wijsplitter-h-panel1{position:relative;}
+.wijmo-wijsplitter-h-panel1-content{overflow:auto;position:relative;}
+.wijmo-wijsplitter-h-bar{position:relative;font-size:1px;height:2px;z-index:999;}
+.wijmo-wijsplitter-horizontal .ui-resizable-s{bottom:-7px;height:10px;z-index:999;display:block;background-color:white;filter:alpha(opacity=0);-moz-opacity:0;opacity:0;}
+*html .wijmo-wijsplitter-horizontal .ui-resizable-s{bottom:-4px;}
+*+html .wijmo-wijsplitter-horizontal .ui-resizable-s{bottom:-4px;}
+.wijmo-wijsplitter-h-expander{position:absolute;z-index:999;}
+.wijmo-wijsplitter-h-expanded .wijmo-wijsplitter-h-expander{border-bottom:none;height:8px;overflow:hidden;padding:0 10px;top:-10px;z-index:999;}
+.wijmo-wijsplitter-h-expanded .wijmo-wijsplitter-h-expander .ui-icon{margin-top:-4px;}
+.wijmo-wijsplitter-h-collapsed .wijmo-wijsplitter-h-expander{border-top:none;height:8px;overflow:hidden;padding:0 10px;bottom:-10px;z-index:999;}
+.wijmo-wijsplitter-h-collapsed .wijmo-wijsplitter-h-expander .ui-icon{margin-top:-4px;}
+.wijmo-wijsplitter-h-panel2-content{overflow:auto;position:relative;}
+.wijmo-wijsplitter-h-resize-helper{border-bottom:dotted 1px black;overflow:hidden;border-right:dotted 0 black;}
+.wijmo-wijsuperpanel{overflow:hidden;outline:none;background-image:none;}
+.wijmo-wijsuperpanel-statecontainer{overflow:hidden;position:relative;zoom:1;}
+.wijmo-wijsuperpanel-contentwrapper{position:absolute;overflow:hidden;}
+.wijmo-wijsuperpanel-hbarcontainer,.wijmo-wijsuperpanel-vbarcontainer{font-size:0px;border:0;}
+.wijmo-wijsuperpanel-templateouterwrapper{position:relative;zoom:1;}
+.wijmo-wijsuperpanel-vbarcontainer .ui-state-default,.wijmo-wijsuperpanel-hbarcontainer .ui-state-default{width:16px;height:16px;position:absolute;}
+.wijmo-wijsuperpanel .wijmo-wijsuperpanel-vbarcontainer{position:absolute;width:18px;padding-top:18px;padding-bottom:18px;border:none;}
+.wijmo-wijsuperpanel .wijmo-wijsuperpanel-hbarcontainer{position:absolute;height:18px;padding-left:18px;padding-right:18px;border:none;}
+.wijmo-wijsuperpanel-handle{position:absolute;font-size:0px;overflow:hidden;}
+.wijmo-wijsuperpanel-handle *{font-size:0px;}
+.wijmo-wijsuperpanel-helper{border-style:dotted;background:transparent;}
+.wijmo-wijsuperpanel-button{position:absolute;padding:4px;}
+.wijmo-wijsuperpanel .ui-icon-gripsmall-diagonal-se{background:none;width:7px;height:7px;}
+.wijmo-wijsuperpanel-hbar-buttonleft{left:0;}
+.wijmo-wijsuperpanel-hbar-buttonright{right:0;}
+.wijmo-wijsuperpanel-vbar-buttontop{top:0;}
+.wijmo-wijsuperpanel-vbar-buttonbottom{bottom:0;}
+.wijmo-wijtextbox{outline:none;margin:0;padding:5px;}
+.wijmo-wijdropdown{display:inline-block;position:relative;width:auto;zoom:1;*display:inline;width:200px;}
+.wijmo-wijdropdown div.wijmo-dropdown-trigger{border-right:none;border-top:none;border-bottom:none;cursor:pointer;width:16px;height:100%;position:absolute;right:0;top:0;padding:0 3px;}
+.wijmo-wijdropdown .wijmo-dropdown-trigger .ui-icon{margin-top:3px;}
+.wijmo-wijdropdown label.wijmo-dropdown-label{display:block;padding:3px 26px 3px 5px;width:auto;border:none;}
+.wijmo-wijdropdown .wijmo-dropdown{position:absolute;height:250px;}
+.wijmo-wijdropdown .wijmo-dropdown .wijmo-dropdown-list{padding:0.4em;border:0 none;}
+.wijmo-wijdropdown .wijmo-dropdown .wijmo-dropdown-item{border:1px solid transparent;cursor:pointer;font-weight:normal;margin:1px 0;padding:3px 5px;text-align:left;*border-color:white;*filter:chroma(color=white);}
+.wijmo-wijdropdown .wijmo-dropdown .wijmo-dropdown-optgroup .wijmo-dropdown-items li{padding-left:10px;}
+.wijmo-wijdropdown .wijmo-dropdown .wijmo-optgroup-header{font-style:italic;}
+.wijmo-checkbox{position:relative;margin:3px 0;line-height:16px;width:16px;}
+.wijmo-checkbox .wijmo-checkbox-inputwrapper{width:0;height:0;overflow:hidden;}
+.wijmo-checkbox label{display:block;position:relative;margin:0;cursor:pointer;z-index:1;padding:0 0 0 1.4em;outline:none;margin:0 3px;width:8em;}
+.wijmo-checkbox .wijmo-checkbox-box{position:absolute;bottom:0;left:0;width:16px;height:16px;-moz-border-radius:2px;-webkit-border-radius:2px;border-radius:2px;margin-right:3px;}
+.wijmo-checkbox .wijmo-checkbox-relative{position:relative;float:left;margin-right:3px;}
+.wijmo-wijradio{position:relative;margin:3px 0;width:16px;line-height:16px;}
+.wijmo-wijradio .wijmo-wijradio-inputwrapper{width:0;height:0;overflow:hidden;}
+.wijmo-wijradio label{display:block;position:relative;margin:0;cursor:pointer;z-index:1;padding:0 0 0 1.4em;outline:none;margin:0 3px;width:8em;}
+.wijmo-wijradio .wijmo-wijradio-box{position:absolute;bottom:0;left:0;width:16px;height:16px;line-height:16px;-moz-border-radius:10px;-webkit-border-radius:10px;border-radius:10px;}
+.wijmo-wijradio .wijmo-wijradio-relative{position:relative;float:left;margin-right:3px;}
+.wijmo-wijlist-list{cursor:default;overflow:hidden;}
+.wijmo-wijlist-ul{list-style:none;padding:2px;margin:0;display:block;border:0px;overflow:hidden;}
+.wijmo-wijlist-ul .wijmo-wijlist-item{margin:1px 0;padding:3px 5px;cursor:pointer;text-align:left;font-weight:normal;border:solid 1px transparent;}
+.wijmo-wijlist-ul .wijmo-wijlist-item.ui-state-hover{font-weight:normal;}
+.wijmo-wijlist .ui-resizable-se{width:7px;height:7px;background:none;}
+.wijmo-wijtooltip{position:absolute;z-index:9999;margin:0;}
+.wijmo-wijtooltip .wijmo-wijtooltip-close{background:none repeat scroll 0 0 transparent;border:medium none;display:block;height:16px;position:absolute;right:3px;top:3px;width:16px;}
+.wijmo-wijtooltip .wijmo-wijtooltip-title{background:none repeat scroll 0 0 transparent;border:medium none;color:inherit;padding:0.4em;}
+.wijmo-wijtooltip .wijmo-wijtooltip-container{padding:1em;overflow:hidden;}
+.wijmo-wijtooltip{border-width:2px;}
+.wijmo-wijtooltip .wijmo-wijtooltip-pointer,.wijmo-wijtooltip .wijmo-wijtooltip-pointer-inner{background:none;height:0;position:absolute;width:0;}
+.wijmo-wijtooltip-arrow-tr .wijmo-wijtooltip-pointer,.wijmo-wijtooltip-arrow-tc .wijmo-wijtooltip-pointer,.wijmo-wijtooltip-arrow-tl .wijmo-wijtooltip-pointer{border-bottom-width:14px;border-top:0 none;top:-14px;}
+.wijmo-wijtooltip-arrow-tr .wijmo-wijtooltip-pointer{border-left:18px dashed transparent;border-right:0 none;right:10px;}
+.wijmo-wijtooltip-arrow-tc .wijmo-wijtooltip-pointer{border-left:10px dashed transparent;border-right:10px dashed transparent;left:50%;margin-left:-10px;}
+.wijmo-wijtooltip-arrow-tl .wijmo-wijtooltip-pointer{border-left:0 none;border-right:18px dashed transparent;left:10px;}
+.wijmo-wijtooltip-arrow-tr .wijmo-wijtooltip-pointer-inner,.wijmo-wijtooltip-arrow-tc .wijmo-wijtooltip-pointer-inner,.wijmo-wijtooltip-arrow-tl .wijmo-wijtooltip-pointer-inner{border-bottom-color:inherit;border-bottom-style:solid;border-bottom-width:10px;bottom:-14px;*font-size:0;line-height:0;}
+.wijmo-wijtooltip-arrow-tr .wijmo-wijtooltip-pointer-inner{border-left:12px dashed transparent;border-right:0 none;right:2px;}
+.wijmo-wijtooltip-arrow-tc .wijmo-wijtooltip-pointer-inner{border-left:8px dashed transparent;border-right:8px dashed transparent;left:-8px;}
+.wijmo-wijtooltip-arrow-tl .wijmo-wijtooltip-pointer-inner{border-left:0 none;border-right-style:dashed;border-right-color:inherit;border-right-width:12px;left:2px;}
+.wijmo-wijtooltip-arrow-rb .wijmo-wijtooltip-pointer,.wijmo-wijtooltip-arrow-rc .wijmo-wijtooltip-pointer,.wijmo-wijtooltip-arrow-rt .wijmo-wijtooltip-pointer{border-left-width:14px;border-right:0 none;right:-14px;}
+.wijmo-wijtooltip-arrow-rb .wijmo-wijtooltip-pointer{border-bottom:0 none;border-top:18px dashed transparent;bottom:10px;}
+.wijmo-wijtooltip-arrow-rc .wijmo-wijtooltip-pointer{border-bottom:10px dashed transparent;border-top:10px dashed transparent;bottom:50%;margin-bottom:-10px;}
+.wijmo-wijtooltip-arrow-rt .wijmo-wijtooltip-pointer{border-bottom:18px dashed transparent;border-top:0 none;top:10px;}
+.wijmo-wijtooltip-arrow-rb .wijmo-wijtooltip-pointer-inner,.wijmo-wijtooltip-arrow-rc .wijmo-wijtooltip-pointer-inner,.wijmo-wijtooltip-arrow-rt .wijmo-wijtooltip-pointer-inner{border-left-color:inherit;border-left-style:solid;border-left-width:10px;left:-14px;*font-size:0;line-height:0;}
+.wijmo-wijtooltip-arrow-rb .wijmo-wijtooltip-pointer-inner{border-bottom:0 none;border-top-style:dashed;border-top-color:inherit;border-top-width:12px;bottom:2px;}
+.wijmo-wijtooltip-arrow-rc .wijmo-wijtooltip-pointer-inner{border-bottom:8px dashed transparent;border-top:8px dashed transparent;bottom:-8px;}
+.wijmo-wijtooltip-arrow-rt .wijmo-wijtooltip-pointer-inner{border-bottom-style:dashed;border-bottom-color:inherit;border-bottom-width:12px;border-top:0 none;top:2px;}
+.wijmo-wijtooltip-arrow-br .wijmo-wijtooltip-pointer,.wijmo-wijtooltip-arrow-bc .wijmo-wijtooltip-pointer,.wijmo-wijtooltip-arrow-bl .wijmo-wijtooltip-pointer{border-bottom:0 none;border-top-width:14px;bottom:-14px;}
+.wijmo-wijtooltip-arrow-br .wijmo-wijtooltip-pointer{border-left:18px dashed transparent;border-right:0 none;right:10px;}
+.wijmo-wijtooltip-arrow-bc .wijmo-wijtooltip-pointer{border-left:10px dashed transparent;border-right:10px dashed transparent;left:50%;margin-left:-10px;}
+.wijmo-wijtooltip-arrow-bl .wijmo-wijtooltip-pointer{border-left:0 none;border-right:18px dashed transparent;left:10px;}
+.wijmo-wijtooltip-arrow-br .wijmo-wijtooltip-pointer-inner,.wijmo-wijtooltip-arrow-bc .wijmo-wijtooltip-pointer-inner,.wijmo-wijtooltip-arrow-bl .wijmo-wijtooltip-pointer-inner{border-top-color:inherit;border-top-style:solid;border-top-width:10px;top:-14px;*font-size:0;line-height:0;}
+.wijmo-wijtooltip-arrow-br .wijmo-wijtooltip-pointer-inner{border-left:12px dashed transparent;border-right:0 none;right:2px;}
+.wijmo-wijtooltip-arrow-bc .wijmo-wijtooltip-pointer-inner{border-left:8px dashed transparent;border-right:8px dashed transparent;left:-8px;}
+.wijmo-wijtooltip-arrow-bl .wijmo-wijtooltip-pointer-inner{border-left:0 none;border-right:12px dashed transparent;left:2px;}
+.wijmo-wijtooltip-arrow-lb .wijmo-wijtooltip-pointer,.wijmo-wijtooltip-arrow-lc .wijmo-wijtooltip-pointer,.wijmo-wijtooltip-arrow-lt .wijmo-wijtooltip-pointer{border-left:0 none;border-right-width:14px;left:-14px;}
+.wijmo-wijtooltip-arrow-lb .wijmo-wijtooltip-pointer{border-bottom:0 none;border-top:18px dashed transparent;bottom:10px;}
+.wijmo-wijtooltip-arrow-lc .wijmo-wijtooltip-pointer{border-bottom:10px dashed transparent;border-top:10px dashed transparent;bottom:50%;margin-bottom:-10px;}
+.wijmo-wijtooltip-arrow-lt .wijmo-wijtooltip-pointer{border-bottom:18px dashed transparent;border-top:0 none;top:10px;}
+.wijmo-wijtooltip-arrow-lb .wijmo-wijtooltip-pointer-inner,.wijmo-wijtooltip-arrow-lc .wijmo-wijtooltip-pointer-inner,.wijmo-wijtooltip-arrow-lt .wijmo-wijtooltip-pointer-inner{border-right-color:inherit;border-right-style:solid;border-right-width:10px;right:-14px;*font-size:0;line-height:0;}
+.wijmo-wijtooltip-arrow-lb .wijmo-wijtooltip-pointer-inner{border-bottom:0 none;border-top:12px dashed transparent;bottom:2px;}
+.wijmo-wijtooltip-arrow-lc .wijmo-wijtooltip-pointer-inner{border-bottom:8px dashed transparent;border-top:8px dashed transparent;bottom:-8px;}
+.wijmo-wijtooltip-arrow-lt .wijmo-wijtooltip-pointer-inner{border-bottom-style:dashed;border-bottom-color:inherit;border-bottom-width:12px;border-top:0 none;top:2px;}
+.wijmo-wijmenu{width:150px;padding:0.3em;position:relative;}
+.wijmo-wijmenu .wijmo-wijsuperpanel{border:none;background:inherit;padding:0;}
+.wijmo-wijmenu-list{position:static;}
+.wijmo-wijmenu .wijmo-wijmenu-parent .wijmo-wijmenu-child{display:none;width:150px;padding:0.3em;}
+.wijmo-wijmenu .wijmo-wijmenu-parent{position:relative;}
+.wijmo-wijmenu .wijmo-wijmenu-child{position:relative;left:150px;top:0;}
+.wijmo-wijmenu .wijmo-wijmenu-item{width:100%;float:left;clear:both;margin:1px 0;padding:0;}
+.wijmo-wijmenu .wijmo-wijmenu-list .wijmo-wijmenu-item{background:none;border:none;}
+.wijmo-wijmenu .wijmo-wijmenu-link{display:block;width:92%;outline:none;text-decoration:none;font-weight:400;border:solid 1px transparent;float:left;line-height:16px;padding:0.3em;}
+.wijmo-wijmenu-horizontal{width:auto;}
+.wijmo-wijmenu-horizontal .wijmo-wijmenu-item{width:auto;clear:none;margin-right:3px;}
+.wijmo-wijmenu-horizontal .wijmo-wijmenu-child .wijmo-wijmenu-item{width:100%;}
+.wijmo-wijmenu-horizontal .wijmo-wijmenu-child{top:25px;left:0;}
+.wijmo-wijmenu-horizontal .wijmo-wijmenu-link{width:auto;padding:0.4em 0.3em;}
+.wijmo-wijmenu-horizontal .wijmo-wijmenu-child .wijmo-wijmenu-link{width:92%;}
+.wijmo-wijmenu .wijmo-wijmenu-list .ui-widget-header{clear:both;float:left;width:98%;font-size:12px;margin:1px 0;}
+.wijmo-wijmenu-horizontal .ui-widget-header{clear:none;width:auto;margin:0 3px 0 0;}
+.wijmo-wijmenu .ui-widget-header h1,.wijmo-wijmenu .ui-widget-header h2,.wijmo-wijmenu .ui-widget-header h3,.wijmo-wijmenu .ui-widget-header h4,.wijmo-wijmenu .ui-widget-header h5,.wijmo-wijmenu .ui-widget-header h6{float:left;display:block;font-size:1em;margin:0 auto;padding:0.3em 3%;}
+.wijmo-wijmenu-horizontal .ui-widget-header h1,.wijmo-wijmenu-horizontal .ui-widget-header h2,.wijmo-wijmenu-horizontal .ui-widget-header h3,.wijmo-wijmenu-horizontal .ui-widget-header h4,.wijmo-wijmenu-horizontal .ui-widget-header h5,.wijmo-wijmenu-horizontal .ui-widget-header h6{padding:0.4em 0.3em;}
+.wijmo-wijmenu a.ui-state-default:link,.wijmo-wijmenu a.ui-state-default:visited,.wijmo-wijmenu a.ui-state-default:hover,.wijmo-wijmenu a.ui-state-default:active,.wijmo-wijmenu a.ui-state-hover:link,.wijmo-wijmenu a.ui-state-hover:visited,.wijmo-wijmenu a.ui-state-hover:hover,.wijmo-wijmenu a.ui-state-hover:active,.wijmo-wijmenu a.ui-state-active:link,.wijmo-wijmenu a.ui-state-active:visited,.wijmo-wijmenu a.ui-state-active:hover,.wijmo-wijmenu a.ui-state-active:active{font-weight:400;border-style:solid;}
+.wijmo-wijmenu .wijmo-wijmenu-child .ui-state-hover{font-weight:400;}
+.wijmo-wijmenu .wijmo-wijmenu-separator{clear:both;float:left;height:1px;text-indent:-9999px;width:98%;margin:1px 0;font-size:0;}
+.wijmo-wijmenu-horizontal .wijmo-wijmenu-separator{height:auto;clear:none;width:1px;text-indent:-9999px;margin:0 3px 0 0;padding:0.4em 0;}
+.wijmo-wijmenu-horizontal .wijmo-wijmenu-child .wijmo-wijmenu-separator{clear:both;float:left;height:1px;text-indent:-9999px;width:98%;margin:1px 0;padding:0;}
+.wijmo-wijmenu .wijmo-wijmenu-group{clear:both;float:left;width:98%;margin:3px 0;padding:0 0.4em;}
+.wijmo-wijmenu-ipod{width:180px;}
+.wijmo-wijmenu-container{overflow:hidden;}
+.wijmo-wijmenu-ipod .wijmo-wijmenu-list{background:inherit;position:absolute;border-width:0;-moz-box-shadow:none;-webkit-box-shadow:none;}
+.wijmo-wijmenu-breadcrumb{margin:0;padding:0;}
+.wijmo-wijmenu-footer{margin-top:3px;}
+.wijmo-wijmenu-footer .ui-icon{margin:3px 0;}
+.wijmo-wijmenu-header{margin-bottom:3px;}
+.wijmo-wijmenu-breadcrumb li{float:left;list-style:none;font-size:.9em;margin:0;padding:0 .2em;}
+.wijmo-wijmenu-breadcrumb li.wijmo-wijmenu-prev-list,.wijmo-wijmenu-breadcrumb li.wijmo-wijmenu-current-crumb{clear:left;float:none;opacity:1;}
+.wijmo-wijmenu-breadcrumb li.wijmo-wijmenu-current-crumb{padding-top:.2em;}
+.wijmo-wijmenu-footer a:link,.wijmo-wijmenu-footer a:visited{float:left;width:100%;text-decoration:none;}
+.wijmo-wijmenu-footer a span{float:left;cursor:pointer;}
+.wijmo-wijmenu-breadcrumb .wijmo-wijmenu-prev-list a:link,.wijmo-wijmenu-breadcrumb .wijmo-wijmenu-prev-list a:visited,.wijmo-wijmenu-breadcrumb .wijmo-wijmenu-prev-list a:hover,.wijmo-wijmenu-breadcrumb .wijmo-wijmenu-prev-list a:active{background-image:none;text-decoration:none;}
+.wijmo-wijmenu-breadcrumb .wijmo-wijmenu-prev-list a{float:left;padding-right:.4em;}
+.wijmo-wijmenu-breadcrumb .wijmo-wijmenu-current-crumb a:link,.wijmo-wijmenu-breadcrumb .wijmo-wijmenu-current-crumb a:visited,.wijmo-wijmenu-breadcrumb .wijmo-wijmenu-current-crumb a:hover,.wijmo-wijmenu-breadcrumb .wijmo-wijmenu-current-crumb a:active{display:block;background-image:none;font-size:1.3em;text-decoration:none;}
+.wijmo-wijmenu .wijmo-wijmenu-parent .ui-icon,.wijmo-wijmenu-horizontal .wijmo-wijmenu-child .ui-icon,.wijmo-wijmenu-ipod .ui-icon-triangle-1-e{float:right;}
+.wijmo-wijmenu .wijmo-wijmenu-item .wijmo-wijmenu-text,.wijmo-wijmenu-horizontal .wijmo-wijmenu-parent .ui-icon,.wijmo-wijmenu-breadcrumb a,.wijmo-wijmenu-breadcrumb span,.wijmo-wijmenu-breadcrumb .wijmo-wijmenu-prev-list a .ui-icon{float:left;}
+.wijmo-wijmenu .wijmo-wijmenu-link .wijmo-wijmenu-icon-left{display:inline-block;float:left;}
+.wijmo-wijmenu .wijmo-wijmenu-link .wijmo-wijmenu-icon-right{display:inline-block;float:right;}
+.wijmo-wijpager .ui-icon{cursor:pointer;}
+.wijmo-wijpager .ui-list{float:left;padding:1px;margin:0;}
+.wijmo-wijpager .ui-list .ui-page{float:left;height:auto;line-height:16px;list-style:none outside none;margin:0 1px;width:auto;}
+.wijmo-wijpager .ui-list .ui-page span{margin:2px;}
+.wijmo-wijpager .ui-list .ui-page a,.wijmo-wijpager .ui-list .ui-state-active span{padding:2px 5px;display:block;margin:0;}
+.wijmo-wijpager .ui-list{background:none;border:none;}
+.wijmo-wijcombobox{position:relative;}
+.wijmo-wijcombobox-wrapper{float:left;}
+.wijmo-wijcombobox-input{background:none repeat scroll 0 0 transparent;border:0 none;color:inherit;padding:3px 5px 3px 5px;outline:none;}
+.wijmo-wijcombobox .wijmo-wijcombobox-label{background:transparent;border:none;font-weight:normal;position:absolute;white-space:nowrap;}
+.wijmo-wijcombobox-loading{background:transparent url('images/ui-anim_basic_16x16.gif') right center no-repeat;}
+.wijmo-wijcombobox .wijmo-wijcombobox-trigger{position:absolute;top:0px;font-size:0px;width:20px;cursor:pointer;}
+.wijmo-wijcombobox-list{position:absolute;overflow:hidden;}
+.wijmo-wijcombobox-ul .wijmo-wijcombobox-item{margin:0;padding:.2em .4em;line-height:1.5;white-space:nowrap;}
+.wijmo-wijcombobox-ul .wijmo-wijcombobox-item.ui-state-hover,.wijmo-wijcombobox-ul .wijmo-wijcombobox-item.ui-state-active{font-weight:normal;margin:-1px;}
+.wijmo-wijcombobox-ul .wijmo-wijlist-item-selected{font-style:italic;}
+.wijmo-wijcombobox-multicolumn .wijmo-wijcombobox-row,.wijmo-wijcombobox-multicolumn .wijmo-wijcombobox-rowheader{list-style:none none outside;padding:0px;margin:0;border:0px;overflow:hidden;width:10000px;}
+.wijmo-wijcombobox-multicolumn .wijmo-wijcombobox-cell{float:left;overflow:hidden;border-width:0;text-align:center;width:100px;}
+.wijmo-wijcombobox-multicolumn .wijmo-wijcombobox-rowheader .wijmo-wijcombobox-cell{border-right-width:1px;}
+.wijmo-wijcombobox-multicolumn .wijmo-wijcombobox-row .wijmo-wijcombobox-cell{border-right-width:1px;border-bottom-width:1px;}
+.wijmo-wijcombobox-multicolumn .wijmo-wijsuperpanel-header{border-width:0px;border-bottom-width:1px;}
+.wijmo-wijcombobox-multicolumn .wijmo-wijlist-item,.wijmo-wijcombobox-multicolumn .wijmo-wijlist-ul{padding:0px;border:0px;}
+.wijmo-wijcombobox-multicolumn .wijmo-wijcombobox-active-prev .wijmo-wijcombobox-cell{border-bottom-width:0px;}
+.wijmo-wijcombobox-multicolumn .wijmo-wijcombobox-row .ui-state-hover{border-top-width:1px;}
+.wijmo-wijcombobox-multicolumn .wijmo-wijlist-item-first .ui-state-hover{border-top-width:0px;}
+.wijmo-wijlist-ul .wijmo-wijlist-item{cursor:pointer;}
+.wijmo-wijinput{position:relative;width:150px;}
+.wijmo-wijinput-wrapper{float:left;margin-right:0;width:100%;}
+.wijmo-wijinput-input{background:none;border:0 none;color:inherit;float:right;outline:none;margin:0;line-height:16px;height:16px;padding:5px;}
+.wijmo-wijinput .wijmo-wijinput-trigger{position:absolute;right:0;width:16px;cursor:pointer;padding:0 3px;height:100%;}
+.wijmo-wijinput .wijmo-wijinput-trigger .ui-icon{margin-top:40%;}
+.ui-input-trigger-right .wijmo-wijinput-input,.ui-input-spinner-right .wijmo-wijinput-input{padding:5px 25px 5px 5px;}
+.ui-input-trigger-left .wijmo-wijinput-input,.ui-input-spinner-left .wijmo-wijinput-input{padding:5px 5px 5px 25px;}
+.ui-input-trigger-right .wijmo-wijinput-trigger{position:absolute;right:0;top:0;}
+.ui-input-trigger-left .wijmo-wijinput-trigger{position:absolute;left:0;top:0;}
+.ui-input-trigger-right .wijmo-wijinput-trigger{border-right:none;border-top:none;border-bottom:none;}
+.ui-input-trigger-left .wijmo-wijinput-trigger{border-left:none;border-top:none;border-bottom:none;}
+.wijmo-wijinput .wijmo-wijinput-spinner{position:absolute;right:0;top:0;width:17px;cursor:pointer;height:100%;}
+.ui-input-spinner-left .wijmo-wijinput-spinner{position:absolute;left:0;top:0;}
+.wijmo-wijinput-spinup{border-bottom:none;display:block;height:50%;width:16px;position:relative;}
+.wijmo-wijinput-spindown{border-top:none;display:block;height:50%;width:16px;position:relative;}
+.ui-input-spinner-right .wijmo-wijinput-spinup{border-right:none;border-top:none;}
+.ui-input-spinner-right .wijmo-wijinput-spindown{border-right:none;border-bottom:none;}
+.ui-input-spinner-left .wijmo-wijinput-spinup{border-left:none;border-top:none;}
+.ui-input-spinner-left .wijmo-wijinput-spindown{border-left:none;border-bottom:none;}
+.wijmo-wijinput-numeric{text-align:right;}
+.wijmo-wijinput-date,.wijmo-wijinput-mask{float:left;}
+.ui-input-spinner-trigger-right .wijmo-wijinput-spinner{right:23px;}
+.ui-input-spinner-trigger-right .wijmo-wijinput-input{padding:5px 42px 5px 5px;}
+.ui-input-spinner-trigger-right .wijmo-wijinput-spinup,.ui-input-spinner-trigger-right .wijmo-wijinput-spindown,.ui-input-spinner-trigger-right .wijmo-wijinput-trigger{border-top:none;border-right:none;}
+.ui-input-spinner-trigger-left .wijmo-wijinput-trigger{left:0;}
+.ui-input-spinner-trigger-left .wijmo-wijinput-spinner{left:23px;}
+.ui-input-spinner-trigger-left .wijmo-wijinput-input{padding:5px 5px 5px 42px;}
+.ui-input-spinner-trigger-left .wijmo-wijinput-spinup,.ui-input-spinner-trigger-left .wijmo-wijinput-spindown,.ui-input-spinner-trigger-left .wijmo-wijinput-trigger{border-top:none;border-left:none;}
+.wijmo-wijgrid{-moz-border-radius:0;-webkit-border-radius:0;border-radius:0;overflow:hidden;}
+.wijmo-wijgrid-loading{background:transparent url('images/ui-anim_basic_16x16.gif') left top no-repeat;min-height:16px;min-width:16px;}
+.wijmo-wijgrid .wijmo-wijsuperpanel{border:0;}
+.wijmo-wijgrid .wijmo-wijgrid-table .wijmo-wijgrid-filter-trigger{position:absolute;right:0;top:0;height:16px;width:16px;display:block;padding:5px 3px;border-top:none;border-right:none;border-bottom:none;-moz-border-radius:0;-webkit-border-radius:0;border-radius:0;}
+.wijmo-wijgrid .wijmo-wijgrid-table .wijmo-wijgrid-filter-input{width:auto;height:16px;border:none;padding:5px 3px;overflow:visible;color:inherit;outline:none;position:relative;z-index:5;-moz-border-radius:0;-webkit-border-radius:0;border-radius:0;background:none;}
+.wijmo-wijgrid .wijmo-wijgrid-filter{position:relative;-moz-border-radius:0;-webkit-border-radius:0;border-radius:0;border-top:none;border-left:none;border-bottom:none;}
+.wijmo-wijgrid .wijmo-wijgrid-filter .wijmo-wijinput{border:none;-moz-border-radius:0;-webkit-border-radius:0;border-radius:0;}
+.wijmo-wijgrid-filtericon{background:url('images/filterop.png') no-repeat;text-indent:-9999px;overflow:hidden;height:16px;width:16px;display:none;}
+.filter-nofilter{background-position:0 0px;}
+.filter-contains{background-position:0 -16px;}
+.filter-notcontain{background-position:0 -32px;}
+.filter-beginswith{background-position:0 -48px;}
+.filter-endswith{background-position:0 -64px;}
+.filter-equals{background-position:0 -80px;}
+.filter-notequal{background-position:0 -96px;}
+.filter-greater{background-position:0 -112px;}
+.filter-less{background-position:0 -128px;}
+.filter-greaterorequal{background-position:0 -144px;}
+.filter-lessorequal{background-position:0 -160px;}
+.filter-isempty{background-position:0 -176px;}
+.filter-notisempty{background-position:0 -192px;}
+.filter-isnull{background-position:0 -208px;}
+.filter-notisnull{background-position:0 -224px;}
+.wijmo-wijpager .ui-icon{cursor:pointer;}
+.wijmo-wijgrid .wijmo-wijgrid-grouptogglebtn{float:left;cursor:pointer;margin-top:3px;}
+.wijmo-wijgrid .wijmo-wijgrid-table{border-collapse:collapse;outline:none;}
+.wijmo-wijgrid-rowheader{width:21px;}
+.wijmo-wijgrid .wijmo-wijgrid-header,.wijmo-wijgrid .wijmo-wijgrid-footer{border-left:none !important;border-top:none !important;border-bottom:none !important;padding:0.2em;-moz-border-radius:0;-webkit-border-radius:0;border-radius:0;}
+.wijmo-wijgrid tr.wijmo-wijgrid-row{border-bottom:none;}
+.wijmo-wijgrid tr.wijmo-wijgrid-row td{border:none;border-right-color:inherit;border-right-style:solid;border-right-width:1px;border-top-color:inherit;border-top-style:solid;border-top-width:1px;text-align:left;overflow:hidden;}
+.wijmo-wijgrid .wijgridtd{font-weight:normal;padding:0px;}
+.wijmo-wijgrid .wijgridth{padding:0px;}
+.wijmo-wijgrid .wijmo-wijgrid-headerrow .wijmo-c1basefield{zoom:1;overflow:hidden;border-left:0;border-top:0;padding:0px;position:relative;}
+.wijmo-wijgrid .wijmo-wijgrid-headerrow .wijmo-wijgrid-headertext{padding:0.5em 1em;display:block;text-align:center;position:relative;}
+.wijmo-wijgrid .wijmo-wijgrid-headerrow .ui-icon{width:16px;height:16px;position:absolute;right:0;top:50%;margin-top:-8px;z-index:99;}
+.wijmo-wijgrid .wijmo-wijgrid-filterrow td{border-bottom-width:1px;border-bottom-style:solid;border-bottom-color:inherit;}
+.wijmo-wijgrid .wijmo-wijpager{display:block;position:relative;}
+.wijmo-wijgrid-resizehandle{position:absolute;z-index:99999;}
+.wijmo-wijgrid-v-splitter,.wijmo-wijgrid-h-splitter{background-color:white;width:4px;height:4px;position:absolute;z-index:10;display:none;}
+.wijmo-wijgrid-splits-enabled .wijmo-wijgrid-v-splitter{border-right:1px solid #000000;display:block;cursor:w-resize;}
+.wijmo-wijgrid-splits-enabled .wijmo-wijgrid-h-splitter{border-bottom:1px solid #000000;display:block;cursor:n-resize;}
+.wijmo-wijgrid-splits-enabled .wijmo-wijgrid-v-splitter.ui-draggable-dragging,.wijmo-wijgrid-splits-enabled .wijmo-wijgrid-h-splitter.ui-draggable-dragging{background-color:#626262;}
+.wijmo-wijgrid-filterlist{position:absolute;left:0;top:0;z-index:100;}
+.wijmo-wijgrid-scroller{overflow:hidden;}
+.wijmo-wijgrid-fixedview{position:relative;}
+.wijmo-wijgrid-scroller{border:0px;}
+.wijmo-wijgrid .wijmo-wijsuperpanel-vbar-buttontop{-moz-border-radius:0;-webkit-border-radius:0;border-radius:0;top:-1px;}
+.wijmo-wijgrid .wijmo-wijsuperpanel-vbar-buttonbottom{-moz-border-radius:0;-webkit-border-radius:0;border-radius:0;bottom:-1px;}
+.wijmo-wijgrid .wijgridinput{width:100%;margin:0;border:none;padding:0;text-align:inherit;}
+.wijmo-wijgrid tr.wijmo-wijgrid-row td.wijdata-type-currency,.wijmo-wijgrid tr.wijmo-wijgrid-row td.wijdata-type-number,.wijmo-wijgrid tr.wijmo-wijgrid-row td.wijdata-type-date{text-align:right;}
+.wijmo-wijgrid tr.wijmo-wijgrid-row td.wijdata-type-boolean{text-align:center;}
+.wijmo-wijgrid .wijmo-wijgrid-innercell{padding:1px 2px;}
+.wijmo-wijgrid .wijmo-wijcombobox-wrapper{-moz-border-radius:0;-webkit-border-radius:0;border-radius:0;border-top:0;border-bottom:0;border-left:0;}
+.wijmo-wijgrid .wijmo-wijcombobox .wijmo-wijcombobox-trigger{-moz-border-radius:0;-webkit-border-radius:0;border-radius:0;border-top:0;border-bottom:0;border-right:0;}
+.wijmo-wijgrid .wijmo-wijcombobox-input{padding:0;}
+.wijmo-wijgrid .ui-input-trigger-right .wijmo-wijinput-input,.wijmo-wijgrid .ui-input-spinner-right .wijmo-wijinput-input{padding:0px 25px 0px 5px;}
+.wijmo-wijgrid .wijmo-wijinput{border:none;-moz-border-radius:0;-webkit-border-radius:0;border-radius:0;}
+.wijmo-wijgrid .wijmo-wijinput-spinup{height:7px;}
+.wijmo-wijgrid .wijmo-wijinput-spindown{height:7px;}
+.wijmo-wijgrid .wijmo-wijinput-spinner .ui-icon-triangle-1-n{background-position:0 -20px;}
+.wijmo-wijgrid .wijmo-wijinput-spinner .ui-icon-triangle-1-s{background-position:-64px -20px;}
+.wijmo-wijgrid-dnd-arrow-top,.wijmo-wijgrid-dnd-arrow-bottom{z-index:1000;width:16px;height:16px;}
+.wijmo-wijgrid-dnd-arrow-top .ui-icon{position:absolute;top:-4px;}
+.wijmo-wijgrid-dnd-arrow-bottom .ui-icon{position:absolute;top:4px;}
+.wijmo-wijgrid-dnd-helper{border:1px solid #F0F0F0 !important;filter:alpha(opacity=70) !important;-moz-opacity:0.7;opacity:0.7;z-index:1000;}
+.wijmo-wijgrid th.ui-draggable{cursor:pointer;}
+.wijmo-wijgrid-footerrow{text-align:right;}
+.wijmo-wijgrid-group-button{float:left;padding:0.4em 1.4em 0.4em 0.4em;position:relative;margin:0.4em;text-decoration:none;}
+.wijmo-wijgrid-group-button-close{float:right;margin:0 3px 0 24px;padding:1px;position:absolute;right:-14px;top:-7px;border-radius:15px;-webkit-border-radius:15px;-moz-border-radius:15px;}
+.wijmo-wijgrid-group-button-sort{position:absolute;right:3px;top:25%;}
+.wijmo-wijgrid-group-area{height:35px;}
+.wijmo-wijupload ul{margin:0;padding:0;}
+.wijmo-wijupload li{list-style:none outside none;position:relative;padding:5px 110px 5px 5px;width:100%;}
+.wijmo-wijupload .wijmo-wijupload-buttonContainer{position:absolute;right:0;top:0;}
+.wijmo-wijupload .wijmo-wijupload-file{display:block;padding:0.4em;line-height:1.4;}
+.wijmo-wijupload .wijmo-wijupload-loading{width:16px;height:16px;background-image:url("images/ui-anim_basic_16x16.gif");display:block;float:left;top:25%;left:-10px;position:relative;}
+.wijmo-wijupload .ui-button{margin:2px;}
+.wijmo-wijwizard{position:relative;}
+.wijmo-wijwizard-steps li{float:left;padding:0.4em;margin:0 3px 0 0;}
+.wijmo-wijwizard-steps h1{margin:0;padding:0;font-size:24px;}
+.wijmo-wijwizard-content{margin:3px 0;}
+.wijmo-wijwizard .wijmo-wijwizard-panel{display:block;border-width:0;padding:1em 1.4em;background:none;}
+.wijmo-wijwizard .wijmo-wijwizard-hide{display:none !important;}
+.wijmo-wijwizard-buttons{float:right;}
+.wijmo-wijwizard-next,.wijmo-wijwizard-prev{display:block;position:absolute;padding:3px 0;}
+.wijmo-wijwizard-next{right:0;top:49%;}
+.wijmo-wijwizard-prev{left:0;top:49%;}
+.ui-accordion a{outline:none;}
+.ui-accordion-right .ui-accordion-header,.ui-accordion-left .ui-accordion-header{margin-top:0;margin-left:1px;width:2em;height:12em;overflow:hidden;}
+.ui-accordion-right .ui-accordion-content,.ui-accordion-left .ui-accordion-content{margin:0;height:200px;width:36em;height:12em;padding:0 2.2em;top:0;padding:1px;border:none;}
+.ui-accordion-right .ui-accordion-header a,.ui-accordion-left .ui-accordion-header a{-webkit-transform:rotate(-90deg);-moz-transform:rotate(-90deg);-o-transform:rotate(-90deg);filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";position:absolute;top:2.5em;left:-0.7em;text-align:center;}
+.ui-accordion-top .ui-accordion-header.ui-state-hover .ui-icon{background:#5e9ae2 url(images/ui-icons_ffffff_256x240.png);background-position:-34px -2px;border:1px solid #2e63a5;}
+.ui-accordion-top .ui-accordion-header.ui-state-active .ui-icon,.ui-accordion-top .ui-accordion-header.ui-state-hover.ui-state-active .ui-icon{background-position:-1px -2px;}
+.ui-accordion-left .ui-accordion-header .ui-icon,.ui-accordion-right .ui-accordion-header .ui-icon{top:1em;left:50%;margin-left:-7px;background-position:-66px -1px;}
+.ui-accordion-left .ui-accordion-header,.ui-accordion-right .ui-accordion-header,.ui-accordion-left .ui-accordion-header.ui-state-active,.ui-accordion-right .ui-accordion-header.ui-state-active,.ui-accordion-left .ui-accordion-header.ui-state-hover,.ui-accordion-right .ui-accordion-header.ui-state-hover,.ui-accordion-left .ui-accordion-header.ui-state-focus,.ui-accordion-right .ui-accordion-header.ui-state-focus{color:#333333;border-color:#a9a9a9;background:#ffffff;filter:expression("progid:DXImageTransform.Microsoft.gradient(startColorstr='#fdfdfd',endColorstr='#ececec',GradientType=1)");-ms-filter:"progid:DXImageTransform.Microsoft.gradient(startColorstr='#fdfdfd',endColorstr='#ececec',GradientType=1)";background:-moz-linear-gradient(0% 100% 180deg, #ececec, #fdfdfd);background:-webkit-gradient(linear, left top, right top, from(#fdfdfd), to(#ececec));background:-o-linear-gradient(0% 100% 180deg, #ececec, #fdfdfd);}
+.ui-accordion-right .ui-accordion-header.ui-state-hover .ui-icon{background:#5e9ae2 url(images/ui-icons_ffffff_256x240.png);background-position:-66px -1px;border:1px solid #2e63a5;}
+.ui-accordion-right .ui-accordion-header.ui-state-active .ui-icon,.ui-accordion-right .ui-accordion-header.ui-state-hover.ui-state-active .ui-icon{background-position:-34px -2px;}
+.ui-accordion-left .ui-accordion-header.ui-state-hover .ui-icon{background:#5e9ae2 url(images/ui-icons_ffffff_256x240.png);background-position:-66px -1px;border:1px solid #2e63a5;}
+.ui-accordion-left .ui-accordion-header.ui-state-active .ui-icon,.ui-accordion-left .ui-accordion-header.ui-state-hover.ui-state-active .ui-icon{background-position:-98px -2px;}
+.ui-tabs-bottom .ui-tabs-nav{border-bottom:0 !important;border-top:1px solid #a9a9a9;}
+.ui-tabs-left .ui-tabs-nav{float:left;overflow:hidden;}
+.ui-tabs-left .ui-tabs-nav li{white-space:normal;float:right;display:block;width:98%;}
+.ui-tabs-left .ui-tabs-nav li a,.ui-tabs-right .ui-tabs-nav li a{float:none;display:block;}
+.ui-tabs-left .ui-tabs-nav li{top:-1px;left:3px;margin-bottom:2px;}
+.ui-tabs-left .ui-tabs-panel{padding:1.6em;}
+.ui-tabs-left .ui-tabs-nav li.ui-tabs-selected{border-right:medium none;margin-bottom:2px;}
+.ui-tabs-left .ui-tabs-nav{padding:0.2em 0 0 0;}
+.ui-tabs-left .wijmo-wijtabs-content{float:right;width:75%;overflow:hidden;}
+.ui-tabs-left .ui-tabs-nav{min-height:300px;width:23%;height:100%;}
+.ui-tabs-right .ui-tabs-nav{float:right;overflow:hidden;}
+.ui-tabs-right .ui-tabs-nav li{white-space:normal;float:left;display:block;width:98%;}
+.ui-tabs-right .ui-tabs-nav li{top:-1px;left:0;margin-bottom:2px;}
+.ui-tabs-right .ui-tabs-panel{padding:1.6em;}
+.ui-tabs-right .ui-tabs-nav li.ui-tabs-selected{border-left:medium none;margin-bottom:2px;}
+.ui-tabs-right .ui-tabs-nav{padding:0.2em 0 0 0;}
+.ui-tabs-right .wijmo-wijtabs-content{float:left;width:75%;overflow:hidden;}
+.ui-tabs-right .ui-tabs-nav{min-height:300px;width:23%;}
+.ui-tabs-left .ui-tabs-nav li.ui-tabs-selected{margin-right:2px;padding-right:1px;}
+.ui-tabs-right .ui-tabs-nav li.ui-tabs-selected{margin-left:-1px;padding-left:1px;}
+.wijmo-wijtree{width:360px;padding:0.5em;}
+.wijmo-wijtree .wijmo-checkbox{margin:0;float:left;}
+.wijmo-wijtree .wijmo-wijtree-parent span{float:left;}
+.wijmo-wijtree .wijmo-wijtree-child{margin-left:32px;}
+.wijmo-wijtree .wijmo-wijtree-list .wijmo-wijtree-node{border:0px;background:none;display:block;float:left;clear:both;font-weight:normal;margin:0 20px 0 0;}
+.wijmo-wijtree-inner{border:1px solid transparent;padding:3px;vertical-align:middle;}
+.wijmo-wijtree .wijmo-wijtree-list .wijmo-wijtree-node .wijmo-wijtree-inner a,.wijmo-wijtree .wijmo-wijtree-list .wijmo-wijtree-node .wijmo-wijtree-inner .wijmo-wijtree-template{outline:none;margin:0 0 0 0.5em;display:block;float:left;}
+.wijmo-wijtree .wijmo-wijtree-list li.wijmo-wijtree-node{margin-left:16px;}
+.wijmo-wijtree .wijmo-wijtree-list .ui-state-default a,.wijmo-wijtree .wijmo-wijtree-list .ui-state-default{color:inherit;}
+.wijmo-wijtree .wijmo-wijtree-list .ui-state-hover,.wijmo-wijtree .wijmo-wijtree-list .ui-state-active{font-weight:normal;}
+wijmo-wijtree a.ui-state-default:link,wijmo-wijtree a.ui-state-default:visited,wijmo-wijtree a.ui-state-default:hover,wijmo-wijtree a.ui-state-default:active,wijmo-wijtree a.ui-state-hover:link,wijmo-wijtree a.ui-state-hover:visited,wijmo-wijtree a.ui-state-hover:hover,wijmo-wijtree a.ui-state-hover:active,wijmo-wijtree a.ui-state-active:link,wijmo-wijtree a.ui-state-active:visited,wijmo-wijtree a.ui-state-active:hover,wijmo-wijtree a.ui-state-active:active{border-style:solid;font-weight:normal;}
+.wijmo-wijtree .wijmo-wijtree-list .wijmo-wijtree-item{padding:0;width:100%;float:left;clear:left;margin:0 0 0 16px;display:inline;width:100%;}
+.wijmo-wijtree .wijmo-wijtree-list .ui-icon{float:left;}
+.wijmo-wijtree .wijmo-wijtree-list .wijmo-wijtree-parent{margin:0;padding:0;width:100%;float:left;clear:left;}
+.wijmo-wijtree-insertion{height:1px;font-size:0px;}
+.wijmo-wijtree-node .wijmo-wijtextbox{padding:0;margin:0;float:left;margin:0 0 0 0.5em;}
+.wijmo-wijexpander{margin:1px;padding:0;display:block;}
+.wijmo-wijexpander a{outline:none;}
+.wijmo-wijexpander .ui-expander-header{cursor:pointer;margin-top:1px;position:relative;}
+.ui-expander .ui-expander-content{border-top:0 none;display:none;margin-bottom:2px;margin-top:-2px;overflow:auto;padding:1em 2.2em;position:relative;top:1px;}
+.wijmo-wijexpander .ui-expander-header a{display:block;font-size:1em;padding:0.5em 0.5em 0.5em 0.7em;}
+.wijmo-wijexpander .ui-expander-header .ui-icon{left:0.5em;margin-top:-8px;position:absolute;top:50%;}
+.wijmo-wijexpander .ui-expander-content-active{display:block;border-top:0 none;padding:1em 2.2em;}
+.wijmo-wijexpander .ui-expander-header>a{padding-left:2.2em;}
+.ui-helper-horizontal.wijmo-wijexpander .ui-expander-header .ui-icon{left:inherit;margin-top:inherit;margin-left:-8px;position:absolute;top:0.5em;left:50%;}
+.ui-helper-horizontal.wijmo-wijexpander .ui-expander-header>a{padding-left:inherit;padding-top:2.2em;display:inline-block;}
+.ui-expander-right .ui-expander-header{margin:0 1px;width:2em;height:12em;overflow:hidden;}
+.ui-expander-right .ui-expander-content{margin:0;height:200px;width:12em;height:12em;padding:0 2.2em;}
+.ui-expander-right .ui-expander-content{top:0;margin-left:-2px;padding:1px;border:none;margin-right:1px;}
+.ui-expander-right .ui-state-active{border-right:none;}
+.ui-expander-left .ui-expander-header{margin:0 1px;width:2em;height:12em;overflow:hidden;}
+.ui-expander-left .ui-expander-content{margin:0;height:200px;width:12em;height:12em;padding:0 2.2em;}
+.ui-expander-left .ui-expander-content{border:none;padding:1px;top:0;margin-right:-2px;margin-left:1px;}
+.ui-expander-left .ui-state-active{border-left:none;}
+.ui-expander-left .ui-expander-header .ui-icon{top:10%;}
+.ui-expander .ui-expander-header{cursor:pointer;position:relative;margin-top:1px;zoom:1;border:solid 1px #a9a9a9;border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px;}.ui-expander .ui-expander-header a{display:block;font-size:1em;padding:.5em .5em .5em .7em;color:inherit;padding-left:2.6em;}
+.ui-expander .ui-expander-header .ui-icon{position:absolute;left:.5em;top:50%;margin-top:-7px;width:13px;height:13px;border:1px solid #a9a9a9;background:#ffffff url(images/ui-icons_222222_256x240.png);background-position:-34px -2px;border-radius:7px;-webkit-border-radius:7px;-moz-border-radius:7px;-webkit-box-shadow:inset 0 -6px 5px rgba(0, 0, 0, 0.1);-moz-box-shadow:inset 0 -6px 5px rgba(0, 0, 0, 0.1);box-shadow:inset 0 -6px 5px rgba(0, 0, 0, 0.1);}
+.ui-expander .ui-expander-header.ui-state-hover .ui-icon{background:#5e9ae2 url(images/ui-icons_ffffff_256x240.png);background-position:-34px -2px;border:1px solid #2e63a5;}
+.ui-expander .ui-expander-header.ui-state-active .ui-icon,.ui-expander .ui-expander-header.ui-state-hover.ui-state-active .ui-icon{background-position:-66px -1px;}
+.ui-expander .ui-expander-header,.ui-expander .ui-expander-header.ui-state-active,.ui-expander .ui-expander-header.ui-state-hover,.ui-expander .ui-expander-header.ui-state-focus{color:#333333;border-color:#a9a9a9;background:#ffffff;filter:expression("progid:DXImageTransform.Microsoft.gradient(startColorstr='#fdfdfd',endColorstr='#ececec')");-ms-filter:"progid:DXImageTransform.Microsoft.gradient(startColorstr='#fdfdfd',endColorstr='#ececec')";background:-moz-linear-gradient(0% 100% 90deg, #ececec, #fdfdfd);background:-webkit-gradient(linear, left top, left bottom, from(#fdfdfd), to(#ececec));background:-o-linear-gradient(0% 100% 90deg, #ececec, #fdfdfd);}
+.ui-expander .ui-expander-content{border-width:0px;border-radius:0px;-webkit-border-radius:0px;-moz-border-radius:0px;background:none;padding:1em 2.2em;border-top:0;margin-top:0px;position:relative;top:1px;margin-bottom:0px;overflow:auto;zoom:1;}
+.ui-expander-top .ui-expander-header.ui-state-hover .ui-icon{background:#5e9ae2 url(images/ui-icons_ffffff_256x240.png);background-position:-34px -2px;border:1px solid #2e63a5;}
+.ui-expander-top .ui-expander-header.ui-state-active .ui-icon,.ui-expander-top .ui-expander-header.ui-state-hover.ui-state-active .ui-icon{background-position:-1px -2px;}
+.ui-expander-left .ui-expander-header .ui-icon,.ui-expander-right .ui-expander-header .ui-icon{top:1em;left:50%;margin-left:-7px;background-position:-66px -1px;}
+.ui-expander-left .ui-expander-header a,.ui-expander-right .ui-expander-header a{padding:0;-webkit-transform:rotate(-90deg);-moz-transform:rotate(-90deg);-o-transform:rotate(-90deg);filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";position:absolute;top:2.5em;left:-1.6em;}
+.ui-expander-left .ui-expander-header,.ui-expander-right .ui-expander-header,.ui-expander-left .ui-expander-header.ui-state-active,.ui-expander-right .ui-expander-header.ui-state-active,.ui-expander-left .ui-expander-header.ui-state-hover,.ui-expander-right .ui-expander-header.ui-state-hover,.ui-expander-left .ui-expander-header.ui-state-focus,.ui-expander-right .ui-expander-header.ui-state-focus{color:#333333;border-color:#a9a9a9;background:#ffffff;filter:expression("progid:DXImageTransform.Microsoft.gradient(startColorstr='#fdfdfd',endColorstr='#ececec',GradientType=1)");-ms-filter:"progid:DXImageTransform.Microsoft.gradient(startColorstr='#fdfdfd',endColorstr='#ececec',GradientType=1)";background:-moz-linear-gradient(0% 100% 180deg, #ececec, #fdfdfd);background:-webkit-gradient(linear, left top, right top, from(#fdfdfd), to(#ececec));background:-o-linear-gradient(0% 100% 180deg, #ececec, #fdfdfd);}
+.ui-expander-right .ui-expander-header.ui-state-hover .ui-icon{background:#5e9ae2 url(images/ui-icons_ffffff_256x240.png);background-position:-66px -1px;border:1px solid #2e63a5;}
+.ui-expander-right .ui-expander-header.ui-state-active .ui-icon,.ui-expander-right .ui-expander-header.ui-state-hover.ui-state-active .ui-icon{background-position:-34px -2px;}
+.ui-expander-left .ui-expander-header.ui-state-hover .ui-icon{background:#5e9ae2 url(images/ui-icons_ffffff_256x240.png);background-position:-66px -1px;border:1px solid #2e63a5;}
+.ui-expander-left .ui-expander-header.ui-state-active .ui-icon,.ui-expander-left .ui-expander-header.ui-state-hover.ui-state-active .ui-icon{background-position:-98px -2px;}
+.wijmo-wijslider-horizontal{position:relative;}
+.wijmo-wijslider-horizontal .wijmo-wijslider-decbutton{position:absolute;left:0px;right:auto;cursor:pointer;}
+.wijmo-wijslider-horizontal .wijmo-wijslider-incbutton{position:absolute;left:auto;right:0px;cursor:pointer;}
+.wijmo-wijslider-vertical{position:relative;}
+.wijmo-wijslider-vertical .wijmo-wijslider-decbutton{position:absolute;top:0px;bottom:auto;cursor:pointer;}
+.wijmo-wijslider-vertical .wijmo-wijslider-incbutton{position:absolute;top:auto;bottom:0px;cursor:pointer;}
+.wijmo-wijdialog .wijmo-wijdialog-hasframe{padding:0;}
+.wijmo-wijdialog-defaultdockingzone{position:fixed;bottom:0px;left:0px;}
+* html .wijmo-wijdialog-defaultdockingzone .ui-dialog-titlebar{float:left;}
+.wijmo-wijdialog-captionbutton{display:inline-block;outline:none;border:1px solid #000000;background:#a8a9ac;filter:expression("progid:DXImageTransform.Microsoft.gradient(startColorstr='#6a6b6e',endColorstr='#3e3e3e')");-ms-filter:"progid:DXImageTransform.Microsoft.gradient(startColorstr='#6a6b6e',endColorstr='#3e3e3e')";background:-moz-linear-gradient(0% 100% 90deg, #3e3e3e, #6a6b6e);background:-webkit-gradient(linear, left top, left bottom, from(#6a6b6e), to(#3e3e3e));background:-o-linear-gradient(0% 100% 90deg, #3e3e3e, #6a6b6e);color:#ffffff;}.wijmo-wijdialog-captionbutton .ui-icon{margin:1px;background-image:url(images/ui-icons_ffffff_256x240.png);}
+.wijmo-wijcalendar{-webkit-user-select:none;-moz-user-select:none;display:block;}
+.wijmo-wijcalendar-header{position:relative;}
+.wijmo-wijcalendar-header-inner{margin:0 1.8em;line-height:1.8em;}
+.wijmo-wijcalendar .ui-datepicker-header{padding:1px;}
+.wijmo-wijcalendar .ui-datepicker-header .ui-state-default{border-color:transparent;background:none;color:inherit;}
+.wijmo-wijcalendar .wijmo-wijcalendar-table{table-layout:fixed;}
+.wijmo-wijcalendar-prevpreview-button,.wijmo-wijcalendar-nextpreview-button{width:16px;margin-top:35%;float:left;}
+.wijmo-wijcalendar-nextpreview-button{float:right;}
+.wijmo-wijcalendar-preview-wrapper .wijmo-wijcalendar{float:left;width:18em;}
+.wijmo-wijcalendar-preview-wrapper .wijmo-wijcalendar .ui-datepicker-calendar{width:80%;float:left;}
+.wijmo-wijcalendar-title,.wijmo-wijcalendar-selectable{cursor:pointer;}
+.ui-datepicker-other-month{text-align:right;}
+.wijmo-wijcalendar-mygrid td span,.wijmo-wijcalendar-mygrid td a{display:block;text-align:center;text-decoration:none;padding:0;}
+.wijmo-wijcalendar-mygrid .ui-state-default a,.wijmo-wijcalendar-mygrid .ui-state-default a:hover,.wijmo-wijcalendar-mygrid .ui-state-hover a,.wijmo-wijcalendar-mygrid .ui-state-hover a:hover{color:inherit;}
+.ui-header-custom img,.ui-footer-custom img{width:100%;}
+.wijmo-wijcalendar table.wijmo-wijcalendar-mygrid{margin-top:2px;border-collapse:separate;table-layout:fixed;}
+.wijmo-wijcalendar table.wijmo-wijcalendar-mygrid .ui-datepicker-week-day{cursor:pointer;}
+.wijmo-wijcalendar-aniwrapper{position:relative;left:0;top:0;}
+.wijmo-wijcalendar-multi-aniwrapper{position:absolute;overflow:hidden;}
+.ui-datepicker-rtl .ui-datepicker-prev .ui-icon,.ui-datepicker-rtl .ui-datepicker-next .ui-icon{direction:rtl;}
+.wijmo-wijcalendar-header{position:relative;border:none;-moz-border-radius-bottomleft:0px;-webkit-border-bottom-left-radius:0px;border-bottom-left-radius:0px;-moz-border-radius-bottomright:0px;-webkit-border-bottom-right-radius:0px;border-bottom-right-radius:0px;background:#747073;filter:expression("progid:DXImageTransform.Microsoft.gradient(startColorstr='#4c4c4e',endColorstr='#282425')");-ms-filter:"progid:DXImageTransform.Microsoft.gradient(startColorstr='#4c4c4e',endColorstr='#282425')";background:-moz-linear-gradient(0% 100% 90deg, #282425, #4c4c4e);background:-webkit-gradient(linear, left top, left bottom, from(#4c4c4e), to(#282425));background:-o-linear-gradient(0% 100% 90deg, #282425, #4c4c4e);color:#ffffff;}
+.wijmo-wijcalendar .ui-datepicker-group .ui-datepicker-header{border-radius:0px;-webkit-border-radius:0px;-moz-border-radius:0px;}
+.ui-datepicker-title.wijmo-wijcalendar-title{line-height:2.3em;}
+.wijmo-wijprogressbar{moz-user-select:none;text-align:left;float:left;position:relative;overflow:hidden;}
+.wijmo-wijprogressbar .ui-progressbar-value{position:absolute;border-width:0;margin:0;}
+div.wijmo-wijprogressbar-east{width:200px;height:1.1em;}
+div.wijmo-wijprogressbar-west{width:200px;height:1.1em;}
+div.wijmo-wijprogressbar-south{height:200px;width:1.1em;line-height:100%;}
+div.wijmo-wijprogressbar-north{height:200px;width:1.1em;line-height:100%;}
+.wijmo-wijprogressbar-east .ui-progressbar-value{left:0;height:100%;}
+.wijmo-wijprogressbar-west .ui-progressbar-value{right:0;height:100%;}
+.wijmo-wijprogressbar-south .ui-progressbar-value{top:0;width:100%;}
+.wijmo-wijprogressbar-north .ui-progressbar-value{bottom:0;width:100%;}
+.wijmo-wijprogressbar .ui-progressbar-label{display:block;position:absolute;text-align:center;width:100%;height:100%;}
+.wijmo-wijprogressbar .wijmo-wijprogressbar-lb-west{left:0;width:auto;}
+.wijmo-wijprogressbar .wijmo-wijprogressbar-lb-east{right:0;width:auto;}
+.wijmo-wijprogressbar .wijmo-wijprogressbar-lb-south{bottom:0;height:auto;}
+.wijmo-wijprogressbar .wijmo-wijprogressbar-lb-north{top:0;height:auto;}
+.wijmo-wijprogressbar-east .wijmo-wijprogressbar-lb-running,.wijmo-wijprogressbar-west .wijmo-wijprogressbar-lb-running{display:inline;width:auto;}
+.wijmo-wijprogressbar-north .wijmo-wijprogressbar-lb-running,.wijmo-wijprogressbar-south .wijmo-wijprogressbar-lb-running{height:auto;}
+.wijmo-wijprogressbar-north .ui-progressbar-label,.wijmo-wijprogressbar-south .ui-progressbar-label{-webkit-transform:rotate(-90deg);-moz-transform:rotate(-90deg);}
+fieldset{padding:5px;text-shadow:0px 1px 0px #fff;outline:none;border:1px solid #a9a9a9;border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px;margin:0px;}
+legend{font-size:1.1em;}
+.wijmo-wijtextbox.ui-widget,textarea,input[type='text'],input[type='password'],input[type='file']{padding:5px;text-shadow:0px 1px 0px #fff;outline:none;border:1px solid #a9a9a9;color:#333333;border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px;background:#ffffff;filter:expression("progid:DXImageTransform.Microsoft.gradient(startColorstr='#edeff0',endColorstr='#ffffff')");-ms-filter:"progid:DXImageTransform.Microsoft.gradient(startColorstr='#edeff0',endColorstr='#ffffff')";background:-moz-linear-gradient(0% 100% 90deg, #ffffff, #edeff0);background:-webkit-gradient(linear, left top, left bottom, from(#edeff0), to(#ffffff));background:-o-linear-gradient(0% 100% 90deg, #ffffff, #edeff0);}.wijmo-wijtextbox.ui-widget:hover,textarea:hover,input[type='text']:hover,input[type='password']:hover,input[type='file']:hover,.wijmo-wijtextbox.ui-widget:focus,textarea:focus,input[type='text']:focus,input[type='password']:focus,input[type='file']:focus{background:#ffffff;filter:expression("progid:DXImageTransform.Microsoft.gradient(startColorstr='#dfe0e1',endColorstr='#ffffff')");-ms-filter:"progid:DXImageTransform.Microsoft.gradient(startColorstr='#dfe0e1',endColorstr='#ffffff')";background:-moz-linear-gradient(0% 100% 90deg, #ffffff, #dfe0e1);background:-webkit-gradient(linear, left top, left bottom, from(#dfe0e1), to(#ffffff));background:-o-linear-gradient(0% 100% 90deg, #ffffff, #dfe0e1);}
+input[type='button'],input[type='reset'],input[type='submit']{border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px;border-width:1px;border-style:solid;cursor:pointer;color:#333333;border-color:#a9a9a9;background:#ffffff;filter:expression("progid:DXImageTransform.Microsoft.gradient(startColorstr='#fdfdfd',endColorstr='#ececec')");-ms-filter:"progid:DXImageTransform.Microsoft.gradient(startColorstr='#fdfdfd',endColorstr='#ececec')";background:-moz-linear-gradient(0% 100% 90deg, #ececec, #fdfdfd);background:-webkit-gradient(linear, left top, left bottom, from(#fdfdfd), to(#ececec));background:-o-linear-gradient(0% 100% 90deg, #ececec, #fdfdfd);}input[type='button']:hover,input[type='reset']:hover,input[type='submit']:hover,input[type='button']:focus,input[type='reset']:focus,input[type='submit']:focus{color:#ffffff;border-color:#2e63a5;background:#93ffff;filter:expression("progid:DXImageTransform.Microsoft.gradient(startColorstr='#5e9ae2',endColorstr='#3570b8')");-ms-filter:"progid:DXImageTransform.Microsoft.gradient(startColorstr='#5e9ae2',endColorstr='#3570b8')";background:-moz-linear-gradient(0% 100% 90deg, #3570b8, #5e9ae2);background:-webkit-gradient(linear, left top, left bottom, from(#5e9ae2), to(#3570b8));background:-o-linear-gradient(0% 100% 90deg, #3570b8, #5e9ae2);}
diff --git a/public/admin/js/osmplayer/jquery-ui/absolution/images/selector.png b/public/admin/js/osmplayer/jquery-ui/absolution/images/selector.png
new file mode 100755
index 0000000000000000000000000000000000000000..05f441d7d4625b52664f70bc8359100b509a2bf2
GIT binary patch
literal 2907
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
FV1lDlV($O|

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/absolution/images/ui-icons_222222_256x240.png b/public/admin/js/osmplayer/jquery-ui/absolution/images/ui-icons_222222_256x240.png
new file mode 100755
index 0000000000000000000000000000000000000000..b273ff111d219c9b9a8b96d57683d0075fb7871a
GIT binary patch
literal 4369
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

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/absolution/images/ui-icons_eeeeee_256x240.png b/public/admin/js/osmplayer/jquery-ui/absolution/images/ui-icons_eeeeee_256x240.png
new file mode 100755
index 0000000000000000000000000000000000000000..01bb36ba7668a4a9e181f4af7ad89dcf1fe3022d
GIT binary patch
literal 4369
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

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/absolution/images/ui-icons_ffffff_256x240.png b/public/admin/js/osmplayer/jquery-ui/absolution/images/ui-icons_ffffff_256x240.png
new file mode 100755
index 0000000000000000000000000000000000000000..42f8f992c727ddaa617da224a522e463df690387
GIT binary patch
literal 4369
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

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/black-tie/images/ui-bg_diagonals-thick_8_333333_40x40.png b/public/admin/js/osmplayer/jquery-ui/black-tie/images/ui-bg_diagonals-thick_8_333333_40x40.png
new file mode 100644
index 0000000000000000000000000000000000000000..b84db3b486dbfc5d850c803be01d6d7574264106
GIT binary patch
literal 252
zcmeAS@N?(olHy`uVBq!ia0vp^8X(NU1|)m_?Z^dEhdo^!Ln2z=Uial{Hjrp}xIOZz
z-_HMYH?5ZD&YTs$I7Q>Wj%%B{<KaC{9Qm7$NPPCT|9G$b{m#Yb??#55%DOKez{}1V
zAjqyBAj<w=N@2hckFZnoDsHG1nDa^H2QadWF5u$ha!{2?aWIupad4HH;}9y-5Pa<5
zf&QvxZ#vs$ncms(?LKffy;OLIG&}DCCO$0(QJEWR8-0z!zjfwLTAjMhGwgH}kQ)@%
zl{;zXCX;QR>!vj3PTIQZ;tjQxQ@?(iKKltnqQNJIvI)8YK<_Yky85}Sb4q9e0OK@a
AjQ{`u

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/black-tie/images/ui-bg_flat_65_ffffff_40x100.png b/public/admin/js/osmplayer/jquery-ui/black-tie/images/ui-bg_flat_65_ffffff_40x100.png
new file mode 100644
index 0000000000000000000000000000000000000000..ac8b229af950c29356abf64a6c4aa894575445f0
GIT binary patch
literal 178
zcmeAS@N?(olHy`uVBq!ia0vp^8bF-F!3HG1q!d*FsY*{5$B>N1x91EQ4=4yQYz+E8
zPo9&<{J;c_6SHRil>2s{Zw^OT)6@jj2u|u!(plXsM>LJD`vD!n;OXk;vd$@?2>^GI
BH@yG=

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/black-tie/images/ui-bg_glass_40_111111_1x400.png b/public/admin/js/osmplayer/jquery-ui/black-tie/images/ui-bg_glass_40_111111_1x400.png
new file mode 100644
index 0000000000000000000000000000000000000000..1ec8127735b5168f9a9efbcb171bd3f3f6e3e5b5
GIT binary patch
literal 124
zcmeAS@N?(olHy`uVBq!ia0vp^j6gJjgAK^akKnouq?|on978O6-=5#dd%%Fh<zh2)
z)wIO_XWtxaU7FIMvFn-W{@*iZK4nm7`Jw&d-P1HS^~w`x*h5+SJ9baB>3zbU)*`Sz
Yhg+6ywq5XbA)s*#p00i_>zopr0DQVD?*IS*

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/black-tie/images/ui-bg_glass_55_1c1c1c_1x400.png b/public/admin/js/osmplayer/jquery-ui/black-tie/images/ui-bg_glass_55_1c1c1c_1x400.png
new file mode 100644
index 0000000000000000000000000000000000000000..93db02b0f8ec0777b7529847ef28857a2cc794d6
GIT binary patch
literal 171
zcmeAS@N?(olHy`uVBq!ia0vp^j6gJjgAGVZ#9R3S1&Taf978O6-(IxlVo_vZz97K;
z@%D|5j-=d|wtMQIhR*SRvyM6Y^DPyY;&Z+X77Rt_X74TEaP8OY50g*tyvB4~V!@P8
z>!;0US-bVDgz}6aCT9-)j8gmkHOy0j%%%n{Fl763ulbzig(&W<wT_BMxM#)L9c9*H
W5SjExT=p%{b_P#ZKbLh*2~7Z4BR{kN

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/black-tie/images/ui-bg_highlight-hard_100_f9f9f9_1x100.png b/public/admin/js/osmplayer/jquery-ui/black-tie/images/ui-bg_highlight-hard_100_f9f9f9_1x100.png
new file mode 100644
index 0000000000000000000000000000000000000000..2cb80364bbf007311eee29931603c867c2db68d7
GIT binary patch
literal 86
zcmeAS@N?(olHy`uVBq!ia0vp^j6j^i!3HGVb)pi0l&q(VV~E7m<R71(pRZSAV`FQ3
k==JCS|M@u^A9^w{_$u*k+*Xpl9;lGP)78&qol`;+0B{Q#6#xJL

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/black-tie/images/ui-bg_highlight-hard_40_aaaaaa_1x100.png b/public/admin/js/osmplayer/jquery-ui/black-tie/images/ui-bg_highlight-hard_40_aaaaaa_1x100.png
new file mode 100644
index 0000000000000000000000000000000000000000..a7aeeb0ae7256aaf4a095dc3557bb36cdf82c2ad
GIT binary patch
literal 100
zcmeAS@N?(olHy`uVBq!ia0vp^j6j^i!3HGVb)pi0l(wgfV~E7m<Qv=b@7Jrbv9Yy1
zbp7-Hzr5F<-{1MY9z0h%^6&qDdx<>`#!L(mv$T#pyYSKnsExtX)z4*}Q$iB}ReK?`

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/black-tie/images/ui-bg_highlight-soft_50_aaaaaa_1x100.png b/public/admin/js/osmplayer/jquery-ui/black-tie/images/ui-bg_highlight-soft_50_aaaaaa_1x100.png
new file mode 100644
index 0000000000000000000000000000000000000000..a0ffd222d91c16d54d865eb8b1050bd65ef22dd5
GIT binary patch
literal 102
zcmeAS@N?(olHy`uVBq!ia0vp^j6j^i!3HGVb)pi0l&+_XV~E7mWQ&>~AL`ZE*x1?>
yUH<(4FW;O10>8e$mv3X4B~hp6H@RJyk>R|k(~%6Fze|A{89ZJ6T-G@yGywqq<Q@zF

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/black-tie/images/ui-bg_inset-hard_45_cd0a0a_1x100.png b/public/admin/js/osmplayer/jquery-ui/black-tie/images/ui-bg_inset-hard_45_cd0a0a_1x100.png
new file mode 100644
index 0000000000000000000000000000000000000000..718aa1176731af7f4d39f31f2298156844502535
GIT binary patch
literal 123
zcmeAS@N?(olHy`uVBq!ia0vp^j6j^i!3HGVb)pi0l#{26V~E7myZr|_8yp0V7;Uz$
zF8I4W)%Vv0F_#a*9F?uf?=Lgdx3paCeR<5!fb&~agmDDtw=;{&eGNh*LgV%KG;n`N
WXEw95+b9Y&jlt8^&t;ucLK6UiL?~+j

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/black-tie/images/ui-bg_inset-hard_55_ffeb80_1x100.png b/public/admin/js/osmplayer/jquery-ui/black-tie/images/ui-bg_inset-hard_55_ffeb80_1x100.png
new file mode 100644
index 0000000000000000000000000000000000000000..0286bb1d7dae22b99ab4b8c360aada0cd37ec525
GIT binary patch
literal 113
zcmeAS@N?(olHy`uVBq!ia0vp^j6j^i!3HGVb)pi0l!d2@V~E7myZsw^85DR9&k6YV
zEWS^}oBhVb2@z`|<~g04$o50%Q0K-g1(&iMr!3kRF4Df}x%j(e#*8}7xT0N7u|P8z
NJYD@<);T3K0RZ5QB^Uqz

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/black-tie/images/ui-icons_222222_256x240.png b/public/admin/js/osmplayer/jquery-ui/black-tie/images/ui-icons_222222_256x240.png
new file mode 100644
index 0000000000000000000000000000000000000000..b273ff111d219c9b9a8b96d57683d0075fb7871a
GIT binary patch
literal 4369
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

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/black-tie/images/ui-icons_4ca300_256x240.png b/public/admin/js/osmplayer/jquery-ui/black-tie/images/ui-icons_4ca300_256x240.png
new file mode 100644
index 0000000000000000000000000000000000000000..fadab600023d46ab974a36f362367f86c12e722b
GIT binary patch
literal 4369
zcmd^?`8O2)_s3^5V>gU_oh;e6Y?W<DMKqQq6&cc^>`T^R$dbKM*<!2_S(B_8$(j(!
zSZ2^f8e?ZLwy*d5^Zoo4pT~KfdtdjLd(OS*-t&6C;;qmZIaq~R0RRApnW>2l002C`
z0#=#9$ChYzY4_MISy|Ygw<v)8@0?84duqppqy25rR{(<WQxImWw#S(&lD6KcyBJ}f
zZ|q1teq+;1;x|sJ*(k+m#zl5K=pF1nZ6ey*7*_tFIQebGd$|L=^a?8!lv?QWGQY}w
zI_H9cXZW-G_lHdn006ESGZQ1*pw~-|$u5)i+|XXrvbpHz%Aszw8|G*4Z9I2>IObWA
zrTlip-)wA)eB=YgL3|96$n&+*lRK{F1|aEW1MzlUz>AlCJv~G)uNCb^OilrS=m-62
zSB1NOf;R(rCAc|SjSB)k|4|KV+9<EQ%0DyD@6YxSx8!v+Rc7wZ^#a1{AYn5wn1{rz
zsEEK{o=?<a&TnJQg3G6~E7<9VZ(7|U|KczXs^(ExM=0q_hr|}cOn8Z(VA1d;aDlk!
zJ0t_pd8wv#as@oxFy0Jki>{9lAf8zcMZS3UFE!l_Yo^}aKJaU(FYA)0WTC)S2!0YF
z!375!GZt<ZOXuN`DBGD)w<gn3)!(x&<Hctf+G!{9BkU=rJ{XhpMcoQE1Ate!3J#bl
zm)!}x%=iQk1sGGHJGA~|wS9SHR<dA?K>@C_j=M=b?Q(2mbNzp4oQq6{y+fM8`yUXg
zT3pD@RN+mQcpDd3qbN%5#p$dm-pO;WarDlzAyR&o(iF-z66Mx%FvRTwiTCwUbB=W9
zv_G-QTMv7|s20ns@{Xt9X;NZYoYvQL;k|}z2`ysPs;>Cf_3nN^I6*F=UD#S6;T9^A
zvZ28{p}$=4mtQi*<><GTxcxa^5!5A#XE`Yi=i<tW7&zO%l`9~fmI#J+=6@RG<5Y84
z`$MaP{Vht#m!&hm_idTUM!9^oEqE;~*Yb4?FKUj}60OWVn%Q^I%K|CcE`I*&>A@0g
z{iY|1MzjI8<Y(G%@|t;o6G@43!1xcd`4^CVs27GctNLnWo;+sn0E=fCy7$DThi6gR
z10SO|1z4la!7z+)-vQWQsI3`^x{n+!oZIIyN5JiHp4@yqos!OPB+FCTc4gr1Q6eZ6
z;G=kH)yUPWw>E#m*)Iyfdd>o2QkWb}-g6`_AnKj1zxi8kQF8c<XlG)_jXct>mZ)t@
zTfEHAhqSFALM1-6x91;-52t934p0S}^*BL1n?q?hE|F<?(KxnDQ<H7N(%$@A7*j%U
z)WE&RjqPwnC&c9<Ieze-`_QNJxtx~Kj7U}_yPfo&t-7)O))w$N(4{~*A<Phk{Bd_<
z)Ogz7cZMz_iyCe;0y#99)y+0uQo_dKjE!&4Za6^gSl9Y|liN!QneWRDJNldT&~B9p
zZE)vfr@A|ZyavYJc(H%FqVbqTQnzq$8`hTzZ=!u~cfn5a<Va3ev%tC1$K^v^q@T6E
z;RhCXN&KQ*41@=gJ|+D_bMpGD=^l`C+-tInBzaYyzA|Eq^3IC6;B?1V8-D50P-!V>
zmd@EO>9Ihrcz0R39q+2MLDhaS6ojj)ivC)y4H_xdh4j#3RIA45X|yCb#=zVcV&(9K
z&R^{WX&7I;6_BJZlQwC|$FPmMTwAfAQiE-TyjlfVOK8k9Q`d0yDk5m&d)RLZ7EsPD
znlIm)zG{HmX4?CGsQfE15|f@vO?Q6015fYZZ&UOOmZso-1N;2N;&#&Ir_k?QA}$=$
zbzpqwSM-Bj1{YMA%M&e;kZ<RynKZhi#NF6#gizSZv|szBFwhOwf(n+yiVVgnR*7+C
z7w2QB&TRFMHCV()x8O{nbT8v49Em6OcsE~I++-{HLPp<KNzAP1sGoAv7wo_QC_rme
zylYg|2M*S6v1X;6DrV)2P3{C{A#M;HjB)Uvxv7VQES!^Y^Uv2j%|+PN>{W(>eF;GJ
zlvG6mr2p=FBJEiXG|KoX?wm1FaO6AmvS}oX8*foGUT`xQzz)P_#7-IzdcXMw6|KdS
z4!$6~!$Nj+jR}<QR6gBVmzsd8L|;(S0sc0q)I72t&k)q~&x1;cY=#h?sf)#43>VF-
zJ)Gvoq@>0YvpROcRP&i$L>No|3j-!b>tudym8CR+c(h8}2nVs&8+pkm6oQJ?yhB1*
zTd@F9H)!2K24HW58>4GvLTDV{+n@3{?RmES_Fc{iBOa8WPE$M2Dw8-q!$N|(-INL-
zBSmlIK~+^$2+gIdIO_e=KfDfks(lTC0vr<@or36Y%9*4!4dVr#VUchzCn6ariy<%r
zegP3)5z)A1Z%gHjuN-GV4KUk_{L8#7LKYIbo83CX$=xJJ3~fRJ0jf5Bj{6~l`<iV~
zy{r%jv8`)e_P#6%z`qq&<1!^dMX)FR+25>xTpqZk{^X~urO$>hSe9_gs{C7i*&BYv
zFCn5z{$|%?Wy9`>dj2^4cg*#>-``tXx9RslWZXor*I(K7-!>1;W(>!B)RN|iX?D5(
zd)oQEv%|GE5g5jg?|WGT^=RTr>?GZo<?5V}V5Z!<uimClPo!P2?+}x(k%B@SiC6^(
zhui~ekC;eh*RU|9zslbDe%&e?Q%PH1DxQ55HTc&L_oqJ`A(s=fciEkMr!6d?fw`Y|
z-?~lQIYt4St7wbw=cona7->y55na1W_H4H$6&3L8=%?<Rc=R4G<o@lp3;vvOdT2#m
zW$Xem$=-kbr8KU%Bk$Jh<6MtYVv`k?ro#!c=Lt?TRSd1qQ0lOHn$LQ^9|fp@w_%#Z
zkSzzE({s;oZ-J$PG)F}>KSzqxoLP{{TViT?H+VQblX=Z_GBuVqEWY}ZapQo*CGV)l
z)qoNAZr98EFrCvboP{p?>UBMIT60(@CrUfByAhmWK$uKFIn%i-5Xa!FZ%h864wNBU
z%gRPDO;g7VU%O9qj5WMeJXz=)dhnnD{R}Zv+g!<&H?O%b&pz?B15=6y{z**2skE|9
zPFFn1gCKYJ7rP6)kM=8HrcTXrrl*x`(&T+u>Q3?F4YzC84m?{lOmQwlBK<p<6)c>H
z+)l6fe5itXCAhW)6^mq~me9O?uB-3e0XezsjecDT*w)!SyrYQzw&iqzE)ZK!lB1eL
z+9DqBD{;<rkS#c|U<->}-@RQAE3L$)u$mn1poN5Dn0nIfn7xD`q=}JB-oLXVhIs;e
zb6E~1P(#&esT)F{H(3eSd*r|(qqMmPn$A)M#$@3;ymvadR>f@oaFZj#p{lnC<5Ruv
ztuZ2=-V~0UejWc_k<{!iHDOLC1hk>GoLg<QTe#32p$TRaPsTHP7M-9+^!x>vQZ6;V
z-pkhp-aHtW@K~oVE)3NS_om=Q-C4tY?|>*wE%OwPgr0IZ##p&7u7-5@h)>0BVRt^+
z#)}+;jb)|E=Z?=pp2|pJV1+|baW-1#_{4xsWkRV&kd{+^0S)aj&aJ6{8DVC>>%kh$
zfAk+X-|>ntThzgauWwbT2<LnALEVj@r0Idj1*{kz%bY=Z8ZeFJR+T~S;N_6NEJJif
zO-Pr}pI&2oSCy2G%OQtfAANhW2>$e8WN@{<+-l4<;&eR1``wYAwqYglG!c$|27@0c
z1Z`0lMnzSc!Jo7zlC>`aws8^_v<q`L_F5w;F`e=x65@^J-`-x96M4JtomZ0m4o0|#
z?!RAH0?+&T0cX&wTi&N9FtW^bTxxVxJ#g1yR#Bl};mX@->>9HQH+UY^T{`LaSZCl<
ziRC2TZW(IAVBnm!@Pp1NLV!miQ=5)6jY1h)jMX0=>X|!0MG}~bAJzc;?l=fu&|aO)
z+hR`4H9$=VXsH2t7P$#l6Mjcioxn(~s3Nese%B(8ehJL`pa7{5`PtkK`ci1Pd@3q=
zl!7Bsc1X>)rO^^Xm71_*Ifi|s?<pxMsoTozYt)7Jcng7zk@11LaRV~AWhEN#Shcso
zsWqXJE9i%>`+VK6TYZHLyQ|iryDtmxFXe;2L1bJ%y!SUD`*Ua->Wsk749m{YD8~7m
zTuQ0Fj0-i=YvxpczrI*SEZOt*dXf4L%Y)Z(;>P&rUZt&9r1?FCcPTScIXQgaJkkIp
za0V|!-|aP3tsQZ@Z(^lHAeq#2I5bRhJJU(W{_v78iy7x+DJAVz`cQ1+vK-d|*JM;W
z=yA+)@n4BC^Nt~t4y!?_tasm!(<L3fs>fslc!qwLf5`Dqco<4}q-(SY_;ya?XKY|D
zF0j-lLc&REyT-nm3(iiK3o6+jPE_@gsYmcE>|PUTU@JZBWX|sH7n!>6z4YawlNlXo
zpRn64>r&FoP`zu<Pd=<Q7o)q?Ngnr2N{SL|ea@oAjqrr&l>graj+q%;pH}L-dJBLW
zD>JbE-4{NpwHw)#DeaVQ@USh_((56=?pT2!jeWcxv(>?G1InsJ-wO??3vL0O0Hm9P
zf@+xyYPmoDVe+6E8i~jOAMF%g9S%>b9`InYAjn}5UaBWN*N<RD)gD~-2{`5B()Iu;
zIorUSpV)9n*Y3bbeS#+i_wV}eCGYsT28zu^@a>1B{Pd*C&8>@LEh~dlc*85cZ?IDs
z9y35zf$Y^4L;I^_U8R|bEI^E%tRiBM4T_7f!=GFcxzu1o9lPN;TT&rVa<;H|a4h5;
zR2F<NqC6doXv!t^pyncjIp~@#6%zp)>4)seB^bNOG*}=UNH71MAhmrEVuiBK;6NLk
zQaw5dedFLIpF)2DSOf}R+eyj}caGEuvLFO<oE31gChI2A^t}^)wk){%GnaITgO(j+
zPeU7;T0WD)HAH8x*jP=9<xgmLt!(WEM=0X62LDm9_9FYcxEK8b))fj>6XYge)_=qF
z@Ba<&4b8d>WvUiAT)p+7HDFG9X9Fm)4}2Zw;nJ~a=lN=QVm&a2-NCMPP9khKj!fq>
z`T8vZZHJzlhaU#V2@-SwIW*3KiSe1mhkClN%T&Lf#~Pj&S2%uuXDyM8(&_NM<b`{O
zuT{^qK`X_zGy3MKt#?^($CzMc*b~O?L8P~=mp@+2)uDT(;N%&cO#op2;8pfZ^%AR3
zGhi8BBAH+%OB91gZTb_RwcOG=;Wuw2TsPNctMQ#sM&MT3%peSMR%?uffldmvA<P}3
zwTNcx^k7-@uVRMS+D7QvGw~kNT|ZlsD-}v=mQZ&|s0UZiBzwfwF2)X*_X+(6?z+g1
z<lay&`Vn|!T}&GA3qnj!$I_QvFW`P1ZF;wT50g1z;(7tz@X;XiV6Pc_k&X+UhD~iZ
zqyAB&$9nXQ^;E7YvXPaiY*e6$pLPUZ(qMf#6u<)7+5L2x?)4em(E712oC<st+>Fil
z;M)rf(Ie_?@x5H}l(0Ip<J)!Z;nC7sWPpC&+p6lYa+=c^*t7Luk<1iAYkQAHfyjrG
o6tEeWJyVzGcJ{NHKRbrK^M0ZddI46)Uwwetd9+ETF(&H&0BxEp;Q#;t

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/black-tie/images/ui-icons_bbbbbb_256x240.png b/public/admin/js/osmplayer/jquery-ui/black-tie/images/ui-icons_bbbbbb_256x240.png
new file mode 100644
index 0000000000000000000000000000000000000000..146dbd10b99cc7529a1f055e4ac7d4b2284247e2
GIT binary patch
literal 4369
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

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/black-tie/images/ui-icons_ededed_256x240.png b/public/admin/js/osmplayer/jquery-ui/black-tie/images/ui-icons_ededed_256x240.png
new file mode 100644
index 0000000000000000000000000000000000000000..608e09d69942ed96bae19aa44d5ea1c52d5c3927
GIT binary patch
literal 5355
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
Xk{?^~7G&f9ewk0z^i*q<?W6w(5eA#U

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/black-tie/images/ui-icons_ffcf29_256x240.png b/public/admin/js/osmplayer/jquery-ui/black-tie/images/ui-icons_ffcf29_256x240.png
new file mode 100644
index 0000000000000000000000000000000000000000..8c376157d037d4fa61dff6f20a1eed495d919c14
GIT binary patch
literal 5355
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
W;3(aKZ2WuT0Ul`@YSgJY#r_Z9jayg%

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/black-tie/images/ui-icons_ffffff_256x240.png b/public/admin/js/osmplayer/jquery-ui/black-tie/images/ui-icons_ffffff_256x240.png
new file mode 100644
index 0000000000000000000000000000000000000000..42f8f992c727ddaa617da224a522e463df690387
GIT binary patch
literal 4369
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

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/black-tie/jquery-ui-1.8.18.custom.css b/public/admin/js/osmplayer/jquery-ui/black-tie/jquery-ui-1.8.18.custom.css
new file mode 100644
index 00000000000..2322e8cc04c
--- /dev/null
+++ b/public/admin/js/osmplayer/jquery-ui/black-tie/jquery-ui-1.8.18.custom.css
@@ -0,0 +1,565 @@
+/*
+ * jQuery UI CSS Framework 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Theming/API
+ */
+
+/* Layout helpers
+----------------------------------*/
+.player-ui .ui-helper-hidden { display: none; }
+.player-ui .ui-helper-hidden-accessible { position: absolute !important; clip: rect(1px 1px 1px 1px); clip: rect(1px,1px,1px,1px); }
+.player-ui .ui-helper-reset { margin: 0; padding: 0; border: 0; outline: 0; line-height: 1.3; text-decoration: none; font-size: 100%; list-style: none; }
+.player-ui .ui-helper-clearfix:before, .player-ui .ui-helper-clearfix:after { content: ""; display: table; }
+.player-ui .ui-helper-clearfix:after { clear: both; }
+.player-ui .ui-helper-clearfix { zoom: 1; }
+.player-ui .ui-helper-zfix { width: 100%; height: 100%; top: 0; left: 0; position: absolute; opacity: 0; filter:Alpha(Opacity=0); }
+
+
+/* Interaction Cues
+----------------------------------*/
+.player-ui .ui-state-disabled { cursor: default !important; }
+
+
+/* Icons
+----------------------------------*/
+
+/* states and images */
+.player-ui .ui-icon { display: block; text-indent: -99999px; overflow: hidden; background-repeat: no-repeat; }
+
+
+/* Misc visuals
+----------------------------------*/
+
+/* Overlays */
+.player-ui .ui-widget-overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }
+
+
+/*
+ * jQuery UI CSS Framework 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Theming/API
+ *
+ * To view and modify this theme, visit http://jqueryui.com/themeroller/?ffDefault=Verdana,%20Arial,%20sans-serif&fwDefault=normal&fsDefault=1.1em&cornerRadius=4px&bgColorHeader=333333&bgTextureHeader=08_diagonals_thick.png&bgImgOpacityHeader=8&borderColorHeader=a3a3a3&fcHeader=eeeeee&iconColorHeader=bbbbbb&bgColorContent=f9f9f9&bgTextureContent=04_highlight_hard.png&bgImgOpacityContent=100&borderColorContent=cccccc&fcContent=222222&iconColorContent=222222&bgColorDefault=111111&bgTextureDefault=02_glass.png&bgImgOpacityDefault=40&borderColorDefault=777777&fcDefault=e3e3e3&iconColorDefault=ededed&bgColorHover=1c1c1c&bgTextureHover=02_glass.png&bgImgOpacityHover=55&borderColorHover=000000&fcHover=ffffff&iconColorHover=ffffff&bgColorActive=ffffff&bgTextureActive=01_flat.png&bgImgOpacityActive=65&borderColorActive=cccccc&fcActive=222222&iconColorActive=222222&bgColorHighlight=ffeb80&bgTextureHighlight=06_inset_hard.png&bgImgOpacityHighlight=55&borderColorHighlight=ffde2e&fcHighlight=363636&iconColorHighlight=4ca300&bgColorError=cd0a0a&bgTextureError=06_inset_hard.png&bgImgOpacityError=45&borderColorError=9e0505&fcError=ffffff&iconColorError=ffcf29&bgColorOverlay=aaaaaa&bgTextureOverlay=04_highlight_hard.png&bgImgOpacityOverlay=40&opacityOverlay=30&bgColorShadow=aaaaaa&bgTextureShadow=03_highlight_soft.png&bgImgOpacityShadow=50&opacityShadow=20&thicknessShadow=8px&offsetTopShadow=-8px&offsetLeftShadow=-8px&cornerRadiusShadow=8px
+ */
+
+
+/* Component containers
+----------------------------------*/
+.player-ui .ui-widget { font-family: Verdana, Arial, sans-serif; font-size: 1.1em; }
+.player-ui .ui-widget .ui-widget { font-size: 1em; }
+.player-ui .ui-widget input, .player-ui .ui-widget select, .player-ui .ui-widget textarea, .player-ui .ui-widget button { font-family: Verdana, Arial, sans-serif; font-size: 1em; }
+.player-ui .ui-widget-content { border: 1px solid #cccccc; background: #f9f9f9 url(images/ui-bg_highlight-hard_100_f9f9f9_1x100.png) 50% top repeat-x; color: #222222; }
+.player-ui .ui-widget-content a { color: #222222; }
+.player-ui .ui-widget-header { border: 1px solid #a3a3a3; background: #333333 url(images/ui-bg_diagonals-thick_8_333333_40x40.png) 50% 50% repeat; color: #eeeeee; font-weight: bold; }
+.player-ui .ui-widget-header a { color: #eeeeee; }
+
+/* Interaction states
+----------------------------------*/
+.player-ui .ui-state-default, .player-ui .ui-widget-content .ui-state-default, .player-ui .ui-widget-header .ui-state-default { border: 1px solid #777777; background: #111111 url(images/ui-bg_glass_40_111111_1x400.png) 50% 50% repeat-x; font-weight: normal; color: #e3e3e3; }
+.player-ui .ui-state-default a, .player-ui .ui-state-default a:link, .player-ui .ui-state-default a:visited { color: #e3e3e3; text-decoration: none; }
+.player-ui .ui-state-hover, .player-ui .ui-widget-content .ui-state-hover, .player-ui .ui-widget-header .ui-state-hover, .player-ui .ui-state-focus, .player-ui .ui-widget-content .ui-state-focus, .player-ui .ui-widget-header .ui-state-focus { border: 1px solid #000000; background: #1c1c1c url(images/ui-bg_glass_55_1c1c1c_1x400.png) 50% 50% repeat-x; font-weight: normal; color: #ffffff; }
+.player-ui .ui-state-hover a, .player-ui .ui-state-hover a:hover { color: #ffffff; text-decoration: none; }
+.player-ui .ui-state-active, .player-ui .ui-widget-content .ui-state-active, .player-ui .ui-widget-header .ui-state-active { border: 1px solid #cccccc; background: #ffffff url(images/ui-bg_flat_65_ffffff_40x100.png) 50% 50% repeat-x; font-weight: normal; color: #222222; }
+.player-ui .ui-state-active a, .player-ui .ui-state-active a:link, .player-ui .ui-state-active a:visited { color: #222222; text-decoration: none; }
+.player-ui .ui-widget :active { outline: none; }
+
+/* Interaction Cues
+----------------------------------*/
+.player-ui .ui-state-highlight, .player-ui .ui-widget-content .ui-state-highlight, .player-ui .ui-widget-header .ui-state-highlight  {border: 1px solid #ffde2e; background: #ffeb80 url(images/ui-bg_inset-hard_55_ffeb80_1x100.png) 50% bottom repeat-x; color: #363636; }
+.player-ui .ui-state-highlight a, .player-ui .ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a { color: #363636; }
+.player-ui .ui-state-error, .player-ui .ui-widget-content .ui-state-error, .player-ui .ui-widget-header .ui-state-error {border: 1px solid #9e0505; background: #cd0a0a url(images/ui-bg_inset-hard_45_cd0a0a_1x100.png) 50% bottom repeat-x; color: #ffffff; }
+.player-ui .ui-state-error a, .player-ui .ui-widget-content .ui-state-error a, .player-ui .ui-widget-header .ui-state-error a { color: #ffffff; }
+.player-ui .ui-state-error-text, .player-ui .ui-widget-content .ui-state-error-text, .player-ui .ui-widget-header .ui-state-error-text { color: #ffffff; }
+.player-ui .ui-priority-primary, .player-ui .ui-widget-content .ui-priority-primary, .player-ui .ui-widget-header .ui-priority-primary { font-weight: bold; }
+.player-ui .ui-priority-secondary, .player-ui .ui-widget-content .ui-priority-secondary,  .ui-widget-header .ui-priority-secondary { opacity: .7; filter:Alpha(Opacity=70); font-weight: normal; }
+.player-ui .ui-state-disabled, .player-ui .ui-widget-content .ui-state-disabled, .player-ui .ui-widget-header .ui-state-disabled { opacity: .35; filter:Alpha(Opacity=35); background-image: none; }
+
+/* Icons
+----------------------------------*/
+
+/* states and images */
+.player-ui .ui-icon { width: 16px; height: 16px; background-image: url(images/ui-icons_222222_256x240.png); }
+.player-ui .ui-widget-content .ui-icon {background-image: url(images/ui-icons_222222_256x240.png); }
+.player-ui .ui-widget-header .ui-icon {background-image: url(images/ui-icons_bbbbbb_256x240.png); }
+.player-ui .ui-state-default .ui-icon { background-image: url(images/ui-icons_ededed_256x240.png); }
+.player-ui .ui-state-hover .ui-icon, .player-ui .ui-state-focus .ui-icon {background-image: url(images/ui-icons_ffffff_256x240.png); }
+.player-ui .ui-state-active .ui-icon {background-image: url(images/ui-icons_222222_256x240.png); }
+.player-ui .ui-state-highlight .ui-icon {background-image: url(images/ui-icons_4ca300_256x240.png); }
+.player-ui .ui-state-error .ui-icon, .player-ui .ui-state-error-text .ui-icon {background-image: url(images/ui-icons_ffcf29_256x240.png); }
+
+/* positioning */
+.player-ui .ui-icon-carat-1-n { background-position: 0 0; }
+.player-ui .ui-icon-carat-1-ne { background-position: -16px 0; }
+.player-ui .ui-icon-carat-1-e { background-position: -32px 0; }
+.player-ui .ui-icon-carat-1-se { background-position: -48px 0; }
+.player-ui .ui-icon-carat-1-s { background-position: -64px 0; }
+.player-ui .ui-icon-carat-1-sw { background-position: -80px 0; }
+.player-ui .ui-icon-carat-1-w { background-position: -96px 0; }
+.player-ui .ui-icon-carat-1-nw { background-position: -112px 0; }
+.player-ui .ui-icon-carat-2-n-s { background-position: -128px 0; }
+.player-ui .ui-icon-carat-2-e-w { background-position: -144px 0; }
+.player-ui .ui-icon-triangle-1-n { background-position: 0 -16px; }
+.player-ui .ui-icon-triangle-1-ne { background-position: -16px -16px; }
+.player-ui .ui-icon-triangle-1-e { background-position: -32px -16px; }
+.player-ui .ui-icon-triangle-1-se { background-position: -48px -16px; }
+.player-ui .ui-icon-triangle-1-s { background-position: -64px -16px; }
+.player-ui .ui-icon-triangle-1-sw { background-position: -80px -16px; }
+.player-ui .ui-icon-triangle-1-w { background-position: -96px -16px; }
+.player-ui .ui-icon-triangle-1-nw { background-position: -112px -16px; }
+.player-ui .ui-icon-triangle-2-n-s { background-position: -128px -16px; }
+.player-ui .ui-icon-triangle-2-e-w { background-position: -144px -16px; }
+.player-ui .ui-icon-arrow-1-n { background-position: 0 -32px; }
+.player-ui .ui-icon-arrow-1-ne { background-position: -16px -32px; }
+.player-ui .ui-icon-arrow-1-e { background-position: -32px -32px; }
+.player-ui .ui-icon-arrow-1-se { background-position: -48px -32px; }
+.player-ui .ui-icon-arrow-1-s { background-position: -64px -32px; }
+.player-ui .ui-icon-arrow-1-sw { background-position: -80px -32px; }
+.player-ui .ui-icon-arrow-1-w { background-position: -96px -32px; }
+.player-ui .ui-icon-arrow-1-nw { background-position: -112px -32px; }
+.player-ui .ui-icon-arrow-2-n-s { background-position: -128px -32px; }
+.player-ui .ui-icon-arrow-2-ne-sw { background-position: -144px -32px; }
+.player-ui .ui-icon-arrow-2-e-w { background-position: -160px -32px; }
+.player-ui .ui-icon-arrow-2-se-nw { background-position: -176px -32px; }
+.player-ui .ui-icon-arrowstop-1-n { background-position: -192px -32px; }
+.player-ui .ui-icon-arrowstop-1-e { background-position: -208px -32px; }
+.player-ui .ui-icon-arrowstop-1-s { background-position: -224px -32px; }
+.player-ui .ui-icon-arrowstop-1-w { background-position: -240px -32px; }
+.player-ui .ui-icon-arrowthick-1-n { background-position: 0 -48px; }
+.player-ui .ui-icon-arrowthick-1-ne { background-position: -16px -48px; }
+.player-ui .ui-icon-arrowthick-1-e { background-position: -32px -48px; }
+.player-ui .ui-icon-arrowthick-1-se { background-position: -48px -48px; }
+.player-ui .ui-icon-arrowthick-1-s { background-position: -64px -48px; }
+.player-ui .ui-icon-arrowthick-1-sw { background-position: -80px -48px; }
+.player-ui .ui-icon-arrowthick-1-w { background-position: -96px -48px; }
+.player-ui .ui-icon-arrowthick-1-nw { background-position: -112px -48px; }
+.player-ui .ui-icon-arrowthick-2-n-s { background-position: -128px -48px; }
+.player-ui .ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px; }
+.player-ui .ui-icon-arrowthick-2-e-w { background-position: -160px -48px; }
+.player-ui .ui-icon-arrowthick-2-se-nw { background-position: -176px -48px; }
+.player-ui .ui-icon-arrowthickstop-1-n { background-position: -192px -48px; }
+.player-ui .ui-icon-arrowthickstop-1-e { background-position: -208px -48px; }
+.player-ui .ui-icon-arrowthickstop-1-s { background-position: -224px -48px; }
+.player-ui .ui-icon-arrowthickstop-1-w { background-position: -240px -48px; }
+.player-ui .ui-icon-arrowreturnthick-1-w { background-position: 0 -64px; }
+.player-ui .ui-icon-arrowreturnthick-1-n { background-position: -16px -64px; }
+.player-ui .ui-icon-arrowreturnthick-1-e { background-position: -32px -64px; }
+.player-ui .ui-icon-arrowreturnthick-1-s { background-position: -48px -64px; }
+.player-ui .ui-icon-arrowreturn-1-w { background-position: -64px -64px; }
+.player-ui .ui-icon-arrowreturn-1-n { background-position: -80px -64px; }
+.player-ui .ui-icon-arrowreturn-1-e { background-position: -96px -64px; }
+.player-ui .ui-icon-arrowreturn-1-s { background-position: -112px -64px; }
+.player-ui .ui-icon-arrowrefresh-1-w { background-position: -128px -64px; }
+.player-ui .ui-icon-arrowrefresh-1-n { background-position: -144px -64px; }
+.player-ui .ui-icon-arrowrefresh-1-e { background-position: -160px -64px; }
+.player-ui .ui-icon-arrowrefresh-1-s { background-position: -176px -64px; }
+.player-ui .ui-icon-arrow-4 { background-position: 0 -80px; }
+.player-ui .ui-icon-arrow-4-diag { background-position: -16px -80px; }
+.player-ui .ui-icon-extlink { background-position: -32px -80px; }
+.player-ui .ui-icon-newwin { background-position: -48px -80px; }
+.player-ui .ui-icon-refresh { background-position: -64px -80px; }
+.player-ui .ui-icon-shuffle { background-position: -80px -80px; }
+.player-ui .ui-icon-transfer-e-w { background-position: -96px -80px; }
+.player-ui .ui-icon-transferthick-e-w { background-position: -112px -80px; }
+.player-ui .ui-icon-folder-collapsed { background-position: 0 -96px; }
+.player-ui .ui-icon-folder-open { background-position: -16px -96px; }
+.player-ui .ui-icon-document { background-position: -32px -96px; }
+.player-ui .ui-icon-document-b { background-position: -48px -96px; }
+.player-ui .ui-icon-note { background-position: -64px -96px; }
+.player-ui .ui-icon-mail-closed { background-position: -80px -96px; }
+.player-ui .ui-icon-mail-open { background-position: -96px -96px; }
+.player-ui .ui-icon-suitcase { background-position: -112px -96px; }
+.player-ui .ui-icon-comment { background-position: -128px -96px; }
+.player-ui .ui-icon-person { background-position: -144px -96px; }
+.player-ui .ui-icon-print { background-position: -160px -96px; }
+.player-ui .ui-icon-trash { background-position: -176px -96px; }
+.player-ui .ui-icon-locked { background-position: -192px -96px; }
+.player-ui .ui-icon-unlocked { background-position: -208px -96px; }
+.player-ui .ui-icon-bookmark { background-position: -224px -96px; }
+.player-ui .ui-icon-tag { background-position: -240px -96px; }
+.player-ui .ui-icon-home { background-position: 0 -112px; }
+.player-ui .ui-icon-flag { background-position: -16px -112px; }
+.player-ui .ui-icon-calendar { background-position: -32px -112px; }
+.player-ui .ui-icon-cart { background-position: -48px -112px; }
+.player-ui .ui-icon-pencil { background-position: -64px -112px; }
+.player-ui .ui-icon-clock { background-position: -80px -112px; }
+.player-ui .ui-icon-disk { background-position: -96px -112px; }
+.player-ui .ui-icon-calculator { background-position: -112px -112px; }
+.player-ui .ui-icon-zoomin { background-position: -128px -112px; }
+.player-ui .ui-icon-zoomout { background-position: -144px -112px; }
+.player-ui .ui-icon-search { background-position: -160px -112px; }
+.player-ui .ui-icon-wrench { background-position: -176px -112px; }
+.player-ui .ui-icon-gear { background-position: -192px -112px; }
+.player-ui .ui-icon-heart { background-position: -208px -112px; }
+.player-ui .ui-icon-star { background-position: -224px -112px; }
+.player-ui .ui-icon-link { background-position: -240px -112px; }
+.player-ui .ui-icon-cancel { background-position: 0 -128px; }
+.player-ui .ui-icon-plus { background-position: -16px -128px; }
+.player-ui .ui-icon-plusthick { background-position: -32px -128px; }
+.player-ui .ui-icon-minus { background-position: -48px -128px; }
+.player-ui .ui-icon-minusthick { background-position: -64px -128px; }
+.player-ui .ui-icon-close { background-position: -80px -128px; }
+.player-ui .ui-icon-closethick { background-position: -96px -128px; }
+.player-ui .ui-icon-key { background-position: -112px -128px; }
+.player-ui .ui-icon-lightbulb { background-position: -128px -128px; }
+.player-ui .ui-icon-scissors { background-position: -144px -128px; }
+.player-ui .ui-icon-clipboard { background-position: -160px -128px; }
+.player-ui .ui-icon-copy { background-position: -176px -128px; }
+.player-ui .ui-icon-contact { background-position: -192px -128px; }
+.player-ui .ui-icon-image { background-position: -208px -128px; }
+.player-ui .ui-icon-video { background-position: -224px -128px; }
+.player-ui .ui-icon-script { background-position: -240px -128px; }
+.player-ui .ui-icon-alert { background-position: 0 -144px; }
+.player-ui .ui-icon-info { background-position: -16px -144px; }
+.player-ui .ui-icon-notice { background-position: -32px -144px; }
+.player-ui .ui-icon-help { background-position: -48px -144px; }
+.player-ui .ui-icon-check { background-position: -64px -144px; }
+.player-ui .ui-icon-bullet { background-position: -80px -144px; }
+.player-ui .ui-icon-radio-off { background-position: -96px -144px; }
+.player-ui .ui-icon-radio-on { background-position: -112px -144px; }
+.player-ui .ui-icon-pin-w { background-position: -128px -144px; }
+.player-ui .ui-icon-pin-s { background-position: -144px -144px; }
+.player-ui .ui-icon-play { background-position: 0 -160px; }
+.player-ui .ui-icon-pause { background-position: -16px -160px; }
+.player-ui .ui-icon-seek-next { background-position: -32px -160px; }
+.player-ui .ui-icon-seek-prev { background-position: -48px -160px; }
+.player-ui .ui-icon-seek-end { background-position: -64px -160px; }
+.player-ui .ui-icon-seek-start { background-position: -80px -160px; }
+/* ui-icon-seek-first is deprecated, use ui-icon-seek-start instead */
+.player-ui .ui-icon-seek-first { background-position: -80px -160px; }
+.player-ui .ui-icon-stop { background-position: -96px -160px; }
+.player-ui .ui-icon-eject { background-position: -112px -160px; }
+.player-ui .ui-icon-volume-off { background-position: -128px -160px; }
+.player-ui .ui-icon-volume-on { background-position: -144px -160px; }
+.player-ui .ui-icon-power { background-position: 0 -176px; }
+.player-ui .ui-icon-signal-diag { background-position: -16px -176px; }
+.player-ui .ui-icon-signal { background-position: -32px -176px; }
+.player-ui .ui-icon-battery-0 { background-position: -48px -176px; }
+.player-ui .ui-icon-battery-1 { background-position: -64px -176px; }
+.player-ui .ui-icon-battery-2 { background-position: -80px -176px; }
+.player-ui .ui-icon-battery-3 { background-position: -96px -176px; }
+.player-ui .ui-icon-circle-plus { background-position: 0 -192px; }
+.player-ui .ui-icon-circle-minus { background-position: -16px -192px; }
+.player-ui .ui-icon-circle-close { background-position: -32px -192px; }
+.player-ui .ui-icon-circle-triangle-e { background-position: -48px -192px; }
+.player-ui .ui-icon-circle-triangle-s { background-position: -64px -192px; }
+.player-ui .ui-icon-circle-triangle-w { background-position: -80px -192px; }
+.player-ui .ui-icon-circle-triangle-n { background-position: -96px -192px; }
+.player-ui .ui-icon-circle-arrow-e { background-position: -112px -192px; }
+.player-ui .ui-icon-circle-arrow-s { background-position: -128px -192px; }
+.player-ui .ui-icon-circle-arrow-w { background-position: -144px -192px; }
+.player-ui .ui-icon-circle-arrow-n { background-position: -160px -192px; }
+.player-ui .ui-icon-circle-zoomin { background-position: -176px -192px; }
+.player-ui .ui-icon-circle-zoomout { background-position: -192px -192px; }
+.player-ui .ui-icon-circle-check { background-position: -208px -192px; }
+.player-ui .ui-icon-circlesmall-plus { background-position: 0 -208px; }
+.player-ui .ui-icon-circlesmall-minus { background-position: -16px -208px; }
+.player-ui .ui-icon-circlesmall-close { background-position: -32px -208px; }
+.player-ui .ui-icon-squaresmall-plus { background-position: -48px -208px; }
+.player-ui .ui-icon-squaresmall-minus { background-position: -64px -208px; }
+.player-ui .ui-icon-squaresmall-close { background-position: -80px -208px; }
+.player-ui .ui-icon-grip-dotted-vertical { background-position: 0 -224px; }
+.player-ui .ui-icon-grip-dotted-horizontal { background-position: -16px -224px; }
+.player-ui .ui-icon-grip-solid-vertical { background-position: -32px -224px; }
+.player-ui .ui-icon-grip-solid-horizontal { background-position: -48px -224px; }
+.player-ui .ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; }
+.player-ui .ui-icon-grip-diagonal-se { background-position: -80px -224px; }
+
+
+/* Misc visuals
+----------------------------------*/
+
+/* Corner radius */
+.player-ui .ui-corner-all, .player-ui .ui-corner-top, .player-ui .ui-corner-left, .player-ui .ui-corner-tl { -moz-border-radius-topleft: 4px; -webkit-border-top-left-radius: 4px; -khtml-border-top-left-radius: 4px; border-top-left-radius: 4px; }
+.player-ui .ui-corner-all, .player-ui .ui-corner-top, .player-ui .ui-corner-right, .player-ui .ui-corner-tr { -moz-border-radius-topright: 4px; -webkit-border-top-right-radius: 4px; -khtml-border-top-right-radius: 4px; border-top-right-radius: 4px; }
+.player-ui .ui-corner-all, .player-ui .ui-corner-bottom, .player-ui .ui-corner-left, .player-ui .ui-corner-bl { -moz-border-radius-bottomleft: 4px; -webkit-border-bottom-left-radius: 4px; -khtml-border-bottom-left-radius: 4px; border-bottom-left-radius: 4px; }
+.player-ui .ui-corner-all, .player-ui .ui-corner-bottom, .player-ui .ui-corner-right, .player-ui .ui-corner-br { -moz-border-radius-bottomright: 4px; -webkit-border-bottom-right-radius: 4px; -khtml-border-bottom-right-radius: 4px; border-bottom-right-radius: 4px; }
+
+/* Overlays */
+.player-ui .ui-widget-overlay { background: #aaaaaa url(images/ui-bg_highlight-hard_40_aaaaaa_1x100.png) 50% top repeat-x; opacity: .30;filter:Alpha(Opacity=30); }
+.player-ui .ui-widget-shadow { margin: -8px 0 0 -8px; padding: 8px; background: #aaaaaa url(images/ui-bg_highlight-soft_50_aaaaaa_1x100.png) 50% top repeat-x; opacity: .20;filter:Alpha(Opacity=20); -moz-border-radius: 8px; -khtml-border-radius: 8px; -webkit-border-radius: 8px; border-radius: 8px; }/*
+ * jQuery UI Resizable 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Resizable#theming
+ */
+.player-ui .ui-resizable { position: relative;}
+.player-ui .ui-resizable-handle { position: absolute;font-size: 0.1px;z-index: 99999; display: block; }
+.player-ui .ui-resizable-disabled .ui-resizable-handle, .player-ui .ui-resizable-autohide .ui-resizable-handle { display: none; }
+.player-ui .ui-resizable-n { cursor: n-resize; height: 7px; width: 100%; top: -5px; left: 0; }
+.player-ui .ui-resizable-s { cursor: s-resize; height: 7px; width: 100%; bottom: -5px; left: 0; }
+.player-ui .ui-resizable-e { cursor: e-resize; width: 7px; right: -5px; top: 0; height: 100%; }
+.player-ui .ui-resizable-w { cursor: w-resize; width: 7px; left: -5px; top: 0; height: 100%; }
+.player-ui .ui-resizable-se { cursor: se-resize; width: 12px; height: 12px; right: 1px; bottom: 1px; }
+.player-ui .ui-resizable-sw { cursor: sw-resize; width: 9px; height: 9px; left: -5px; bottom: -5px; }
+.player-ui .ui-resizable-nw { cursor: nw-resize; width: 9px; height: 9px; left: -5px; top: -5px; }
+.player-ui .ui-resizable-ne { cursor: ne-resize; width: 9px; height: 9px; right: -5px; top: -5px;}/*
+ * jQuery UI Selectable 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Selectable#theming
+ */
+.player-ui .ui-selectable-helper { position: absolute; z-index: 100; border:1px dotted black; }
+/*
+ * jQuery UI Accordion 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Accordion#theming
+ */
+/* IE/Win - Fix animation bug - #4615 */
+.player-ui .ui-accordion { width: 100%; }
+.player-ui .ui-accordion .ui-accordion-header { cursor: pointer; position: relative; margin-top: 1px; zoom: 1; }
+.player-ui .ui-accordion .ui-accordion-li-fix { display: inline; }
+.player-ui .ui-accordion .ui-accordion-header-active { border-bottom: 0 !important; }
+.player-ui .ui-accordion .ui-accordion-header a { display: block; font-size: 1em; padding: .5em .5em .5em .7em; }
+.player-ui .ui-accordion-icons .ui-accordion-header a { padding-left: 2.2em; }
+.player-ui .ui-accordion .ui-accordion-header .ui-icon { position: absolute; left: .5em; top: 50%; margin-top: -8px; }
+.player-ui .ui-accordion .ui-accordion-content { padding: 1em 2.2em; border-top: 0; margin-top: -2px; position: relative; top: 1px; margin-bottom: 2px; overflow: auto; display: none; zoom: 1; }
+.player-ui .ui-accordion .ui-accordion-content-active { display: block; }
+/*
+ * jQuery UI Autocomplete 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Autocomplete#theming
+ */
+.player-ui .ui-autocomplete { position: absolute; cursor: default; }	
+
+/* workarounds */
+* html .ui-autocomplete { width:1px; } /* without this, the menu expands to 100% in IE6 */
+
+/*
+ * jQuery UI Menu 1.8.18
+ *
+ * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Menu#theming
+ */
+.player-ui .ui-menu {
+	list-style:none;
+	padding: 2px;
+	margin: 0;
+	display:block;
+	float: left;
+}
+.player-ui .ui-menu .ui-menu {
+	margin-top: -3px;
+}
+.player-ui .ui-menu .ui-menu-item {
+	margin:0;
+	padding: 0;
+	zoom: 1;
+	float: left;
+	clear: left;
+	width: 100%;
+}
+.player-ui .ui-menu .ui-menu-item a {
+	text-decoration:none;
+	display:block;
+	padding:.2em .4em;
+	line-height:1.5;
+	zoom:1;
+}
+.player-ui .ui-menu .ui-menu-item a.ui-state-hover,
+.player-ui .ui-menu .ui-menu-item a.ui-state-active {
+	font-weight: normal;
+	margin: -1px;
+}
+/*
+ * jQuery UI Button 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Button#theming
+ */
+.player-ui .ui-button { display: inline-block; position: relative; padding: 0; margin-right: .1em; text-decoration: none !important; cursor: pointer; text-align: center; zoom: 1; overflow: hidden; *overflow: visible; } /* the overflow property removes extra width in IE */
+.player-ui .ui-button-icon-only { width: 2.2em; } /* to make room for the icon, a width needs to be set here */
+button.ui-button-icon-only { width: 2.4em; } /* button elements seem to need a little more width */
+.player-ui .ui-button-icons-only { width: 3.4em; } 
+button.ui-button-icons-only { width: 3.7em; } 
+
+/*button text element */
+.player-ui .ui-button .ui-button-text { display: block; line-height: 1.4;  }
+.player-ui .ui-button-text-only .ui-button-text { padding: .4em 1em; }
+.player-ui .ui-button-icon-only .ui-button-text, .player-ui .ui-button-icons-only .ui-button-text { padding: .4em; text-indent: -9999999px; }
+.player-ui .ui-button-text-icon-primary .ui-button-text, .player-ui .ui-button-text-icons .ui-button-text { padding: .4em 1em .4em 2.1em; }
+.player-ui .ui-button-text-icon-secondary .ui-button-text, .player-ui .ui-button-text-icons .ui-button-text { padding: .4em 2.1em .4em 1em; }
+.player-ui .ui-button-text-icons .ui-button-text { padding-left: 2.1em; padding-right: 2.1em; }
+/* no icon support for input elements, provide padding by default */
+input.ui-button { padding: .4em 1em; }
+
+/*button icon element(s) */
+.player-ui .ui-button-icon-only .ui-icon, .player-ui .ui-button-text-icon-primary .ui-icon, .player-ui .ui-button-text-icon-secondary .ui-icon, .player-ui .ui-button-text-icons .ui-icon, .player-ui .ui-button-icons-only .ui-icon { position: absolute; top: 50%; margin-top: -8px; }
+.player-ui .ui-button-icon-only .ui-icon { left: 50%; margin-left: -8px; }
+.player-ui .ui-button-text-icon-primary .ui-button-icon-primary, .player-ui .ui-button-text-icons .ui-button-icon-primary, .player-ui .ui-button-icons-only .ui-button-icon-primary { left: .5em; }
+.player-ui .ui-button-text-icon-secondary .ui-button-icon-secondary, .player-ui .ui-button-text-icons .ui-button-icon-secondary, .player-ui .ui-button-icons-only .ui-button-icon-secondary { right: .5em; }
+.player-ui .ui-button-text-icons .ui-button-icon-secondary, .player-ui .ui-button-icons-only .ui-button-icon-secondary { right: .5em; }
+
+/*button sets*/
+.player-ui .ui-buttonset { margin-right: 7px; }
+.player-ui .ui-buttonset .ui-button { margin-left: 0; margin-right: -.3em; }
+
+/* workarounds */
+button.ui-button::-moz-focus-inner { border: 0; padding: 0; } /* reset extra padding in Firefox */
+/*
+ * jQuery UI Dialog 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Dialog#theming
+ */
+.player-ui .ui-dialog { position: absolute; padding: .2em; width: 300px; overflow: hidden; }
+.player-ui .ui-dialog .ui-dialog-titlebar { padding: .4em 1em; position: relative;  }
+.player-ui .ui-dialog .ui-dialog-title { float: left; margin: .1em 16px .1em 0; } 
+.player-ui .ui-dialog .ui-dialog-titlebar-close { position: absolute; right: .3em; top: 50%; width: 19px; margin: -10px 0 0 0; padding: 1px; height: 18px; }
+.player-ui .ui-dialog .ui-dialog-titlebar-close span { display: block; margin: 1px; }
+.player-ui .ui-dialog .ui-dialog-titlebar-close:hover, .player-ui .ui-dialog .ui-dialog-titlebar-close:focus { padding: 0; }
+.player-ui .ui-dialog .ui-dialog-content { position: relative; border: 0; padding: .5em 1em; background: none; overflow: auto; zoom: 1; }
+.player-ui .ui-dialog .ui-dialog-buttonpane { text-align: left; border-width: 1px 0 0 0; background-image: none; margin: .5em 0 0 0; padding: .3em 1em .5em .4em; }
+.player-ui .ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset { float: right; }
+.player-ui .ui-dialog .ui-dialog-buttonpane button { margin: .5em .4em .5em 0; cursor: pointer; }
+.player-ui .ui-dialog .ui-resizable-se { width: 14px; height: 14px; right: 3px; bottom: 3px; }
+.player-ui .ui-draggable .ui-dialog-titlebar { cursor: move; }
+/*
+ * jQuery UI Slider 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Slider#theming
+ */
+.player-ui .ui-slider { position: relative; text-align: left; }
+.player-ui .ui-slider .ui-slider-handle { position: absolute; z-index: 2; width: 1.2em; height: 1.2em; cursor: default; }
+.player-ui .ui-slider .ui-slider-range { position: absolute; z-index: 1; font-size: .7em; display: block; border: 0; background-position: 0 0; }
+
+.player-ui .ui-slider-horizontal { height: .8em; }
+.player-ui .ui-slider-horizontal .ui-slider-handle { top: -.3em; margin-left: -.6em; }
+.player-ui .ui-slider-horizontal .ui-slider-range { top: 0; height: 100%; }
+.player-ui .ui-slider-horizontal .ui-slider-range-min { left: 0; }
+.player-ui .ui-slider-horizontal .ui-slider-range-max { right: 0; }
+
+.player-ui .ui-slider-vertical { width: .8em; height: 100px; }
+.player-ui .ui-slider-vertical .ui-slider-handle { left: -.3em; margin-left: 0; margin-bottom: -.6em; }
+.player-ui .ui-slider-vertical .ui-slider-range { left: 0; width: 100%; }
+.player-ui .ui-slider-vertical .ui-slider-range-min { bottom: 0; }
+.player-ui .ui-slider-vertical .ui-slider-range-max { top: 0; }/*
+ * jQuery UI Tabs 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Tabs#theming
+ */
+.player-ui .ui-tabs { position: relative; padding: .2em; zoom: 1; } /* position: relative prevents IE scroll bug (element with position: relative inside container with overflow: auto appear as "fixed") */
+.player-ui .ui-tabs .ui-tabs-nav { margin: 0; padding: .2em .2em 0; }
+.player-ui .ui-tabs .ui-tabs-nav li { list-style: none; float: left; position: relative; top: 1px; margin: 0 .2em 1px 0; border-bottom: 0 !important; padding: 0; white-space: nowrap; }
+.player-ui .ui-tabs .ui-tabs-nav li a { float: left; padding: .5em 1em; text-decoration: none; }
+.player-ui .ui-tabs .ui-tabs-nav li.ui-tabs-selected { margin-bottom: 0; padding-bottom: 1px; }
+.player-ui .ui-tabs .ui-tabs-nav li.ui-tabs-selected a, .player-ui .ui-tabs .ui-tabs-nav li.ui-state-disabled a, .player-ui .ui-tabs .ui-tabs-nav li.ui-state-processing a { cursor: text; }
+.player-ui .ui-tabs .ui-tabs-nav li a, .player-ui .ui-tabs.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-selected a { cursor: pointer; } /* first selector in group seems obsolete, but required to overcome bug in Opera applying cursor: text overall if defined elsewhere... */
+.player-ui .ui-tabs .ui-tabs-panel { display: block; border-width: 0; padding: 1em 1.4em; background: none; }
+.player-ui .ui-tabs .ui-tabs-hide { display: none !important; }
+/*
+ * jQuery UI Datepicker 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Datepicker#theming
+ */
+.player-ui .ui-datepicker { width: 17em; padding: .2em .2em 0; display: none; }
+.player-ui .ui-datepicker .ui-datepicker-header { position:relative; padding:.2em 0; }
+.player-ui .ui-datepicker .ui-datepicker-prev, .player-ui .ui-datepicker .ui-datepicker-next { position:absolute; top: 2px; width: 1.8em; height: 1.8em; }
+.player-ui .ui-datepicker .ui-datepicker-prev-hover, .player-ui .ui-datepicker .ui-datepicker-next-hover { top: 1px; }
+.player-ui .ui-datepicker .ui-datepicker-prev { left:2px; }
+.player-ui .ui-datepicker .ui-datepicker-next { right:2px; }
+.player-ui .ui-datepicker .ui-datepicker-prev-hover { left:1px; }
+.player-ui .ui-datepicker .ui-datepicker-next-hover { right:1px; }
+.player-ui .ui-datepicker .ui-datepicker-prev span, .player-ui .ui-datepicker .ui-datepicker-next span { display: block; position: absolute; left: 50%; margin-left: -8px; top: 50%; margin-top: -8px;  }
+.player-ui .ui-datepicker .ui-datepicker-title { margin: 0 2.3em; line-height: 1.8em; text-align: center; }
+.player-ui .ui-datepicker .ui-datepicker-title select { font-size:1em; margin:1px 0; }
+.player-ui .ui-datepicker select.ui-datepicker-month-year {width: 100%;}
+.player-ui .ui-datepicker select.ui-datepicker-month, 
+.player-ui .ui-datepicker select.ui-datepicker-year { width: 49%;}
+.player-ui .ui-datepicker table {width: 100%; font-size: .9em; border-collapse: collapse; margin:0 0 .4em; }
+.player-ui .ui-datepicker th { padding: .7em .3em; text-align: center; font-weight: bold; border: 0;  }
+.player-ui .ui-datepicker td { border: 0; padding: 1px; }
+.player-ui .ui-datepicker td span, .player-ui .ui-datepicker td a { display: block; padding: .2em; text-align: right; text-decoration: none; }
+.player-ui .ui-datepicker .ui-datepicker-buttonpane { background-image: none; margin: .7em 0 0 0; padding:0 .2em; border-left: 0; border-right: 0; border-bottom: 0; }
+.player-ui .ui-datepicker .ui-datepicker-buttonpane button { float: right; margin: .5em .2em .4em; cursor: pointer; padding: .2em .6em .3em .6em; width:auto; overflow:visible; }
+.player-ui .ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current { float:left; }
+
+/* with multiple calendars */
+.player-ui .ui-datepicker.ui-datepicker-multi { width:auto; }
+.player-ui .ui-datepicker-multi .ui-datepicker-group { float:left; }
+.player-ui .ui-datepicker-multi .ui-datepicker-group table { width:95%; margin:0 auto .4em; }
+.player-ui .ui-datepicker-multi-2 .ui-datepicker-group { width:50%; }
+.player-ui .ui-datepicker-multi-3 .ui-datepicker-group { width:33.3%; }
+.player-ui .ui-datepicker-multi-4 .ui-datepicker-group { width:25%; }
+.player-ui .ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header { border-left-width:0; }
+.player-ui .ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header { border-left-width:0; }
+.player-ui .ui-datepicker-multi .ui-datepicker-buttonpane { clear:left; }
+.player-ui .ui-datepicker-row-break { clear:both; width:100%; font-size:0em; }
+
+/* RTL support */
+.player-ui .ui-datepicker-rtl { direction: rtl; }
+.player-ui .ui-datepicker-rtl .ui-datepicker-prev { right: 2px; left: auto; }
+.player-ui .ui-datepicker-rtl .ui-datepicker-next { left: 2px; right: auto; }
+.player-ui .ui-datepicker-rtl .ui-datepicker-prev:hover { right: 1px; left: auto; }
+.player-ui .ui-datepicker-rtl .ui-datepicker-next:hover { left: 1px; right: auto; }
+.player-ui .ui-datepicker-rtl .ui-datepicker-buttonpane { clear:right; }
+.player-ui .ui-datepicker-rtl .ui-datepicker-buttonpane button { float: left; }
+.player-ui .ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current { float:right; }
+.player-ui .ui-datepicker-rtl .ui-datepicker-group { float:right; }
+.player-ui .ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header { border-right-width:0; border-left-width:1px; }
+.player-ui .ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header { border-right-width:0; border-left-width:1px; }
+
+/* IE6 IFRAME FIX (taken from datepicker 1.5.3 */
+.player-ui .ui-datepicker-cover {
+    display: none; /*sorry for IE5*/
+    display/**/: block; /*sorry for IE5*/
+    position: absolute; /*must have*/
+    z-index: -1; /*must have*/
+    filter: mask(); /*must have*/
+    top: -4px; /*must have*/
+    left: -4px; /*must have*/
+    width: 200px; /*must have*/
+    height: 200px; /*must have*/
+}/*
+ * jQuery UI Progressbar 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Progressbar#theming
+ */
+.player-ui .ui-progressbar { height:2em; text-align: left; overflow: hidden; }
+.player-ui .ui-progressbar .ui-progressbar-value {margin: -1px; height:100%; }
\ No newline at end of file
diff --git a/public/admin/js/osmplayer/jquery-ui/cupertino/images/ui-bg_diagonals-thick_90_eeeeee_40x40.png b/public/admin/js/osmplayer/jquery-ui/cupertino/images/ui-bg_diagonals-thick_90_eeeeee_40x40.png
new file mode 100644
index 0000000000000000000000000000000000000000..6348115e6be09c044cd20ead0202c3ab5b2f9c19
GIT binary patch
literal 251
zcmV<X00jSuP)<h;3K|Lk000e1NJLTq001Ze001Zm1^@s6jQ+T70002ONkl<ZScUD^
z%?g7s7(~(AZ1VmOn?+W2V<AoRYm^M-o2AHb6g12$gzzRyj4{9T6YqWZo;&*7on@u0
z_I&}>aF75Mac}}vaR5#k2ZfJhrR<4^Z31`Wpz#J3a8LoN;Gh6h!a)X9!$AU6#K8$v
z#Q`{F91Q%ZXUd*<*dgG~<FE_deO5PtyK&F}D&U|3RKbC565AwmWuMq4xmsqMWVNgn
z+ax1prPwB!DNAFU<VqRXCRr;Rjct-zSucONNe(qV^e#)@zDWQ8002ovPDHLkV1nw$
BW;g%<

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/cupertino/images/ui-bg_flat_15_cd0a0a_40x100.png b/public/admin/js/osmplayer/jquery-ui/cupertino/images/ui-bg_flat_15_cd0a0a_40x100.png
new file mode 100644
index 0000000000000000000000000000000000000000..7680b5437cf820615e472dc4f9a18fd0ba8b7881
GIT binary patch
literal 181
zcmeAS@N?(olHy`uVBq!ia0vp^8bF-F!3HG1q!d*FsTxlg$B>N1x91EQ4=6AkFgVs(
zAAQ+GrQnN%`yz$&yRVt+nf>RR!x7drH9<9kle(1jzSB%AGQwhbfbL-MboFyt=akR{
E099={B>(^b

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/cupertino/images/ui-bg_glass_100_e4f1fb_1x400.png b/public/admin/js/osmplayer/jquery-ui/cupertino/images/ui-bg_glass_100_e4f1fb_1x400.png
new file mode 100644
index 0000000000000000000000000000000000000000..705a32ea35d4d0012bfd3b6a3ffe17a2aaf21bb5
GIT binary patch
literal 119
zcmeAS@N?(olHy`uVBq!ia0vp^j6gJjgAK^akKnour0hIh978O6-<~(*Vo>05zNqru
zes!`qYix+t4(>@$KQ4S5FeM|FA))8zv=y~toE^Ja);%%|y_LML;(w3fvtta7-CP_U
Ta$7zCO=9qL^>bP0l+XkKumdMp

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/cupertino/images/ui-bg_glass_50_3baae3_1x400.png b/public/admin/js/osmplayer/jquery-ui/cupertino/images/ui-bg_glass_50_3baae3_1x400.png
new file mode 100644
index 0000000000000000000000000000000000000000..baabca6baaff94ade4ecd5ddad28e35f52ea3af7
GIT binary patch
literal 131
zcmeAS@N?(olHy`uVBq!ia0vp^j6gJjgAK^akKnouq`W*`978O6-=1H{+u$H^^ufM+
zvdx>+CU0QuV-!dbkTBu=d3O3OBmLW&4uK;3Q}6PdBzSM&<ZFH$cyJ}_?guFwq~AQ$
g`~1~CP-K0~^$(nmXKNamfu=Hey85}Sb4q9e0Q-9_P5=M^

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/cupertino/images/ui-bg_glass_80_d7ebf9_1x400.png b/public/admin/js/osmplayer/jquery-ui/cupertino/images/ui-bg_glass_80_d7ebf9_1x400.png
new file mode 100644
index 0000000000000000000000000000000000000000..d9387e9507ef5b48483315affdcf7e69a6a5cbd1
GIT binary patch
literal 124
zcmeAS@N?(olHy`uVBq!ia0vp^j6gJjgAK^akKnouq?|on978O6-=5#ddq6?J`C|V2
z{i$jWixw%ex&#<FwA``znPPrCILh3C<6%_RYh%t0EZg>77W)>Ku`PSi#4qjXP8{lS
YyPtFZh>C0s1RBTS>FVdQ&MBb@0KGXW`v3p{

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/cupertino/images/ui-bg_highlight-hard_100_f2f5f7_1x100.png b/public/admin/js/osmplayer/jquery-ui/cupertino/images/ui-bg_highlight-hard_100_f2f5f7_1x100.png
new file mode 100644
index 0000000000000000000000000000000000000000..28b566c2c29cc0f849995be62c10d7c292697803
GIT binary patch
literal 103
zcmeAS@N?(olHy`uVBq!ia0vp^j6j^i!3HGVb)pi0l%A)HV~E7myQentGAQsIIS~9U
zUP5CYm&Of+-c)b1XI_rZEUK1mr%ne<%>I8zSo#mI$dWz<>o-8144$rjF6*2UngI7o
B9l-zq

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/cupertino/images/ui-bg_highlight-hard_70_000000_1x100.png b/public/admin/js/osmplayer/jquery-ui/cupertino/images/ui-bg_highlight-hard_70_000000_1x100.png
new file mode 100644
index 0000000000000000000000000000000000000000..d58829780430e138704e956a850c2913039fd4d9
GIT binary patch
literal 118
zcmeAS@N?(olHy`uVBq!ia0vp^j6j^i!3HGVb)pi0l&z<WV~E7myB9WcG8hUlA9Q^h
z_y0wT#fIkc52h9~69QFMWpO{yO=DZTRnK!m?v=aZxBpLjBCVXsyypk^0miu>)bCBa
S8D#`Ch{4m<&t;ucLK6U&At$5&

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/cupertino/images/ui-bg_highlight-soft_100_deedf7_1x100.png b/public/admin/js/osmplayer/jquery-ui/cupertino/images/ui-bg_highlight-soft_100_deedf7_1x100.png
new file mode 100644
index 0000000000000000000000000000000000000000..2289d3c7d7b8e0892f5921de1af87a44b7059eb2
GIT binary patch
literal 104
zcmeAS@N?(olHy`uVBq!ia0vp^j6j^i!3HGVb)pi0l)k5nV~E7m<R3r&ey>+!V`FPm
zbot}H;osq%|NlEjau{m7wqGXUWVoyE{|q&Lb0!9pSk(^U8R0L0S{XcD{an^LB{Ts5
DibWrf

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/cupertino/images/ui-bg_highlight-soft_25_ffef8f_1x100.png b/public/admin/js/osmplayer/jquery-ui/cupertino/images/ui-bg_highlight-soft_25_ffef8f_1x100.png
new file mode 100644
index 0000000000000000000000000000000000000000..0de3275beabe5ac461e277724f9821c0e2ce084b
GIT binary patch
literal 119
zcmeAS@N?(olHy`uVBq!ia0vp^j6j^i!3HGVb)pi0l%1!GV~E7mtNo5#3<?5F$N&CU
z{*@$uLhrPY<93BzJY0)9s*4$FSd4=>Ic~SGF#2(;hg6(iIV-sGZbkhsIkkPOWu2dS
S1f&8@V(@hJb6Mw<&;$V9M<Vb5

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/cupertino/images/ui-icons_2694e8_256x240.png b/public/admin/js/osmplayer/jquery-ui/cupertino/images/ui-icons_2694e8_256x240.png
new file mode 100644
index 0000000000000000000000000000000000000000..e62b8f7fe28d5ab7f9f1af4281afb31a25b657eb
GIT binary patch
literal 4369
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

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/cupertino/images/ui-icons_2e83ff_256x240.png b/public/admin/js/osmplayer/jquery-ui/cupertino/images/ui-icons_2e83ff_256x240.png
new file mode 100644
index 0000000000000000000000000000000000000000..09d1cdc856c292c4ab6dd818c7543ac0828bd616
GIT binary patch
literal 4369
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

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/cupertino/images/ui-icons_3d80b3_256x240.png b/public/admin/js/osmplayer/jquery-ui/cupertino/images/ui-icons_3d80b3_256x240.png
new file mode 100644
index 0000000000000000000000000000000000000000..52c3cc6b744776e9d66ea4e845f7a57c070aa851
GIT binary patch
literal 4369
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

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/cupertino/images/ui-icons_72a7cf_256x240.png b/public/admin/js/osmplayer/jquery-ui/cupertino/images/ui-icons_72a7cf_256x240.png
new file mode 100644
index 0000000000000000000000000000000000000000..0d20b7308331069ee2950fa64cb15f4a29ca55f3
GIT binary patch
literal 4369
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

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/cupertino/images/ui-icons_ffffff_256x240.png b/public/admin/js/osmplayer/jquery-ui/cupertino/images/ui-icons_ffffff_256x240.png
new file mode 100644
index 0000000000000000000000000000000000000000..42f8f992c727ddaa617da224a522e463df690387
GIT binary patch
literal 4369
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

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/cupertino/jquery-ui-1.8.18.custom.css b/public/admin/js/osmplayer/jquery-ui/cupertino/jquery-ui-1.8.18.custom.css
new file mode 100644
index 00000000000..0ad1992235c
--- /dev/null
+++ b/public/admin/js/osmplayer/jquery-ui/cupertino/jquery-ui-1.8.18.custom.css
@@ -0,0 +1,565 @@
+/*
+ * jQuery UI CSS Framework 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Theming/API
+ */
+
+/* Layout helpers
+----------------------------------*/
+.player-ui .ui-helper-hidden { display: none; }
+.player-ui .ui-helper-hidden-accessible { position: absolute !important; clip: rect(1px 1px 1px 1px); clip: rect(1px,1px,1px,1px); }
+.player-ui .ui-helper-reset { margin: 0; padding: 0; border: 0; outline: 0; line-height: 1.3; text-decoration: none; font-size: 100%; list-style: none; }
+.player-ui .ui-helper-clearfix:before, .player-ui .ui-helper-clearfix:after { content: ""; display: table; }
+.player-ui .ui-helper-clearfix:after { clear: both; }
+.player-ui .ui-helper-clearfix { zoom: 1; }
+.player-ui .ui-helper-zfix { width: 100%; height: 100%; top: 0; left: 0; position: absolute; opacity: 0; filter:Alpha(Opacity=0); }
+
+
+/* Interaction Cues
+----------------------------------*/
+.player-ui .ui-state-disabled { cursor: default !important; }
+
+
+/* Icons
+----------------------------------*/
+
+/* states and images */
+.player-ui .ui-icon { display: block; text-indent: -99999px; overflow: hidden; background-repeat: no-repeat; }
+
+
+/* Misc visuals
+----------------------------------*/
+
+/* Overlays */
+.player-ui .ui-widget-overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }
+
+
+/*
+ * jQuery UI CSS Framework 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Theming/API
+ *
+ * To view and modify this theme, visit http://jqueryui.com/themeroller/?ffDefault=Lucida%20Grande,%20Lucida%20Sans,%20Arial,%20sans-serif&fwDefault=bold&fsDefault=1.1em&cornerRadius=6px&bgColorHeader=deedf7&bgTextureHeader=03_highlight_soft.png&bgImgOpacityHeader=100&borderColorHeader=aed0ea&fcHeader=222222&iconColorHeader=72a7cf&bgColorContent=f2f5f7&bgTextureContent=04_highlight_hard.png&bgImgOpacityContent=100&borderColorContent=dddddd&fcContent=362b36&iconColorContent=72a7cf&bgColorDefault=d7ebf9&bgTextureDefault=02_glass.png&bgImgOpacityDefault=80&borderColorDefault=aed0ea&fcDefault=2779aa&iconColorDefault=3d80b3&bgColorHover=e4f1fb&bgTextureHover=02_glass.png&bgImgOpacityHover=100&borderColorHover=74b2e2&fcHover=0070a3&iconColorHover=2694e8&bgColorActive=3baae3&bgTextureActive=02_glass.png&bgImgOpacityActive=50&borderColorActive=2694e8&fcActive=ffffff&iconColorActive=ffffff&bgColorHighlight=ffef8f&bgTextureHighlight=03_highlight_soft.png&bgImgOpacityHighlight=25&borderColorHighlight=f9dd34&fcHighlight=363636&iconColorHighlight=2e83ff&bgColorError=cd0a0a&bgTextureError=01_flat.png&bgImgOpacityError=15&borderColorError=cd0a0a&fcError=ffffff&iconColorError=ffffff&bgColorOverlay=eeeeee&bgTextureOverlay=08_diagonals_thick.png&bgImgOpacityOverlay=90&opacityOverlay=80&bgColorShadow=000000&bgTextureShadow=04_highlight_hard.png&bgImgOpacityShadow=70&opacityShadow=30&thicknessShadow=7px&offsetTopShadow=-7px&offsetLeftShadow=-7px&cornerRadiusShadow=8px
+ */
+
+
+/* Component containers
+----------------------------------*/
+.player-ui .ui-widget { font-family: Lucida Grande, Lucida Sans, Arial, sans-serif; font-size: 1.1em; }
+.player-ui .ui-widget .ui-widget { font-size: 1em; }
+.player-ui .ui-widget input, .player-ui .ui-widget select, .player-ui .ui-widget textarea, .player-ui .ui-widget button { font-family: Lucida Grande, Lucida Sans, Arial, sans-serif; font-size: 1em; }
+.player-ui .ui-widget-content { border: 1px solid #dddddd; background: #f2f5f7 url(images/ui-bg_highlight-hard_100_f2f5f7_1x100.png) 50% top repeat-x; color: #362b36; }
+.player-ui .ui-widget-content a { color: #362b36; }
+.player-ui .ui-widget-header { border: 1px solid #aed0ea; background: #deedf7 url(images/ui-bg_highlight-soft_100_deedf7_1x100.png) 50% 50% repeat-x; color: #222222; font-weight: bold; }
+.player-ui .ui-widget-header a { color: #222222; }
+
+/* Interaction states
+----------------------------------*/
+.player-ui .ui-state-default, .player-ui .ui-widget-content .ui-state-default, .player-ui .ui-widget-header .ui-state-default { border: 1px solid #aed0ea; background: #d7ebf9 url(images/ui-bg_glass_80_d7ebf9_1x400.png) 50% 50% repeat-x; font-weight: bold; color: #2779aa; }
+.player-ui .ui-state-default a, .player-ui .ui-state-default a:link, .player-ui .ui-state-default a:visited { color: #2779aa; text-decoration: none; }
+.player-ui .ui-state-hover, .player-ui .ui-widget-content .ui-state-hover, .player-ui .ui-widget-header .ui-state-hover, .player-ui .ui-state-focus, .player-ui .ui-widget-content .ui-state-focus, .player-ui .ui-widget-header .ui-state-focus { border: 1px solid #74b2e2; background: #e4f1fb url(images/ui-bg_glass_100_e4f1fb_1x400.png) 50% 50% repeat-x; font-weight: bold; color: #0070a3; }
+.player-ui .ui-state-hover a, .player-ui .ui-state-hover a:hover { color: #0070a3; text-decoration: none; }
+.player-ui .ui-state-active, .player-ui .ui-widget-content .ui-state-active, .player-ui .ui-widget-header .ui-state-active { border: 1px solid #2694e8; background: #3baae3 url(images/ui-bg_glass_50_3baae3_1x400.png) 50% 50% repeat-x; font-weight: bold; color: #ffffff; }
+.player-ui .ui-state-active a, .player-ui .ui-state-active a:link, .player-ui .ui-state-active a:visited { color: #ffffff; text-decoration: none; }
+.player-ui .ui-widget :active { outline: none; }
+
+/* Interaction Cues
+----------------------------------*/
+.player-ui .ui-state-highlight, .player-ui .ui-widget-content .ui-state-highlight, .player-ui .ui-widget-header .ui-state-highlight  {border: 1px solid #f9dd34; background: #ffef8f url(images/ui-bg_highlight-soft_25_ffef8f_1x100.png) 50% top repeat-x; color: #363636; }
+.player-ui .ui-state-highlight a, .player-ui .ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a { color: #363636; }
+.player-ui .ui-state-error, .player-ui .ui-widget-content .ui-state-error, .player-ui .ui-widget-header .ui-state-error {border: 1px solid #cd0a0a; background: #cd0a0a url(images/ui-bg_flat_15_cd0a0a_40x100.png) 50% 50% repeat-x; color: #ffffff; }
+.player-ui .ui-state-error a, .player-ui .ui-widget-content .ui-state-error a, .player-ui .ui-widget-header .ui-state-error a { color: #ffffff; }
+.player-ui .ui-state-error-text, .player-ui .ui-widget-content .ui-state-error-text, .player-ui .ui-widget-header .ui-state-error-text { color: #ffffff; }
+.player-ui .ui-priority-primary, .player-ui .ui-widget-content .ui-priority-primary, .player-ui .ui-widget-header .ui-priority-primary { font-weight: bold; }
+.player-ui .ui-priority-secondary, .player-ui .ui-widget-content .ui-priority-secondary,  .ui-widget-header .ui-priority-secondary { opacity: .7; filter:Alpha(Opacity=70); font-weight: normal; }
+.player-ui .ui-state-disabled, .player-ui .ui-widget-content .ui-state-disabled, .player-ui .ui-widget-header .ui-state-disabled { opacity: .35; filter:Alpha(Opacity=35); background-image: none; }
+
+/* Icons
+----------------------------------*/
+
+/* states and images */
+.player-ui .ui-icon { width: 16px; height: 16px; background-image: url(images/ui-icons_72a7cf_256x240.png); }
+.player-ui .ui-widget-content .ui-icon {background-image: url(images/ui-icons_72a7cf_256x240.png); }
+.player-ui .ui-widget-header .ui-icon {background-image: url(images/ui-icons_72a7cf_256x240.png); }
+.player-ui .ui-state-default .ui-icon { background-image: url(images/ui-icons_3d80b3_256x240.png); }
+.player-ui .ui-state-hover .ui-icon, .player-ui .ui-state-focus .ui-icon {background-image: url(images/ui-icons_2694e8_256x240.png); }
+.player-ui .ui-state-active .ui-icon {background-image: url(images/ui-icons_ffffff_256x240.png); }
+.player-ui .ui-state-highlight .ui-icon {background-image: url(images/ui-icons_2e83ff_256x240.png); }
+.player-ui .ui-state-error .ui-icon, .player-ui .ui-state-error-text .ui-icon {background-image: url(images/ui-icons_ffffff_256x240.png); }
+
+/* positioning */
+.player-ui .ui-icon-carat-1-n { background-position: 0 0; }
+.player-ui .ui-icon-carat-1-ne { background-position: -16px 0; }
+.player-ui .ui-icon-carat-1-e { background-position: -32px 0; }
+.player-ui .ui-icon-carat-1-se { background-position: -48px 0; }
+.player-ui .ui-icon-carat-1-s { background-position: -64px 0; }
+.player-ui .ui-icon-carat-1-sw { background-position: -80px 0; }
+.player-ui .ui-icon-carat-1-w { background-position: -96px 0; }
+.player-ui .ui-icon-carat-1-nw { background-position: -112px 0; }
+.player-ui .ui-icon-carat-2-n-s { background-position: -128px 0; }
+.player-ui .ui-icon-carat-2-e-w { background-position: -144px 0; }
+.player-ui .ui-icon-triangle-1-n { background-position: 0 -16px; }
+.player-ui .ui-icon-triangle-1-ne { background-position: -16px -16px; }
+.player-ui .ui-icon-triangle-1-e { background-position: -32px -16px; }
+.player-ui .ui-icon-triangle-1-se { background-position: -48px -16px; }
+.player-ui .ui-icon-triangle-1-s { background-position: -64px -16px; }
+.player-ui .ui-icon-triangle-1-sw { background-position: -80px -16px; }
+.player-ui .ui-icon-triangle-1-w { background-position: -96px -16px; }
+.player-ui .ui-icon-triangle-1-nw { background-position: -112px -16px; }
+.player-ui .ui-icon-triangle-2-n-s { background-position: -128px -16px; }
+.player-ui .ui-icon-triangle-2-e-w { background-position: -144px -16px; }
+.player-ui .ui-icon-arrow-1-n { background-position: 0 -32px; }
+.player-ui .ui-icon-arrow-1-ne { background-position: -16px -32px; }
+.player-ui .ui-icon-arrow-1-e { background-position: -32px -32px; }
+.player-ui .ui-icon-arrow-1-se { background-position: -48px -32px; }
+.player-ui .ui-icon-arrow-1-s { background-position: -64px -32px; }
+.player-ui .ui-icon-arrow-1-sw { background-position: -80px -32px; }
+.player-ui .ui-icon-arrow-1-w { background-position: -96px -32px; }
+.player-ui .ui-icon-arrow-1-nw { background-position: -112px -32px; }
+.player-ui .ui-icon-arrow-2-n-s { background-position: -128px -32px; }
+.player-ui .ui-icon-arrow-2-ne-sw { background-position: -144px -32px; }
+.player-ui .ui-icon-arrow-2-e-w { background-position: -160px -32px; }
+.player-ui .ui-icon-arrow-2-se-nw { background-position: -176px -32px; }
+.player-ui .ui-icon-arrowstop-1-n { background-position: -192px -32px; }
+.player-ui .ui-icon-arrowstop-1-e { background-position: -208px -32px; }
+.player-ui .ui-icon-arrowstop-1-s { background-position: -224px -32px; }
+.player-ui .ui-icon-arrowstop-1-w { background-position: -240px -32px; }
+.player-ui .ui-icon-arrowthick-1-n { background-position: 0 -48px; }
+.player-ui .ui-icon-arrowthick-1-ne { background-position: -16px -48px; }
+.player-ui .ui-icon-arrowthick-1-e { background-position: -32px -48px; }
+.player-ui .ui-icon-arrowthick-1-se { background-position: -48px -48px; }
+.player-ui .ui-icon-arrowthick-1-s { background-position: -64px -48px; }
+.player-ui .ui-icon-arrowthick-1-sw { background-position: -80px -48px; }
+.player-ui .ui-icon-arrowthick-1-w { background-position: -96px -48px; }
+.player-ui .ui-icon-arrowthick-1-nw { background-position: -112px -48px; }
+.player-ui .ui-icon-arrowthick-2-n-s { background-position: -128px -48px; }
+.player-ui .ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px; }
+.player-ui .ui-icon-arrowthick-2-e-w { background-position: -160px -48px; }
+.player-ui .ui-icon-arrowthick-2-se-nw { background-position: -176px -48px; }
+.player-ui .ui-icon-arrowthickstop-1-n { background-position: -192px -48px; }
+.player-ui .ui-icon-arrowthickstop-1-e { background-position: -208px -48px; }
+.player-ui .ui-icon-arrowthickstop-1-s { background-position: -224px -48px; }
+.player-ui .ui-icon-arrowthickstop-1-w { background-position: -240px -48px; }
+.player-ui .ui-icon-arrowreturnthick-1-w { background-position: 0 -64px; }
+.player-ui .ui-icon-arrowreturnthick-1-n { background-position: -16px -64px; }
+.player-ui .ui-icon-arrowreturnthick-1-e { background-position: -32px -64px; }
+.player-ui .ui-icon-arrowreturnthick-1-s { background-position: -48px -64px; }
+.player-ui .ui-icon-arrowreturn-1-w { background-position: -64px -64px; }
+.player-ui .ui-icon-arrowreturn-1-n { background-position: -80px -64px; }
+.player-ui .ui-icon-arrowreturn-1-e { background-position: -96px -64px; }
+.player-ui .ui-icon-arrowreturn-1-s { background-position: -112px -64px; }
+.player-ui .ui-icon-arrowrefresh-1-w { background-position: -128px -64px; }
+.player-ui .ui-icon-arrowrefresh-1-n { background-position: -144px -64px; }
+.player-ui .ui-icon-arrowrefresh-1-e { background-position: -160px -64px; }
+.player-ui .ui-icon-arrowrefresh-1-s { background-position: -176px -64px; }
+.player-ui .ui-icon-arrow-4 { background-position: 0 -80px; }
+.player-ui .ui-icon-arrow-4-diag { background-position: -16px -80px; }
+.player-ui .ui-icon-extlink { background-position: -32px -80px; }
+.player-ui .ui-icon-newwin { background-position: -48px -80px; }
+.player-ui .ui-icon-refresh { background-position: -64px -80px; }
+.player-ui .ui-icon-shuffle { background-position: -80px -80px; }
+.player-ui .ui-icon-transfer-e-w { background-position: -96px -80px; }
+.player-ui .ui-icon-transferthick-e-w { background-position: -112px -80px; }
+.player-ui .ui-icon-folder-collapsed { background-position: 0 -96px; }
+.player-ui .ui-icon-folder-open { background-position: -16px -96px; }
+.player-ui .ui-icon-document { background-position: -32px -96px; }
+.player-ui .ui-icon-document-b { background-position: -48px -96px; }
+.player-ui .ui-icon-note { background-position: -64px -96px; }
+.player-ui .ui-icon-mail-closed { background-position: -80px -96px; }
+.player-ui .ui-icon-mail-open { background-position: -96px -96px; }
+.player-ui .ui-icon-suitcase { background-position: -112px -96px; }
+.player-ui .ui-icon-comment { background-position: -128px -96px; }
+.player-ui .ui-icon-person { background-position: -144px -96px; }
+.player-ui .ui-icon-print { background-position: -160px -96px; }
+.player-ui .ui-icon-trash { background-position: -176px -96px; }
+.player-ui .ui-icon-locked { background-position: -192px -96px; }
+.player-ui .ui-icon-unlocked { background-position: -208px -96px; }
+.player-ui .ui-icon-bookmark { background-position: -224px -96px; }
+.player-ui .ui-icon-tag { background-position: -240px -96px; }
+.player-ui .ui-icon-home { background-position: 0 -112px; }
+.player-ui .ui-icon-flag { background-position: -16px -112px; }
+.player-ui .ui-icon-calendar { background-position: -32px -112px; }
+.player-ui .ui-icon-cart { background-position: -48px -112px; }
+.player-ui .ui-icon-pencil { background-position: -64px -112px; }
+.player-ui .ui-icon-clock { background-position: -80px -112px; }
+.player-ui .ui-icon-disk { background-position: -96px -112px; }
+.player-ui .ui-icon-calculator { background-position: -112px -112px; }
+.player-ui .ui-icon-zoomin { background-position: -128px -112px; }
+.player-ui .ui-icon-zoomout { background-position: -144px -112px; }
+.player-ui .ui-icon-search { background-position: -160px -112px; }
+.player-ui .ui-icon-wrench { background-position: -176px -112px; }
+.player-ui .ui-icon-gear { background-position: -192px -112px; }
+.player-ui .ui-icon-heart { background-position: -208px -112px; }
+.player-ui .ui-icon-star { background-position: -224px -112px; }
+.player-ui .ui-icon-link { background-position: -240px -112px; }
+.player-ui .ui-icon-cancel { background-position: 0 -128px; }
+.player-ui .ui-icon-plus { background-position: -16px -128px; }
+.player-ui .ui-icon-plusthick { background-position: -32px -128px; }
+.player-ui .ui-icon-minus { background-position: -48px -128px; }
+.player-ui .ui-icon-minusthick { background-position: -64px -128px; }
+.player-ui .ui-icon-close { background-position: -80px -128px; }
+.player-ui .ui-icon-closethick { background-position: -96px -128px; }
+.player-ui .ui-icon-key { background-position: -112px -128px; }
+.player-ui .ui-icon-lightbulb { background-position: -128px -128px; }
+.player-ui .ui-icon-scissors { background-position: -144px -128px; }
+.player-ui .ui-icon-clipboard { background-position: -160px -128px; }
+.player-ui .ui-icon-copy { background-position: -176px -128px; }
+.player-ui .ui-icon-contact { background-position: -192px -128px; }
+.player-ui .ui-icon-image { background-position: -208px -128px; }
+.player-ui .ui-icon-video { background-position: -224px -128px; }
+.player-ui .ui-icon-script { background-position: -240px -128px; }
+.player-ui .ui-icon-alert { background-position: 0 -144px; }
+.player-ui .ui-icon-info { background-position: -16px -144px; }
+.player-ui .ui-icon-notice { background-position: -32px -144px; }
+.player-ui .ui-icon-help { background-position: -48px -144px; }
+.player-ui .ui-icon-check { background-position: -64px -144px; }
+.player-ui .ui-icon-bullet { background-position: -80px -144px; }
+.player-ui .ui-icon-radio-off { background-position: -96px -144px; }
+.player-ui .ui-icon-radio-on { background-position: -112px -144px; }
+.player-ui .ui-icon-pin-w { background-position: -128px -144px; }
+.player-ui .ui-icon-pin-s { background-position: -144px -144px; }
+.player-ui .ui-icon-play { background-position: 0 -160px; }
+.player-ui .ui-icon-pause { background-position: -16px -160px; }
+.player-ui .ui-icon-seek-next { background-position: -32px -160px; }
+.player-ui .ui-icon-seek-prev { background-position: -48px -160px; }
+.player-ui .ui-icon-seek-end { background-position: -64px -160px; }
+.player-ui .ui-icon-seek-start { background-position: -80px -160px; }
+/* ui-icon-seek-first is deprecated, use ui-icon-seek-start instead */
+.player-ui .ui-icon-seek-first { background-position: -80px -160px; }
+.player-ui .ui-icon-stop { background-position: -96px -160px; }
+.player-ui .ui-icon-eject { background-position: -112px -160px; }
+.player-ui .ui-icon-volume-off { background-position: -128px -160px; }
+.player-ui .ui-icon-volume-on { background-position: -144px -160px; }
+.player-ui .ui-icon-power { background-position: 0 -176px; }
+.player-ui .ui-icon-signal-diag { background-position: -16px -176px; }
+.player-ui .ui-icon-signal { background-position: -32px -176px; }
+.player-ui .ui-icon-battery-0 { background-position: -48px -176px; }
+.player-ui .ui-icon-battery-1 { background-position: -64px -176px; }
+.player-ui .ui-icon-battery-2 { background-position: -80px -176px; }
+.player-ui .ui-icon-battery-3 { background-position: -96px -176px; }
+.player-ui .ui-icon-circle-plus { background-position: 0 -192px; }
+.player-ui .ui-icon-circle-minus { background-position: -16px -192px; }
+.player-ui .ui-icon-circle-close { background-position: -32px -192px; }
+.player-ui .ui-icon-circle-triangle-e { background-position: -48px -192px; }
+.player-ui .ui-icon-circle-triangle-s { background-position: -64px -192px; }
+.player-ui .ui-icon-circle-triangle-w { background-position: -80px -192px; }
+.player-ui .ui-icon-circle-triangle-n { background-position: -96px -192px; }
+.player-ui .ui-icon-circle-arrow-e { background-position: -112px -192px; }
+.player-ui .ui-icon-circle-arrow-s { background-position: -128px -192px; }
+.player-ui .ui-icon-circle-arrow-w { background-position: -144px -192px; }
+.player-ui .ui-icon-circle-arrow-n { background-position: -160px -192px; }
+.player-ui .ui-icon-circle-zoomin { background-position: -176px -192px; }
+.player-ui .ui-icon-circle-zoomout { background-position: -192px -192px; }
+.player-ui .ui-icon-circle-check { background-position: -208px -192px; }
+.player-ui .ui-icon-circlesmall-plus { background-position: 0 -208px; }
+.player-ui .ui-icon-circlesmall-minus { background-position: -16px -208px; }
+.player-ui .ui-icon-circlesmall-close { background-position: -32px -208px; }
+.player-ui .ui-icon-squaresmall-plus { background-position: -48px -208px; }
+.player-ui .ui-icon-squaresmall-minus { background-position: -64px -208px; }
+.player-ui .ui-icon-squaresmall-close { background-position: -80px -208px; }
+.player-ui .ui-icon-grip-dotted-vertical { background-position: 0 -224px; }
+.player-ui .ui-icon-grip-dotted-horizontal { background-position: -16px -224px; }
+.player-ui .ui-icon-grip-solid-vertical { background-position: -32px -224px; }
+.player-ui .ui-icon-grip-solid-horizontal { background-position: -48px -224px; }
+.player-ui .ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; }
+.player-ui .ui-icon-grip-diagonal-se { background-position: -80px -224px; }
+
+
+/* Misc visuals
+----------------------------------*/
+
+/* Corner radius */
+.player-ui .ui-corner-all, .player-ui .ui-corner-top, .player-ui .ui-corner-left, .player-ui .ui-corner-tl { -moz-border-radius-topleft: 6px; -webkit-border-top-left-radius: 6px; -khtml-border-top-left-radius: 6px; border-top-left-radius: 6px; }
+.player-ui .ui-corner-all, .player-ui .ui-corner-top, .player-ui .ui-corner-right, .player-ui .ui-corner-tr { -moz-border-radius-topright: 6px; -webkit-border-top-right-radius: 6px; -khtml-border-top-right-radius: 6px; border-top-right-radius: 6px; }
+.player-ui .ui-corner-all, .player-ui .ui-corner-bottom, .player-ui .ui-corner-left, .player-ui .ui-corner-bl { -moz-border-radius-bottomleft: 6px; -webkit-border-bottom-left-radius: 6px; -khtml-border-bottom-left-radius: 6px; border-bottom-left-radius: 6px; }
+.player-ui .ui-corner-all, .player-ui .ui-corner-bottom, .player-ui .ui-corner-right, .player-ui .ui-corner-br { -moz-border-radius-bottomright: 6px; -webkit-border-bottom-right-radius: 6px; -khtml-border-bottom-right-radius: 6px; border-bottom-right-radius: 6px; }
+
+/* Overlays */
+.player-ui .ui-widget-overlay { background: #eeeeee url(images/ui-bg_diagonals-thick_90_eeeeee_40x40.png) 50% 50% repeat; opacity: .80;filter:Alpha(Opacity=80); }
+.player-ui .ui-widget-shadow { margin: -7px 0 0 -7px; padding: 7px; background: #000000 url(images/ui-bg_highlight-hard_70_000000_1x100.png) 50% top repeat-x; opacity: .30;filter:Alpha(Opacity=30); -moz-border-radius: 8px; -khtml-border-radius: 8px; -webkit-border-radius: 8px; border-radius: 8px; }/*
+ * jQuery UI Resizable 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Resizable#theming
+ */
+.player-ui .ui-resizable { position: relative;}
+.player-ui .ui-resizable-handle { position: absolute;font-size: 0.1px;z-index: 99999; display: block; }
+.player-ui .ui-resizable-disabled .ui-resizable-handle, .player-ui .ui-resizable-autohide .ui-resizable-handle { display: none; }
+.player-ui .ui-resizable-n { cursor: n-resize; height: 7px; width: 100%; top: -5px; left: 0; }
+.player-ui .ui-resizable-s { cursor: s-resize; height: 7px; width: 100%; bottom: -5px; left: 0; }
+.player-ui .ui-resizable-e { cursor: e-resize; width: 7px; right: -5px; top: 0; height: 100%; }
+.player-ui .ui-resizable-w { cursor: w-resize; width: 7px; left: -5px; top: 0; height: 100%; }
+.player-ui .ui-resizable-se { cursor: se-resize; width: 12px; height: 12px; right: 1px; bottom: 1px; }
+.player-ui .ui-resizable-sw { cursor: sw-resize; width: 9px; height: 9px; left: -5px; bottom: -5px; }
+.player-ui .ui-resizable-nw { cursor: nw-resize; width: 9px; height: 9px; left: -5px; top: -5px; }
+.player-ui .ui-resizable-ne { cursor: ne-resize; width: 9px; height: 9px; right: -5px; top: -5px;}/*
+ * jQuery UI Selectable 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Selectable#theming
+ */
+.player-ui .ui-selectable-helper { position: absolute; z-index: 100; border:1px dotted black; }
+/*
+ * jQuery UI Accordion 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Accordion#theming
+ */
+/* IE/Win - Fix animation bug - #4615 */
+.player-ui .ui-accordion { width: 100%; }
+.player-ui .ui-accordion .ui-accordion-header { cursor: pointer; position: relative; margin-top: 1px; zoom: 1; }
+.player-ui .ui-accordion .ui-accordion-li-fix { display: inline; }
+.player-ui .ui-accordion .ui-accordion-header-active { border-bottom: 0 !important; }
+.player-ui .ui-accordion .ui-accordion-header a { display: block; font-size: 1em; padding: .5em .5em .5em .7em; }
+.player-ui .ui-accordion-icons .ui-accordion-header a { padding-left: 2.2em; }
+.player-ui .ui-accordion .ui-accordion-header .ui-icon { position: absolute; left: .5em; top: 50%; margin-top: -8px; }
+.player-ui .ui-accordion .ui-accordion-content { padding: 1em 2.2em; border-top: 0; margin-top: -2px; position: relative; top: 1px; margin-bottom: 2px; overflow: auto; display: none; zoom: 1; }
+.player-ui .ui-accordion .ui-accordion-content-active { display: block; }
+/*
+ * jQuery UI Autocomplete 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Autocomplete#theming
+ */
+.player-ui .ui-autocomplete { position: absolute; cursor: default; }	
+
+/* workarounds */
+* html .ui-autocomplete { width:1px; } /* without this, the menu expands to 100% in IE6 */
+
+/*
+ * jQuery UI Menu 1.8.18
+ *
+ * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Menu#theming
+ */
+.player-ui .ui-menu {
+	list-style:none;
+	padding: 2px;
+	margin: 0;
+	display:block;
+	float: left;
+}
+.player-ui .ui-menu .ui-menu {
+	margin-top: -3px;
+}
+.player-ui .ui-menu .ui-menu-item {
+	margin:0;
+	padding: 0;
+	zoom: 1;
+	float: left;
+	clear: left;
+	width: 100%;
+}
+.player-ui .ui-menu .ui-menu-item a {
+	text-decoration:none;
+	display:block;
+	padding:.2em .4em;
+	line-height:1.5;
+	zoom:1;
+}
+.player-ui .ui-menu .ui-menu-item a.ui-state-hover,
+.player-ui .ui-menu .ui-menu-item a.ui-state-active {
+	font-weight: normal;
+	margin: -1px;
+}
+/*
+ * jQuery UI Button 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Button#theming
+ */
+.player-ui .ui-button { display: inline-block; position: relative; padding: 0; margin-right: .1em; text-decoration: none !important; cursor: pointer; text-align: center; zoom: 1; overflow: hidden; *overflow: visible; } /* the overflow property removes extra width in IE */
+.player-ui .ui-button-icon-only { width: 2.2em; } /* to make room for the icon, a width needs to be set here */
+button.ui-button-icon-only { width: 2.4em; } /* button elements seem to need a little more width */
+.player-ui .ui-button-icons-only { width: 3.4em; } 
+button.ui-button-icons-only { width: 3.7em; } 
+
+/*button text element */
+.player-ui .ui-button .ui-button-text { display: block; line-height: 1.4;  }
+.player-ui .ui-button-text-only .ui-button-text { padding: .4em 1em; }
+.player-ui .ui-button-icon-only .ui-button-text, .player-ui .ui-button-icons-only .ui-button-text { padding: .4em; text-indent: -9999999px; }
+.player-ui .ui-button-text-icon-primary .ui-button-text, .player-ui .ui-button-text-icons .ui-button-text { padding: .4em 1em .4em 2.1em; }
+.player-ui .ui-button-text-icon-secondary .ui-button-text, .player-ui .ui-button-text-icons .ui-button-text { padding: .4em 2.1em .4em 1em; }
+.player-ui .ui-button-text-icons .ui-button-text { padding-left: 2.1em; padding-right: 2.1em; }
+/* no icon support for input elements, provide padding by default */
+input.ui-button { padding: .4em 1em; }
+
+/*button icon element(s) */
+.player-ui .ui-button-icon-only .ui-icon, .player-ui .ui-button-text-icon-primary .ui-icon, .player-ui .ui-button-text-icon-secondary .ui-icon, .player-ui .ui-button-text-icons .ui-icon, .player-ui .ui-button-icons-only .ui-icon { position: absolute; top: 50%; margin-top: -8px; }
+.player-ui .ui-button-icon-only .ui-icon { left: 50%; margin-left: -8px; }
+.player-ui .ui-button-text-icon-primary .ui-button-icon-primary, .player-ui .ui-button-text-icons .ui-button-icon-primary, .player-ui .ui-button-icons-only .ui-button-icon-primary { left: .5em; }
+.player-ui .ui-button-text-icon-secondary .ui-button-icon-secondary, .player-ui .ui-button-text-icons .ui-button-icon-secondary, .player-ui .ui-button-icons-only .ui-button-icon-secondary { right: .5em; }
+.player-ui .ui-button-text-icons .ui-button-icon-secondary, .player-ui .ui-button-icons-only .ui-button-icon-secondary { right: .5em; }
+
+/*button sets*/
+.player-ui .ui-buttonset { margin-right: 7px; }
+.player-ui .ui-buttonset .ui-button { margin-left: 0; margin-right: -.3em; }
+
+/* workarounds */
+button.ui-button::-moz-focus-inner { border: 0; padding: 0; } /* reset extra padding in Firefox */
+/*
+ * jQuery UI Dialog 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Dialog#theming
+ */
+.player-ui .ui-dialog { position: absolute; padding: .2em; width: 300px; overflow: hidden; }
+.player-ui .ui-dialog .ui-dialog-titlebar { padding: .4em 1em; position: relative;  }
+.player-ui .ui-dialog .ui-dialog-title { float: left; margin: .1em 16px .1em 0; } 
+.player-ui .ui-dialog .ui-dialog-titlebar-close { position: absolute; right: .3em; top: 50%; width: 19px; margin: -10px 0 0 0; padding: 1px; height: 18px; }
+.player-ui .ui-dialog .ui-dialog-titlebar-close span { display: block; margin: 1px; }
+.player-ui .ui-dialog .ui-dialog-titlebar-close:hover, .player-ui .ui-dialog .ui-dialog-titlebar-close:focus { padding: 0; }
+.player-ui .ui-dialog .ui-dialog-content { position: relative; border: 0; padding: .5em 1em; background: none; overflow: auto; zoom: 1; }
+.player-ui .ui-dialog .ui-dialog-buttonpane { text-align: left; border-width: 1px 0 0 0; background-image: none; margin: .5em 0 0 0; padding: .3em 1em .5em .4em; }
+.player-ui .ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset { float: right; }
+.player-ui .ui-dialog .ui-dialog-buttonpane button { margin: .5em .4em .5em 0; cursor: pointer; }
+.player-ui .ui-dialog .ui-resizable-se { width: 14px; height: 14px; right: 3px; bottom: 3px; }
+.player-ui .ui-draggable .ui-dialog-titlebar { cursor: move; }
+/*
+ * jQuery UI Slider 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Slider#theming
+ */
+.player-ui .ui-slider { position: relative; text-align: left; }
+.player-ui .ui-slider .ui-slider-handle { position: absolute; z-index: 2; width: 1.2em; height: 1.2em; cursor: default; }
+.player-ui .ui-slider .ui-slider-range { position: absolute; z-index: 1; font-size: .7em; display: block; border: 0; background-position: 0 0; }
+
+.player-ui .ui-slider-horizontal { height: .8em; }
+.player-ui .ui-slider-horizontal .ui-slider-handle { top: -.3em; margin-left: -.6em; }
+.player-ui .ui-slider-horizontal .ui-slider-range { top: 0; height: 100%; }
+.player-ui .ui-slider-horizontal .ui-slider-range-min { left: 0; }
+.player-ui .ui-slider-horizontal .ui-slider-range-max { right: 0; }
+
+.player-ui .ui-slider-vertical { width: .8em; height: 100px; }
+.player-ui .ui-slider-vertical .ui-slider-handle { left: -.3em; margin-left: 0; margin-bottom: -.6em; }
+.player-ui .ui-slider-vertical .ui-slider-range { left: 0; width: 100%; }
+.player-ui .ui-slider-vertical .ui-slider-range-min { bottom: 0; }
+.player-ui .ui-slider-vertical .ui-slider-range-max { top: 0; }/*
+ * jQuery UI Tabs 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Tabs#theming
+ */
+.player-ui .ui-tabs { position: relative; padding: .2em; zoom: 1; } /* position: relative prevents IE scroll bug (element with position: relative inside container with overflow: auto appear as "fixed") */
+.player-ui .ui-tabs .ui-tabs-nav { margin: 0; padding: .2em .2em 0; }
+.player-ui .ui-tabs .ui-tabs-nav li { list-style: none; float: left; position: relative; top: 1px; margin: 0 .2em 1px 0; border-bottom: 0 !important; padding: 0; white-space: nowrap; }
+.player-ui .ui-tabs .ui-tabs-nav li a { float: left; padding: .5em 1em; text-decoration: none; }
+.player-ui .ui-tabs .ui-tabs-nav li.ui-tabs-selected { margin-bottom: 0; padding-bottom: 1px; }
+.player-ui .ui-tabs .ui-tabs-nav li.ui-tabs-selected a, .player-ui .ui-tabs .ui-tabs-nav li.ui-state-disabled a, .player-ui .ui-tabs .ui-tabs-nav li.ui-state-processing a { cursor: text; }
+.player-ui .ui-tabs .ui-tabs-nav li a, .player-ui .ui-tabs.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-selected a { cursor: pointer; } /* first selector in group seems obsolete, but required to overcome bug in Opera applying cursor: text overall if defined elsewhere... */
+.player-ui .ui-tabs .ui-tabs-panel { display: block; border-width: 0; padding: 1em 1.4em; background: none; }
+.player-ui .ui-tabs .ui-tabs-hide { display: none !important; }
+/*
+ * jQuery UI Datepicker 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Datepicker#theming
+ */
+.player-ui .ui-datepicker { width: 17em; padding: .2em .2em 0; display: none; }
+.player-ui .ui-datepicker .ui-datepicker-header { position:relative; padding:.2em 0; }
+.player-ui .ui-datepicker .ui-datepicker-prev, .player-ui .ui-datepicker .ui-datepicker-next { position:absolute; top: 2px; width: 1.8em; height: 1.8em; }
+.player-ui .ui-datepicker .ui-datepicker-prev-hover, .player-ui .ui-datepicker .ui-datepicker-next-hover { top: 1px; }
+.player-ui .ui-datepicker .ui-datepicker-prev { left:2px; }
+.player-ui .ui-datepicker .ui-datepicker-next { right:2px; }
+.player-ui .ui-datepicker .ui-datepicker-prev-hover { left:1px; }
+.player-ui .ui-datepicker .ui-datepicker-next-hover { right:1px; }
+.player-ui .ui-datepicker .ui-datepicker-prev span, .player-ui .ui-datepicker .ui-datepicker-next span { display: block; position: absolute; left: 50%; margin-left: -8px; top: 50%; margin-top: -8px;  }
+.player-ui .ui-datepicker .ui-datepicker-title { margin: 0 2.3em; line-height: 1.8em; text-align: center; }
+.player-ui .ui-datepicker .ui-datepicker-title select { font-size:1em; margin:1px 0; }
+.player-ui .ui-datepicker select.ui-datepicker-month-year {width: 100%;}
+.player-ui .ui-datepicker select.ui-datepicker-month, 
+.player-ui .ui-datepicker select.ui-datepicker-year { width: 49%;}
+.player-ui .ui-datepicker table {width: 100%; font-size: .9em; border-collapse: collapse; margin:0 0 .4em; }
+.player-ui .ui-datepicker th { padding: .7em .3em; text-align: center; font-weight: bold; border: 0;  }
+.player-ui .ui-datepicker td { border: 0; padding: 1px; }
+.player-ui .ui-datepicker td span, .player-ui .ui-datepicker td a { display: block; padding: .2em; text-align: right; text-decoration: none; }
+.player-ui .ui-datepicker .ui-datepicker-buttonpane { background-image: none; margin: .7em 0 0 0; padding:0 .2em; border-left: 0; border-right: 0; border-bottom: 0; }
+.player-ui .ui-datepicker .ui-datepicker-buttonpane button { float: right; margin: .5em .2em .4em; cursor: pointer; padding: .2em .6em .3em .6em; width:auto; overflow:visible; }
+.player-ui .ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current { float:left; }
+
+/* with multiple calendars */
+.player-ui .ui-datepicker.ui-datepicker-multi { width:auto; }
+.player-ui .ui-datepicker-multi .ui-datepicker-group { float:left; }
+.player-ui .ui-datepicker-multi .ui-datepicker-group table { width:95%; margin:0 auto .4em; }
+.player-ui .ui-datepicker-multi-2 .ui-datepicker-group { width:50%; }
+.player-ui .ui-datepicker-multi-3 .ui-datepicker-group { width:33.3%; }
+.player-ui .ui-datepicker-multi-4 .ui-datepicker-group { width:25%; }
+.player-ui .ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header { border-left-width:0; }
+.player-ui .ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header { border-left-width:0; }
+.player-ui .ui-datepicker-multi .ui-datepicker-buttonpane { clear:left; }
+.player-ui .ui-datepicker-row-break { clear:both; width:100%; font-size:0em; }
+
+/* RTL support */
+.player-ui .ui-datepicker-rtl { direction: rtl; }
+.player-ui .ui-datepicker-rtl .ui-datepicker-prev { right: 2px; left: auto; }
+.player-ui .ui-datepicker-rtl .ui-datepicker-next { left: 2px; right: auto; }
+.player-ui .ui-datepicker-rtl .ui-datepicker-prev:hover { right: 1px; left: auto; }
+.player-ui .ui-datepicker-rtl .ui-datepicker-next:hover { left: 1px; right: auto; }
+.player-ui .ui-datepicker-rtl .ui-datepicker-buttonpane { clear:right; }
+.player-ui .ui-datepicker-rtl .ui-datepicker-buttonpane button { float: left; }
+.player-ui .ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current { float:right; }
+.player-ui .ui-datepicker-rtl .ui-datepicker-group { float:right; }
+.player-ui .ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header { border-right-width:0; border-left-width:1px; }
+.player-ui .ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header { border-right-width:0; border-left-width:1px; }
+
+/* IE6 IFRAME FIX (taken from datepicker 1.5.3 */
+.player-ui .ui-datepicker-cover {
+    display: none; /*sorry for IE5*/
+    display/**/: block; /*sorry for IE5*/
+    position: absolute; /*must have*/
+    z-index: -1; /*must have*/
+    filter: mask(); /*must have*/
+    top: -4px; /*must have*/
+    left: -4px; /*must have*/
+    width: 200px; /*must have*/
+    height: 200px; /*must have*/
+}/*
+ * jQuery UI Progressbar 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Progressbar#theming
+ */
+.player-ui .ui-progressbar { height:2em; text-align: left; overflow: hidden; }
+.player-ui .ui-progressbar .ui-progressbar-value {margin: -1px; height:100%; }
\ No newline at end of file
diff --git a/public/admin/js/osmplayer/jquery-ui/dark-hive/images/ui-bg_flat_30_cccccc_40x100.png b/public/admin/js/osmplayer/jquery-ui/dark-hive/images/ui-bg_flat_30_cccccc_40x100.png
new file mode 100644
index 0000000000000000000000000000000000000000..5473afffbc2662173f5af5c27d966c072de8039b
GIT binary patch
literal 180
zcmeAS@N?(olHy`uVBq!ia0vp^8bF-F!3HG1q!d*FscKIb$B>N1x91EQ4=4yQ7#`Ta
z<$H)q$%zYm;;c7~Kd+Iuj%U9o62cnl7#bi-T}u42J&U%yNJ})(84RATelF{r5}E*|
CoG&2&

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/dark-hive/images/ui-bg_flat_50_5c5c5c_40x100.png b/public/admin/js/osmplayer/jquery-ui/dark-hive/images/ui-bg_flat_50_5c5c5c_40x100.png
new file mode 100644
index 0000000000000000000000000000000000000000..5950a8db9e64e8d00bb28726cb869947abfdc7fc
GIT binary patch
literal 180
zcmeAS@N?(olHy`uVBq!ia0vp^8bF-F!3HG1q!d*FscKIb$B>N1x91EQ4=4yQ7&<)v
zy**H+<irI&an_s0pV!D+$FtuP31JO&3=I&aE+y`Ik?D37+g%o*GZ;Kw{an^LB{Ts5
Dj7=}j

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/dark-hive/images/ui-bg_glass_40_ffc73d_1x400.png b/public/admin/js/osmplayer/jquery-ui/dark-hive/images/ui-bg_glass_40_ffc73d_1x400.png
new file mode 100644
index 0000000000000000000000000000000000000000..35ec0d9d290646cc4e487ad973dde7e979829d00
GIT binary patch
literal 131
zcmeAS@N?(olHy`uVBq!ia0vp^j6gJjgAK^akKnouq`W*`978O6-=5zn*kB-V#9{8A
z5YLNW97J7a98qL7IHPXurDyRjc|Mbg@8{^ExfYyF9&D2iMXXNan#^1HV2J>C;u_aS
d;^%;}$C#b3amU=xZ39`u;OXk;vd$@?2>__OD+K@m

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/dark-hive/images/ui-bg_highlight-hard_20_0972a5_1x100.png b/public/admin/js/osmplayer/jquery-ui/dark-hive/images/ui-bg_highlight-hard_20_0972a5_1x100.png
new file mode 100644
index 0000000000000000000000000000000000000000..142598c15cb0ca540aa6827347b5c7e85a868917
GIT binary patch
literal 114
zcmeAS@N?(olHy`uVBq!ia0vp^j6j^i!3HGVb)pi0l%=POV~E7myZr|_859H#C$$#_
zh!;7nulq8`LBM`tV~tntU8W!0Y$9e{&2BDw`ljx4Ke9~`ue)=AB~w`WS&O1LJJ1jY
MPgg&ebxsLQ03p^NegFUf

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/dark-hive/images/ui-bg_highlight-soft_33_003147_1x100.png b/public/admin/js/osmplayer/jquery-ui/dark-hive/images/ui-bg_highlight-soft_33_003147_1x100.png
new file mode 100644
index 0000000000000000000000000000000000000000..e83ff52ff661473dfbb5d7ecefc79666b5deaa86
GIT binary patch
literal 127
zcmeAS@N?(olHy`uVBq!ia0vp^j6j^i!3HGVb)pi0l$)oEV~E7mtNjOg8w?njIF)zy
z8t?c&`EYx#FuTDrc_zz>1&{Y+dEWBKc)HEVKq-VTvd@vZ$f(*=Y;JdZ(9C@?zrSDA
af5NuG#n~>@c3C{oL<Ub+KbLh*2~7ZRgeVsP

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/dark-hive/images/ui-bg_highlight-soft_35_222222_1x100.png b/public/admin/js/osmplayer/jquery-ui/dark-hive/images/ui-bg_highlight-soft_35_222222_1x100.png
new file mode 100644
index 0000000000000000000000000000000000000000..a9b5ae3003b5408a0adfa4b039b35c19761e0640
GIT binary patch
literal 113
zcmeAS@N?(olHy`uVBq!ia0vp^j6j^i!3HGVb)pi0l!d2@V~E7mWDX9FALox8IB>wA
zrKA4;KgZ7h|Nko&3m&<@zkcB+pg^k-2d7Et4IYOXHXr^iHDYAQDR<FvdYab@G=ss@
L)z4*}Q$iB}UkE1`

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/dark-hive/images/ui-bg_highlight-soft_44_444444_1x100.png b/public/admin/js/osmplayer/jquery-ui/dark-hive/images/ui-bg_highlight-soft_44_444444_1x100.png
new file mode 100644
index 0000000000000000000000000000000000000000..a5c0a4d0e8c4fa60c912c1eb5c67703cb358070e
GIT binary patch
literal 117
zcmeAS@N?(olHy`uVBq!ia0vp^j6j^i!3HGVb)pi0l#Qp0V~E7mtNo5#42B%c&i~)M
z?|rE{;Zkwp&C>=FqD`wVF*V31rtx^1O-i2-*%VR!`&-n>;7Qxw|F%2EX3gO;DXM(c
Q3!pg+p00i_>zopr07oh&m;e9(

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/dark-hive/images/ui-bg_highlight-soft_80_eeeeee_1x100.png b/public/admin/js/osmplayer/jquery-ui/dark-hive/images/ui-bg_highlight-soft_80_eeeeee_1x100.png
new file mode 100644
index 0000000000000000000000000000000000000000..e56eefd612ae74339bd45ae91ddfc2ae2eb7092b
GIT binary patch
literal 95
zcmeAS@N?(olHy`uVBq!ia0vp^j6j^i!3HGVb)pi0l$xiDV~E7m<R9PO-mX_;V`FPm
t^!)SxzkGA+{NMlo*YiaFapSdSVvypOnZSD^;yq9YgQu&X%Q~loCID>Q98UlM

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/dark-hive/images/ui-bg_loop_25_000000_21x21.png b/public/admin/js/osmplayer/jquery-ui/dark-hive/images/ui-bg_loop_25_000000_21x21.png
new file mode 100644
index 0000000000000000000000000000000000000000..bc7ea5f78045721fcbc80c11a7833566ab81f5d2
GIT binary patch
literal 235
zcmV<H02Kd;P)<h;3K|Lk000e1NJLTq000#L000#T1^@s6sTZY|00028Nkl<ZIE~en
zF%pCz3`M`Rsnh5Fr%F$q8jIaH;F7G&u7!WbL43kUcq&As0r)tWxiRxH6Op#PPtZqI
zhknm9=Dc{v%%G|;v*AV&xy(Grq_x(e?X${`Ntt<Q`>e7JuL4hN<B4h-j>&d0+x^U%
zf*@uFBAPNH8aC#f>GHEBX56nA2az`Z)Mst7aSvDO*P4b(W!ikxEmSJgCesbL>5ZBy
l)n`Swhbr~&FF)@1NA1MND3Ij(>C6BC002ovPDHLkV1j6)YcT)-

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/dark-hive/images/ui-icons_222222_256x240.png b/public/admin/js/osmplayer/jquery-ui/dark-hive/images/ui-icons_222222_256x240.png
new file mode 100644
index 0000000000000000000000000000000000000000..b273ff111d219c9b9a8b96d57683d0075fb7871a
GIT binary patch
literal 4369
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

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/dark-hive/images/ui-icons_4b8e0b_256x240.png b/public/admin/js/osmplayer/jquery-ui/dark-hive/images/ui-icons_4b8e0b_256x240.png
new file mode 100644
index 0000000000000000000000000000000000000000..3bdb67be8f85c00d44940330a9a8cb07a73e83a4
GIT binary patch
literal 4369
zcmd^?`8O2)_s3^phOrG}UnfiUEn8(9QW1?MNkxXVDEpFin2{xWrLx5kBC;k~Gm<qS
zlCjL7i8RK}U~J#s@6Y%1S9~7lb?$xLU+y{go_o*h`AV=spXY*!!T<mOmxZ~R9RL9Q
zdj+hrf&W^P#f9C!Zpp^V{;X9h=l{;pej~~JTR1w<4t)tA3_robX4CdCOHJC|7j+vW
z%J-EMX&`87enIluaSc0_SnYUx$GzUc?vrNXt&I`o?~7C3RJ>C-Ajq!3AfU8Dx90^_
zp3}MKjJzYC+`T(&egFXQ#9Ek{*oVAaa!zrZtmlRFnwQPRJXH<%pkK2*eP`pT=lwD7
zifq+4BY_rUTa+U|2#&?i7>PVvD?7R4ZfOLPT{e<z*9Sa%-q+JZ0`uF@uf^uR0+0eA
zKOCxXcaQOB0xyL&$7t}dfX{x=z?wHIs;&yo%nJr`+{Z2X98Hy3`tm$u;dhd<8yL(-
z;#Sne;Lpz{>9G~G!Ls3s8JtQE`jMM9w<tfkOhc;ql-3a{hO%LC#ZWVT(nn|vd<pzY
zQv5BF3Fy2~(>l2V9&Q+K2DHW0M+uQmEr%nYJ^7cK?uIpU-)=wn71ZZ-=@ar0;3^AY
z5+TI{2b(e%t{2PZ<B%x(nNg1>^HKF*vu@+Xr<l6w#|okxspftdv$I9rN_GQ)7q|*8
zs5y_rF@oIq1RoU``$~Uk{rhVB^2n_8t2HJSxDFflkb2zZ+{WSl|IoP?Sr2=Mv_tpb
zBhqwukeg|uo9qd8ZqP<?l)|%<*;D+JXWZi%on=Ghf-03Mlsz8h(Q+`v>&BAc@2BC4
z_vCgww#i=)ea5Vo$glEEVBBg_VPBj!)OO>)f@}#dg6ULOeC>LBHz<;*5Y;YfE0lNx
zg{N+4@lO~ozxpF69qV@VOGnc248Iuag4C1T)P^(hWkpP!{h!JekX}m^Q#b2B4f1oT
zIjsGz)4}-$rQ*-tS<w5Y%xt4vvDzNI7LjNDGL|1T2eU@2@{VTp9rUuZlx!D2{rUJ{
z3A%pW8$~DC0b2^P95?wbyueB1Bn4o?``LnX$Uf9F<C;}N4GLdAn{SZSlT7_PlCs0I
zDBXb%F`GiL7)vk|BieTWHX3ScMxyQ_M+@in`79A|2b?#r0AHuH>uc%qG>%<4xM#E&
zN)7lRK~^2VdiloY4>;#}A!yHOAXEmEi^+eA#05pawGXs>!z)gSoDuI#>bRCq-qjJe
zZ)r=A`*EMX6+)~er1kdv1L^)0-PsAEM7JF$O6G8>496$24lkO<m1%2pOjtWwevM#F
z42>SR^RTfUuIz%iSfn5b-t!##cs7sQI);gdAvqmn_v|%I9k;fCPl0Z)R1+hNQONJN
zH%3jT9sOq*a`LF*MiY=zlSSQZ;{_FL9M07A=In+O!~wR}=bzGEQpk2!Vc0p)qKAH?
zOk{(%06W#)DdICQ_S%Q@<0Y+!?9%#$gWJ%)EO-<BTe}-}iZ54sx|$u%lQFIs?k4-B
z^|c_dxJ&9M^?WcqnEWyMADUCvUrhIaT;pF-+@vY1ij0*Jdz5c>>^YZP{<`oB4~9xh
zL9-0*c4@B#O2ylYs_g`Ky$zb~v!M`NRaMNFYF*Gsu|7)=JyyMHjFC=HhGUE@{aI|B
zJ~ITXU052%7jFb5Ys#fhS_?4kqc7H0EU49B8(Chg0&JzU=Gka#xOz1)H0d4m7ZnRA
z=M^tdY|U6T!fmte{W?_r8H~qdq|q{5AMU_2It1I4143n~xL?4&K#BOB48<w*Teqll
zf9X0fz4bHZ-Y$~|BFf{9mP#ye@YYTq-BICfY&StDZDl#G{Ztz02J1kC%b`U^<5ZiZ
z__Fi!u{2kX`iENVlA~L2)^LW8=_9VB;|Bbj&#bO<lzgV3Z>l9_Rdm!(c^C?JU;tF0
zEh@o1y6Qa_>}#AwX{VY+`C^kNkxhgb1P5cB0%xupAXyg9NO=SnXrJUE?rQg{Lcsn+
zAZKctGLfbK_B#^&Nev|0^fB&?DN=ak8|0!np524LD25=s84BP8Vl(3=jflNp{X>e@
z637Ri5xx;&JNl+XYImA|{;XR~P*svYDEWYJ6I5!6uO~2twFC1ZQevB7#3z~(apxn&
z^J@>Mc`>PJair{yT`<jZrWX;x-v7*qmDxI3P+Mg!OC%kw(l;VOuzC|8#l%8Tv4(G0
z7_1cw5ch!89b^LbMtCv$CT7IO@xA>iuan-V+i%|Ho-pA<1?V-k^R2Q<5;Co%XxmL`
z018t4T0TTwO^w)Gx{9OSJ^9_|kgwX`7%0Rw!PO~@?xvnfUehvN;2Rc;^l>3kfbtk3
z8{j7p;S&{uTlTe9&HTc38q@%_KQFk<&n{vmrN7y&Cz{etcE->rq!6HL)2F!aa=0%!
zM%Bwo!7TQ5t;@a_#Q}sjk{UebWQZ8{cp&HN^$*JfH#8spkhk{R@CVBiPuP@yEhu{}
zsQfuhTqV%rioATpEphMfhyRYbVfVW`YwLFXUWm-===J(byMf!5;W^CV1g~2194Xx)
zFK|z{pm%n-)-DRe{Qhk(d!QaoI*y%Wn6h7<6A{i*Sob&B^y|Spg!&J$`kN>zwUJ3x
zaB$ciu<nSNOim3uYsQP5jc-?Naxj(j<)z};2hoFn0&u_kBM}O@VS5)nDYx1pf*RQR
z`S)$xBwb^buzAY%gnq7CFpintWEa)7yX44mQ(9Sxz=?kBxk*6p@w42$*>*0FJKg}T
ztgnh)ASF8njz5>h6?f#{c=<QigVeYbrKRaeqWoE+%S;th=M#iBteNh&UJyV9DiQ2h
zCovT3fv1eTQ@mSXnGo$!aqUldv6@p0GWkoaEpG=8r)RRRm`|p~(T62hpEIu=ka-lH
zHFz2@lD_Q*`R}K5+eNd{WnX-*hEHn`>*Yr4W_34$GmVIo8OLWjcZK4a0`+Yv-!*}9
zBwKm;DAsA(nDI-`iH@;`=gP+m{lgFLHK3m$W@?)&dGhDA_Z2xOzI0$p(ZJtH$vCxE
zj>+kYNBJzs-TlSx!tSH}%I9fQv)mc!C7X0bKlZv4f&}C3+O-4k7A<p}+mKlQ4rT=l
zCn2{pDn1>mVO|KYZ9ydP%(N1^uisV8y;~p`x4qFXD?!_OyN9=w(O<V*&M}1I>d6W;
zGrT?G;l2v@Ob5k^8w<9w%Jbjb^|H}PYKo}I<qcU#EQV?(-;CW$3_+TixaI#lD-xJT
z(AO6gph7h?y_UKm^jWi&NP`DX>~bobd!XrTbzp2Zp~H8lgJ)I3?l&(bDiWf8gE&6b
z>)9GB=Iu-6%I((+>=jGP>CzD8c0oWITFZGgM!Q7|JrUYq4#^Y(vuDu-a>OWDa4Y4}
z5a_*lW#IL_aVf8L+Ty}c&2VojLEIA-;eQK6Wo?<KawYbZ!!f3+b@4Ui!v_Lt9t*qk
zDRw@T5NsTbrkFQA%ko%G1_Lb|ijKF_IU^teY$_8;Ght~t5fIeS9_!kg2AC0L3%DAp
z)%@G=p6e~2D2qisLge~Zg_>xAuK>i;1VWx3c=!s2;j_*iRHOsb*>6-C<qcj8`@=rO
zP}XMY68YV0>gcYP+Ho=L@XLd*j~2ln-;WHg)|cCixksH$K={5rGSD@yB%LI|(NCc8
z1Er8H+QO)~S~K{g?nH|2dB8SKs)BxQ?%G}}o*LV!NG2m*TmR|pWj~g`>)ClJCE#F$
zcj)fBg(dKOKmc$Cy}IRlasngIR>z~kP&WW~9cC951{AKmnZ~ZMsqup6QQf7J0T1;C
zK9*Qd5*(HxW=tl|RfjO>nkoW#AU3t>JkuzWxy4-l?xmTv15_r1X@p@dz^{&j&;{Mq
z$^0$0q&y?kbdZh)kZ+NfXfqLTG}Q^j>qHlUH4VEK`3y^-z6Y<6O88Hf4v^;}!{t-a
zDWg;znYu%6zA1~A5~<XNrYJBS8~snn$jIDO<y@mJydzi%ZH$Z$)QuZaz%45=1m~)~
z4Q`zYwLIYfLfxmU0o|G_6zFY@4*h+3cz>w?<TWDm>fxO~i8-Ib(^02{c4pXjhDI^2
zXB1LP4dvWuc%PXQ{r!d#6>${rm+M8EJM8yf#!H$Kp8AxwUXm5`7Tu-J$mHe<eDz8P
zkinV!Ohb>CG>vw|&Ay415}_1w&*9K8+2d3v1N+@a$|820o4u60Tj@u&kI!~q2V9X;
z>tMvQDI|O$#m+m2O**ZHq`_{#8)ry6`&5s~2k{O4Du16Fn0P;&_(0!e5%Bel){nU0
zJX~<8U6hoI%yx}qGY_1Tq7YKDJ)ETOCs&W)TiCrK*1%DE*vXdD-7hwE*LUgjeHRM`
z&@pkhTi&gtm#Kc+QIK+2Ybn9-sFVKNHyIgfob4H_77yYh))Rq$7Pw|+aD6&yZ|ki9
z8Zb6s{oBt1G+PgfIcxd}{m@~1nzhe;LH)5;!gS8@ddyabpdBc?7JVl?tS+<#bPSMT
z2@0uYdsWN(;Ww)n-PlA-0r+62@bYkEa`k{0s})fJgYZ#5=DmIdEvok7aZJRi{w-|}
zkea&<y#A2`hji}_#v2m7skndFe=lVxz&%)EE=piOEcJ&sO<`_b5^G%<n#vzp@oj^X
z%JiB6!h~{GSBxDmQ}k74qOt+84)V%~Jq`#i%7JivMeIU@9c}EI^K40lP|4}S;=!@7
zGZ1<3!HDW~9HJ?Y+=H6KhjKBrTPh}kHZl%5Q%W!nlj+c4IFM2PEm3CsAj}43o5_VX
zI-!1a5dPZ9M=_Q046q0ky|R;>6X}ZA3b7&vbDb7)v8CuI(+zzSf3z&P2eOrPNP?D~
z<WE8xnp!@QBele5FWK2lN)$}!cCBpfhDIq9vIqZBv5sQ<ySQilLber3RTGpZf7ria
z#<%~5cZOy?MY7b3oG#yZ-x@S0yR!k5+6TUj@N(-|bnt#LJh2{}%jx9MIwuve8&6>f
zn0@)0h;~5F&BG5v<AsTOfLuEFtBLWM#rp>OFU!=woW&ZSl~nrs{?1w>nWfW_dnpTd
z4qvLDYJ*ft>Sp%M(^_xCZpNBn<v0_^?y$&i*)D%LpQp$0NyRBLxtjpMg2Bt27wV-}
zA7?@{eZ;cBD%L0_pT_h@0b7Nob>c66JX}A|ZL9IENM`U>`ph7d<+RQiI}@E8Y)70s
zMC*_&))}GlmR}@{v9*nm)29-=rn`Q$rc^4G)GVQHlTr6BpGxtHuU(8AF7Ffh54?5w
zj+EYT9>x)PWL-iQ@RNm<k%46_xu3)RJlgba`xYU0%*_29yy1gU*1=vg_B;a@J`J7P
zZbtp1M*r&3*S1r6=Ez1EU)iWolOX*FyrcztJ`}_b+S&bhk>T?R+|c@=FOmj)5Za6_
z@DkVy4l^L>Z3#SI@s_eVwd3D)<^Ivq8a~J{|4mhOL^<7M4D8){ut;GIqqn`oqCk|x
pNh;Wa$C0(mdpqYz&F>xK-uVD=DT5%Jzh8ZT#aXmjr70%*{{Y;&D8m2%

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/dark-hive/images/ui-icons_a83300_256x240.png b/public/admin/js/osmplayer/jquery-ui/dark-hive/images/ui-icons_a83300_256x240.png
new file mode 100644
index 0000000000000000000000000000000000000000..95993eab7625fb91819ce8d3d72fd6f71a520eda
GIT binary patch
literal 4369
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

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/dark-hive/images/ui-icons_cccccc_256x240.png b/public/admin/js/osmplayer/jquery-ui/dark-hive/images/ui-icons_cccccc_256x240.png
new file mode 100644
index 0000000000000000000000000000000000000000..9254e05cfb964be56241b5bb4d0a0eb51c02df80
GIT binary patch
literal 4369
zcmd^?`8O2)_s3^phOrG}UnfiUEn8(9QW1?MNkxXVDEpFin2{xWrLx5kBC;k~Gm<qS
zlCjL7i8RK}U~J#s@6Y%1S9~7lb?$xLU+y{go_o*h`AV=spXY*!!T<mOmxZ~R9RL9Q
zdj+hrf&W^P#f9C!Zpp^V{%rq1|NqYUMxkc^EgT(ahrR?5hM!<zvuS&nr6z6fi@J>w
z<@?HsG!Qg3zaV+-xQ3ldtad!U<6iGz_enGH*2akP_r)o1D&8p^5M)<i5Kvm7+w+1d
z&*|KAM&6N6?%o|XKL7xDVlB)}>_c8IIj6Wy*7HJo&CBLuo~nj>(63pZzO(Vv^ZuB3
zMYigjkwA;FEy|G}1jpiMj6|NTm7Uyiw=@FDE*nX<>jR!W@9XIyf%$Fd*J5*D0Z0Lm
z9}ZQxyT|x5ftNy?V>EbJz-K>bV9gs9RaXUP<^=;e?&Fqxj;6{ieR-a-@H<J_4GiWZ
zaVu(K@aJcf^w<j8VA*iR3{E8n{m4z5Ta=$%rXkgQO6v#}L)oynVyGEE=_51-z65?H
zDgGA81aw}gX`NgF4>ycA1KMKhql8GOmcx<Hp8QKqcf*>wZ?_-(3hMK^^a*(gaFvBH
ziIC!fgH4$W*NbKIaY&T?%&13``KbD@S-0`xQ%v3TV+B!;RC7O!+1a9QCA$H@3tR;k
z)SSoR7(s4)f{zM}eWgFN{(ZH5d1O}l)f$ruT!)Q&NImXyZsTzOf9TwctcSfr+M)aJ
z5otO+$jvm-P4)ykH)x|cO5xeb>?!`qGw$(>&axqLL6yoB${vsMXgL_-bz@2J_tS92
zdvZG-+vKl@K4Vr(<X8D7Fm5%eurE#<YP<1YLAHb!!E~xCzIMI68x%=Yh-w$L6-vB;
z!c#Z2_$LgPU;Po3j&(cwr6cKhhF=VILF!3vYQvfMvLYtV{!ir!NUtS|shjnm2Kl+v
z9M*o<>EL{WQt@Z+Ea-hxX0}nTSZxnpi^#Kn8Ox8FgIS|hc}KJQ4tm*HO16ui{(O9}
z1YN)GjiQt6fGq`Cj+^`zUf?8hk^(T{{cOQGWFP98am}is28A!5%{R#ENv8fCN!j69
zl<vTXm`x#Aj3pR~5$!tw8x6HJBT;veqlI((e3l5f1J0XQfUi^9^|f?)8pp02+%sAX
zr3QSEAghjFy?kTy2b}Y~5VYqs5GsSo#pFLl;)0^z+6P*`;T5Mu&WLv=bzI9Q@9K!#
zx3ne5{kTux3L#b!(t3OTfpmY0?(76nqT7xWC3Cn`hU1f1hZjxb%CxmPCafJTzecbo
zhDHzEdDz$vS9U>MEK(2z?|BY=Je$XD9mB-Kkem*(d-j^9j$2#6r$Dz?s)-TCDCGCs
z8>6Pvj{Y+YIeFA@qY22V$)awy@q!9A4rgk5b9TcC;s9Ig^G|6nDP+5=Fzg&?(L=vc
zCbGd>fSu~@6!94td+o#d@sid<c4_^>!EI<?7QBi6t=$bf#g{8RUCj>X$rx7*cawe6
z`dScJ+$HssdOjE)O#Ybs56vm-FQ$7yuJJD^Zqk%hMaIgAJ<2yb_MFQte_i;62ScT$
zpjifYyR_E=rQ+>H)pmlr-Udzg*-!|ssw(D7wJvC+Sf8bb9;;q8#z?0p!!bsd{wy|5
zpBaMHE-Ve>i#LLjHRaMLtp%9&(HCng7Sw96jVv!#0k%?F^K7&=T)mnYn)D9(i;4x5
z^NJTJwq~pv;kH@#ejTd*48~(J(r6j34|m`h9fEDj0im)~+%I5XphWymhT;_Zty|Q&
zzjPg#-ufAHZ<omf5#{klOC=UKcxxw*?x^rKwwoZ7wz3@8eku)ggLNRn<<KIdajH#H
zeA)T=Seh$G{X;Ew$<Zx1YdFKl^buFmaRdI%XI9raN<LH2H`S7|Dmv<?JPd_9FaRph
z7M0*0UG<&|_BGC;v{TKZe6h)s$R@%If`c(mfiu?)kSq&lq&xx(v`_L7ceQ&}Az*(Z
zkTW$+naI+A`yGk?qy`dg`WSb{6e&FN4RX;O&+frr6hjc+3<Yokv6*p`M#SE){vkzc
z3FL#%2;YdX9eq<GwL48ff7Y!gs4B@Hlzc$A2`aV3*Atk++JX5HDY4Bk;uB4Yxbu<X
z`L&1ByqMIqI8t`UE|_LH(~F2;?|){*%50r1sI9V=C6bO-=^K$CSiOmlVqzhvSi?6g
z4AzPTh<iZl4l)6IBfJ=W6EkAt_}>1M*Gccw?Kf|8Pnhtb0`!{N`Bqsa37J+>wC$!e
z00k+2Egzz;rbcWoUB%Jvp8W1}$XD%e3>4y;;OZ1ccT-O#uW6Ys@C}Pa`nZrNKzR(2
z4e%3)@QI4SE&E!lW`5y14QhbepBG%_XBV-O(%<aX6HVzRJ7ee*QV3AB=~LWyIoy{V
zqv~a)U>5tj)@9#|;sC-MNev!zGDHk}JdpGC`iJF#8=8-P$Xoku_=Dw%Cv3{U7L>gf
zRQ?<$t`cZ*MP5GQmbmx#!+*!zu>0MewRO9GFGS{b^m_fJ-N0?j@EqoFf>$khj+E|@
z7r3We&^tR^YZrxKe*d<YJy4G(9mh^GOxZ8bi3n#Ytos{m`t{%)Lj8wW{Y{jV+Q_6T
zI5_MMSa-xsCZ~p-HRDCj#<#0BIhacN@>22agXqCO0l44&kqCv{u)T|(lv`~PK@DvE
z{QI_TlCH5z*gR!>LO)k67{^R+vWx24U2^2ODXpwT;6y+6+$5m)_*w4WY&#do9dCeE
z)>p+Ykdhq($DhmMiaYXey!@N%L26uz($aJ!QT{B^Wu}U$^9e#5)=c+XF9@Ill?ZmM
zlNgHiz*9!vDc&uxOo;ZVxb`Q!Sk0*gnfxWzmbZh4(=%CD%qP?0=);n$&zaW_$UKV9
z8axdcN#AyZ{P)wj?V{P}vM)YY!>6@}^>U+iv$`9>nMTCPjN>z%yF&3yf%>+T@0vh4
zlC8Xa6zeo?%=o3}M8{aebLHcO{^1Ar8qiM=Gquf?Jo)q5`-+?sUpg?QXyEUpWSm+n
z$K-UyqkI<R?*3wTVfWE~<@2<uS?-MVl1;jzAA8*iL4xsi?b?BNi<UXgZAh$t2eX2O
zlaSjP6`u~(FfWAHwjdICW?Bi|*YB$4-Yt-e+urDxm7s0C-NReT=&xHY=NLk9^<)K_
z8Qvc8a9@Rcrh{U|jRjj-<@xXJdfDhCHAU3q@`fxV7DF|YZ^rH=h9J#M-17gO6$#8E
z=<ACLP@x){UQ68&`mEVXq`?Cxb~%;JJ<xQvIxsey(BZq&!Lur1_nVgz6$w$lK^&jz
z^=yq5^Y*23<@W0Z_KKzDbZLlkyC5J9t>wHLquru~o(OF)hhz$Y*|X>ZIbswnxRvr~
z2=rdOGVuD|xRlpAZE<0!X1F(%Anpl^@V^D3vbM}qxe|NI;TTiZy7(IM;R69RkA>a&
z6gwYE2sREzQ_LHmWqB+ogMk(fMaSFeoDq-!HkFB_nXt5+2ncFuk9BQL1I&oB1zZi)
zYW{6_&-Ip1l*OVRA##1ILQS;5R{-K^0wGTiJbVSi@LA^$D$;@J>^G{6@&+%4{b3(s
zC~LEHiTv(0b#zxt?YJ0r_~pUZM~mQ(??(n#>&tD%+@nq=Abj5*8R!~Ul1`G~=qFJ4
zfl|m8ZDCYgtr`4LcOpgiJYX9qRY5;DcWti~PmS$VB$E-Zt^f4)vLDOe_3XTq5^ylW
zJ9PKm!V-8sAOJXnUfuFNIf0R9tK-pNs2hO04zr620}5B(Ok>yB)Of-3sP59qfQNbm
zA4{w!2@cB;GbR(~szVrbO%(w=5S!X`o@o@x++wbN_tMPT0V<QhG{UeJ;8({%=z{L*
zWd0UgQl1fNI!H$Y$hXK#w3!Gvn(74Nb)t*FnucAAe1;`Z--B03CHyB#2gq}g;qs~I
zlu;^<Ox+<j-;_m5iBxJsQxuqvjs7QOWMpota<0)9-Vv;XHb%w=>c)*I;Fgsbf^*g0
z2Di?HTApwKq3+YwfNsqd3iP%{hyK1iyuVZc@*0tO_3+N0#GFsz>8MjeJ2UJ%L!%hi
zGYYAthH`E+ywA*u{(eJ=ia3h*%k?779rk-K<0VZAPkl;TFUbmei|$fqWO8!_zIvqt
z$ly$VrlH46nnpX~X5Yk0iBJl;=WuA4>~X4-f&K0yWf42h&0b30t@NYX$7egQ1Fp!a
zbui-D6cWCWV&|R1CY@G8(qOmWjWeX3eX7UggZPGimA}soOuQdXe4uZ#2>5zN>qlI0
z9xk}lE=tNpX1m6*nFr2EQ3xs79!^sCldDJYE$m(qYv3q7>}1R7?iZW7>$~*%zKaC|
z=$N?ME$>#+%T&MZC`dW1wUl6Z)JgyCn~V%K&i0H|iwE%$>xsZW3tTfZxIUe<xAj&4
z4Hz4+{_ST0nym-LoHhM~e(110&D!U_p#In^VLIn{J!Y#z&<>Pci@p;cRu|d=ItIwF
z1clVHy{hH?@SD|(Zfqi^0DQ1hczHN7xq85h)rzQqLHMX2^IkuK7FB!kI40s$|CY7~
zNX^{_UjN8}L%Med;|+=4RNTMozn8KT;2tb77bUPCmioh+rZBfIiM6f_P34cQ__o1G
zWqQp3VL~~pE5?qODf%iiQQ3f42YF@09tQ*$<v=*TB6gv{jy879dA6iNsN{5E@!(k4
z8HhaiU_^B~4$+iH?m^ArL%A5*Efo_%8ySb3DJ2+($#iHi9LOmDmMF7*5N3n2&E!HG
zolrkI2!HM5qnOHg23Q1&UfD^`iFCzlg;)`TxlRkY*i!V9>4v_EKUx;t1KCPCBtgqg
z@+Tn;O)a0uky_%jm+WjNB?=~VyH>V#L!*=l*@OS6SVyt_UEH&NA=?V2stHPyKkVNy
z<J*73J43UcB3bH1PM2@IZw;E0-Pr(2?E_y%c)4{fI(WYro>&jg<#cjros){#ji)dK
z%)We0L_478=HZ8-@xnwsKrWs8)x`MB;(Y`Cmu2c-&SH(vN-F(*e`l?c%+l$|y_AJJ
zhcDGnwLvN+bu;_sX|1<mH)GAPa-4}{cUWY%Y?nWr&(mZ0q~a8r+)V&r!Qf@i3-wZ~
zk29f}K4Mv56>AiePh<L{fUUyPI`J1j9<HC~w$=DnBr|v`eP$5Ka$0AMorz8kwj<6R
zqIF0X>x@u&%P$hf*xE+O=~D?_(_KGWQ!158YL-y9$*6mmPo;Rp*Dl5lm-mVM2i`h-
zM@nxv590_tvMwPD_{l=b$iOm|+|S{D9&P%zeT$GgX6Akl-tfUF>tL@Ld!B&{pN39t
zH>3Vhqkr}2Yul+jb7UiouWVGPNsxX7Ueba+9|~dz?d*QM$ng0DZfO0`7fAy?2yMm|
zcnRzUhZ&IcwgjH9cuU!w+VStYa{p*)4IgBf|E8)sqMYtB2KH_}SfsFq(c9i(Q6S3U
oBo%DI<H*|Oy`A%<=J$?q?|gu`ltGZq->*Kv;w;*%(i9W@e`=?odH?_b

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/dark-hive/images/ui-icons_ffffff_256x240.png b/public/admin/js/osmplayer/jquery-ui/dark-hive/images/ui-icons_ffffff_256x240.png
new file mode 100644
index 0000000000000000000000000000000000000000..42f8f992c727ddaa617da224a522e463df690387
GIT binary patch
literal 4369
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

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/dark-hive/jquery-ui-1.8.18.custom.css b/public/admin/js/osmplayer/jquery-ui/dark-hive/jquery-ui-1.8.18.custom.css
new file mode 100644
index 00000000000..9da98e2119d
--- /dev/null
+++ b/public/admin/js/osmplayer/jquery-ui/dark-hive/jquery-ui-1.8.18.custom.css
@@ -0,0 +1,565 @@
+/*
+ * jQuery UI CSS Framework 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Theming/API
+ */
+
+/* Layout helpers
+----------------------------------*/
+.player-ui .ui-helper-hidden { display: none; }
+.player-ui .ui-helper-hidden-accessible { position: absolute !important; clip: rect(1px 1px 1px 1px); clip: rect(1px,1px,1px,1px); }
+.player-ui .ui-helper-reset { margin: 0; padding: 0; border: 0; outline: 0; line-height: 1.3; text-decoration: none; font-size: 100%; list-style: none; }
+.player-ui .ui-helper-clearfix:before, .player-ui .ui-helper-clearfix:after { content: ""; display: table; }
+.player-ui .ui-helper-clearfix:after { clear: both; }
+.player-ui .ui-helper-clearfix { zoom: 1; }
+.player-ui .ui-helper-zfix { width: 100%; height: 100%; top: 0; left: 0; position: absolute; opacity: 0; filter:Alpha(Opacity=0); }
+
+
+/* Interaction Cues
+----------------------------------*/
+.player-ui .ui-state-disabled { cursor: default !important; }
+
+
+/* Icons
+----------------------------------*/
+
+/* states and images */
+.player-ui .ui-icon { display: block; text-indent: -99999px; overflow: hidden; background-repeat: no-repeat; }
+
+
+/* Misc visuals
+----------------------------------*/
+
+/* Overlays */
+.player-ui .ui-widget-overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }
+
+
+/*
+ * jQuery UI CSS Framework 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Theming/API
+ *
+ * To view and modify this theme, visit http://jqueryui.com/themeroller/?ffDefault=Verdana,%20Arial,%20sans-serif&fwDefault=normal&fsDefault=1.1em&cornerRadius=6px&bgColorHeader=444444&bgTextureHeader=03_highlight_soft.png&bgImgOpacityHeader=44&borderColorHeader=333333&fcHeader=ffffff&iconColorHeader=ffffff&bgColorContent=000000&bgTextureContent=14_loop.png&bgImgOpacityContent=25&borderColorContent=555555&fcContent=ffffff&iconColorContent=cccccc&bgColorDefault=222222&bgTextureDefault=03_highlight_soft.png&bgImgOpacityDefault=35&borderColorDefault=444444&fcDefault=eeeeee&iconColorDefault=cccccc&bgColorHover=003147&bgTextureHover=03_highlight_soft.png&bgImgOpacityHover=33&borderColorHover=0b93d5&fcHover=ffffff&iconColorHover=ffffff&bgColorActive=0972a5&bgTextureActive=04_highlight_hard.png&bgImgOpacityActive=20&borderColorActive=26b3f7&fcActive=ffffff&iconColorActive=222222&bgColorHighlight=eeeeee&bgTextureHighlight=03_highlight_soft.png&bgImgOpacityHighlight=80&borderColorHighlight=cccccc&fcHighlight=2e7db2&iconColorHighlight=4b8e0b&bgColorError=ffc73d&bgTextureError=02_glass.png&bgImgOpacityError=40&borderColorError=ffb73d&fcError=111111&iconColorError=a83300&bgColorOverlay=5c5c5c&bgTextureOverlay=01_flat.png&bgImgOpacityOverlay=50&opacityOverlay=80&bgColorShadow=cccccc&bgTextureShadow=01_flat.png&bgImgOpacityShadow=30&opacityShadow=60&thicknessShadow=7px&offsetTopShadow=-7px&offsetLeftShadow=-7px&cornerRadiusShadow=8px
+ */
+
+
+/* Component containers
+----------------------------------*/
+.player-ui .ui-widget { font-family: Verdana, Arial, sans-serif; font-size: 1.1em; }
+.player-ui .ui-widget .ui-widget { font-size: 1em; }
+.player-ui .ui-widget input, .player-ui .ui-widget select, .player-ui .ui-widget textarea, .player-ui .ui-widget button { font-family: Verdana, Arial, sans-serif; font-size: 1em; }
+.player-ui .ui-widget-content { border: 1px solid #555555; background: #000000 url(images/ui-bg_loop_25_000000_21x21.png) 50% 50% repeat; color: #ffffff; }
+.player-ui .ui-widget-content a { color: #ffffff; }
+.player-ui .ui-widget-header { border: 1px solid #333333; background: #444444 url(images/ui-bg_highlight-soft_44_444444_1x100.png) 50% 50% repeat-x; color: #ffffff; font-weight: bold; }
+.player-ui .ui-widget-header a { color: #ffffff; }
+
+/* Interaction states
+----------------------------------*/
+.player-ui .ui-state-default, .player-ui .ui-widget-content .ui-state-default, .player-ui .ui-widget-header .ui-state-default { border: 1px solid #444444; background: #222222 url(images/ui-bg_highlight-soft_35_222222_1x100.png) 50% 50% repeat-x; font-weight: normal; color: #eeeeee; }
+.player-ui .ui-state-default a, .player-ui .ui-state-default a:link, .player-ui .ui-state-default a:visited { color: #eeeeee; text-decoration: none; }
+.player-ui .ui-state-hover, .player-ui .ui-widget-content .ui-state-hover, .player-ui .ui-widget-header .ui-state-hover, .player-ui .ui-state-focus, .player-ui .ui-widget-content .ui-state-focus, .player-ui .ui-widget-header .ui-state-focus { border: 1px solid #0b93d5; background: #003147 url(images/ui-bg_highlight-soft_33_003147_1x100.png) 50% 50% repeat-x; font-weight: normal; color: #ffffff; }
+.player-ui .ui-state-hover a, .player-ui .ui-state-hover a:hover { color: #ffffff; text-decoration: none; }
+.player-ui .ui-state-active, .player-ui .ui-widget-content .ui-state-active, .player-ui .ui-widget-header .ui-state-active { border: 1px solid #26b3f7; background: #0972a5 url(images/ui-bg_highlight-hard_20_0972a5_1x100.png) 50% 50% repeat-x; font-weight: normal; color: #ffffff; }
+.player-ui .ui-state-active a, .player-ui .ui-state-active a:link, .player-ui .ui-state-active a:visited { color: #ffffff; text-decoration: none; }
+.player-ui .ui-widget :active { outline: none; }
+
+/* Interaction Cues
+----------------------------------*/
+.player-ui .ui-state-highlight, .player-ui .ui-widget-content .ui-state-highlight, .player-ui .ui-widget-header .ui-state-highlight  {border: 1px solid #cccccc; background: #eeeeee url(images/ui-bg_highlight-soft_80_eeeeee_1x100.png) 50% top repeat-x; color: #2e7db2; }
+.player-ui .ui-state-highlight a, .player-ui .ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a { color: #2e7db2; }
+.player-ui .ui-state-error, .player-ui .ui-widget-content .ui-state-error, .player-ui .ui-widget-header .ui-state-error {border: 1px solid #ffb73d; background: #ffc73d url(images/ui-bg_glass_40_ffc73d_1x400.png) 50% 50% repeat-x; color: #111111; }
+.player-ui .ui-state-error a, .player-ui .ui-widget-content .ui-state-error a, .player-ui .ui-widget-header .ui-state-error a { color: #111111; }
+.player-ui .ui-state-error-text, .player-ui .ui-widget-content .ui-state-error-text, .player-ui .ui-widget-header .ui-state-error-text { color: #111111; }
+.player-ui .ui-priority-primary, .player-ui .ui-widget-content .ui-priority-primary, .player-ui .ui-widget-header .ui-priority-primary { font-weight: bold; }
+.player-ui .ui-priority-secondary, .player-ui .ui-widget-content .ui-priority-secondary,  .ui-widget-header .ui-priority-secondary { opacity: .7; filter:Alpha(Opacity=70); font-weight: normal; }
+.player-ui .ui-state-disabled, .player-ui .ui-widget-content .ui-state-disabled, .player-ui .ui-widget-header .ui-state-disabled { opacity: .35; filter:Alpha(Opacity=35); background-image: none; }
+
+/* Icons
+----------------------------------*/
+
+/* states and images */
+.player-ui .ui-icon { width: 16px; height: 16px; background-image: url(images/ui-icons_cccccc_256x240.png); }
+.player-ui .ui-widget-content .ui-icon {background-image: url(images/ui-icons_cccccc_256x240.png); }
+.player-ui .ui-widget-header .ui-icon {background-image: url(images/ui-icons_ffffff_256x240.png); }
+.player-ui .ui-state-default .ui-icon { background-image: url(images/ui-icons_cccccc_256x240.png); }
+.player-ui .ui-state-hover .ui-icon, .player-ui .ui-state-focus .ui-icon {background-image: url(images/ui-icons_ffffff_256x240.png); }
+.player-ui .ui-state-active .ui-icon {background-image: url(images/ui-icons_222222_256x240.png); }
+.player-ui .ui-state-highlight .ui-icon {background-image: url(images/ui-icons_4b8e0b_256x240.png); }
+.player-ui .ui-state-error .ui-icon, .player-ui .ui-state-error-text .ui-icon {background-image: url(images/ui-icons_a83300_256x240.png); }
+
+/* positioning */
+.player-ui .ui-icon-carat-1-n { background-position: 0 0; }
+.player-ui .ui-icon-carat-1-ne { background-position: -16px 0; }
+.player-ui .ui-icon-carat-1-e { background-position: -32px 0; }
+.player-ui .ui-icon-carat-1-se { background-position: -48px 0; }
+.player-ui .ui-icon-carat-1-s { background-position: -64px 0; }
+.player-ui .ui-icon-carat-1-sw { background-position: -80px 0; }
+.player-ui .ui-icon-carat-1-w { background-position: -96px 0; }
+.player-ui .ui-icon-carat-1-nw { background-position: -112px 0; }
+.player-ui .ui-icon-carat-2-n-s { background-position: -128px 0; }
+.player-ui .ui-icon-carat-2-e-w { background-position: -144px 0; }
+.player-ui .ui-icon-triangle-1-n { background-position: 0 -16px; }
+.player-ui .ui-icon-triangle-1-ne { background-position: -16px -16px; }
+.player-ui .ui-icon-triangle-1-e { background-position: -32px -16px; }
+.player-ui .ui-icon-triangle-1-se { background-position: -48px -16px; }
+.player-ui .ui-icon-triangle-1-s { background-position: -64px -16px; }
+.player-ui .ui-icon-triangle-1-sw { background-position: -80px -16px; }
+.player-ui .ui-icon-triangle-1-w { background-position: -96px -16px; }
+.player-ui .ui-icon-triangle-1-nw { background-position: -112px -16px; }
+.player-ui .ui-icon-triangle-2-n-s { background-position: -128px -16px; }
+.player-ui .ui-icon-triangle-2-e-w { background-position: -144px -16px; }
+.player-ui .ui-icon-arrow-1-n { background-position: 0 -32px; }
+.player-ui .ui-icon-arrow-1-ne { background-position: -16px -32px; }
+.player-ui .ui-icon-arrow-1-e { background-position: -32px -32px; }
+.player-ui .ui-icon-arrow-1-se { background-position: -48px -32px; }
+.player-ui .ui-icon-arrow-1-s { background-position: -64px -32px; }
+.player-ui .ui-icon-arrow-1-sw { background-position: -80px -32px; }
+.player-ui .ui-icon-arrow-1-w { background-position: -96px -32px; }
+.player-ui .ui-icon-arrow-1-nw { background-position: -112px -32px; }
+.player-ui .ui-icon-arrow-2-n-s { background-position: -128px -32px; }
+.player-ui .ui-icon-arrow-2-ne-sw { background-position: -144px -32px; }
+.player-ui .ui-icon-arrow-2-e-w { background-position: -160px -32px; }
+.player-ui .ui-icon-arrow-2-se-nw { background-position: -176px -32px; }
+.player-ui .ui-icon-arrowstop-1-n { background-position: -192px -32px; }
+.player-ui .ui-icon-arrowstop-1-e { background-position: -208px -32px; }
+.player-ui .ui-icon-arrowstop-1-s { background-position: -224px -32px; }
+.player-ui .ui-icon-arrowstop-1-w { background-position: -240px -32px; }
+.player-ui .ui-icon-arrowthick-1-n { background-position: 0 -48px; }
+.player-ui .ui-icon-arrowthick-1-ne { background-position: -16px -48px; }
+.player-ui .ui-icon-arrowthick-1-e { background-position: -32px -48px; }
+.player-ui .ui-icon-arrowthick-1-se { background-position: -48px -48px; }
+.player-ui .ui-icon-arrowthick-1-s { background-position: -64px -48px; }
+.player-ui .ui-icon-arrowthick-1-sw { background-position: -80px -48px; }
+.player-ui .ui-icon-arrowthick-1-w { background-position: -96px -48px; }
+.player-ui .ui-icon-arrowthick-1-nw { background-position: -112px -48px; }
+.player-ui .ui-icon-arrowthick-2-n-s { background-position: -128px -48px; }
+.player-ui .ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px; }
+.player-ui .ui-icon-arrowthick-2-e-w { background-position: -160px -48px; }
+.player-ui .ui-icon-arrowthick-2-se-nw { background-position: -176px -48px; }
+.player-ui .ui-icon-arrowthickstop-1-n { background-position: -192px -48px; }
+.player-ui .ui-icon-arrowthickstop-1-e { background-position: -208px -48px; }
+.player-ui .ui-icon-arrowthickstop-1-s { background-position: -224px -48px; }
+.player-ui .ui-icon-arrowthickstop-1-w { background-position: -240px -48px; }
+.player-ui .ui-icon-arrowreturnthick-1-w { background-position: 0 -64px; }
+.player-ui .ui-icon-arrowreturnthick-1-n { background-position: -16px -64px; }
+.player-ui .ui-icon-arrowreturnthick-1-e { background-position: -32px -64px; }
+.player-ui .ui-icon-arrowreturnthick-1-s { background-position: -48px -64px; }
+.player-ui .ui-icon-arrowreturn-1-w { background-position: -64px -64px; }
+.player-ui .ui-icon-arrowreturn-1-n { background-position: -80px -64px; }
+.player-ui .ui-icon-arrowreturn-1-e { background-position: -96px -64px; }
+.player-ui .ui-icon-arrowreturn-1-s { background-position: -112px -64px; }
+.player-ui .ui-icon-arrowrefresh-1-w { background-position: -128px -64px; }
+.player-ui .ui-icon-arrowrefresh-1-n { background-position: -144px -64px; }
+.player-ui .ui-icon-arrowrefresh-1-e { background-position: -160px -64px; }
+.player-ui .ui-icon-arrowrefresh-1-s { background-position: -176px -64px; }
+.player-ui .ui-icon-arrow-4 { background-position: 0 -80px; }
+.player-ui .ui-icon-arrow-4-diag { background-position: -16px -80px; }
+.player-ui .ui-icon-extlink { background-position: -32px -80px; }
+.player-ui .ui-icon-newwin { background-position: -48px -80px; }
+.player-ui .ui-icon-refresh { background-position: -64px -80px; }
+.player-ui .ui-icon-shuffle { background-position: -80px -80px; }
+.player-ui .ui-icon-transfer-e-w { background-position: -96px -80px; }
+.player-ui .ui-icon-transferthick-e-w { background-position: -112px -80px; }
+.player-ui .ui-icon-folder-collapsed { background-position: 0 -96px; }
+.player-ui .ui-icon-folder-open { background-position: -16px -96px; }
+.player-ui .ui-icon-document { background-position: -32px -96px; }
+.player-ui .ui-icon-document-b { background-position: -48px -96px; }
+.player-ui .ui-icon-note { background-position: -64px -96px; }
+.player-ui .ui-icon-mail-closed { background-position: -80px -96px; }
+.player-ui .ui-icon-mail-open { background-position: -96px -96px; }
+.player-ui .ui-icon-suitcase { background-position: -112px -96px; }
+.player-ui .ui-icon-comment { background-position: -128px -96px; }
+.player-ui .ui-icon-person { background-position: -144px -96px; }
+.player-ui .ui-icon-print { background-position: -160px -96px; }
+.player-ui .ui-icon-trash { background-position: -176px -96px; }
+.player-ui .ui-icon-locked { background-position: -192px -96px; }
+.player-ui .ui-icon-unlocked { background-position: -208px -96px; }
+.player-ui .ui-icon-bookmark { background-position: -224px -96px; }
+.player-ui .ui-icon-tag { background-position: -240px -96px; }
+.player-ui .ui-icon-home { background-position: 0 -112px; }
+.player-ui .ui-icon-flag { background-position: -16px -112px; }
+.player-ui .ui-icon-calendar { background-position: -32px -112px; }
+.player-ui .ui-icon-cart { background-position: -48px -112px; }
+.player-ui .ui-icon-pencil { background-position: -64px -112px; }
+.player-ui .ui-icon-clock { background-position: -80px -112px; }
+.player-ui .ui-icon-disk { background-position: -96px -112px; }
+.player-ui .ui-icon-calculator { background-position: -112px -112px; }
+.player-ui .ui-icon-zoomin { background-position: -128px -112px; }
+.player-ui .ui-icon-zoomout { background-position: -144px -112px; }
+.player-ui .ui-icon-search { background-position: -160px -112px; }
+.player-ui .ui-icon-wrench { background-position: -176px -112px; }
+.player-ui .ui-icon-gear { background-position: -192px -112px; }
+.player-ui .ui-icon-heart { background-position: -208px -112px; }
+.player-ui .ui-icon-star { background-position: -224px -112px; }
+.player-ui .ui-icon-link { background-position: -240px -112px; }
+.player-ui .ui-icon-cancel { background-position: 0 -128px; }
+.player-ui .ui-icon-plus { background-position: -16px -128px; }
+.player-ui .ui-icon-plusthick { background-position: -32px -128px; }
+.player-ui .ui-icon-minus { background-position: -48px -128px; }
+.player-ui .ui-icon-minusthick { background-position: -64px -128px; }
+.player-ui .ui-icon-close { background-position: -80px -128px; }
+.player-ui .ui-icon-closethick { background-position: -96px -128px; }
+.player-ui .ui-icon-key { background-position: -112px -128px; }
+.player-ui .ui-icon-lightbulb { background-position: -128px -128px; }
+.player-ui .ui-icon-scissors { background-position: -144px -128px; }
+.player-ui .ui-icon-clipboard { background-position: -160px -128px; }
+.player-ui .ui-icon-copy { background-position: -176px -128px; }
+.player-ui .ui-icon-contact { background-position: -192px -128px; }
+.player-ui .ui-icon-image { background-position: -208px -128px; }
+.player-ui .ui-icon-video { background-position: -224px -128px; }
+.player-ui .ui-icon-script { background-position: -240px -128px; }
+.player-ui .ui-icon-alert { background-position: 0 -144px; }
+.player-ui .ui-icon-info { background-position: -16px -144px; }
+.player-ui .ui-icon-notice { background-position: -32px -144px; }
+.player-ui .ui-icon-help { background-position: -48px -144px; }
+.player-ui .ui-icon-check { background-position: -64px -144px; }
+.player-ui .ui-icon-bullet { background-position: -80px -144px; }
+.player-ui .ui-icon-radio-off { background-position: -96px -144px; }
+.player-ui .ui-icon-radio-on { background-position: -112px -144px; }
+.player-ui .ui-icon-pin-w { background-position: -128px -144px; }
+.player-ui .ui-icon-pin-s { background-position: -144px -144px; }
+.player-ui .ui-icon-play { background-position: 0 -160px; }
+.player-ui .ui-icon-pause { background-position: -16px -160px; }
+.player-ui .ui-icon-seek-next { background-position: -32px -160px; }
+.player-ui .ui-icon-seek-prev { background-position: -48px -160px; }
+.player-ui .ui-icon-seek-end { background-position: -64px -160px; }
+.player-ui .ui-icon-seek-start { background-position: -80px -160px; }
+/* ui-icon-seek-first is deprecated, use ui-icon-seek-start instead */
+.player-ui .ui-icon-seek-first { background-position: -80px -160px; }
+.player-ui .ui-icon-stop { background-position: -96px -160px; }
+.player-ui .ui-icon-eject { background-position: -112px -160px; }
+.player-ui .ui-icon-volume-off { background-position: -128px -160px; }
+.player-ui .ui-icon-volume-on { background-position: -144px -160px; }
+.player-ui .ui-icon-power { background-position: 0 -176px; }
+.player-ui .ui-icon-signal-diag { background-position: -16px -176px; }
+.player-ui .ui-icon-signal { background-position: -32px -176px; }
+.player-ui .ui-icon-battery-0 { background-position: -48px -176px; }
+.player-ui .ui-icon-battery-1 { background-position: -64px -176px; }
+.player-ui .ui-icon-battery-2 { background-position: -80px -176px; }
+.player-ui .ui-icon-battery-3 { background-position: -96px -176px; }
+.player-ui .ui-icon-circle-plus { background-position: 0 -192px; }
+.player-ui .ui-icon-circle-minus { background-position: -16px -192px; }
+.player-ui .ui-icon-circle-close { background-position: -32px -192px; }
+.player-ui .ui-icon-circle-triangle-e { background-position: -48px -192px; }
+.player-ui .ui-icon-circle-triangle-s { background-position: -64px -192px; }
+.player-ui .ui-icon-circle-triangle-w { background-position: -80px -192px; }
+.player-ui .ui-icon-circle-triangle-n { background-position: -96px -192px; }
+.player-ui .ui-icon-circle-arrow-e { background-position: -112px -192px; }
+.player-ui .ui-icon-circle-arrow-s { background-position: -128px -192px; }
+.player-ui .ui-icon-circle-arrow-w { background-position: -144px -192px; }
+.player-ui .ui-icon-circle-arrow-n { background-position: -160px -192px; }
+.player-ui .ui-icon-circle-zoomin { background-position: -176px -192px; }
+.player-ui .ui-icon-circle-zoomout { background-position: -192px -192px; }
+.player-ui .ui-icon-circle-check { background-position: -208px -192px; }
+.player-ui .ui-icon-circlesmall-plus { background-position: 0 -208px; }
+.player-ui .ui-icon-circlesmall-minus { background-position: -16px -208px; }
+.player-ui .ui-icon-circlesmall-close { background-position: -32px -208px; }
+.player-ui .ui-icon-squaresmall-plus { background-position: -48px -208px; }
+.player-ui .ui-icon-squaresmall-minus { background-position: -64px -208px; }
+.player-ui .ui-icon-squaresmall-close { background-position: -80px -208px; }
+.player-ui .ui-icon-grip-dotted-vertical { background-position: 0 -224px; }
+.player-ui .ui-icon-grip-dotted-horizontal { background-position: -16px -224px; }
+.player-ui .ui-icon-grip-solid-vertical { background-position: -32px -224px; }
+.player-ui .ui-icon-grip-solid-horizontal { background-position: -48px -224px; }
+.player-ui .ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; }
+.player-ui .ui-icon-grip-diagonal-se { background-position: -80px -224px; }
+
+
+/* Misc visuals
+----------------------------------*/
+
+/* Corner radius */
+.player-ui .ui-corner-all, .player-ui .ui-corner-top, .player-ui .ui-corner-left, .player-ui .ui-corner-tl { -moz-border-radius-topleft: 6px; -webkit-border-top-left-radius: 6px; -khtml-border-top-left-radius: 6px; border-top-left-radius: 6px; }
+.player-ui .ui-corner-all, .player-ui .ui-corner-top, .player-ui .ui-corner-right, .player-ui .ui-corner-tr { -moz-border-radius-topright: 6px; -webkit-border-top-right-radius: 6px; -khtml-border-top-right-radius: 6px; border-top-right-radius: 6px; }
+.player-ui .ui-corner-all, .player-ui .ui-corner-bottom, .player-ui .ui-corner-left, .player-ui .ui-corner-bl { -moz-border-radius-bottomleft: 6px; -webkit-border-bottom-left-radius: 6px; -khtml-border-bottom-left-radius: 6px; border-bottom-left-radius: 6px; }
+.player-ui .ui-corner-all, .player-ui .ui-corner-bottom, .player-ui .ui-corner-right, .player-ui .ui-corner-br { -moz-border-radius-bottomright: 6px; -webkit-border-bottom-right-radius: 6px; -khtml-border-bottom-right-radius: 6px; border-bottom-right-radius: 6px; }
+
+/* Overlays */
+.player-ui .ui-widget-overlay { background: #5c5c5c url(images/ui-bg_flat_50_5c5c5c_40x100.png) 50% 50% repeat-x; opacity: .80;filter:Alpha(Opacity=80); }
+.player-ui .ui-widget-shadow { margin: -7px 0 0 -7px; padding: 7px; background: #cccccc url(images/ui-bg_flat_30_cccccc_40x100.png) 50% 50% repeat-x; opacity: .60;filter:Alpha(Opacity=60); -moz-border-radius: 8px; -khtml-border-radius: 8px; -webkit-border-radius: 8px; border-radius: 8px; }/*
+ * jQuery UI Resizable 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Resizable#theming
+ */
+.player-ui .ui-resizable { position: relative;}
+.player-ui .ui-resizable-handle { position: absolute;font-size: 0.1px;z-index: 99999; display: block; }
+.player-ui .ui-resizable-disabled .ui-resizable-handle, .player-ui .ui-resizable-autohide .ui-resizable-handle { display: none; }
+.player-ui .ui-resizable-n { cursor: n-resize; height: 7px; width: 100%; top: -5px; left: 0; }
+.player-ui .ui-resizable-s { cursor: s-resize; height: 7px; width: 100%; bottom: -5px; left: 0; }
+.player-ui .ui-resizable-e { cursor: e-resize; width: 7px; right: -5px; top: 0; height: 100%; }
+.player-ui .ui-resizable-w { cursor: w-resize; width: 7px; left: -5px; top: 0; height: 100%; }
+.player-ui .ui-resizable-se { cursor: se-resize; width: 12px; height: 12px; right: 1px; bottom: 1px; }
+.player-ui .ui-resizable-sw { cursor: sw-resize; width: 9px; height: 9px; left: -5px; bottom: -5px; }
+.player-ui .ui-resizable-nw { cursor: nw-resize; width: 9px; height: 9px; left: -5px; top: -5px; }
+.player-ui .ui-resizable-ne { cursor: ne-resize; width: 9px; height: 9px; right: -5px; top: -5px;}/*
+ * jQuery UI Selectable 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Selectable#theming
+ */
+.player-ui .ui-selectable-helper { position: absolute; z-index: 100; border:1px dotted black; }
+/*
+ * jQuery UI Accordion 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Accordion#theming
+ */
+/* IE/Win - Fix animation bug - #4615 */
+.player-ui .ui-accordion { width: 100%; }
+.player-ui .ui-accordion .ui-accordion-header { cursor: pointer; position: relative; margin-top: 1px; zoom: 1; }
+.player-ui .ui-accordion .ui-accordion-li-fix { display: inline; }
+.player-ui .ui-accordion .ui-accordion-header-active { border-bottom: 0 !important; }
+.player-ui .ui-accordion .ui-accordion-header a { display: block; font-size: 1em; padding: .5em .5em .5em .7em; }
+.player-ui .ui-accordion-icons .ui-accordion-header a { padding-left: 2.2em; }
+.player-ui .ui-accordion .ui-accordion-header .ui-icon { position: absolute; left: .5em; top: 50%; margin-top: -8px; }
+.player-ui .ui-accordion .ui-accordion-content { padding: 1em 2.2em; border-top: 0; margin-top: -2px; position: relative; top: 1px; margin-bottom: 2px; overflow: auto; display: none; zoom: 1; }
+.player-ui .ui-accordion .ui-accordion-content-active { display: block; }
+/*
+ * jQuery UI Autocomplete 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Autocomplete#theming
+ */
+.player-ui .ui-autocomplete { position: absolute; cursor: default; }	
+
+/* workarounds */
+* html .ui-autocomplete { width:1px; } /* without this, the menu expands to 100% in IE6 */
+
+/*
+ * jQuery UI Menu 1.8.18
+ *
+ * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Menu#theming
+ */
+.player-ui .ui-menu {
+	list-style:none;
+	padding: 2px;
+	margin: 0;
+	display:block;
+	float: left;
+}
+.player-ui .ui-menu .ui-menu {
+	margin-top: -3px;
+}
+.player-ui .ui-menu .ui-menu-item {
+	margin:0;
+	padding: 0;
+	zoom: 1;
+	float: left;
+	clear: left;
+	width: 100%;
+}
+.player-ui .ui-menu .ui-menu-item a {
+	text-decoration:none;
+	display:block;
+	padding:.2em .4em;
+	line-height:1.5;
+	zoom:1;
+}
+.player-ui .ui-menu .ui-menu-item a.ui-state-hover,
+.player-ui .ui-menu .ui-menu-item a.ui-state-active {
+	font-weight: normal;
+	margin: -1px;
+}
+/*
+ * jQuery UI Button 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Button#theming
+ */
+.player-ui .ui-button { display: inline-block; position: relative; padding: 0; margin-right: .1em; text-decoration: none !important; cursor: pointer; text-align: center; zoom: 1; overflow: hidden; *overflow: visible; } /* the overflow property removes extra width in IE */
+.player-ui .ui-button-icon-only { width: 2.2em; } /* to make room for the icon, a width needs to be set here */
+button.ui-button-icon-only { width: 2.4em; } /* button elements seem to need a little more width */
+.player-ui .ui-button-icons-only { width: 3.4em; } 
+button.ui-button-icons-only { width: 3.7em; } 
+
+/*button text element */
+.player-ui .ui-button .ui-button-text { display: block; line-height: 1.4;  }
+.player-ui .ui-button-text-only .ui-button-text { padding: .4em 1em; }
+.player-ui .ui-button-icon-only .ui-button-text, .player-ui .ui-button-icons-only .ui-button-text { padding: .4em; text-indent: -9999999px; }
+.player-ui .ui-button-text-icon-primary .ui-button-text, .player-ui .ui-button-text-icons .ui-button-text { padding: .4em 1em .4em 2.1em; }
+.player-ui .ui-button-text-icon-secondary .ui-button-text, .player-ui .ui-button-text-icons .ui-button-text { padding: .4em 2.1em .4em 1em; }
+.player-ui .ui-button-text-icons .ui-button-text { padding-left: 2.1em; padding-right: 2.1em; }
+/* no icon support for input elements, provide padding by default */
+input.ui-button { padding: .4em 1em; }
+
+/*button icon element(s) */
+.player-ui .ui-button-icon-only .ui-icon, .player-ui .ui-button-text-icon-primary .ui-icon, .player-ui .ui-button-text-icon-secondary .ui-icon, .player-ui .ui-button-text-icons .ui-icon, .player-ui .ui-button-icons-only .ui-icon { position: absolute; top: 50%; margin-top: -8px; }
+.player-ui .ui-button-icon-only .ui-icon { left: 50%; margin-left: -8px; }
+.player-ui .ui-button-text-icon-primary .ui-button-icon-primary, .player-ui .ui-button-text-icons .ui-button-icon-primary, .player-ui .ui-button-icons-only .ui-button-icon-primary { left: .5em; }
+.player-ui .ui-button-text-icon-secondary .ui-button-icon-secondary, .player-ui .ui-button-text-icons .ui-button-icon-secondary, .player-ui .ui-button-icons-only .ui-button-icon-secondary { right: .5em; }
+.player-ui .ui-button-text-icons .ui-button-icon-secondary, .player-ui .ui-button-icons-only .ui-button-icon-secondary { right: .5em; }
+
+/*button sets*/
+.player-ui .ui-buttonset { margin-right: 7px; }
+.player-ui .ui-buttonset .ui-button { margin-left: 0; margin-right: -.3em; }
+
+/* workarounds */
+button.ui-button::-moz-focus-inner { border: 0; padding: 0; } /* reset extra padding in Firefox */
+/*
+ * jQuery UI Dialog 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Dialog#theming
+ */
+.player-ui .ui-dialog { position: absolute; padding: .2em; width: 300px; overflow: hidden; }
+.player-ui .ui-dialog .ui-dialog-titlebar { padding: .4em 1em; position: relative;  }
+.player-ui .ui-dialog .ui-dialog-title { float: left; margin: .1em 16px .1em 0; } 
+.player-ui .ui-dialog .ui-dialog-titlebar-close { position: absolute; right: .3em; top: 50%; width: 19px; margin: -10px 0 0 0; padding: 1px; height: 18px; }
+.player-ui .ui-dialog .ui-dialog-titlebar-close span { display: block; margin: 1px; }
+.player-ui .ui-dialog .ui-dialog-titlebar-close:hover, .player-ui .ui-dialog .ui-dialog-titlebar-close:focus { padding: 0; }
+.player-ui .ui-dialog .ui-dialog-content { position: relative; border: 0; padding: .5em 1em; background: none; overflow: auto; zoom: 1; }
+.player-ui .ui-dialog .ui-dialog-buttonpane { text-align: left; border-width: 1px 0 0 0; background-image: none; margin: .5em 0 0 0; padding: .3em 1em .5em .4em; }
+.player-ui .ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset { float: right; }
+.player-ui .ui-dialog .ui-dialog-buttonpane button { margin: .5em .4em .5em 0; cursor: pointer; }
+.player-ui .ui-dialog .ui-resizable-se { width: 14px; height: 14px; right: 3px; bottom: 3px; }
+.player-ui .ui-draggable .ui-dialog-titlebar { cursor: move; }
+/*
+ * jQuery UI Slider 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Slider#theming
+ */
+.player-ui .ui-slider { position: relative; text-align: left; }
+.player-ui .ui-slider .ui-slider-handle { position: absolute; z-index: 2; width: 1.2em; height: 1.2em; cursor: default; }
+.player-ui .ui-slider .ui-slider-range { position: absolute; z-index: 1; font-size: .7em; display: block; border: 0; background-position: 0 0; }
+
+.player-ui .ui-slider-horizontal { height: .8em; }
+.player-ui .ui-slider-horizontal .ui-slider-handle { top: -.3em; margin-left: -.6em; }
+.player-ui .ui-slider-horizontal .ui-slider-range { top: 0; height: 100%; }
+.player-ui .ui-slider-horizontal .ui-slider-range-min { left: 0; }
+.player-ui .ui-slider-horizontal .ui-slider-range-max { right: 0; }
+
+.player-ui .ui-slider-vertical { width: .8em; height: 100px; }
+.player-ui .ui-slider-vertical .ui-slider-handle { left: -.3em; margin-left: 0; margin-bottom: -.6em; }
+.player-ui .ui-slider-vertical .ui-slider-range { left: 0; width: 100%; }
+.player-ui .ui-slider-vertical .ui-slider-range-min { bottom: 0; }
+.player-ui .ui-slider-vertical .ui-slider-range-max { top: 0; }/*
+ * jQuery UI Tabs 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Tabs#theming
+ */
+.player-ui .ui-tabs { position: relative; padding: .2em; zoom: 1; } /* position: relative prevents IE scroll bug (element with position: relative inside container with overflow: auto appear as "fixed") */
+.player-ui .ui-tabs .ui-tabs-nav { margin: 0; padding: .2em .2em 0; }
+.player-ui .ui-tabs .ui-tabs-nav li { list-style: none; float: left; position: relative; top: 1px; margin: 0 .2em 1px 0; border-bottom: 0 !important; padding: 0; white-space: nowrap; }
+.player-ui .ui-tabs .ui-tabs-nav li a { float: left; padding: .5em 1em; text-decoration: none; }
+.player-ui .ui-tabs .ui-tabs-nav li.ui-tabs-selected { margin-bottom: 0; padding-bottom: 1px; }
+.player-ui .ui-tabs .ui-tabs-nav li.ui-tabs-selected a, .player-ui .ui-tabs .ui-tabs-nav li.ui-state-disabled a, .player-ui .ui-tabs .ui-tabs-nav li.ui-state-processing a { cursor: text; }
+.player-ui .ui-tabs .ui-tabs-nav li a, .player-ui .ui-tabs.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-selected a { cursor: pointer; } /* first selector in group seems obsolete, but required to overcome bug in Opera applying cursor: text overall if defined elsewhere... */
+.player-ui .ui-tabs .ui-tabs-panel { display: block; border-width: 0; padding: 1em 1.4em; background: none; }
+.player-ui .ui-tabs .ui-tabs-hide { display: none !important; }
+/*
+ * jQuery UI Datepicker 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Datepicker#theming
+ */
+.player-ui .ui-datepicker { width: 17em; padding: .2em .2em 0; display: none; }
+.player-ui .ui-datepicker .ui-datepicker-header { position:relative; padding:.2em 0; }
+.player-ui .ui-datepicker .ui-datepicker-prev, .player-ui .ui-datepicker .ui-datepicker-next { position:absolute; top: 2px; width: 1.8em; height: 1.8em; }
+.player-ui .ui-datepicker .ui-datepicker-prev-hover, .player-ui .ui-datepicker .ui-datepicker-next-hover { top: 1px; }
+.player-ui .ui-datepicker .ui-datepicker-prev { left:2px; }
+.player-ui .ui-datepicker .ui-datepicker-next { right:2px; }
+.player-ui .ui-datepicker .ui-datepicker-prev-hover { left:1px; }
+.player-ui .ui-datepicker .ui-datepicker-next-hover { right:1px; }
+.player-ui .ui-datepicker .ui-datepicker-prev span, .player-ui .ui-datepicker .ui-datepicker-next span { display: block; position: absolute; left: 50%; margin-left: -8px; top: 50%; margin-top: -8px;  }
+.player-ui .ui-datepicker .ui-datepicker-title { margin: 0 2.3em; line-height: 1.8em; text-align: center; }
+.player-ui .ui-datepicker .ui-datepicker-title select { font-size:1em; margin:1px 0; }
+.player-ui .ui-datepicker select.ui-datepicker-month-year {width: 100%;}
+.player-ui .ui-datepicker select.ui-datepicker-month, 
+.player-ui .ui-datepicker select.ui-datepicker-year { width: 49%;}
+.player-ui .ui-datepicker table {width: 100%; font-size: .9em; border-collapse: collapse; margin:0 0 .4em; }
+.player-ui .ui-datepicker th { padding: .7em .3em; text-align: center; font-weight: bold; border: 0;  }
+.player-ui .ui-datepicker td { border: 0; padding: 1px; }
+.player-ui .ui-datepicker td span, .player-ui .ui-datepicker td a { display: block; padding: .2em; text-align: right; text-decoration: none; }
+.player-ui .ui-datepicker .ui-datepicker-buttonpane { background-image: none; margin: .7em 0 0 0; padding:0 .2em; border-left: 0; border-right: 0; border-bottom: 0; }
+.player-ui .ui-datepicker .ui-datepicker-buttonpane button { float: right; margin: .5em .2em .4em; cursor: pointer; padding: .2em .6em .3em .6em; width:auto; overflow:visible; }
+.player-ui .ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current { float:left; }
+
+/* with multiple calendars */
+.player-ui .ui-datepicker.ui-datepicker-multi { width:auto; }
+.player-ui .ui-datepicker-multi .ui-datepicker-group { float:left; }
+.player-ui .ui-datepicker-multi .ui-datepicker-group table { width:95%; margin:0 auto .4em; }
+.player-ui .ui-datepicker-multi-2 .ui-datepicker-group { width:50%; }
+.player-ui .ui-datepicker-multi-3 .ui-datepicker-group { width:33.3%; }
+.player-ui .ui-datepicker-multi-4 .ui-datepicker-group { width:25%; }
+.player-ui .ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header { border-left-width:0; }
+.player-ui .ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header { border-left-width:0; }
+.player-ui .ui-datepicker-multi .ui-datepicker-buttonpane { clear:left; }
+.player-ui .ui-datepicker-row-break { clear:both; width:100%; font-size:0em; }
+
+/* RTL support */
+.player-ui .ui-datepicker-rtl { direction: rtl; }
+.player-ui .ui-datepicker-rtl .ui-datepicker-prev { right: 2px; left: auto; }
+.player-ui .ui-datepicker-rtl .ui-datepicker-next { left: 2px; right: auto; }
+.player-ui .ui-datepicker-rtl .ui-datepicker-prev:hover { right: 1px; left: auto; }
+.player-ui .ui-datepicker-rtl .ui-datepicker-next:hover { left: 1px; right: auto; }
+.player-ui .ui-datepicker-rtl .ui-datepicker-buttonpane { clear:right; }
+.player-ui .ui-datepicker-rtl .ui-datepicker-buttonpane button { float: left; }
+.player-ui .ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current { float:right; }
+.player-ui .ui-datepicker-rtl .ui-datepicker-group { float:right; }
+.player-ui .ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header { border-right-width:0; border-left-width:1px; }
+.player-ui .ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header { border-right-width:0; border-left-width:1px; }
+
+/* IE6 IFRAME FIX (taken from datepicker 1.5.3 */
+.player-ui .ui-datepicker-cover {
+    display: none; /*sorry for IE5*/
+    display/**/: block; /*sorry for IE5*/
+    position: absolute; /*must have*/
+    z-index: -1; /*must have*/
+    filter: mask(); /*must have*/
+    top: -4px; /*must have*/
+    left: -4px; /*must have*/
+    width: 200px; /*must have*/
+    height: 200px; /*must have*/
+}/*
+ * jQuery UI Progressbar 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Progressbar#theming
+ */
+.player-ui .ui-progressbar { height:2em; text-align: left; overflow: hidden; }
+.player-ui .ui-progressbar .ui-progressbar-value {margin: -1px; height:100%; }
\ No newline at end of file
diff --git a/public/admin/js/osmplayer/jquery-ui/dot-luv/images/ui-bg_diagonals-thick_15_0b3e6f_40x40.png b/public/admin/js/osmplayer/jquery-ui/dot-luv/images/ui-bg_diagonals-thick_15_0b3e6f_40x40.png
new file mode 100644
index 0000000000000000000000000000000000000000..792c59b6f304ee1bc59a0c1aeffdd979b3fd0dcf
GIT binary patch
literal 385
zcmV-{0e=38P)<h;3K|Lk000e1NJLTq001Ze001Zm1^@s7`}v6b0003<Nkl<ZScUDE
zF%E+;3`IXtHY5giZqyU?&<se-?POy@lQ@Y{t15rAoadi_aTu1z^R;d}=4k`~tlJJ3
z2Igsm3j^!6!-au)8js}?Gsr^8Ocw^qEO8+Kyn>Qs%uD2_1d4fCCPnp{vH%WZj;h{_
z)0TFcq;=bm!_9egnxuIekC){iHZv@b=Sv1ja)DGX&s%{QXa%A?Zw0zIYz1*kTY=bN
ze<;mo8SRu9ESKjrNm>{nzBd*yc4!6TIco(wIkbQ=&<Y0N{K;;Gu|q2u&oe97$zku5
zDp>E7b{IRfg5A<7JX2E1nj$f^@}f79Qcx%>-sNUf3nE$bF87dH&|Mq-Xz&+|kxmAG
z$r#C7fut;X(aUuy2)JjX$tEcQX;sRL8vM2~QucR83yP^v5-o_-CrK?Rr9MeCAgMk{
fYCu~3-6VMf`nA(IhhaH`00000NkvXXu0mjfRVJP<

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/dot-luv/images/ui-bg_dots-medium_30_0b58a2_4x4.png b/public/admin/js/osmplayer/jquery-ui/dot-luv/images/ui-bg_dots-medium_30_0b58a2_4x4.png
new file mode 100644
index 0000000000000000000000000000000000000000..fa6c9cb810781fcc1575630fa8d8663ccff71e23
GIT binary patch
literal 98
zcmeAS@N?(olHy`uVBq!ia0vp^EFjFm1|(O0oL2{=G(BA$LpWw8Kk1A3GM|ytz|g?J
uV1>sgLm*aUnZU@+%*=dv?(_K%m>72bV2$isCSwoO#Ng@b=d#Wzp$Pziq8n)d

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/dot-luv/images/ui-bg_dots-small_20_333333_2x2.png b/public/admin/js/osmplayer/jquery-ui/dot-luv/images/ui-bg_dots-small_20_333333_2x2.png
new file mode 100644
index 0000000000000000000000000000000000000000..b90acb9e2fd681f24c1073efb17ff4bbebe35fa8
GIT binary patch
literal 83
zcmeAS@N?(olHy`uVBq!ia0vp^Od!m`1|*BN@u~nRDNh&25RRG2CT3>;&L04RBS5U6
cq;!aZK_Z9ohErwy3!o|nPgg&ebxsLQ0P+GBaR2}S

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/dot-luv/images/ui-bg_dots-small_30_a32d00_2x2.png b/public/admin/js/osmplayer/jquery-ui/dot-luv/images/ui-bg_dots-small_30_a32d00_2x2.png
new file mode 100644
index 0000000000000000000000000000000000000000..88fa7f0b0085437bf060a61e2bdf0b3c95ceb56e
GIT binary patch
literal 83
zcmeAS@N?(olHy`uVBq!ia0vp^Od!m`1|*BN@u~nRDNh&25RRG2F>6kLnBNEloggAS
bu9uNPW(AX~gksAjpehDWS3j3^P6<r_-53=s

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/dot-luv/images/ui-bg_dots-small_40_00498f_2x2.png b/public/admin/js/osmplayer/jquery-ui/dot-luv/images/ui-bg_dots-small_40_00498f_2x2.png
new file mode 100644
index 0000000000000000000000000000000000000000..fa3531359377d9a0ecb22022123cc6f40c352b13
GIT binary patch
literal 83
zcmeAS@N?(olHy`uVBq!ia0vp^Od!m`1|*BN@u~nRDNh&25RRG2DIebaKYsuSjsS7O
d8l__l3^KJ$9-^D_#ek|9JYD@<);T3K0RS?W7q9>T

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/dot-luv/images/ui-bg_flat_0_aaaaaa_40x100.png b/public/admin/js/osmplayer/jquery-ui/dot-luv/images/ui-bg_flat_0_aaaaaa_40x100.png
new file mode 100644
index 0000000000000000000000000000000000000000..5b5dab2ab7b1c50dea9cfe73dc5a269a92d2d4b4
GIT binary patch
literal 180
zcmeAS@N?(olHy`uVBq!ia0vp^8bF-F!3HG1q!d*FscKIb$B>N1x91EQ4=4yQ7#`R^
z$vje}<irI&an_s0pV!D+$FtuP31JO&3=I&aE+u|=5A)Hv$*VMh&S3C#^>bP0l+XkK
DSH>_4

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/dot-luv/images/ui-bg_flat_40_292929_40x100.png b/public/admin/js/osmplayer/jquery-ui/dot-luv/images/ui-bg_flat_40_292929_40x100.png
new file mode 100644
index 0000000000000000000000000000000000000000..acaf6999fd579a3b566b880e465c2ded564ce6f6
GIT binary patch
literal 211
zcmeAS@N?(olHy`uVBq!ia0vp^8bF-F!N$PA*qrS22FRJ^>EalY(fIbdAz!nB$bk!&
zZa?|Qu4CN6cyd4Uqskt;W1K=Axof}vp7Ud#c-)p9mJ^hxvlso&YWA1<vW8cx=Hr96
z;s<`r<%EF$dS4c*t004#MFoHQ>t=nF^;h1YL=xP@oX5d^!YVqS8|X>~Pgg&ebxsLQ
E0JkGeGynhq

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/dot-luv/images/ui-bg_gloss-wave_20_111111_500x100.png b/public/admin/js/osmplayer/jquery-ui/dot-luv/images/ui-bg_gloss-wave_20_111111_500x100.png
new file mode 100644
index 0000000000000000000000000000000000000000..60fcd810496ba56122d46d5b2237ae7d47f6fa17
GIT binary patch
literal 1620
zcmb`IYfRH;6vqFE!X!hSV<K|XOeQ)Q!6FDq%Me-_f^;B=Emg;*AT8x8T6$s54V{z{
zh(+X5g~*s7m0P(;fjO}V)Y>SQ_7APXpjarkLb;T-E6X%X%swpHmy_rHa-QUU&hMP-
zL4gQkquoXT02uon_xTn8^cHnG>LUYPP2@f%1Au{rpU>AJmx|>h;mII;I}qg6_4!cP
z!-#gRa2>nX=0HWR-?Ba0zE&Zo+n!^Tz5xQRJbb8KUsVhNnFUIvKo0<x^Iz!Q0k&EJ
zM!EmDXtw0e3!DHTec?a1pVT-klO;_82~o042H6hwuEAQyLX{kPpB7(IIr9LlQ8eM_
zEpucsX=SHvR*6w^HjMr>Ehi;J$#7a6ooc+?d#2dDSGMj`n=SMF4$pe-#}eZt!gjm`
zUvL4WL$i)fp<NFaSxG@Q6bs>|q9~2bj0v)fjpso#Jb3Y?+u|qj=f}}n77<2SpG(~d
zTuS<?Mc+$rhdW@p=dMn~dBbwbRkrJwwM$a=^GW}8w&sK-QfSA(ppb3lWRBC)=nYD#
z92;{2pMgXRNwm=!UL=c-q(bnBl+PLqyPR(i;u7kTg{L#{K4aZ$=8a}uZLKqP?i@||
z3W6KpSSmPUO=~nm41_koP=@6zVc7$s*mn3B+7nYhm{GyU1;DlN`RMTs1q{NjW(rT2
zxeMb3@vauVeadQjf08A)RxatFrUzRBZAS`*|25<l=^J~9N#-?cVEfIurf4}r+ca02
zwR2H(P2(m;lB!H@#A<V?uQYu_p%XLcgz>#wzf?e95}dU{Qnn21<ZJRxx3xjtLeO;=
zMm?J*K9(9|!#MO3ZW`<%7O*ikoWt&lOuAT9M80*Bpq1&vtOYY1?sTj%uUY!WMe0&U
z3FDgyi+Rx8Uk9nq2o5@r_iUPIK3;M&#UDkfU<w!Ts<3i}ges$|lsxS*!%VaE)k)xB
z>ynl7#3TL%Rk*s1<GG9~=~sg3oxmxQ=&IP?ZgzGy7*7guyD-TK?^eoHrR{Ou%FFqB
zN4;;osE-n<{$SWX8avXe(mdH8*xWTM=^%*GS$6Xs9L|qmox6Bnr<OlH$U19drJuNi
zBj7B{f--#1k1vZ)8NPNBjkSADU@6*$g5mGE<|QA8(rUIXQecFvupJS|oSb`wuH*a_
zqcCqnhNps(H*M^7QSw-(WIIAxWJy*$exeHOXOYh?Q4VaiS_y%U`CU{}gO94HY1PW5
zUnZspRCh6llPIBPuJ`m7dE(8heMPqCpD-y~GB@o@1?;@M4Kp{9vbF(RR<7#G@kt;k
z^Svk<1?~XMcNix=(?LD=A$qP|dR}_ajTtT=OJME>!0W)jUhTTS-9*~x|K4arbOt2p
zJWjqdYQux<#)1+0*a{Y$%v<lXRaL7i={T^3#2W6~C1Ted3h#s9vGdsZ8b*=%NkV(w
zAie@^8o85O$rA3uPPjo(6-^Wo6A?)p=<XSgN@_?eODpVx?pE9{gc8%rsC@ZI^32-@
zg_UaLS%|a}H<B$vd7AJ_^$BkKl}``<9QTUvFokoTMP}DWXOJ6I^=q6)W`B{J2BD^n
z4tG%0GXK;MXx+dzQONF?&GUensn=9X&s(SXQv8E>wLp_nSjlJ86zmjByoW#&iu&R{
z^JYAVn}XNE)iG*cg{gdswzq2V=>UU{0dYC?>OxFQY#^}~&O$o=gd_Wo^$c7hj40RS
zJb!|5%sfIJofd=17vIJl$j4jsw<Oq<poo#h5kDZS1-0TEj=RC0+98ipA~%#kfh%5Q
zIK+TfR-X!Xf$en~BI~!Fme}aN@HU9FlRb;HtdbTB*BMJXnAz0Tg|3JhU~Uwh{C7m1
rzlZ-b?~VPP*{f2i5L^Hle(R_?wK-u=UNc5_EdW2?K%W}#b65TZU!E9S

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/dot-luv/images/ui-icons_00498f_256x240.png b/public/admin/js/osmplayer/jquery-ui/dot-luv/images/ui-icons_00498f_256x240.png
new file mode 100644
index 0000000000000000000000000000000000000000..cc4834e01815725c98ba35fdfcb1d30d0716be42
GIT binary patch
literal 4369
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

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/dot-luv/images/ui-icons_98d2fb_256x240.png b/public/admin/js/osmplayer/jquery-ui/dot-luv/images/ui-icons_98d2fb_256x240.png
new file mode 100644
index 0000000000000000000000000000000000000000..81c5eb0bc51430515660cba7aa18f440ed3a478c
GIT binary patch
literal 4369
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

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/dot-luv/images/ui-icons_9ccdfc_256x240.png b/public/admin/js/osmplayer/jquery-ui/dot-luv/images/ui-icons_9ccdfc_256x240.png
new file mode 100644
index 0000000000000000000000000000000000000000..2022d21052809832e0367d77849ecc479d756cd0
GIT binary patch
literal 4369
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

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/dot-luv/images/ui-icons_ffffff_256x240.png b/public/admin/js/osmplayer/jquery-ui/dot-luv/images/ui-icons_ffffff_256x240.png
new file mode 100644
index 0000000000000000000000000000000000000000..42f8f992c727ddaa617da224a522e463df690387
GIT binary patch
literal 4369
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

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/dot-luv/jquery-ui-1.8.18.custom.css b/public/admin/js/osmplayer/jquery-ui/dot-luv/jquery-ui-1.8.18.custom.css
new file mode 100644
index 00000000000..13c5d065e2e
--- /dev/null
+++ b/public/admin/js/osmplayer/jquery-ui/dot-luv/jquery-ui-1.8.18.custom.css
@@ -0,0 +1,565 @@
+/*
+ * jQuery UI CSS Framework 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Theming/API
+ */
+
+/* Layout helpers
+----------------------------------*/
+.player-ui .ui-helper-hidden { display: none; }
+.player-ui .ui-helper-hidden-accessible { position: absolute !important; clip: rect(1px 1px 1px 1px); clip: rect(1px,1px,1px,1px); }
+.player-ui .ui-helper-reset { margin: 0; padding: 0; border: 0; outline: 0; line-height: 1.3; text-decoration: none; font-size: 100%; list-style: none; }
+.player-ui .ui-helper-clearfix:before, .player-ui .ui-helper-clearfix:after { content: ""; display: table; }
+.player-ui .ui-helper-clearfix:after { clear: both; }
+.player-ui .ui-helper-clearfix { zoom: 1; }
+.player-ui .ui-helper-zfix { width: 100%; height: 100%; top: 0; left: 0; position: absolute; opacity: 0; filter:Alpha(Opacity=0); }
+
+
+/* Interaction Cues
+----------------------------------*/
+.player-ui .ui-state-disabled { cursor: default !important; }
+
+
+/* Icons
+----------------------------------*/
+
+/* states and images */
+.player-ui .ui-icon { display: block; text-indent: -99999px; overflow: hidden; background-repeat: no-repeat; }
+
+
+/* Misc visuals
+----------------------------------*/
+
+/* Overlays */
+.player-ui .ui-widget-overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }
+
+
+/*
+ * jQuery UI CSS Framework 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Theming/API
+ *
+ * To view and modify this theme, visit http://jqueryui.com/themeroller/?ffDefault=Arial,%20sans-serif&fwDefault=bold&fsDefault=1.3em&cornerRadius=4px&bgColorHeader=0b3e6f&bgTextureHeader=08_diagonals_thick.png&bgImgOpacityHeader=15&borderColorHeader=0b3e6f&fcHeader=f6f6f6&iconColorHeader=98d2fb&bgColorContent=111111&bgTextureContent=12_gloss_wave.png&bgImgOpacityContent=20&borderColorContent=000000&fcContent=d9d9d9&iconColorContent=9ccdfc&bgColorDefault=333333&bgTextureDefault=09_dots_small.png&bgImgOpacityDefault=20&borderColorDefault=333333&fcDefault=ffffff&iconColorDefault=9ccdfc&bgColorHover=00498f&bgTextureHover=09_dots_small.png&bgImgOpacityHover=40&borderColorHover=222222&fcHover=ffffff&iconColorHover=ffffff&bgColorActive=292929&bgTextureActive=01_flat.png&bgImgOpacityActive=40&borderColorActive=096ac8&fcActive=75abff&iconColorActive=00498f&bgColorHighlight=0b58a2&bgTextureHighlight=10_dots_medium.png&bgImgOpacityHighlight=30&borderColorHighlight=052f57&fcHighlight=ffffff&iconColorHighlight=ffffff&bgColorError=a32d00&bgTextureError=09_dots_small.png&bgImgOpacityError=30&borderColorError=cd0a0a&fcError=ffffff&iconColorError=ffffff&bgColorOverlay=aaaaaa&bgTextureOverlay=01_flat.png&bgImgOpacityOverlay=0&opacityOverlay=30&bgColorShadow=aaaaaa&bgTextureShadow=01_flat.png&bgImgOpacityShadow=0&opacityShadow=30&thicknessShadow=8px&offsetTopShadow=-8px&offsetLeftShadow=-8px&cornerRadiusShadow=8px
+ */
+
+
+/* Component containers
+----------------------------------*/
+.player-ui .ui-widget { font-family: Arial, sans-serif; font-size: 1.3em; }
+.player-ui .ui-widget .ui-widget { font-size: 1em; }
+.player-ui .ui-widget input, .player-ui .ui-widget select, .player-ui .ui-widget textarea, .player-ui .ui-widget button { font-family: Arial, sans-serif; font-size: 1em; }
+.player-ui .ui-widget-content { border: 1px solid #000000; background: #111111 url(images/ui-bg_gloss-wave_20_111111_500x100.png) 50% top repeat-x; color: #d9d9d9; }
+.player-ui .ui-widget-content a { color: #d9d9d9; }
+.player-ui .ui-widget-header { border: 1px solid #0b3e6f; background: #0b3e6f url(images/ui-bg_diagonals-thick_15_0b3e6f_40x40.png) 50% 50% repeat; color: #f6f6f6; font-weight: bold; }
+.player-ui .ui-widget-header a { color: #f6f6f6; }
+
+/* Interaction states
+----------------------------------*/
+.player-ui .ui-state-default, .player-ui .ui-widget-content .ui-state-default, .player-ui .ui-widget-header .ui-state-default { border: 1px solid #333333; background: #333333 url(images/ui-bg_dots-small_20_333333_2x2.png) 50% 50% repeat; font-weight: bold; color: #ffffff; }
+.player-ui .ui-state-default a, .player-ui .ui-state-default a:link, .player-ui .ui-state-default a:visited { color: #ffffff; text-decoration: none; }
+.player-ui .ui-state-hover, .player-ui .ui-widget-content .ui-state-hover, .player-ui .ui-widget-header .ui-state-hover, .player-ui .ui-state-focus, .player-ui .ui-widget-content .ui-state-focus, .player-ui .ui-widget-header .ui-state-focus { border: 1px solid #222222; background: #00498f url(images/ui-bg_dots-small_40_00498f_2x2.png) 50% 50% repeat; font-weight: bold; color: #ffffff; }
+.player-ui .ui-state-hover a, .player-ui .ui-state-hover a:hover { color: #ffffff; text-decoration: none; }
+.player-ui .ui-state-active, .player-ui .ui-widget-content .ui-state-active, .player-ui .ui-widget-header .ui-state-active { border: 1px solid #096ac8; background: #292929 url(images/ui-bg_flat_40_292929_40x100.png) 50% 50% repeat-x; font-weight: bold; color: #75abff; }
+.player-ui .ui-state-active a, .player-ui .ui-state-active a:link, .player-ui .ui-state-active a:visited { color: #75abff; text-decoration: none; }
+.player-ui .ui-widget :active { outline: none; }
+
+/* Interaction Cues
+----------------------------------*/
+.player-ui .ui-state-highlight, .player-ui .ui-widget-content .ui-state-highlight, .player-ui .ui-widget-header .ui-state-highlight  {border: 1px solid #052f57; background: #0b58a2 url(images/ui-bg_dots-medium_30_0b58a2_4x4.png) 50% 50% repeat; color: #ffffff; }
+.player-ui .ui-state-highlight a, .player-ui .ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a { color: #ffffff; }
+.player-ui .ui-state-error, .player-ui .ui-widget-content .ui-state-error, .player-ui .ui-widget-header .ui-state-error {border: 1px solid #cd0a0a; background: #a32d00 url(images/ui-bg_dots-small_30_a32d00_2x2.png) 50% 50% repeat; color: #ffffff; }
+.player-ui .ui-state-error a, .player-ui .ui-widget-content .ui-state-error a, .player-ui .ui-widget-header .ui-state-error a { color: #ffffff; }
+.player-ui .ui-state-error-text, .player-ui .ui-widget-content .ui-state-error-text, .player-ui .ui-widget-header .ui-state-error-text { color: #ffffff; }
+.player-ui .ui-priority-primary, .player-ui .ui-widget-content .ui-priority-primary, .player-ui .ui-widget-header .ui-priority-primary { font-weight: bold; }
+.player-ui .ui-priority-secondary, .player-ui .ui-widget-content .ui-priority-secondary,  .ui-widget-header .ui-priority-secondary { opacity: .7; filter:Alpha(Opacity=70); font-weight: normal; }
+.player-ui .ui-state-disabled, .player-ui .ui-widget-content .ui-state-disabled, .player-ui .ui-widget-header .ui-state-disabled { opacity: .35; filter:Alpha(Opacity=35); background-image: none; }
+
+/* Icons
+----------------------------------*/
+
+/* states and images */
+.player-ui .ui-icon { width: 16px; height: 16px; background-image: url(images/ui-icons_9ccdfc_256x240.png); }
+.player-ui .ui-widget-content .ui-icon {background-image: url(images/ui-icons_9ccdfc_256x240.png); }
+.player-ui .ui-widget-header .ui-icon {background-image: url(images/ui-icons_98d2fb_256x240.png); }
+.player-ui .ui-state-default .ui-icon { background-image: url(images/ui-icons_9ccdfc_256x240.png); }
+.player-ui .ui-state-hover .ui-icon, .player-ui .ui-state-focus .ui-icon {background-image: url(images/ui-icons_ffffff_256x240.png); }
+.player-ui .ui-state-active .ui-icon {background-image: url(images/ui-icons_00498f_256x240.png); }
+.player-ui .ui-state-highlight .ui-icon {background-image: url(images/ui-icons_ffffff_256x240.png); }
+.player-ui .ui-state-error .ui-icon, .player-ui .ui-state-error-text .ui-icon {background-image: url(images/ui-icons_ffffff_256x240.png); }
+
+/* positioning */
+.player-ui .ui-icon-carat-1-n { background-position: 0 0; }
+.player-ui .ui-icon-carat-1-ne { background-position: -16px 0; }
+.player-ui .ui-icon-carat-1-e { background-position: -32px 0; }
+.player-ui .ui-icon-carat-1-se { background-position: -48px 0; }
+.player-ui .ui-icon-carat-1-s { background-position: -64px 0; }
+.player-ui .ui-icon-carat-1-sw { background-position: -80px 0; }
+.player-ui .ui-icon-carat-1-w { background-position: -96px 0; }
+.player-ui .ui-icon-carat-1-nw { background-position: -112px 0; }
+.player-ui .ui-icon-carat-2-n-s { background-position: -128px 0; }
+.player-ui .ui-icon-carat-2-e-w { background-position: -144px 0; }
+.player-ui .ui-icon-triangle-1-n { background-position: 0 -16px; }
+.player-ui .ui-icon-triangle-1-ne { background-position: -16px -16px; }
+.player-ui .ui-icon-triangle-1-e { background-position: -32px -16px; }
+.player-ui .ui-icon-triangle-1-se { background-position: -48px -16px; }
+.player-ui .ui-icon-triangle-1-s { background-position: -64px -16px; }
+.player-ui .ui-icon-triangle-1-sw { background-position: -80px -16px; }
+.player-ui .ui-icon-triangle-1-w { background-position: -96px -16px; }
+.player-ui .ui-icon-triangle-1-nw { background-position: -112px -16px; }
+.player-ui .ui-icon-triangle-2-n-s { background-position: -128px -16px; }
+.player-ui .ui-icon-triangle-2-e-w { background-position: -144px -16px; }
+.player-ui .ui-icon-arrow-1-n { background-position: 0 -32px; }
+.player-ui .ui-icon-arrow-1-ne { background-position: -16px -32px; }
+.player-ui .ui-icon-arrow-1-e { background-position: -32px -32px; }
+.player-ui .ui-icon-arrow-1-se { background-position: -48px -32px; }
+.player-ui .ui-icon-arrow-1-s { background-position: -64px -32px; }
+.player-ui .ui-icon-arrow-1-sw { background-position: -80px -32px; }
+.player-ui .ui-icon-arrow-1-w { background-position: -96px -32px; }
+.player-ui .ui-icon-arrow-1-nw { background-position: -112px -32px; }
+.player-ui .ui-icon-arrow-2-n-s { background-position: -128px -32px; }
+.player-ui .ui-icon-arrow-2-ne-sw { background-position: -144px -32px; }
+.player-ui .ui-icon-arrow-2-e-w { background-position: -160px -32px; }
+.player-ui .ui-icon-arrow-2-se-nw { background-position: -176px -32px; }
+.player-ui .ui-icon-arrowstop-1-n { background-position: -192px -32px; }
+.player-ui .ui-icon-arrowstop-1-e { background-position: -208px -32px; }
+.player-ui .ui-icon-arrowstop-1-s { background-position: -224px -32px; }
+.player-ui .ui-icon-arrowstop-1-w { background-position: -240px -32px; }
+.player-ui .ui-icon-arrowthick-1-n { background-position: 0 -48px; }
+.player-ui .ui-icon-arrowthick-1-ne { background-position: -16px -48px; }
+.player-ui .ui-icon-arrowthick-1-e { background-position: -32px -48px; }
+.player-ui .ui-icon-arrowthick-1-se { background-position: -48px -48px; }
+.player-ui .ui-icon-arrowthick-1-s { background-position: -64px -48px; }
+.player-ui .ui-icon-arrowthick-1-sw { background-position: -80px -48px; }
+.player-ui .ui-icon-arrowthick-1-w { background-position: -96px -48px; }
+.player-ui .ui-icon-arrowthick-1-nw { background-position: -112px -48px; }
+.player-ui .ui-icon-arrowthick-2-n-s { background-position: -128px -48px; }
+.player-ui .ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px; }
+.player-ui .ui-icon-arrowthick-2-e-w { background-position: -160px -48px; }
+.player-ui .ui-icon-arrowthick-2-se-nw { background-position: -176px -48px; }
+.player-ui .ui-icon-arrowthickstop-1-n { background-position: -192px -48px; }
+.player-ui .ui-icon-arrowthickstop-1-e { background-position: -208px -48px; }
+.player-ui .ui-icon-arrowthickstop-1-s { background-position: -224px -48px; }
+.player-ui .ui-icon-arrowthickstop-1-w { background-position: -240px -48px; }
+.player-ui .ui-icon-arrowreturnthick-1-w { background-position: 0 -64px; }
+.player-ui .ui-icon-arrowreturnthick-1-n { background-position: -16px -64px; }
+.player-ui .ui-icon-arrowreturnthick-1-e { background-position: -32px -64px; }
+.player-ui .ui-icon-arrowreturnthick-1-s { background-position: -48px -64px; }
+.player-ui .ui-icon-arrowreturn-1-w { background-position: -64px -64px; }
+.player-ui .ui-icon-arrowreturn-1-n { background-position: -80px -64px; }
+.player-ui .ui-icon-arrowreturn-1-e { background-position: -96px -64px; }
+.player-ui .ui-icon-arrowreturn-1-s { background-position: -112px -64px; }
+.player-ui .ui-icon-arrowrefresh-1-w { background-position: -128px -64px; }
+.player-ui .ui-icon-arrowrefresh-1-n { background-position: -144px -64px; }
+.player-ui .ui-icon-arrowrefresh-1-e { background-position: -160px -64px; }
+.player-ui .ui-icon-arrowrefresh-1-s { background-position: -176px -64px; }
+.player-ui .ui-icon-arrow-4 { background-position: 0 -80px; }
+.player-ui .ui-icon-arrow-4-diag { background-position: -16px -80px; }
+.player-ui .ui-icon-extlink { background-position: -32px -80px; }
+.player-ui .ui-icon-newwin { background-position: -48px -80px; }
+.player-ui .ui-icon-refresh { background-position: -64px -80px; }
+.player-ui .ui-icon-shuffle { background-position: -80px -80px; }
+.player-ui .ui-icon-transfer-e-w { background-position: -96px -80px; }
+.player-ui .ui-icon-transferthick-e-w { background-position: -112px -80px; }
+.player-ui .ui-icon-folder-collapsed { background-position: 0 -96px; }
+.player-ui .ui-icon-folder-open { background-position: -16px -96px; }
+.player-ui .ui-icon-document { background-position: -32px -96px; }
+.player-ui .ui-icon-document-b { background-position: -48px -96px; }
+.player-ui .ui-icon-note { background-position: -64px -96px; }
+.player-ui .ui-icon-mail-closed { background-position: -80px -96px; }
+.player-ui .ui-icon-mail-open { background-position: -96px -96px; }
+.player-ui .ui-icon-suitcase { background-position: -112px -96px; }
+.player-ui .ui-icon-comment { background-position: -128px -96px; }
+.player-ui .ui-icon-person { background-position: -144px -96px; }
+.player-ui .ui-icon-print { background-position: -160px -96px; }
+.player-ui .ui-icon-trash { background-position: -176px -96px; }
+.player-ui .ui-icon-locked { background-position: -192px -96px; }
+.player-ui .ui-icon-unlocked { background-position: -208px -96px; }
+.player-ui .ui-icon-bookmark { background-position: -224px -96px; }
+.player-ui .ui-icon-tag { background-position: -240px -96px; }
+.player-ui .ui-icon-home { background-position: 0 -112px; }
+.player-ui .ui-icon-flag { background-position: -16px -112px; }
+.player-ui .ui-icon-calendar { background-position: -32px -112px; }
+.player-ui .ui-icon-cart { background-position: -48px -112px; }
+.player-ui .ui-icon-pencil { background-position: -64px -112px; }
+.player-ui .ui-icon-clock { background-position: -80px -112px; }
+.player-ui .ui-icon-disk { background-position: -96px -112px; }
+.player-ui .ui-icon-calculator { background-position: -112px -112px; }
+.player-ui .ui-icon-zoomin { background-position: -128px -112px; }
+.player-ui .ui-icon-zoomout { background-position: -144px -112px; }
+.player-ui .ui-icon-search { background-position: -160px -112px; }
+.player-ui .ui-icon-wrench { background-position: -176px -112px; }
+.player-ui .ui-icon-gear { background-position: -192px -112px; }
+.player-ui .ui-icon-heart { background-position: -208px -112px; }
+.player-ui .ui-icon-star { background-position: -224px -112px; }
+.player-ui .ui-icon-link { background-position: -240px -112px; }
+.player-ui .ui-icon-cancel { background-position: 0 -128px; }
+.player-ui .ui-icon-plus { background-position: -16px -128px; }
+.player-ui .ui-icon-plusthick { background-position: -32px -128px; }
+.player-ui .ui-icon-minus { background-position: -48px -128px; }
+.player-ui .ui-icon-minusthick { background-position: -64px -128px; }
+.player-ui .ui-icon-close { background-position: -80px -128px; }
+.player-ui .ui-icon-closethick { background-position: -96px -128px; }
+.player-ui .ui-icon-key { background-position: -112px -128px; }
+.player-ui .ui-icon-lightbulb { background-position: -128px -128px; }
+.player-ui .ui-icon-scissors { background-position: -144px -128px; }
+.player-ui .ui-icon-clipboard { background-position: -160px -128px; }
+.player-ui .ui-icon-copy { background-position: -176px -128px; }
+.player-ui .ui-icon-contact { background-position: -192px -128px; }
+.player-ui .ui-icon-image { background-position: -208px -128px; }
+.player-ui .ui-icon-video { background-position: -224px -128px; }
+.player-ui .ui-icon-script { background-position: -240px -128px; }
+.player-ui .ui-icon-alert { background-position: 0 -144px; }
+.player-ui .ui-icon-info { background-position: -16px -144px; }
+.player-ui .ui-icon-notice { background-position: -32px -144px; }
+.player-ui .ui-icon-help { background-position: -48px -144px; }
+.player-ui .ui-icon-check { background-position: -64px -144px; }
+.player-ui .ui-icon-bullet { background-position: -80px -144px; }
+.player-ui .ui-icon-radio-off { background-position: -96px -144px; }
+.player-ui .ui-icon-radio-on { background-position: -112px -144px; }
+.player-ui .ui-icon-pin-w { background-position: -128px -144px; }
+.player-ui .ui-icon-pin-s { background-position: -144px -144px; }
+.player-ui .ui-icon-play { background-position: 0 -160px; }
+.player-ui .ui-icon-pause { background-position: -16px -160px; }
+.player-ui .ui-icon-seek-next { background-position: -32px -160px; }
+.player-ui .ui-icon-seek-prev { background-position: -48px -160px; }
+.player-ui .ui-icon-seek-end { background-position: -64px -160px; }
+.player-ui .ui-icon-seek-start { background-position: -80px -160px; }
+/* ui-icon-seek-first is deprecated, use ui-icon-seek-start instead */
+.player-ui .ui-icon-seek-first { background-position: -80px -160px; }
+.player-ui .ui-icon-stop { background-position: -96px -160px; }
+.player-ui .ui-icon-eject { background-position: -112px -160px; }
+.player-ui .ui-icon-volume-off { background-position: -128px -160px; }
+.player-ui .ui-icon-volume-on { background-position: -144px -160px; }
+.player-ui .ui-icon-power { background-position: 0 -176px; }
+.player-ui .ui-icon-signal-diag { background-position: -16px -176px; }
+.player-ui .ui-icon-signal { background-position: -32px -176px; }
+.player-ui .ui-icon-battery-0 { background-position: -48px -176px; }
+.player-ui .ui-icon-battery-1 { background-position: -64px -176px; }
+.player-ui .ui-icon-battery-2 { background-position: -80px -176px; }
+.player-ui .ui-icon-battery-3 { background-position: -96px -176px; }
+.player-ui .ui-icon-circle-plus { background-position: 0 -192px; }
+.player-ui .ui-icon-circle-minus { background-position: -16px -192px; }
+.player-ui .ui-icon-circle-close { background-position: -32px -192px; }
+.player-ui .ui-icon-circle-triangle-e { background-position: -48px -192px; }
+.player-ui .ui-icon-circle-triangle-s { background-position: -64px -192px; }
+.player-ui .ui-icon-circle-triangle-w { background-position: -80px -192px; }
+.player-ui .ui-icon-circle-triangle-n { background-position: -96px -192px; }
+.player-ui .ui-icon-circle-arrow-e { background-position: -112px -192px; }
+.player-ui .ui-icon-circle-arrow-s { background-position: -128px -192px; }
+.player-ui .ui-icon-circle-arrow-w { background-position: -144px -192px; }
+.player-ui .ui-icon-circle-arrow-n { background-position: -160px -192px; }
+.player-ui .ui-icon-circle-zoomin { background-position: -176px -192px; }
+.player-ui .ui-icon-circle-zoomout { background-position: -192px -192px; }
+.player-ui .ui-icon-circle-check { background-position: -208px -192px; }
+.player-ui .ui-icon-circlesmall-plus { background-position: 0 -208px; }
+.player-ui .ui-icon-circlesmall-minus { background-position: -16px -208px; }
+.player-ui .ui-icon-circlesmall-close { background-position: -32px -208px; }
+.player-ui .ui-icon-squaresmall-plus { background-position: -48px -208px; }
+.player-ui .ui-icon-squaresmall-minus { background-position: -64px -208px; }
+.player-ui .ui-icon-squaresmall-close { background-position: -80px -208px; }
+.player-ui .ui-icon-grip-dotted-vertical { background-position: 0 -224px; }
+.player-ui .ui-icon-grip-dotted-horizontal { background-position: -16px -224px; }
+.player-ui .ui-icon-grip-solid-vertical { background-position: -32px -224px; }
+.player-ui .ui-icon-grip-solid-horizontal { background-position: -48px -224px; }
+.player-ui .ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; }
+.player-ui .ui-icon-grip-diagonal-se { background-position: -80px -224px; }
+
+
+/* Misc visuals
+----------------------------------*/
+
+/* Corner radius */
+.player-ui .ui-corner-all, .player-ui .ui-corner-top, .player-ui .ui-corner-left, .player-ui .ui-corner-tl { -moz-border-radius-topleft: 4px; -webkit-border-top-left-radius: 4px; -khtml-border-top-left-radius: 4px; border-top-left-radius: 4px; }
+.player-ui .ui-corner-all, .player-ui .ui-corner-top, .player-ui .ui-corner-right, .player-ui .ui-corner-tr { -moz-border-radius-topright: 4px; -webkit-border-top-right-radius: 4px; -khtml-border-top-right-radius: 4px; border-top-right-radius: 4px; }
+.player-ui .ui-corner-all, .player-ui .ui-corner-bottom, .player-ui .ui-corner-left, .player-ui .ui-corner-bl { -moz-border-radius-bottomleft: 4px; -webkit-border-bottom-left-radius: 4px; -khtml-border-bottom-left-radius: 4px; border-bottom-left-radius: 4px; }
+.player-ui .ui-corner-all, .player-ui .ui-corner-bottom, .player-ui .ui-corner-right, .player-ui .ui-corner-br { -moz-border-radius-bottomright: 4px; -webkit-border-bottom-right-radius: 4px; -khtml-border-bottom-right-radius: 4px; border-bottom-right-radius: 4px; }
+
+/* Overlays */
+.player-ui .ui-widget-overlay { background: #aaaaaa url(images/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x; opacity: .30;filter:Alpha(Opacity=30); }
+.player-ui .ui-widget-shadow { margin: -8px 0 0 -8px; padding: 8px; background: #aaaaaa url(images/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x; opacity: .30;filter:Alpha(Opacity=30); -moz-border-radius: 8px; -khtml-border-radius: 8px; -webkit-border-radius: 8px; border-radius: 8px; }/*
+ * jQuery UI Resizable 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Resizable#theming
+ */
+.player-ui .ui-resizable { position: relative;}
+.player-ui .ui-resizable-handle { position: absolute;font-size: 0.1px;z-index: 99999; display: block; }
+.player-ui .ui-resizable-disabled .ui-resizable-handle, .player-ui .ui-resizable-autohide .ui-resizable-handle { display: none; }
+.player-ui .ui-resizable-n { cursor: n-resize; height: 7px; width: 100%; top: -5px; left: 0; }
+.player-ui .ui-resizable-s { cursor: s-resize; height: 7px; width: 100%; bottom: -5px; left: 0; }
+.player-ui .ui-resizable-e { cursor: e-resize; width: 7px; right: -5px; top: 0; height: 100%; }
+.player-ui .ui-resizable-w { cursor: w-resize; width: 7px; left: -5px; top: 0; height: 100%; }
+.player-ui .ui-resizable-se { cursor: se-resize; width: 12px; height: 12px; right: 1px; bottom: 1px; }
+.player-ui .ui-resizable-sw { cursor: sw-resize; width: 9px; height: 9px; left: -5px; bottom: -5px; }
+.player-ui .ui-resizable-nw { cursor: nw-resize; width: 9px; height: 9px; left: -5px; top: -5px; }
+.player-ui .ui-resizable-ne { cursor: ne-resize; width: 9px; height: 9px; right: -5px; top: -5px;}/*
+ * jQuery UI Selectable 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Selectable#theming
+ */
+.player-ui .ui-selectable-helper { position: absolute; z-index: 100; border:1px dotted black; }
+/*
+ * jQuery UI Accordion 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Accordion#theming
+ */
+/* IE/Win - Fix animation bug - #4615 */
+.player-ui .ui-accordion { width: 100%; }
+.player-ui .ui-accordion .ui-accordion-header { cursor: pointer; position: relative; margin-top: 1px; zoom: 1; }
+.player-ui .ui-accordion .ui-accordion-li-fix { display: inline; }
+.player-ui .ui-accordion .ui-accordion-header-active { border-bottom: 0 !important; }
+.player-ui .ui-accordion .ui-accordion-header a { display: block; font-size: 1em; padding: .5em .5em .5em .7em; }
+.player-ui .ui-accordion-icons .ui-accordion-header a { padding-left: 2.2em; }
+.player-ui .ui-accordion .ui-accordion-header .ui-icon { position: absolute; left: .5em; top: 50%; margin-top: -8px; }
+.player-ui .ui-accordion .ui-accordion-content { padding: 1em 2.2em; border-top: 0; margin-top: -2px; position: relative; top: 1px; margin-bottom: 2px; overflow: auto; display: none; zoom: 1; }
+.player-ui .ui-accordion .ui-accordion-content-active { display: block; }
+/*
+ * jQuery UI Autocomplete 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Autocomplete#theming
+ */
+.player-ui .ui-autocomplete { position: absolute; cursor: default; }	
+
+/* workarounds */
+* html .ui-autocomplete { width:1px; } /* without this, the menu expands to 100% in IE6 */
+
+/*
+ * jQuery UI Menu 1.8.18
+ *
+ * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Menu#theming
+ */
+.player-ui .ui-menu {
+	list-style:none;
+	padding: 2px;
+	margin: 0;
+	display:block;
+	float: left;
+}
+.player-ui .ui-menu .ui-menu {
+	margin-top: -3px;
+}
+.player-ui .ui-menu .ui-menu-item {
+	margin:0;
+	padding: 0;
+	zoom: 1;
+	float: left;
+	clear: left;
+	width: 100%;
+}
+.player-ui .ui-menu .ui-menu-item a {
+	text-decoration:none;
+	display:block;
+	padding:.2em .4em;
+	line-height:1.5;
+	zoom:1;
+}
+.player-ui .ui-menu .ui-menu-item a.ui-state-hover,
+.player-ui .ui-menu .ui-menu-item a.ui-state-active {
+	font-weight: normal;
+	margin: -1px;
+}
+/*
+ * jQuery UI Button 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Button#theming
+ */
+.player-ui .ui-button { display: inline-block; position: relative; padding: 0; margin-right: .1em; text-decoration: none !important; cursor: pointer; text-align: center; zoom: 1; overflow: hidden; *overflow: visible; } /* the overflow property removes extra width in IE */
+.player-ui .ui-button-icon-only { width: 2.2em; } /* to make room for the icon, a width needs to be set here */
+button.ui-button-icon-only { width: 2.4em; } /* button elements seem to need a little more width */
+.player-ui .ui-button-icons-only { width: 3.4em; } 
+button.ui-button-icons-only { width: 3.7em; } 
+
+/*button text element */
+.player-ui .ui-button .ui-button-text { display: block; line-height: 1.4;  }
+.player-ui .ui-button-text-only .ui-button-text { padding: .4em 1em; }
+.player-ui .ui-button-icon-only .ui-button-text, .player-ui .ui-button-icons-only .ui-button-text { padding: .4em; text-indent: -9999999px; }
+.player-ui .ui-button-text-icon-primary .ui-button-text, .player-ui .ui-button-text-icons .ui-button-text { padding: .4em 1em .4em 2.1em; }
+.player-ui .ui-button-text-icon-secondary .ui-button-text, .player-ui .ui-button-text-icons .ui-button-text { padding: .4em 2.1em .4em 1em; }
+.player-ui .ui-button-text-icons .ui-button-text { padding-left: 2.1em; padding-right: 2.1em; }
+/* no icon support for input elements, provide padding by default */
+input.ui-button { padding: .4em 1em; }
+
+/*button icon element(s) */
+.player-ui .ui-button-icon-only .ui-icon, .player-ui .ui-button-text-icon-primary .ui-icon, .player-ui .ui-button-text-icon-secondary .ui-icon, .player-ui .ui-button-text-icons .ui-icon, .player-ui .ui-button-icons-only .ui-icon { position: absolute; top: 50%; margin-top: -8px; }
+.player-ui .ui-button-icon-only .ui-icon { left: 50%; margin-left: -8px; }
+.player-ui .ui-button-text-icon-primary .ui-button-icon-primary, .player-ui .ui-button-text-icons .ui-button-icon-primary, .player-ui .ui-button-icons-only .ui-button-icon-primary { left: .5em; }
+.player-ui .ui-button-text-icon-secondary .ui-button-icon-secondary, .player-ui .ui-button-text-icons .ui-button-icon-secondary, .player-ui .ui-button-icons-only .ui-button-icon-secondary { right: .5em; }
+.player-ui .ui-button-text-icons .ui-button-icon-secondary, .player-ui .ui-button-icons-only .ui-button-icon-secondary { right: .5em; }
+
+/*button sets*/
+.player-ui .ui-buttonset { margin-right: 7px; }
+.player-ui .ui-buttonset .ui-button { margin-left: 0; margin-right: -.3em; }
+
+/* workarounds */
+button.ui-button::-moz-focus-inner { border: 0; padding: 0; } /* reset extra padding in Firefox */
+/*
+ * jQuery UI Dialog 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Dialog#theming
+ */
+.player-ui .ui-dialog { position: absolute; padding: .2em; width: 300px; overflow: hidden; }
+.player-ui .ui-dialog .ui-dialog-titlebar { padding: .4em 1em; position: relative;  }
+.player-ui .ui-dialog .ui-dialog-title { float: left; margin: .1em 16px .1em 0; } 
+.player-ui .ui-dialog .ui-dialog-titlebar-close { position: absolute; right: .3em; top: 50%; width: 19px; margin: -10px 0 0 0; padding: 1px; height: 18px; }
+.player-ui .ui-dialog .ui-dialog-titlebar-close span { display: block; margin: 1px; }
+.player-ui .ui-dialog .ui-dialog-titlebar-close:hover, .player-ui .ui-dialog .ui-dialog-titlebar-close:focus { padding: 0; }
+.player-ui .ui-dialog .ui-dialog-content { position: relative; border: 0; padding: .5em 1em; background: none; overflow: auto; zoom: 1; }
+.player-ui .ui-dialog .ui-dialog-buttonpane { text-align: left; border-width: 1px 0 0 0; background-image: none; margin: .5em 0 0 0; padding: .3em 1em .5em .4em; }
+.player-ui .ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset { float: right; }
+.player-ui .ui-dialog .ui-dialog-buttonpane button { margin: .5em .4em .5em 0; cursor: pointer; }
+.player-ui .ui-dialog .ui-resizable-se { width: 14px; height: 14px; right: 3px; bottom: 3px; }
+.player-ui .ui-draggable .ui-dialog-titlebar { cursor: move; }
+/*
+ * jQuery UI Slider 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Slider#theming
+ */
+.player-ui .ui-slider { position: relative; text-align: left; }
+.player-ui .ui-slider .ui-slider-handle { position: absolute; z-index: 2; width: 1.2em; height: 1.2em; cursor: default; }
+.player-ui .ui-slider .ui-slider-range { position: absolute; z-index: 1; font-size: .7em; display: block; border: 0; background-position: 0 0; }
+
+.player-ui .ui-slider-horizontal { height: .8em; }
+.player-ui .ui-slider-horizontal .ui-slider-handle { top: -.3em; margin-left: -.6em; }
+.player-ui .ui-slider-horizontal .ui-slider-range { top: 0; height: 100%; }
+.player-ui .ui-slider-horizontal .ui-slider-range-min { left: 0; }
+.player-ui .ui-slider-horizontal .ui-slider-range-max { right: 0; }
+
+.player-ui .ui-slider-vertical { width: .8em; height: 100px; }
+.player-ui .ui-slider-vertical .ui-slider-handle { left: -.3em; margin-left: 0; margin-bottom: -.6em; }
+.player-ui .ui-slider-vertical .ui-slider-range { left: 0; width: 100%; }
+.player-ui .ui-slider-vertical .ui-slider-range-min { bottom: 0; }
+.player-ui .ui-slider-vertical .ui-slider-range-max { top: 0; }/*
+ * jQuery UI Tabs 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Tabs#theming
+ */
+.player-ui .ui-tabs { position: relative; padding: .2em; zoom: 1; } /* position: relative prevents IE scroll bug (element with position: relative inside container with overflow: auto appear as "fixed") */
+.player-ui .ui-tabs .ui-tabs-nav { margin: 0; padding: .2em .2em 0; }
+.player-ui .ui-tabs .ui-tabs-nav li { list-style: none; float: left; position: relative; top: 1px; margin: 0 .2em 1px 0; border-bottom: 0 !important; padding: 0; white-space: nowrap; }
+.player-ui .ui-tabs .ui-tabs-nav li a { float: left; padding: .5em 1em; text-decoration: none; }
+.player-ui .ui-tabs .ui-tabs-nav li.ui-tabs-selected { margin-bottom: 0; padding-bottom: 1px; }
+.player-ui .ui-tabs .ui-tabs-nav li.ui-tabs-selected a, .player-ui .ui-tabs .ui-tabs-nav li.ui-state-disabled a, .player-ui .ui-tabs .ui-tabs-nav li.ui-state-processing a { cursor: text; }
+.player-ui .ui-tabs .ui-tabs-nav li a, .player-ui .ui-tabs.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-selected a { cursor: pointer; } /* first selector in group seems obsolete, but required to overcome bug in Opera applying cursor: text overall if defined elsewhere... */
+.player-ui .ui-tabs .ui-tabs-panel { display: block; border-width: 0; padding: 1em 1.4em; background: none; }
+.player-ui .ui-tabs .ui-tabs-hide { display: none !important; }
+/*
+ * jQuery UI Datepicker 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Datepicker#theming
+ */
+.player-ui .ui-datepicker { width: 17em; padding: .2em .2em 0; display: none; }
+.player-ui .ui-datepicker .ui-datepicker-header { position:relative; padding:.2em 0; }
+.player-ui .ui-datepicker .ui-datepicker-prev, .player-ui .ui-datepicker .ui-datepicker-next { position:absolute; top: 2px; width: 1.8em; height: 1.8em; }
+.player-ui .ui-datepicker .ui-datepicker-prev-hover, .player-ui .ui-datepicker .ui-datepicker-next-hover { top: 1px; }
+.player-ui .ui-datepicker .ui-datepicker-prev { left:2px; }
+.player-ui .ui-datepicker .ui-datepicker-next { right:2px; }
+.player-ui .ui-datepicker .ui-datepicker-prev-hover { left:1px; }
+.player-ui .ui-datepicker .ui-datepicker-next-hover { right:1px; }
+.player-ui .ui-datepicker .ui-datepicker-prev span, .player-ui .ui-datepicker .ui-datepicker-next span { display: block; position: absolute; left: 50%; margin-left: -8px; top: 50%; margin-top: -8px;  }
+.player-ui .ui-datepicker .ui-datepicker-title { margin: 0 2.3em; line-height: 1.8em; text-align: center; }
+.player-ui .ui-datepicker .ui-datepicker-title select { font-size:1em; margin:1px 0; }
+.player-ui .ui-datepicker select.ui-datepicker-month-year {width: 100%;}
+.player-ui .ui-datepicker select.ui-datepicker-month, 
+.player-ui .ui-datepicker select.ui-datepicker-year { width: 49%;}
+.player-ui .ui-datepicker table {width: 100%; font-size: .9em; border-collapse: collapse; margin:0 0 .4em; }
+.player-ui .ui-datepicker th { padding: .7em .3em; text-align: center; font-weight: bold; border: 0;  }
+.player-ui .ui-datepicker td { border: 0; padding: 1px; }
+.player-ui .ui-datepicker td span, .player-ui .ui-datepicker td a { display: block; padding: .2em; text-align: right; text-decoration: none; }
+.player-ui .ui-datepicker .ui-datepicker-buttonpane { background-image: none; margin: .7em 0 0 0; padding:0 .2em; border-left: 0; border-right: 0; border-bottom: 0; }
+.player-ui .ui-datepicker .ui-datepicker-buttonpane button { float: right; margin: .5em .2em .4em; cursor: pointer; padding: .2em .6em .3em .6em; width:auto; overflow:visible; }
+.player-ui .ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current { float:left; }
+
+/* with multiple calendars */
+.player-ui .ui-datepicker.ui-datepicker-multi { width:auto; }
+.player-ui .ui-datepicker-multi .ui-datepicker-group { float:left; }
+.player-ui .ui-datepicker-multi .ui-datepicker-group table { width:95%; margin:0 auto .4em; }
+.player-ui .ui-datepicker-multi-2 .ui-datepicker-group { width:50%; }
+.player-ui .ui-datepicker-multi-3 .ui-datepicker-group { width:33.3%; }
+.player-ui .ui-datepicker-multi-4 .ui-datepicker-group { width:25%; }
+.player-ui .ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header { border-left-width:0; }
+.player-ui .ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header { border-left-width:0; }
+.player-ui .ui-datepicker-multi .ui-datepicker-buttonpane { clear:left; }
+.player-ui .ui-datepicker-row-break { clear:both; width:100%; font-size:0em; }
+
+/* RTL support */
+.player-ui .ui-datepicker-rtl { direction: rtl; }
+.player-ui .ui-datepicker-rtl .ui-datepicker-prev { right: 2px; left: auto; }
+.player-ui .ui-datepicker-rtl .ui-datepicker-next { left: 2px; right: auto; }
+.player-ui .ui-datepicker-rtl .ui-datepicker-prev:hover { right: 1px; left: auto; }
+.player-ui .ui-datepicker-rtl .ui-datepicker-next:hover { left: 1px; right: auto; }
+.player-ui .ui-datepicker-rtl .ui-datepicker-buttonpane { clear:right; }
+.player-ui .ui-datepicker-rtl .ui-datepicker-buttonpane button { float: left; }
+.player-ui .ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current { float:right; }
+.player-ui .ui-datepicker-rtl .ui-datepicker-group { float:right; }
+.player-ui .ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header { border-right-width:0; border-left-width:1px; }
+.player-ui .ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header { border-right-width:0; border-left-width:1px; }
+
+/* IE6 IFRAME FIX (taken from datepicker 1.5.3 */
+.player-ui .ui-datepicker-cover {
+    display: none; /*sorry for IE5*/
+    display/**/: block; /*sorry for IE5*/
+    position: absolute; /*must have*/
+    z-index: -1; /*must have*/
+    filter: mask(); /*must have*/
+    top: -4px; /*must have*/
+    left: -4px; /*must have*/
+    width: 200px; /*must have*/
+    height: 200px; /*must have*/
+}/*
+ * jQuery UI Progressbar 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Progressbar#theming
+ */
+.player-ui .ui-progressbar { height:2em; text-align: left; overflow: hidden; }
+.player-ui .ui-progressbar .ui-progressbar-value {margin: -1px; height:100%; }
\ No newline at end of file
diff --git a/public/admin/js/osmplayer/jquery-ui/eggplant/images/ui-bg_flat_0_aaaaaa_40x100.png b/public/admin/js/osmplayer/jquery-ui/eggplant/images/ui-bg_flat_0_aaaaaa_40x100.png
new file mode 100644
index 0000000000000000000000000000000000000000..5b5dab2ab7b1c50dea9cfe73dc5a269a92d2d4b4
GIT binary patch
literal 180
zcmeAS@N?(olHy`uVBq!ia0vp^8bF-F!3HG1q!d*FscKIb$B>N1x91EQ4=4yQ7#`R^
z$vje}<irI&an_s0pV!D+$FtuP31JO&3=I&aE+u|=5A)Hv$*VMh&S3C#^>bP0l+XkK
DSH>_4

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/eggplant/images/ui-bg_flat_0_eeeeee_40x100.png b/public/admin/js/osmplayer/jquery-ui/eggplant/images/ui-bg_flat_0_eeeeee_40x100.png
new file mode 100644
index 0000000000000000000000000000000000000000..e44f861be1ccdfec4275eb20d9b056f14992f649
GIT binary patch
literal 180
zcmeAS@N?(olHy`uVBq!ia0vp^8bF-F!3HG1q!d*FscKIb$B>N1x91EQ4=4yQ7#`Sv
zZF_)9$%zYm;;c7~Kd+Iuj%U9o62cnl7#bi-T}u4XA(n|-?{<9$I)lN})z4*}Q$iB}
D#5ytf

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/eggplant/images/ui-bg_flat_55_994d53_40x100.png b/public/admin/js/osmplayer/jquery-ui/eggplant/images/ui-bg_flat_55_994d53_40x100.png
new file mode 100644
index 0000000000000000000000000000000000000000..822d52054437a6e488be3a4e8bb75f09106eeded
GIT binary patch
literal 182
zcmeAS@N?(olHy`uVBq!ia0vp^8bF-F!3HG1q!d*Fsaj7L$B>N1x91EQ8x$BA9GA#X
ze(9qvD3N#Jq5i?x^SkbUO#b}(fTv?<fM^J7D0Qi=jIkcf4AlzLT!0Q?@O1TaS?83{
F1OV$mG4cQa

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/eggplant/images/ui-bg_flat_55_fafafa_40x100.png b/public/admin/js/osmplayer/jquery-ui/eggplant/images/ui-bg_flat_55_fafafa_40x100.png
new file mode 100644
index 0000000000000000000000000000000000000000..17b75c54691b9bec723af30dd7acdc82ecc7b392
GIT binary patch
literal 180
zcmeAS@N?(olHy`uVBq!ia0vp^8bF-F!3HG1q!d*FscKIb$B>N1x91izHW&ynY~1$S
z|4&<ALkC0QOoi&Sd0&&CzdkU#Y1IO)6<n*ROTA*+Ey%J}Z1KNLpfeaeUHx3vIVCg!
E08Ft+GXMYp

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/eggplant/images/ui-bg_gloss-wave_30_3d3644_500x100.png b/public/admin/js/osmplayer/jquery-ui/eggplant/images/ui-bg_gloss-wave_30_3d3644_500x100.png
new file mode 100644
index 0000000000000000000000000000000000000000..5a36f3184272db85e61f8a4a3f9fa4505f951765
GIT binary patch
literal 4244
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
VaoJO0IAfDWHkJ++rI&6!`VUPkbP@mn

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/eggplant/images/ui-bg_highlight-soft_100_dcd9de_1x100.png b/public/admin/js/osmplayer/jquery-ui/eggplant/images/ui-bg_highlight-soft_100_dcd9de_1x100.png
new file mode 100644
index 0000000000000000000000000000000000000000..1e7feae1474f62ef8502d6c532513a4a9d01b1a3
GIT binary patch
literal 159
zcmeAS@N?(olHy`uVBq!ia0vp^j6j^i!3Ja)XlH!`a?(6q9780gZtXkBb;yCoMgHgi
z`cVCMd9%+{6to6uM;tk=+<5Xy;odtk4AmiG7o*hO<Xhfu=U`}OH8VWsw53|z=<|`c
z>K?PgUeDTWV$3;ppVp73KQ(X6+jT9w>elpatG#Z2h>zj>z##uBlGD&&&O)G#44$rj
JF6*2UngE3?Ji`D0

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/eggplant/images/ui-bg_highlight-soft_100_eae6ea_1x100.png b/public/admin/js/osmplayer/jquery-ui/eggplant/images/ui-bg_highlight-soft_100_eae6ea_1x100.png
new file mode 100644
index 0000000000000000000000000000000000000000..1e2ae7c9ffc6116aba9b2cd57ee913eb2de7015b
GIT binary patch
literal 108
zcmeAS@N?(olHy`uVBq!ia0vp^j6j^i!3HGVb)pi0l(DCaV~E7m<R9Oj-mX_;V`FPm
zborD1<NSdmALP&d{V(78Rel*uXZI?W?N)3)*AD!ieu{-5VX0Qb^m#IufZ7>6UHx3v
IIVCg!0EBZS+W-In

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/eggplant/images/ui-bg_highlight-soft_25_30273a_1x100.png b/public/admin/js/osmplayer/jquery-ui/eggplant/images/ui-bg_highlight-soft_25_30273a_1x100.png
new file mode 100644
index 0000000000000000000000000000000000000000..cf8ad4a9f31d8e2e77f7210e2f608d5f6778fe87
GIT binary patch
literal 124
zcmeAS@N?(olHy`uVBq!ia0vp^j6j^i!3HGVb)pi0l(VOcV~E7mtNp754;Y9XE{R*W
zVZ(3zq}DwtO-<8&`2Axjj_+suF>#B~#0An*GuUqnX}|oK!)`lu7jx?Q0<Bl#|Mux{
YCwy`UpZsL|6rgbop00i_>zopr0Q@N{x&QzG

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/eggplant/images/ui-bg_highlight-soft_45_5f5964_1x100.png b/public/admin/js/osmplayer/jquery-ui/eggplant/images/ui-bg_highlight-soft_45_5f5964_1x100.png
new file mode 100644
index 0000000000000000000000000000000000000000..4dec1d0bf96c038d99e19d6f7b5f6cf5c39b7f1d
GIT binary patch
literal 173
zcmeAS@N?(olHy`uVBq!ia0vp^j6j^i!3Ja)XlH!`a!Nd19780gZtXMVJLJH_;{Lmw
zi))@2U(geoocn<VqAZ#mOC@(kyyts<c`5e;+0|=T_^?hba^CyBpMxQqb*-t%{dAL9
zZlleA_s0tgp2%?x(~g>ErE<46{Gk0~`-NN0N|c#WRX(*V_e<>hxr-_F*#Sj8=?W(C
WHzB%A>GB|lF?hQAxvX<aXaWF@A30P2

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/eggplant/images/ui-icons_454545_256x240.png b/public/admin/js/osmplayer/jquery-ui/eggplant/images/ui-icons_454545_256x240.png
new file mode 100644
index 0000000000000000000000000000000000000000..59bd45b907c4fd965697774ce8c5fc6b2fd9c105
GIT binary patch
literal 4369
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

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/eggplant/images/ui-icons_734d99_256x240.png b/public/admin/js/osmplayer/jquery-ui/eggplant/images/ui-icons_734d99_256x240.png
new file mode 100644
index 0000000000000000000000000000000000000000..ebfc4f83eb1928365e165ef36b076872b497e4f0
GIT binary patch
literal 4369
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

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/eggplant/images/ui-icons_8d78a5_256x240.png b/public/admin/js/osmplayer/jquery-ui/eggplant/images/ui-icons_8d78a5_256x240.png
new file mode 100644
index 0000000000000000000000000000000000000000..6ca0cff90c3301600757ad9cf5acc5f06886fe4d
GIT binary patch
literal 4369
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

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/eggplant/images/ui-icons_a8a3ae_256x240.png b/public/admin/js/osmplayer/jquery-ui/eggplant/images/ui-icons_a8a3ae_256x240.png
new file mode 100644
index 0000000000000000000000000000000000000000..8783bf3e866c3cd668b089bbac6728b0f5fec462
GIT binary patch
literal 5355
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
X?9W!R4cYv^U*;2aeYIK@hnW8XLIGSs

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/eggplant/images/ui-icons_ebccce_256x240.png b/public/admin/js/osmplayer/jquery-ui/eggplant/images/ui-icons_ebccce_256x240.png
new file mode 100644
index 0000000000000000000000000000000000000000..e7dc5fa1f0a5e5297ed145234aeeac68947003c9
GIT binary patch
literal 5355
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
W{n<*kA)EjA%Y34)uU4z#5c5ApsfbSi

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/eggplant/images/ui-icons_ffffff_256x240.png b/public/admin/js/osmplayer/jquery-ui/eggplant/images/ui-icons_ffffff_256x240.png
new file mode 100644
index 0000000000000000000000000000000000000000..42f8f992c727ddaa617da224a522e463df690387
GIT binary patch
literal 4369
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

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/eggplant/jquery-ui-1.8.18.custom.css b/public/admin/js/osmplayer/jquery-ui/eggplant/jquery-ui-1.8.18.custom.css
new file mode 100644
index 00000000000..aab622b004e
--- /dev/null
+++ b/public/admin/js/osmplayer/jquery-ui/eggplant/jquery-ui-1.8.18.custom.css
@@ -0,0 +1,565 @@
+/*
+ * jQuery UI CSS Framework 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Theming/API
+ */
+
+/* Layout helpers
+----------------------------------*/
+.player-ui .ui-helper-hidden { display: none; }
+.player-ui .ui-helper-hidden-accessible { position: absolute !important; clip: rect(1px 1px 1px 1px); clip: rect(1px,1px,1px,1px); }
+.player-ui .ui-helper-reset { margin: 0; padding: 0; border: 0; outline: 0; line-height: 1.3; text-decoration: none; font-size: 100%; list-style: none; }
+.player-ui .ui-helper-clearfix:before, .player-ui .ui-helper-clearfix:after { content: ""; display: table; }
+.player-ui .ui-helper-clearfix:after { clear: both; }
+.player-ui .ui-helper-clearfix { zoom: 1; }
+.player-ui .ui-helper-zfix { width: 100%; height: 100%; top: 0; left: 0; position: absolute; opacity: 0; filter:Alpha(Opacity=0); }
+
+
+/* Interaction Cues
+----------------------------------*/
+.player-ui .ui-state-disabled { cursor: default !important; }
+
+
+/* Icons
+----------------------------------*/
+
+/* states and images */
+.player-ui .ui-icon { display: block; text-indent: -99999px; overflow: hidden; background-repeat: no-repeat; }
+
+
+/* Misc visuals
+----------------------------------*/
+
+/* Overlays */
+.player-ui .ui-widget-overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }
+
+
+/*
+ * jQuery UI CSS Framework 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Theming/API
+ *
+ * To view and modify this theme, visit http://jqueryui.com/themeroller/?ffDefault=Lucida%20Grande,%20Lucida%20Sans,%20Arial,%20sans-serif&fwDefault=bold&fsDefault=1.1em&cornerRadius=6px&bgColorHeader=30273a&bgTextureHeader=03_highlight_soft.png&bgImgOpacityHeader=25&borderColorHeader=231d2b&fcHeader=ffffff&iconColorHeader=a8a3ae&bgColorContent=3d3644&bgTextureContent=12_gloss_wave.png&bgImgOpacityContent=30&borderColorContent=7e7783&fcContent=ffffff&iconColorContent=ffffff&bgColorDefault=dcd9de&bgTextureDefault=03_highlight_soft.png&bgImgOpacityDefault=100&borderColorDefault=dcd9de&fcDefault=665874&iconColorDefault=8d78a5&bgColorHover=eae6ea&bgTextureHover=03_highlight_soft.png&bgImgOpacityHover=100&borderColorHover=d1c5d8&fcHover=734d99&iconColorHover=734d99&bgColorActive=5f5964&bgTextureActive=03_highlight_soft.png&bgImgOpacityActive=45&borderColorActive=7e7783&fcActive=ffffff&iconColorActive=454545&bgColorHighlight=fafafa&bgTextureHighlight=01_flat.png&bgImgOpacityHighlight=55&borderColorHighlight=ffdb1f&fcHighlight=333333&iconColorHighlight=8d78a5&bgColorError=994d53&bgTextureError=01_flat.png&bgImgOpacityError=55&borderColorError=994d53&fcError=ffffff&iconColorError=ebccce&bgColorOverlay=eeeeee&bgTextureOverlay=01_flat.png&bgImgOpacityOverlay=0&opacityOverlay=80&bgColorShadow=aaaaaa&bgTextureShadow=01_flat.png&bgImgOpacityShadow=0&opacityShadow=60&thicknessShadow=4px&offsetTopShadow=-4px&offsetLeftShadow=-4px&cornerRadiusShadow=0px
+ */
+
+
+/* Component containers
+----------------------------------*/
+.player-ui .ui-widget { font-family: Lucida Grande, Lucida Sans, Arial, sans-serif; font-size: 1.1em; }
+.player-ui .ui-widget .ui-widget { font-size: 1em; }
+.player-ui .ui-widget input, .player-ui .ui-widget select, .player-ui .ui-widget textarea, .player-ui .ui-widget button { font-family: Lucida Grande, Lucida Sans, Arial, sans-serif; font-size: 1em; }
+.player-ui .ui-widget-content { border: 1px solid #7e7783; background: #3d3644 url(images/ui-bg_gloss-wave_30_3d3644_500x100.png) 50% top repeat-x; color: #ffffff; }
+.player-ui .ui-widget-content a { color: #ffffff; }
+.player-ui .ui-widget-header { border: 1px solid #231d2b; background: #30273a url(images/ui-bg_highlight-soft_25_30273a_1x100.png) 50% 50% repeat-x; color: #ffffff; font-weight: bold; }
+.player-ui .ui-widget-header a { color: #ffffff; }
+
+/* Interaction states
+----------------------------------*/
+.player-ui .ui-state-default, .player-ui .ui-widget-content .ui-state-default, .player-ui .ui-widget-header .ui-state-default { border: 1px solid #dcd9de; background: #dcd9de url(images/ui-bg_highlight-soft_100_dcd9de_1x100.png) 50% 50% repeat-x; font-weight: bold; color: #665874; }
+.player-ui .ui-state-default a, .player-ui .ui-state-default a:link, .player-ui .ui-state-default a:visited { color: #665874; text-decoration: none; }
+.player-ui .ui-state-hover, .player-ui .ui-widget-content .ui-state-hover, .player-ui .ui-widget-header .ui-state-hover, .player-ui .ui-state-focus, .player-ui .ui-widget-content .ui-state-focus, .player-ui .ui-widget-header .ui-state-focus { border: 1px solid #d1c5d8; background: #eae6ea url(images/ui-bg_highlight-soft_100_eae6ea_1x100.png) 50% 50% repeat-x; font-weight: bold; color: #734d99; }
+.player-ui .ui-state-hover a, .player-ui .ui-state-hover a:hover { color: #734d99; text-decoration: none; }
+.player-ui .ui-state-active, .player-ui .ui-widget-content .ui-state-active, .player-ui .ui-widget-header .ui-state-active { border: 1px solid #7e7783; background: #5f5964 url(images/ui-bg_highlight-soft_45_5f5964_1x100.png) 50% 50% repeat-x; font-weight: bold; color: #ffffff; }
+.player-ui .ui-state-active a, .player-ui .ui-state-active a:link, .player-ui .ui-state-active a:visited { color: #ffffff; text-decoration: none; }
+.player-ui .ui-widget :active { outline: none; }
+
+/* Interaction Cues
+----------------------------------*/
+.player-ui .ui-state-highlight, .player-ui .ui-widget-content .ui-state-highlight, .player-ui .ui-widget-header .ui-state-highlight  {border: 1px solid #ffdb1f; background: #fafafa url(images/ui-bg_flat_55_fafafa_40x100.png) 50% 50% repeat-x; color: #333333; }
+.player-ui .ui-state-highlight a, .player-ui .ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a { color: #333333; }
+.player-ui .ui-state-error, .player-ui .ui-widget-content .ui-state-error, .player-ui .ui-widget-header .ui-state-error {border: 1px solid #994d53; background: #994d53 url(images/ui-bg_flat_55_994d53_40x100.png) 50% 50% repeat-x; color: #ffffff; }
+.player-ui .ui-state-error a, .player-ui .ui-widget-content .ui-state-error a, .player-ui .ui-widget-header .ui-state-error a { color: #ffffff; }
+.player-ui .ui-state-error-text, .player-ui .ui-widget-content .ui-state-error-text, .player-ui .ui-widget-header .ui-state-error-text { color: #ffffff; }
+.player-ui .ui-priority-primary, .player-ui .ui-widget-content .ui-priority-primary, .player-ui .ui-widget-header .ui-priority-primary { font-weight: bold; }
+.player-ui .ui-priority-secondary, .player-ui .ui-widget-content .ui-priority-secondary,  .ui-widget-header .ui-priority-secondary { opacity: .7; filter:Alpha(Opacity=70); font-weight: normal; }
+.player-ui .ui-state-disabled, .player-ui .ui-widget-content .ui-state-disabled, .player-ui .ui-widget-header .ui-state-disabled { opacity: .35; filter:Alpha(Opacity=35); background-image: none; }
+
+/* Icons
+----------------------------------*/
+
+/* states and images */
+.player-ui .ui-icon { width: 16px; height: 16px; background-image: url(images/ui-icons_ffffff_256x240.png); }
+.player-ui .ui-widget-content .ui-icon {background-image: url(images/ui-icons_ffffff_256x240.png); }
+.player-ui .ui-widget-header .ui-icon {background-image: url(images/ui-icons_a8a3ae_256x240.png); }
+.player-ui .ui-state-default .ui-icon { background-image: url(images/ui-icons_8d78a5_256x240.png); }
+.player-ui .ui-state-hover .ui-icon, .player-ui .ui-state-focus .ui-icon {background-image: url(images/ui-icons_734d99_256x240.png); }
+.player-ui .ui-state-active .ui-icon {background-image: url(images/ui-icons_454545_256x240.png); }
+.player-ui .ui-state-highlight .ui-icon {background-image: url(images/ui-icons_8d78a5_256x240.png); }
+.player-ui .ui-state-error .ui-icon, .player-ui .ui-state-error-text .ui-icon {background-image: url(images/ui-icons_ebccce_256x240.png); }
+
+/* positioning */
+.player-ui .ui-icon-carat-1-n { background-position: 0 0; }
+.player-ui .ui-icon-carat-1-ne { background-position: -16px 0; }
+.player-ui .ui-icon-carat-1-e { background-position: -32px 0; }
+.player-ui .ui-icon-carat-1-se { background-position: -48px 0; }
+.player-ui .ui-icon-carat-1-s { background-position: -64px 0; }
+.player-ui .ui-icon-carat-1-sw { background-position: -80px 0; }
+.player-ui .ui-icon-carat-1-w { background-position: -96px 0; }
+.player-ui .ui-icon-carat-1-nw { background-position: -112px 0; }
+.player-ui .ui-icon-carat-2-n-s { background-position: -128px 0; }
+.player-ui .ui-icon-carat-2-e-w { background-position: -144px 0; }
+.player-ui .ui-icon-triangle-1-n { background-position: 0 -16px; }
+.player-ui .ui-icon-triangle-1-ne { background-position: -16px -16px; }
+.player-ui .ui-icon-triangle-1-e { background-position: -32px -16px; }
+.player-ui .ui-icon-triangle-1-se { background-position: -48px -16px; }
+.player-ui .ui-icon-triangle-1-s { background-position: -64px -16px; }
+.player-ui .ui-icon-triangle-1-sw { background-position: -80px -16px; }
+.player-ui .ui-icon-triangle-1-w { background-position: -96px -16px; }
+.player-ui .ui-icon-triangle-1-nw { background-position: -112px -16px; }
+.player-ui .ui-icon-triangle-2-n-s { background-position: -128px -16px; }
+.player-ui .ui-icon-triangle-2-e-w { background-position: -144px -16px; }
+.player-ui .ui-icon-arrow-1-n { background-position: 0 -32px; }
+.player-ui .ui-icon-arrow-1-ne { background-position: -16px -32px; }
+.player-ui .ui-icon-arrow-1-e { background-position: -32px -32px; }
+.player-ui .ui-icon-arrow-1-se { background-position: -48px -32px; }
+.player-ui .ui-icon-arrow-1-s { background-position: -64px -32px; }
+.player-ui .ui-icon-arrow-1-sw { background-position: -80px -32px; }
+.player-ui .ui-icon-arrow-1-w { background-position: -96px -32px; }
+.player-ui .ui-icon-arrow-1-nw { background-position: -112px -32px; }
+.player-ui .ui-icon-arrow-2-n-s { background-position: -128px -32px; }
+.player-ui .ui-icon-arrow-2-ne-sw { background-position: -144px -32px; }
+.player-ui .ui-icon-arrow-2-e-w { background-position: -160px -32px; }
+.player-ui .ui-icon-arrow-2-se-nw { background-position: -176px -32px; }
+.player-ui .ui-icon-arrowstop-1-n { background-position: -192px -32px; }
+.player-ui .ui-icon-arrowstop-1-e { background-position: -208px -32px; }
+.player-ui .ui-icon-arrowstop-1-s { background-position: -224px -32px; }
+.player-ui .ui-icon-arrowstop-1-w { background-position: -240px -32px; }
+.player-ui .ui-icon-arrowthick-1-n { background-position: 0 -48px; }
+.player-ui .ui-icon-arrowthick-1-ne { background-position: -16px -48px; }
+.player-ui .ui-icon-arrowthick-1-e { background-position: -32px -48px; }
+.player-ui .ui-icon-arrowthick-1-se { background-position: -48px -48px; }
+.player-ui .ui-icon-arrowthick-1-s { background-position: -64px -48px; }
+.player-ui .ui-icon-arrowthick-1-sw { background-position: -80px -48px; }
+.player-ui .ui-icon-arrowthick-1-w { background-position: -96px -48px; }
+.player-ui .ui-icon-arrowthick-1-nw { background-position: -112px -48px; }
+.player-ui .ui-icon-arrowthick-2-n-s { background-position: -128px -48px; }
+.player-ui .ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px; }
+.player-ui .ui-icon-arrowthick-2-e-w { background-position: -160px -48px; }
+.player-ui .ui-icon-arrowthick-2-se-nw { background-position: -176px -48px; }
+.player-ui .ui-icon-arrowthickstop-1-n { background-position: -192px -48px; }
+.player-ui .ui-icon-arrowthickstop-1-e { background-position: -208px -48px; }
+.player-ui .ui-icon-arrowthickstop-1-s { background-position: -224px -48px; }
+.player-ui .ui-icon-arrowthickstop-1-w { background-position: -240px -48px; }
+.player-ui .ui-icon-arrowreturnthick-1-w { background-position: 0 -64px; }
+.player-ui .ui-icon-arrowreturnthick-1-n { background-position: -16px -64px; }
+.player-ui .ui-icon-arrowreturnthick-1-e { background-position: -32px -64px; }
+.player-ui .ui-icon-arrowreturnthick-1-s { background-position: -48px -64px; }
+.player-ui .ui-icon-arrowreturn-1-w { background-position: -64px -64px; }
+.player-ui .ui-icon-arrowreturn-1-n { background-position: -80px -64px; }
+.player-ui .ui-icon-arrowreturn-1-e { background-position: -96px -64px; }
+.player-ui .ui-icon-arrowreturn-1-s { background-position: -112px -64px; }
+.player-ui .ui-icon-arrowrefresh-1-w { background-position: -128px -64px; }
+.player-ui .ui-icon-arrowrefresh-1-n { background-position: -144px -64px; }
+.player-ui .ui-icon-arrowrefresh-1-e { background-position: -160px -64px; }
+.player-ui .ui-icon-arrowrefresh-1-s { background-position: -176px -64px; }
+.player-ui .ui-icon-arrow-4 { background-position: 0 -80px; }
+.player-ui .ui-icon-arrow-4-diag { background-position: -16px -80px; }
+.player-ui .ui-icon-extlink { background-position: -32px -80px; }
+.player-ui .ui-icon-newwin { background-position: -48px -80px; }
+.player-ui .ui-icon-refresh { background-position: -64px -80px; }
+.player-ui .ui-icon-shuffle { background-position: -80px -80px; }
+.player-ui .ui-icon-transfer-e-w { background-position: -96px -80px; }
+.player-ui .ui-icon-transferthick-e-w { background-position: -112px -80px; }
+.player-ui .ui-icon-folder-collapsed { background-position: 0 -96px; }
+.player-ui .ui-icon-folder-open { background-position: -16px -96px; }
+.player-ui .ui-icon-document { background-position: -32px -96px; }
+.player-ui .ui-icon-document-b { background-position: -48px -96px; }
+.player-ui .ui-icon-note { background-position: -64px -96px; }
+.player-ui .ui-icon-mail-closed { background-position: -80px -96px; }
+.player-ui .ui-icon-mail-open { background-position: -96px -96px; }
+.player-ui .ui-icon-suitcase { background-position: -112px -96px; }
+.player-ui .ui-icon-comment { background-position: -128px -96px; }
+.player-ui .ui-icon-person { background-position: -144px -96px; }
+.player-ui .ui-icon-print { background-position: -160px -96px; }
+.player-ui .ui-icon-trash { background-position: -176px -96px; }
+.player-ui .ui-icon-locked { background-position: -192px -96px; }
+.player-ui .ui-icon-unlocked { background-position: -208px -96px; }
+.player-ui .ui-icon-bookmark { background-position: -224px -96px; }
+.player-ui .ui-icon-tag { background-position: -240px -96px; }
+.player-ui .ui-icon-home { background-position: 0 -112px; }
+.player-ui .ui-icon-flag { background-position: -16px -112px; }
+.player-ui .ui-icon-calendar { background-position: -32px -112px; }
+.player-ui .ui-icon-cart { background-position: -48px -112px; }
+.player-ui .ui-icon-pencil { background-position: -64px -112px; }
+.player-ui .ui-icon-clock { background-position: -80px -112px; }
+.player-ui .ui-icon-disk { background-position: -96px -112px; }
+.player-ui .ui-icon-calculator { background-position: -112px -112px; }
+.player-ui .ui-icon-zoomin { background-position: -128px -112px; }
+.player-ui .ui-icon-zoomout { background-position: -144px -112px; }
+.player-ui .ui-icon-search { background-position: -160px -112px; }
+.player-ui .ui-icon-wrench { background-position: -176px -112px; }
+.player-ui .ui-icon-gear { background-position: -192px -112px; }
+.player-ui .ui-icon-heart { background-position: -208px -112px; }
+.player-ui .ui-icon-star { background-position: -224px -112px; }
+.player-ui .ui-icon-link { background-position: -240px -112px; }
+.player-ui .ui-icon-cancel { background-position: 0 -128px; }
+.player-ui .ui-icon-plus { background-position: -16px -128px; }
+.player-ui .ui-icon-plusthick { background-position: -32px -128px; }
+.player-ui .ui-icon-minus { background-position: -48px -128px; }
+.player-ui .ui-icon-minusthick { background-position: -64px -128px; }
+.player-ui .ui-icon-close { background-position: -80px -128px; }
+.player-ui .ui-icon-closethick { background-position: -96px -128px; }
+.player-ui .ui-icon-key { background-position: -112px -128px; }
+.player-ui .ui-icon-lightbulb { background-position: -128px -128px; }
+.player-ui .ui-icon-scissors { background-position: -144px -128px; }
+.player-ui .ui-icon-clipboard { background-position: -160px -128px; }
+.player-ui .ui-icon-copy { background-position: -176px -128px; }
+.player-ui .ui-icon-contact { background-position: -192px -128px; }
+.player-ui .ui-icon-image { background-position: -208px -128px; }
+.player-ui .ui-icon-video { background-position: -224px -128px; }
+.player-ui .ui-icon-script { background-position: -240px -128px; }
+.player-ui .ui-icon-alert { background-position: 0 -144px; }
+.player-ui .ui-icon-info { background-position: -16px -144px; }
+.player-ui .ui-icon-notice { background-position: -32px -144px; }
+.player-ui .ui-icon-help { background-position: -48px -144px; }
+.player-ui .ui-icon-check { background-position: -64px -144px; }
+.player-ui .ui-icon-bullet { background-position: -80px -144px; }
+.player-ui .ui-icon-radio-off { background-position: -96px -144px; }
+.player-ui .ui-icon-radio-on { background-position: -112px -144px; }
+.player-ui .ui-icon-pin-w { background-position: -128px -144px; }
+.player-ui .ui-icon-pin-s { background-position: -144px -144px; }
+.player-ui .ui-icon-play { background-position: 0 -160px; }
+.player-ui .ui-icon-pause { background-position: -16px -160px; }
+.player-ui .ui-icon-seek-next { background-position: -32px -160px; }
+.player-ui .ui-icon-seek-prev { background-position: -48px -160px; }
+.player-ui .ui-icon-seek-end { background-position: -64px -160px; }
+.player-ui .ui-icon-seek-start { background-position: -80px -160px; }
+/* ui-icon-seek-first is deprecated, use ui-icon-seek-start instead */
+.player-ui .ui-icon-seek-first { background-position: -80px -160px; }
+.player-ui .ui-icon-stop { background-position: -96px -160px; }
+.player-ui .ui-icon-eject { background-position: -112px -160px; }
+.player-ui .ui-icon-volume-off { background-position: -128px -160px; }
+.player-ui .ui-icon-volume-on { background-position: -144px -160px; }
+.player-ui .ui-icon-power { background-position: 0 -176px; }
+.player-ui .ui-icon-signal-diag { background-position: -16px -176px; }
+.player-ui .ui-icon-signal { background-position: -32px -176px; }
+.player-ui .ui-icon-battery-0 { background-position: -48px -176px; }
+.player-ui .ui-icon-battery-1 { background-position: -64px -176px; }
+.player-ui .ui-icon-battery-2 { background-position: -80px -176px; }
+.player-ui .ui-icon-battery-3 { background-position: -96px -176px; }
+.player-ui .ui-icon-circle-plus { background-position: 0 -192px; }
+.player-ui .ui-icon-circle-minus { background-position: -16px -192px; }
+.player-ui .ui-icon-circle-close { background-position: -32px -192px; }
+.player-ui .ui-icon-circle-triangle-e { background-position: -48px -192px; }
+.player-ui .ui-icon-circle-triangle-s { background-position: -64px -192px; }
+.player-ui .ui-icon-circle-triangle-w { background-position: -80px -192px; }
+.player-ui .ui-icon-circle-triangle-n { background-position: -96px -192px; }
+.player-ui .ui-icon-circle-arrow-e { background-position: -112px -192px; }
+.player-ui .ui-icon-circle-arrow-s { background-position: -128px -192px; }
+.player-ui .ui-icon-circle-arrow-w { background-position: -144px -192px; }
+.player-ui .ui-icon-circle-arrow-n { background-position: -160px -192px; }
+.player-ui .ui-icon-circle-zoomin { background-position: -176px -192px; }
+.player-ui .ui-icon-circle-zoomout { background-position: -192px -192px; }
+.player-ui .ui-icon-circle-check { background-position: -208px -192px; }
+.player-ui .ui-icon-circlesmall-plus { background-position: 0 -208px; }
+.player-ui .ui-icon-circlesmall-minus { background-position: -16px -208px; }
+.player-ui .ui-icon-circlesmall-close { background-position: -32px -208px; }
+.player-ui .ui-icon-squaresmall-plus { background-position: -48px -208px; }
+.player-ui .ui-icon-squaresmall-minus { background-position: -64px -208px; }
+.player-ui .ui-icon-squaresmall-close { background-position: -80px -208px; }
+.player-ui .ui-icon-grip-dotted-vertical { background-position: 0 -224px; }
+.player-ui .ui-icon-grip-dotted-horizontal { background-position: -16px -224px; }
+.player-ui .ui-icon-grip-solid-vertical { background-position: -32px -224px; }
+.player-ui .ui-icon-grip-solid-horizontal { background-position: -48px -224px; }
+.player-ui .ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; }
+.player-ui .ui-icon-grip-diagonal-se { background-position: -80px -224px; }
+
+
+/* Misc visuals
+----------------------------------*/
+
+/* Corner radius */
+.player-ui .ui-corner-all, .player-ui .ui-corner-top, .player-ui .ui-corner-left, .player-ui .ui-corner-tl { -moz-border-radius-topleft: 6px; -webkit-border-top-left-radius: 6px; -khtml-border-top-left-radius: 6px; border-top-left-radius: 6px; }
+.player-ui .ui-corner-all, .player-ui .ui-corner-top, .player-ui .ui-corner-right, .player-ui .ui-corner-tr { -moz-border-radius-topright: 6px; -webkit-border-top-right-radius: 6px; -khtml-border-top-right-radius: 6px; border-top-right-radius: 6px; }
+.player-ui .ui-corner-all, .player-ui .ui-corner-bottom, .player-ui .ui-corner-left, .player-ui .ui-corner-bl { -moz-border-radius-bottomleft: 6px; -webkit-border-bottom-left-radius: 6px; -khtml-border-bottom-left-radius: 6px; border-bottom-left-radius: 6px; }
+.player-ui .ui-corner-all, .player-ui .ui-corner-bottom, .player-ui .ui-corner-right, .player-ui .ui-corner-br { -moz-border-radius-bottomright: 6px; -webkit-border-bottom-right-radius: 6px; -khtml-border-bottom-right-radius: 6px; border-bottom-right-radius: 6px; }
+
+/* Overlays */
+.player-ui .ui-widget-overlay { background: #eeeeee url(images/ui-bg_flat_0_eeeeee_40x100.png) 50% 50% repeat-x; opacity: .80;filter:Alpha(Opacity=80); }
+.player-ui .ui-widget-shadow { margin: -4px 0 0 -4px; padding: 4px; background: #aaaaaa url(images/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x; opacity: .60;filter:Alpha(Opacity=60); -moz-border-radius: 0px; -khtml-border-radius: 0px; -webkit-border-radius: 0px; border-radius: 0px; }/*
+ * jQuery UI Resizable 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Resizable#theming
+ */
+.player-ui .ui-resizable { position: relative;}
+.player-ui .ui-resizable-handle { position: absolute;font-size: 0.1px;z-index: 99999; display: block; }
+.player-ui .ui-resizable-disabled .ui-resizable-handle, .player-ui .ui-resizable-autohide .ui-resizable-handle { display: none; }
+.player-ui .ui-resizable-n { cursor: n-resize; height: 7px; width: 100%; top: -5px; left: 0; }
+.player-ui .ui-resizable-s { cursor: s-resize; height: 7px; width: 100%; bottom: -5px; left: 0; }
+.player-ui .ui-resizable-e { cursor: e-resize; width: 7px; right: -5px; top: 0; height: 100%; }
+.player-ui .ui-resizable-w { cursor: w-resize; width: 7px; left: -5px; top: 0; height: 100%; }
+.player-ui .ui-resizable-se { cursor: se-resize; width: 12px; height: 12px; right: 1px; bottom: 1px; }
+.player-ui .ui-resizable-sw { cursor: sw-resize; width: 9px; height: 9px; left: -5px; bottom: -5px; }
+.player-ui .ui-resizable-nw { cursor: nw-resize; width: 9px; height: 9px; left: -5px; top: -5px; }
+.player-ui .ui-resizable-ne { cursor: ne-resize; width: 9px; height: 9px; right: -5px; top: -5px;}/*
+ * jQuery UI Selectable 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Selectable#theming
+ */
+.player-ui .ui-selectable-helper { position: absolute; z-index: 100; border:1px dotted black; }
+/*
+ * jQuery UI Accordion 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Accordion#theming
+ */
+/* IE/Win - Fix animation bug - #4615 */
+.player-ui .ui-accordion { width: 100%; }
+.player-ui .ui-accordion .ui-accordion-header { cursor: pointer; position: relative; margin-top: 1px; zoom: 1; }
+.player-ui .ui-accordion .ui-accordion-li-fix { display: inline; }
+.player-ui .ui-accordion .ui-accordion-header-active { border-bottom: 0 !important; }
+.player-ui .ui-accordion .ui-accordion-header a { display: block; font-size: 1em; padding: .5em .5em .5em .7em; }
+.player-ui .ui-accordion-icons .ui-accordion-header a { padding-left: 2.2em; }
+.player-ui .ui-accordion .ui-accordion-header .ui-icon { position: absolute; left: .5em; top: 50%; margin-top: -8px; }
+.player-ui .ui-accordion .ui-accordion-content { padding: 1em 2.2em; border-top: 0; margin-top: -2px; position: relative; top: 1px; margin-bottom: 2px; overflow: auto; display: none; zoom: 1; }
+.player-ui .ui-accordion .ui-accordion-content-active { display: block; }
+/*
+ * jQuery UI Autocomplete 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Autocomplete#theming
+ */
+.player-ui .ui-autocomplete { position: absolute; cursor: default; }	
+
+/* workarounds */
+* html .ui-autocomplete { width:1px; } /* without this, the menu expands to 100% in IE6 */
+
+/*
+ * jQuery UI Menu 1.8.18
+ *
+ * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Menu#theming
+ */
+.player-ui .ui-menu {
+	list-style:none;
+	padding: 2px;
+	margin: 0;
+	display:block;
+	float: left;
+}
+.player-ui .ui-menu .ui-menu {
+	margin-top: -3px;
+}
+.player-ui .ui-menu .ui-menu-item {
+	margin:0;
+	padding: 0;
+	zoom: 1;
+	float: left;
+	clear: left;
+	width: 100%;
+}
+.player-ui .ui-menu .ui-menu-item a {
+	text-decoration:none;
+	display:block;
+	padding:.2em .4em;
+	line-height:1.5;
+	zoom:1;
+}
+.player-ui .ui-menu .ui-menu-item a.ui-state-hover,
+.player-ui .ui-menu .ui-menu-item a.ui-state-active {
+	font-weight: normal;
+	margin: -1px;
+}
+/*
+ * jQuery UI Button 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Button#theming
+ */
+.player-ui .ui-button { display: inline-block; position: relative; padding: 0; margin-right: .1em; text-decoration: none !important; cursor: pointer; text-align: center; zoom: 1; overflow: hidden; *overflow: visible; } /* the overflow property removes extra width in IE */
+.player-ui .ui-button-icon-only { width: 2.2em; } /* to make room for the icon, a width needs to be set here */
+button.ui-button-icon-only { width: 2.4em; } /* button elements seem to need a little more width */
+.player-ui .ui-button-icons-only { width: 3.4em; } 
+button.ui-button-icons-only { width: 3.7em; } 
+
+/*button text element */
+.player-ui .ui-button .ui-button-text { display: block; line-height: 1.4;  }
+.player-ui .ui-button-text-only .ui-button-text { padding: .4em 1em; }
+.player-ui .ui-button-icon-only .ui-button-text, .player-ui .ui-button-icons-only .ui-button-text { padding: .4em; text-indent: -9999999px; }
+.player-ui .ui-button-text-icon-primary .ui-button-text, .player-ui .ui-button-text-icons .ui-button-text { padding: .4em 1em .4em 2.1em; }
+.player-ui .ui-button-text-icon-secondary .ui-button-text, .player-ui .ui-button-text-icons .ui-button-text { padding: .4em 2.1em .4em 1em; }
+.player-ui .ui-button-text-icons .ui-button-text { padding-left: 2.1em; padding-right: 2.1em; }
+/* no icon support for input elements, provide padding by default */
+input.ui-button { padding: .4em 1em; }
+
+/*button icon element(s) */
+.player-ui .ui-button-icon-only .ui-icon, .player-ui .ui-button-text-icon-primary .ui-icon, .player-ui .ui-button-text-icon-secondary .ui-icon, .player-ui .ui-button-text-icons .ui-icon, .player-ui .ui-button-icons-only .ui-icon { position: absolute; top: 50%; margin-top: -8px; }
+.player-ui .ui-button-icon-only .ui-icon { left: 50%; margin-left: -8px; }
+.player-ui .ui-button-text-icon-primary .ui-button-icon-primary, .player-ui .ui-button-text-icons .ui-button-icon-primary, .player-ui .ui-button-icons-only .ui-button-icon-primary { left: .5em; }
+.player-ui .ui-button-text-icon-secondary .ui-button-icon-secondary, .player-ui .ui-button-text-icons .ui-button-icon-secondary, .player-ui .ui-button-icons-only .ui-button-icon-secondary { right: .5em; }
+.player-ui .ui-button-text-icons .ui-button-icon-secondary, .player-ui .ui-button-icons-only .ui-button-icon-secondary { right: .5em; }
+
+/*button sets*/
+.player-ui .ui-buttonset { margin-right: 7px; }
+.player-ui .ui-buttonset .ui-button { margin-left: 0; margin-right: -.3em; }
+
+/* workarounds */
+button.ui-button::-moz-focus-inner { border: 0; padding: 0; } /* reset extra padding in Firefox */
+/*
+ * jQuery UI Dialog 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Dialog#theming
+ */
+.player-ui .ui-dialog { position: absolute; padding: .2em; width: 300px; overflow: hidden; }
+.player-ui .ui-dialog .ui-dialog-titlebar { padding: .4em 1em; position: relative;  }
+.player-ui .ui-dialog .ui-dialog-title { float: left; margin: .1em 16px .1em 0; } 
+.player-ui .ui-dialog .ui-dialog-titlebar-close { position: absolute; right: .3em; top: 50%; width: 19px; margin: -10px 0 0 0; padding: 1px; height: 18px; }
+.player-ui .ui-dialog .ui-dialog-titlebar-close span { display: block; margin: 1px; }
+.player-ui .ui-dialog .ui-dialog-titlebar-close:hover, .player-ui .ui-dialog .ui-dialog-titlebar-close:focus { padding: 0; }
+.player-ui .ui-dialog .ui-dialog-content { position: relative; border: 0; padding: .5em 1em; background: none; overflow: auto; zoom: 1; }
+.player-ui .ui-dialog .ui-dialog-buttonpane { text-align: left; border-width: 1px 0 0 0; background-image: none; margin: .5em 0 0 0; padding: .3em 1em .5em .4em; }
+.player-ui .ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset { float: right; }
+.player-ui .ui-dialog .ui-dialog-buttonpane button { margin: .5em .4em .5em 0; cursor: pointer; }
+.player-ui .ui-dialog .ui-resizable-se { width: 14px; height: 14px; right: 3px; bottom: 3px; }
+.player-ui .ui-draggable .ui-dialog-titlebar { cursor: move; }
+/*
+ * jQuery UI Slider 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Slider#theming
+ */
+.player-ui .ui-slider { position: relative; text-align: left; }
+.player-ui .ui-slider .ui-slider-handle { position: absolute; z-index: 2; width: 1.2em; height: 1.2em; cursor: default; }
+.player-ui .ui-slider .ui-slider-range { position: absolute; z-index: 1; font-size: .7em; display: block; border: 0; background-position: 0 0; }
+
+.player-ui .ui-slider-horizontal { height: .8em; }
+.player-ui .ui-slider-horizontal .ui-slider-handle { top: -.3em; margin-left: -.6em; }
+.player-ui .ui-slider-horizontal .ui-slider-range { top: 0; height: 100%; }
+.player-ui .ui-slider-horizontal .ui-slider-range-min { left: 0; }
+.player-ui .ui-slider-horizontal .ui-slider-range-max { right: 0; }
+
+.player-ui .ui-slider-vertical { width: .8em; height: 100px; }
+.player-ui .ui-slider-vertical .ui-slider-handle { left: -.3em; margin-left: 0; margin-bottom: -.6em; }
+.player-ui .ui-slider-vertical .ui-slider-range { left: 0; width: 100%; }
+.player-ui .ui-slider-vertical .ui-slider-range-min { bottom: 0; }
+.player-ui .ui-slider-vertical .ui-slider-range-max { top: 0; }/*
+ * jQuery UI Tabs 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Tabs#theming
+ */
+.player-ui .ui-tabs { position: relative; padding: .2em; zoom: 1; } /* position: relative prevents IE scroll bug (element with position: relative inside container with overflow: auto appear as "fixed") */
+.player-ui .ui-tabs .ui-tabs-nav { margin: 0; padding: .2em .2em 0; }
+.player-ui .ui-tabs .ui-tabs-nav li { list-style: none; float: left; position: relative; top: 1px; margin: 0 .2em 1px 0; border-bottom: 0 !important; padding: 0; white-space: nowrap; }
+.player-ui .ui-tabs .ui-tabs-nav li a { float: left; padding: .5em 1em; text-decoration: none; }
+.player-ui .ui-tabs .ui-tabs-nav li.ui-tabs-selected { margin-bottom: 0; padding-bottom: 1px; }
+.player-ui .ui-tabs .ui-tabs-nav li.ui-tabs-selected a, .player-ui .ui-tabs .ui-tabs-nav li.ui-state-disabled a, .player-ui .ui-tabs .ui-tabs-nav li.ui-state-processing a { cursor: text; }
+.player-ui .ui-tabs .ui-tabs-nav li a, .player-ui .ui-tabs.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-selected a { cursor: pointer; } /* first selector in group seems obsolete, but required to overcome bug in Opera applying cursor: text overall if defined elsewhere... */
+.player-ui .ui-tabs .ui-tabs-panel { display: block; border-width: 0; padding: 1em 1.4em; background: none; }
+.player-ui .ui-tabs .ui-tabs-hide { display: none !important; }
+/*
+ * jQuery UI Datepicker 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Datepicker#theming
+ */
+.player-ui .ui-datepicker { width: 17em; padding: .2em .2em 0; display: none; }
+.player-ui .ui-datepicker .ui-datepicker-header { position:relative; padding:.2em 0; }
+.player-ui .ui-datepicker .ui-datepicker-prev, .player-ui .ui-datepicker .ui-datepicker-next { position:absolute; top: 2px; width: 1.8em; height: 1.8em; }
+.player-ui .ui-datepicker .ui-datepicker-prev-hover, .player-ui .ui-datepicker .ui-datepicker-next-hover { top: 1px; }
+.player-ui .ui-datepicker .ui-datepicker-prev { left:2px; }
+.player-ui .ui-datepicker .ui-datepicker-next { right:2px; }
+.player-ui .ui-datepicker .ui-datepicker-prev-hover { left:1px; }
+.player-ui .ui-datepicker .ui-datepicker-next-hover { right:1px; }
+.player-ui .ui-datepicker .ui-datepicker-prev span, .player-ui .ui-datepicker .ui-datepicker-next span { display: block; position: absolute; left: 50%; margin-left: -8px; top: 50%; margin-top: -8px;  }
+.player-ui .ui-datepicker .ui-datepicker-title { margin: 0 2.3em; line-height: 1.8em; text-align: center; }
+.player-ui .ui-datepicker .ui-datepicker-title select { font-size:1em; margin:1px 0; }
+.player-ui .ui-datepicker select.ui-datepicker-month-year {width: 100%;}
+.player-ui .ui-datepicker select.ui-datepicker-month, 
+.player-ui .ui-datepicker select.ui-datepicker-year { width: 49%;}
+.player-ui .ui-datepicker table {width: 100%; font-size: .9em; border-collapse: collapse; margin:0 0 .4em; }
+.player-ui .ui-datepicker th { padding: .7em .3em; text-align: center; font-weight: bold; border: 0;  }
+.player-ui .ui-datepicker td { border: 0; padding: 1px; }
+.player-ui .ui-datepicker td span, .player-ui .ui-datepicker td a { display: block; padding: .2em; text-align: right; text-decoration: none; }
+.player-ui .ui-datepicker .ui-datepicker-buttonpane { background-image: none; margin: .7em 0 0 0; padding:0 .2em; border-left: 0; border-right: 0; border-bottom: 0; }
+.player-ui .ui-datepicker .ui-datepicker-buttonpane button { float: right; margin: .5em .2em .4em; cursor: pointer; padding: .2em .6em .3em .6em; width:auto; overflow:visible; }
+.player-ui .ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current { float:left; }
+
+/* with multiple calendars */
+.player-ui .ui-datepicker.ui-datepicker-multi { width:auto; }
+.player-ui .ui-datepicker-multi .ui-datepicker-group { float:left; }
+.player-ui .ui-datepicker-multi .ui-datepicker-group table { width:95%; margin:0 auto .4em; }
+.player-ui .ui-datepicker-multi-2 .ui-datepicker-group { width:50%; }
+.player-ui .ui-datepicker-multi-3 .ui-datepicker-group { width:33.3%; }
+.player-ui .ui-datepicker-multi-4 .ui-datepicker-group { width:25%; }
+.player-ui .ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header { border-left-width:0; }
+.player-ui .ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header { border-left-width:0; }
+.player-ui .ui-datepicker-multi .ui-datepicker-buttonpane { clear:left; }
+.player-ui .ui-datepicker-row-break { clear:both; width:100%; font-size:0em; }
+
+/* RTL support */
+.player-ui .ui-datepicker-rtl { direction: rtl; }
+.player-ui .ui-datepicker-rtl .ui-datepicker-prev { right: 2px; left: auto; }
+.player-ui .ui-datepicker-rtl .ui-datepicker-next { left: 2px; right: auto; }
+.player-ui .ui-datepicker-rtl .ui-datepicker-prev:hover { right: 1px; left: auto; }
+.player-ui .ui-datepicker-rtl .ui-datepicker-next:hover { left: 1px; right: auto; }
+.player-ui .ui-datepicker-rtl .ui-datepicker-buttonpane { clear:right; }
+.player-ui .ui-datepicker-rtl .ui-datepicker-buttonpane button { float: left; }
+.player-ui .ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current { float:right; }
+.player-ui .ui-datepicker-rtl .ui-datepicker-group { float:right; }
+.player-ui .ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header { border-right-width:0; border-left-width:1px; }
+.player-ui .ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header { border-right-width:0; border-left-width:1px; }
+
+/* IE6 IFRAME FIX (taken from datepicker 1.5.3 */
+.player-ui .ui-datepicker-cover {
+    display: none; /*sorry for IE5*/
+    display/**/: block; /*sorry for IE5*/
+    position: absolute; /*must have*/
+    z-index: -1; /*must have*/
+    filter: mask(); /*must have*/
+    top: -4px; /*must have*/
+    left: -4px; /*must have*/
+    width: 200px; /*must have*/
+    height: 200px; /*must have*/
+}/*
+ * jQuery UI Progressbar 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Progressbar#theming
+ */
+.player-ui .ui-progressbar { height:2em; text-align: left; overflow: hidden; }
+.player-ui .ui-progressbar .ui-progressbar-value {margin: -1px; height:100%; }
\ No newline at end of file
diff --git a/public/admin/js/osmplayer/jquery-ui/excite-bike/images/ui-bg_diagonals-small_25_c5ddfc_40x40.png b/public/admin/js/osmplayer/jquery-ui/excite-bike/images/ui-bg_diagonals-small_25_c5ddfc_40x40.png
new file mode 100644
index 0000000000000000000000000000000000000000..82524abb377b8f113b8b9895f8f49a183ec5811c
GIT binary patch
literal 157
zcmeAS@N?(olHy`uVBq!ia0vp^8X(NU1|)m_?Z^dEDV{ElArY-_FKy&JU?AWe_|u@`
z|3V`-HbaR?YEQR1YVF%~e`UqvUFR3)XM6qj@Qn3L-?eUuacuadnd`J)^058S;7Pi0
zSK`Qm-G&{G<;eog?~W<3-R*Vc*(Kd9QDV+!_~Knfv;ORzN~-L8A3gxu$KdJe=d#Wz
Gp$PzuQah^v

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/excite-bike/images/ui-bg_diagonals-thick_20_e69700_40x40.png b/public/admin/js/osmplayer/jquery-ui/excite-bike/images/ui-bg_diagonals-thick_20_e69700_40x40.png
new file mode 100644
index 0000000000000000000000000000000000000000..6aed97a24dedc2a09d965b2b1a123a4bf936c9e9
GIT binary patch
literal 257
zcmeAS@N?(olHy`uVBq!ia0vp^8X(NU1|)m_?Z^dECp=voLn2z=UU%ebHV|ofxIeOr
zx&Qv<t?C6g%aR>0KT$RGYWtL?X;i}{_3Yc8^ZASROmnY!sh&8i`}>@W;^%a{mu}Bz
z4>^30ZAC}3=!!08j#CyMH7d5L;WleHWqO$(^J+a%U=BIx$h4xRnPWv;GjD((yLNym
zyTFvffRBsww01v8T-~7De^{yDOJpvS`{M%)5Dks_Libg2Q}6#!vy6H+d&%}QUHOw{
zZ3?NGyk*MUuG+~m8qD`qYE!p<^qr)w{Z!xlB)fp_r;l1v{n0=_F?hQAxvX<aXaWF_
Cs%BIG

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/excite-bike/images/ui-bg_diagonals-thick_22_1484e6_40x40.png b/public/admin/js/osmplayer/jquery-ui/excite-bike/images/ui-bg_diagonals-thick_22_1484e6_40x40.png
new file mode 100644
index 0000000000000000000000000000000000000000..f11ca67ad51a62da5a97de25f4575d88a2ba75f4
GIT binary patch
literal 259
zcmeAS@N?(olHy`uVBq!ia0vp^8X(NU1|)m_?Z^dEr#xL8Ln2z=UU%d=WFXS=@cxc(
zOmc^IS9u=Xntjo?Rbuk=C7CA`@~183iRaFparkLf{lq8VDwa*JE3%Va{XOTR_%@x>
zsaxK2uV`!LSkckUx}uAj<CMjT8WrW#YMV8jb9$K{^J+a<zz}lKk!?jwGYhJ^j30sD
zr@Z~R!S}$-<B6gczt@;GZZ1q<5G@E`SoPq5d1wBleVhDiCa=-`>}wR2cGTR{J5q0-
xXVs}kKhz?F+4gxJI~DbK_L7jW)A4ze%$K%*`hK*`(;4V122WQ%mvv4FO#pC-ZqEP!

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/excite-bike/images/ui-bg_diagonals-thick_26_2293f7_40x40.png b/public/admin/js/osmplayer/jquery-ui/excite-bike/images/ui-bg_diagonals-thick_26_2293f7_40x40.png
new file mode 100644
index 0000000000000000000000000000000000000000..ce71868345562574ce31c6a9be2b4e47780e980f
GIT binary patch
literal 382
zcmV-^0fGLBP)<h;3K|Lk000e1NJLTq001Ze001Zm1^@s7`}v6b0003+Nkl<ZScUDE
zK@x)?3`IW-Yj5CLde)xJ8@TF@t`Z{_2oR^84u6>mFCR1p-Q)R++a9ql4gj$25k3v9
zi-S)C+aBT5z`D3&xx_eGsF>-~K$|5l1b|mil8gn3{FFekAj_1fK~omML99{LoAKJx
zUX!%#@i^R?N3Tg*7k9iY|F9YNc)p?xlH>xZT3)aMG0+M`dBF;FaX1R%mbL=1!}(B#
z&obL7Ian>vYm&4uKzwg3VC>Ke#&gyRc5-L|W1tlb!1<Fs3S);>FrH^tu#>~tDP6GH
zDdRA9Xa&2aQ+TG7k~Kwg8s%kgBCViQR=ms2rWZuA=3VX~y`Z}``qAJo7$cnw{*p0L
zumVY0^0JrfRuFK{MvG0-0@A9Lmo@lpW2EZujuw>DoFrNhX-<+}P)T!=Xh2ePlJtPI
c`nyT;20X~w>{nvFOaK4?07*qoM6N<$f*wbyA^-pY

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/excite-bike/images/ui-bg_flat_0_e69700_40x100.png b/public/admin/js/osmplayer/jquery-ui/excite-bike/images/ui-bg_flat_0_e69700_40x100.png
new file mode 100644
index 0000000000000000000000000000000000000000..f567c286dd5c809f92cb4649e42f67a9054e21d8
GIT binary patch
literal 181
zcmeAS@N?(olHy`uVBq!ia0vp^8bF-F!3HG1q!d*FsTxlg$B>N1x91EQ4=6AkFlhTP
z-@e&UrQl0~`yz$&yN{XI<=o?&!x7drH9<9kle(0&(0gVVd6xx6KzA^By85}Sb4q9e
E0DbQ{1poj5

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/excite-bike/images/ui-bg_flat_0_e6b900_40x100.png b/public/admin/js/osmplayer/jquery-ui/excite-bike/images/ui-bg_flat_0_e6b900_40x100.png
new file mode 100644
index 0000000000000000000000000000000000000000..29e996551cf85a3f0ffc3989ca30f336d5f10f88
GIT binary patch
literal 181
zcmeAS@N?(olHy`uVBq!ia0vp^8bF-F!3HG1q!d*FsTxlg$B>N1x91EQ4=6AkFleiH
zmYCJ6*tnS8T8Opsp6R}i$)C#}xNHzw!=ioAi@MaU+-&BwqaTH)0^Pyj>FVdQ&MBb@
E057IKN&o-=

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/excite-bike/images/ui-bg_highlight-soft_100_f9f9f9_1x100.png b/public/admin/js/osmplayer/jquery-ui/excite-bike/images/ui-bg_highlight-soft_100_f9f9f9_1x100.png
new file mode 100644
index 0000000000000000000000000000000000000000..9a46d19597e33b2e8363774397887d7c49906316
GIT binary patch
literal 88
zcmeAS@N?(olHy`uVBq!ia0vp^j6j^i!3HGVb)pi0l)R^lV~E7m<R71(pRZSAV`FPm
m^!xMw|9m4=7YPF&4u-8ec{i5(?)L>MW$<+Mb6Mw<&;$T%0vFl<

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/excite-bike/images/ui-bg_inset-hard_100_eeeeee_1x100.png b/public/admin/js/osmplayer/jquery-ui/excite-bike/images/ui-bg_inset-hard_100_eeeeee_1x100.png
new file mode 100644
index 0000000000000000000000000000000000000000..f811f30900ba306c6450847392ad67bade6d4431
GIT binary patch
literal 91
zcmeAS@N?(olHy`uVBq!ia0vp^j6j^i!3HGVb)pi0l#-{5V~E7m<cja_?$)cZv9Yy1
p^fE9qQrf&h@J7nTFMR4u4A!A6>u#>N?gmuN;OXk;vd$@?2>_oJ7^naM

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/excite-bike/images/ui-icons_0a82eb_256x240.png b/public/admin/js/osmplayer/jquery-ui/excite-bike/images/ui-icons_0a82eb_256x240.png
new file mode 100644
index 0000000000000000000000000000000000000000..f0491c4ba11e879bd95ac348cdb3783063ac7834
GIT binary patch
literal 5355
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
W{%j@Nkj?-5Wj;~YSF2TVi1{D)Cp3Qm

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/excite-bike/images/ui-icons_0b54d5_256x240.png b/public/admin/js/osmplayer/jquery-ui/excite-bike/images/ui-icons_0b54d5_256x240.png
new file mode 100644
index 0000000000000000000000000000000000000000..98705f93f451deabcfde17ef6ed66c4f4b4585f7
GIT binary patch
literal 4369
zcmd^?`8O2)_s3^phOrG}UnfiUEn8(9QW1?MNkxXVDEpFin2{xWrLx5kBC;k~Gm<qS
zlCjL7i8RK}U~J#s@6Y%1S9~7lb?$xLU+y{go_o*h`AV=spXY*!!T<mOmxZ~R9RL9Q
zdj+hrf&W^P#f9C!Zpp^V{w$}%_y3(^-{fTfw{Ucz9r_YL7=D6<&8F>PmYTG^FX}c%
zl<zAi(m>GE{DS1Q;~I7<vD)$Yj(fd>-6ze&TN@+F-xsI6sd%SwK#*O5K|pDRZqEy<
zJg0Nd8F@!OxqElm`~U#piM22@u@8B<<ecI*S<egUH7}csd8!)jLBD2s`p(8v&--KE
z71^q9MglFywkSt_5FCr2F%o&UR(5j7-O>moyKE%ct`B(jysxK+1m?G)UyIFs1t0}L
zemGR&?jGaM1YQblj?v&@0iXS#fi-VbR9zLEnHLP?xQ|=%Ihrc7^yPWR!tW$yH!zrw
z#I2}_!JnT^(qk)VgJr`NGdPtT^dmQIZc%=6nTAyJDXk+^3}wUOilJuwq>s=T_!9V)
zr1)DT6VQ2~rgd@!Jlrte3}}m~j}juCS`J4(d-5+e-3@EzzTJNCE2z)w(kJ90z*QE)
zBtnV@4mM>jTrZZ*$01SnGov0&=A-JrX5Ge%Pce1Vj}=5YQqBD^W@n4KmFxxpFK`uH
zP;(xKV+6VJ2|g+?_Lct7`uElL<&jzGS8Gfva2+=8A@#V+xsAj9|Dkg)vL5yhX@~B=
zN2KZSAUD%QH`x>H+@Ou(D1~Pyv#0nc&$!1kI?IO01yw3jD0@80qvc?T*Nr8?-%rC8
z@5$|WY?Hqp`ixmEkzeJTz_`_<!oE0dsO`po1=$i_1k<Um_}caMZcrpqA*x-}Rw(fX
z3Qyh8;-4^Fe)UICI@ayzmyV?48GbR;1*s>wsSRi1%Zivd`#+T{Aib6-rf$}M8sz6v
zb6ERbr-SniO2wbOv!M4)nb}6UVzoVZEh5kQWh_5x4rYy3<sHrHJLqL+DcLT5`t$L@
z5_J8#H;PWO1GW@oId1Y>c!871NeaM(_p=4(kbS6U#x<*k8Wg^KHs2ttCz<+pBxQ$Z
zQMv;kVm5_fF_vH`Mzrq$Y&6u?j6~f<juy`C^I0O`4mfXK0lrRY*VoeJX&k$9aL;Hl
zlp63sf~-1z_419)A8^j|LeQSmK&T8R7nA=Ki3^H;YaeL&hF6>tIV0Yg)Nw7JysIN_
z-_n*K_v1c&D}-1{NbBwS2h#m1y0a5RiEcYil+58$8IDh49bPnzE7R8In6P%V{2IZU
z7#clr=V4<zT-gP2u}DD>yyrRe@oXNqbqo^^LvlLE?%8XaI&N(Np90-psU}7kqmbWk
zZ;YBwJNnNs<m6GqjV2(cCX2e+#tSOgIGm~J&Djknhy!e`&p)NTq>$~d!mx9oMGyT(
znaBoj0d}gpQ^aRr?6nW)$4god*`@Uh2e+YpS@0(Mw{|z|6ko3NbTvDiCu3YO+)egL
z>uW(^ahKFj>iJ-JF!^KhKQyPTznJa;xyHYwxJgr16&Wid_9)-%*mEwo{B_|M9t@S1
zf@T@q?b2Qgl!~_(Roe;fdK)y|XG0;ls;ZbT)w-aOVttk#daQcY7$cpY496H*`m@+L
zeP#$&yRbBjFWv}B)|5-1v=(66M_;V1SWv6MHnO}}1=vby&9l+gaP?|pXwp0AFDe#L
z&MRJ^*qX6wgxhA_`*o=LGZ>G_NTX%AKHPz4bO^R72ZYK}ale3lffDgM8H!Wrw{B7A
z{?c_|dh2J*y<H{`M3l!HEtOc{;H{lJx}(C|*lvPQ+RAcV`>8b04c37OmqUw;#;G<*
z@nz@dV`;7&^$)e!B}cd5tl<nF(??uM#|`*5pIKe!DEUl5-&9M=s_3Yn@-P(czyPQ~
zTU3I3bk%z<*w;9V(oQvt^2H`kBAW;=2oA<L1<qVIK(Z{Hk@5&E&_2mS+|}+?g@FBu
zK+e=OWg<)e?RO;llNw00>0{g(Q>5_7H^@bEJi7;fQ4B$NGZerH#Ae1#8WDTH`iB&)
zC6Et3BYY#mcJxh&)b2C^{aLq~psFN)Q1SucCaBaBUr%5PYX{~-q{KGEh)*;n;?75k
z=hq%i^I}rd;z-#YyI`8-OfMpWz5kgJE3<X7ptj0dmPk5UrEf%nVD%<Giiw4wVh!K0
zFjy-VAnpOFJIDm=jqqahP0Wam<9qv4UMIazx8J<YJz>I!3ean6=UZi!BxG7i(YBk?
z02HM7wS0)Wni{dWbQMRtd-A)_Az!t>F;IwWf~!*)-Az4}yryNkz&9)w>ElA80Oc`6
zHo#9H!Y3*Qx9n@Jn)!w6G^hb;e_n8zpIyXCN`JFkPc)^Q?2MsLNFhMgrcZI-<#1ne
zjH;KFf?4eAT9<t<iUSC5BsF-<$q+H@@j%Yk>mQZ}ZfHLGA#d%s;SZK4p0FwZT2S^{
zQ2BG1xJsbK6?yrHTjJi|5C0u=!|r!?*4FL%y%3q#(d+e>b_2I9!*iI!30}42Ia0bq
zUf`Z?LGSEvtz8s``Tg5o_CP(FbR0X$FlE0yCnB7su<mcL>DPmI2=yOg^*2#cY9o`X
z;NY-3VBHZjnVcGS){GZ98{e+l<X|f4%S*+x526SE1mJ%6M<Nt*!}czEQf{?H1U0br
z^Y7cXNxH@=Ve^#j3H@BPU>q~O$u6pEcgd0CrnIsWffN1MbCZDH<7c^hv+Z0Ucf0{w
zSzi^qKuUHD9Dgp0EAGg@@$zr32dQx>N=ws`MESEsmzgT2&L;?MSTo&ky&!-JR3g~1
zPGTt515X)wr+Bx(G9lWd;@Y3^Vl}50Wb&6-Tiy;HPS0drF`rC}qYq22K4)G#AoD0X
zYw$E+Bz@Zr^50MAwu@$?%f9$r4WHH?*2|67&FXFhXBrVFGmg)6?h3^-1?t;UzH0*I
zNVf9wQLNLnG2@q>6CGm>&y|lC`iCFfYd}9i%+xkl^5oBJ?<;aneCfcHqJh7Yl5uLS
z9Fx-(kMdcNyZejXh22N{mCw_rX1O!cOE&3>e(ZH81PR95wQC37En4O{w;{3q9n1<A
zPC{;HRD3#A!@Lk)+k!~onQ0|-U%#uGd$&L?ZhNC&R)V(mb`NhUqrYysoMQ;Z)sq!y
zW_WwV!+jO*nGT8-Hx_JVmFK^=>t&;p)D%&Z%Nw$gSPa!nz8Slh7=ko2am)XARwOWw
zpsz0~K!s{(dM$NB=(A=kkp>T(*yU6<_dwIx>cH4+LWl282hXa6-EUq>R3t?G2623<
z*RwTN%-fgBmD{fu*ejNn)1@KG?Sg<bw3hQ~jCP9_dLp#J9Fi#nX3wGv<cLwQ;8x0`
zA<%pA%E0S;<5FJhw8e#?n&IA5g19Fv!v7YC%Gxqd<x1=+hht1t>*8z3hYtkQJQjB6
zQ|x>wA=o$=O)+nLmgTXW3<g>_6diA;b4EY{*i<HxX2Q~PA|R-tJ=V1~4KO3h7H~CG
ztNFL#J=a@4Q5K7Ogvj-+3N_IJUjc}x34}a7@bDE3!)Kj4s7ME<v)`yP${V~G_J@6l
zp{&i)CGxx1)X`lnwc}#g;g<(rA1#7Ez8@J}tuMD3bB{Wifbe~LWT0zYNjgb_qn|+G
z2TCDZw1rV|wPx@~-H8<4^MGxfR0aLq+_k+{JT<mckxWLsw*J%G%YH0>*R%6dO2EMg
z@6g?M3rpbnfB@hOdUeb9<OD{Zt&T^7p>6=~I?OIA3@BWAGmTwiQ{x5Cqq<8c10L!P
zd@Qk^BseTX%$Q7^s}5n%HB|)gKx}H$d8Sb$bBnq9-AglT2dGR2(+I;_fL|R4p$odJ
zllfb0NqI)7=^z~qAm1V{(PkpxXsQ#4*NH9yYZ`Vf@)?#ueGgtCmGGY|9U#v|hRdg-
zQ%0#cGIfXCd{Y)JB~qykO;KPvHu|5Ck&(Hn%DF~cct@}j+87xhs2ew;fLm5#2+mb|
z8{9e*YI(u|gt|{x1G+U=DA3y)9s2w7@cvQ($ZJIA)x$e~5_3L<r=v~@?aZ+642@!3
z&nTpp8p^rR@IEsq`uhzfD&i>KFV~ASci8W}jF&VeJoPDUy(BB>ExJpck;%;!`0AAo
zAcHgcnT8%OX&UW_n|%{2B|<6Wp2MMGvd5`T2KKv;ltt_~H+w00x6+SlAD`{K4!9zx
z*1?EpQ%Lwiik){3n{-+YNrT;fH_niD_Ng9|58@m8RsKFVF!6pk@qxa{BH-&8tsim0
zdAQ(GyC^9ane7_KW*#^vMIoeQdpJqmPp%%px3GIftbwESu#+vPyI*YTuJ6+4`z{s?
zpkv~0x4c_PFH`-tqafw5)>4AuQ78SkZ!$8}INLK;Egr;2tS18hEO5=t;QDmZ-qu?I
zG+=DN`nR72Xto{{bJp||`k}-2G;5#xg8E~xgz22)^_Z;=K|4@(E&5J)SY2of=olcw
z5)@L)_Ntcm!*5nEy0M9v0`S33;pO4T<mv%0Rx6?c2H~TA%zOO^T2$@D<Cut3{ae}|
zAT@Uzc>N;>4(Z+<j5j2DQ*r;U|6a;YfP1jST$I3mSn3aNn!?<=B-XkzG?hQH;@bu%
zmFYDDgbC%Wt{6LBrs%88L}deF9pse}dmIp4lmp@Tir9q)JKESa=h>19p_0>u#e-vE
zXCU(6gAvu~I7Cw(xd%0e59MNLw^U37ZDbsBrj%eDCexw8a3G`nTcXVNL6{B7Hj@i&
zbVB{;ApEtHk76q08DJ48dSxd$C(;$K6=FpU<~l9pVoT9arW^Vu{%Bcn4`eIpkOVC|
z$)AKYG_`ypM{0@BUb3^9lqi_c?ONH|4UJMJWDowMVjacycX7}9g={O7swOB+{;+?;
zjBo!9?+nd)ie#x5IbFW-zBOo0c4q@9wGVt5;pNt`=-~Zgcw#*`m($6ibxtZ`H=e=}
zF#GZ~5$%AUn};8U#tRem0J(JTR}<qii}wxmUzVwVIg2$uE2;GN{hhT&GE1i;_fi(_
z9KKXP)ds1Q)XnUhr?uXO-HbKE%5f%+-C>d4vR(dgK2ML~lZsPhayJ2h1%sD4FVst|
zKF)+@`iNzLRjg4=K8@**0=5cE>%?FDc({I^+g9USk<8$&^qD~@%W0i4b|yMG*p4`N
zh}I!ltTRI8Ex$+@V{02Br%xq#O?UlhO{r8WsaZnZCZq0MK9%AXU%MDLT;3=0A9(BV
z9VxxxJd7jo$hw3q;3o?yBLmA=azBUrd9>-<_ANs0n3?-Ic*6&ytb@H~?0E(*d>T5n
z-HiH2jsDf6uWhID%#n>SzOqrFCPDfUcu5QPd?<(=w6pv1BE#nsxS{n!UnC9qAha1<
z;3cpZ9A-e$+Y)%b;w@!!YRA9p%Kf9IHGGg^{+p`mh;q8i7}&e@V3EQaMsItEMS&=X
plT@$;k0WcB_jb;cn%_Idz4HO$QU*abf4}+wi?e96N>fbq{{b_%K|BBe

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/excite-bike/images/ui-icons_5fa5e3_256x240.png b/public/admin/js/osmplayer/jquery-ui/excite-bike/images/ui-icons_5fa5e3_256x240.png
new file mode 100644
index 0000000000000000000000000000000000000000..3f67ecaf338c1b1e23f65af47710bc563739a75e
GIT binary patch
literal 5355
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
W`?Hm7LpJ~Km-$3pU#(WfA?AOIXjSU~

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/excite-bike/images/ui-icons_fcdd4a_256x240.png b/public/admin/js/osmplayer/jquery-ui/excite-bike/images/ui-icons_fcdd4a_256x240.png
new file mode 100644
index 0000000000000000000000000000000000000000..4a8f8126bc5ae0e7a4242a3dc53b3983c21e129b
GIT binary patch
literal 5355
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
b-WB~>N+7Iw1G4sizs&pE##%KRPO<+3xHf7;

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/excite-bike/images/ui-icons_ffffff_256x240.png b/public/admin/js/osmplayer/jquery-ui/excite-bike/images/ui-icons_ffffff_256x240.png
new file mode 100644
index 0000000000000000000000000000000000000000..42f8f992c727ddaa617da224a522e463df690387
GIT binary patch
literal 4369
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

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/excite-bike/jquery-ui-1.8.18.custom.css b/public/admin/js/osmplayer/jquery-ui/excite-bike/jquery-ui-1.8.18.custom.css
new file mode 100644
index 00000000000..0ce4d8aba8b
--- /dev/null
+++ b/public/admin/js/osmplayer/jquery-ui/excite-bike/jquery-ui-1.8.18.custom.css
@@ -0,0 +1,565 @@
+/*
+ * jQuery UI CSS Framework 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Theming/API
+ */
+
+/* Layout helpers
+----------------------------------*/
+.player-ui .ui-helper-hidden { display: none; }
+.player-ui .ui-helper-hidden-accessible { position: absolute !important; clip: rect(1px 1px 1px 1px); clip: rect(1px,1px,1px,1px); }
+.player-ui .ui-helper-reset { margin: 0; padding: 0; border: 0; outline: 0; line-height: 1.3; text-decoration: none; font-size: 100%; list-style: none; }
+.player-ui .ui-helper-clearfix:before, .player-ui .ui-helper-clearfix:after { content: ""; display: table; }
+.player-ui .ui-helper-clearfix:after { clear: both; }
+.player-ui .ui-helper-clearfix { zoom: 1; }
+.player-ui .ui-helper-zfix { width: 100%; height: 100%; top: 0; left: 0; position: absolute; opacity: 0; filter:Alpha(Opacity=0); }
+
+
+/* Interaction Cues
+----------------------------------*/
+.player-ui .ui-state-disabled { cursor: default !important; }
+
+
+/* Icons
+----------------------------------*/
+
+/* states and images */
+.player-ui .ui-icon { display: block; text-indent: -99999px; overflow: hidden; background-repeat: no-repeat; }
+
+
+/* Misc visuals
+----------------------------------*/
+
+/* Overlays */
+.player-ui .ui-widget-overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }
+
+
+/*
+ * jQuery UI CSS Framework 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Theming/API
+ *
+ * To view and modify this theme, visit http://jqueryui.com/themeroller/?ffDefault=segoe%20ui,%20Arial,%20sans-serif&fwDefault=bold&fsDefault=1.1em&cornerRadius=3px&bgColorHeader=f9f9f9&bgTextureHeader=03_highlight_soft.png&bgImgOpacityHeader=100&borderColorHeader=cccccc&fcHeader=e69700&iconColorHeader=5fa5e3&bgColorContent=eeeeee&bgTextureContent=06_inset_hard.png&bgImgOpacityContent=100&borderColorContent=aaaaaa&fcContent=222222&iconColorContent=0a82eb&bgColorDefault=1484e6&bgTextureDefault=08_diagonals_thick.png&bgImgOpacityDefault=22&borderColorDefault=ffffff&fcDefault=ffffff&iconColorDefault=fcdd4a&bgColorHover=2293f7&bgTextureHover=08_diagonals_thick.png&bgImgOpacityHover=26&borderColorHover=2293f7&fcHover=ffffff&iconColorHover=ffffff&bgColorActive=e69700&bgTextureActive=08_diagonals_thick.png&bgImgOpacityActive=20&borderColorActive=e69700&fcActive=ffffff&iconColorActive=ffffff&bgColorHighlight=c5ddfc&bgTextureHighlight=07_diagonals_small.png&bgImgOpacityHighlight=25&borderColorHighlight=ffffff&fcHighlight=333333&iconColorHighlight=0b54d5&bgColorError=e69700&bgTextureError=08_diagonals_thick.png&bgImgOpacityError=20&borderColorError=e69700&fcError=ffffff&iconColorError=ffffff&bgColorOverlay=e6b900&bgTextureOverlay=01_flat.png&bgImgOpacityOverlay=0&opacityOverlay=30&bgColorShadow=e69700&bgTextureShadow=01_flat.png&bgImgOpacityShadow=0&opacityShadow=20&thicknessShadow=0px&offsetTopShadow=6px&offsetLeftShadow=6px&cornerRadiusShadow=3px
+ */
+
+
+/* Component containers
+----------------------------------*/
+.player-ui .ui-widget { font-family: segoe ui, Arial, sans-serif; font-size: 1.1em; }
+.player-ui .ui-widget .ui-widget { font-size: 1em; }
+.player-ui .ui-widget input, .player-ui .ui-widget select, .player-ui .ui-widget textarea, .player-ui .ui-widget button { font-family: segoe ui, Arial, sans-serif; font-size: 1em; }
+.player-ui .ui-widget-content { border: 1px solid #aaaaaa; background: #eeeeee url(images/ui-bg_inset-hard_100_eeeeee_1x100.png) 50% bottom repeat-x; color: #222222; }
+.player-ui .ui-widget-content a { color: #222222; }
+.player-ui .ui-widget-header { border: 1px solid #cccccc; background: #f9f9f9 url(images/ui-bg_highlight-soft_100_f9f9f9_1x100.png) 50% 50% repeat-x; color: #e69700; font-weight: bold; }
+.player-ui .ui-widget-header a { color: #e69700; }
+
+/* Interaction states
+----------------------------------*/
+.player-ui .ui-state-default, .player-ui .ui-widget-content .ui-state-default, .player-ui .ui-widget-header .ui-state-default { border: 1px solid #ffffff; background: #1484e6 url(images/ui-bg_diagonals-thick_22_1484e6_40x40.png) 50% 50% repeat; font-weight: bold; color: #ffffff; }
+.player-ui .ui-state-default a, .player-ui .ui-state-default a:link, .player-ui .ui-state-default a:visited { color: #ffffff; text-decoration: none; }
+.player-ui .ui-state-hover, .player-ui .ui-widget-content .ui-state-hover, .player-ui .ui-widget-header .ui-state-hover, .player-ui .ui-state-focus, .player-ui .ui-widget-content .ui-state-focus, .player-ui .ui-widget-header .ui-state-focus { border: 1px solid #2293f7; background: #2293f7 url(images/ui-bg_diagonals-thick_26_2293f7_40x40.png) 50% 50% repeat; font-weight: bold; color: #ffffff; }
+.player-ui .ui-state-hover a, .player-ui .ui-state-hover a:hover { color: #ffffff; text-decoration: none; }
+.player-ui .ui-state-active, .player-ui .ui-widget-content .ui-state-active, .player-ui .ui-widget-header .ui-state-active { border: 1px solid #e69700; background: #e69700 url(images/ui-bg_diagonals-thick_20_e69700_40x40.png) 50% 50% repeat; font-weight: bold; color: #ffffff; }
+.player-ui .ui-state-active a, .player-ui .ui-state-active a:link, .player-ui .ui-state-active a:visited { color: #ffffff; text-decoration: none; }
+.player-ui .ui-widget :active { outline: none; }
+
+/* Interaction Cues
+----------------------------------*/
+.player-ui .ui-state-highlight, .player-ui .ui-widget-content .ui-state-highlight, .player-ui .ui-widget-header .ui-state-highlight  {border: 1px solid #ffffff; background: #c5ddfc url(images/ui-bg_diagonals-small_25_c5ddfc_40x40.png) 50% 50% repeat; color: #333333; }
+.player-ui .ui-state-highlight a, .player-ui .ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a { color: #333333; }
+.player-ui .ui-state-error, .player-ui .ui-widget-content .ui-state-error, .player-ui .ui-widget-header .ui-state-error {border: 1px solid #e69700; background: #e69700 url(images/ui-bg_diagonals-thick_20_e69700_40x40.png) 50% 50% repeat; color: #ffffff; }
+.player-ui .ui-state-error a, .player-ui .ui-widget-content .ui-state-error a, .player-ui .ui-widget-header .ui-state-error a { color: #ffffff; }
+.player-ui .ui-state-error-text, .player-ui .ui-widget-content .ui-state-error-text, .player-ui .ui-widget-header .ui-state-error-text { color: #ffffff; }
+.player-ui .ui-priority-primary, .player-ui .ui-widget-content .ui-priority-primary, .player-ui .ui-widget-header .ui-priority-primary { font-weight: bold; }
+.player-ui .ui-priority-secondary, .player-ui .ui-widget-content .ui-priority-secondary,  .ui-widget-header .ui-priority-secondary { opacity: .7; filter:Alpha(Opacity=70); font-weight: normal; }
+.player-ui .ui-state-disabled, .player-ui .ui-widget-content .ui-state-disabled, .player-ui .ui-widget-header .ui-state-disabled { opacity: .35; filter:Alpha(Opacity=35); background-image: none; }
+
+/* Icons
+----------------------------------*/
+
+/* states and images */
+.player-ui .ui-icon { width: 16px; height: 16px; background-image: url(images/ui-icons_0a82eb_256x240.png); }
+.player-ui .ui-widget-content .ui-icon {background-image: url(images/ui-icons_0a82eb_256x240.png); }
+.player-ui .ui-widget-header .ui-icon {background-image: url(images/ui-icons_5fa5e3_256x240.png); }
+.player-ui .ui-state-default .ui-icon { background-image: url(images/ui-icons_fcdd4a_256x240.png); }
+.player-ui .ui-state-hover .ui-icon, .player-ui .ui-state-focus .ui-icon {background-image: url(images/ui-icons_ffffff_256x240.png); }
+.player-ui .ui-state-active .ui-icon {background-image: url(images/ui-icons_ffffff_256x240.png); }
+.player-ui .ui-state-highlight .ui-icon {background-image: url(images/ui-icons_0b54d5_256x240.png); }
+.player-ui .ui-state-error .ui-icon, .player-ui .ui-state-error-text .ui-icon {background-image: url(images/ui-icons_ffffff_256x240.png); }
+
+/* positioning */
+.player-ui .ui-icon-carat-1-n { background-position: 0 0; }
+.player-ui .ui-icon-carat-1-ne { background-position: -16px 0; }
+.player-ui .ui-icon-carat-1-e { background-position: -32px 0; }
+.player-ui .ui-icon-carat-1-se { background-position: -48px 0; }
+.player-ui .ui-icon-carat-1-s { background-position: -64px 0; }
+.player-ui .ui-icon-carat-1-sw { background-position: -80px 0; }
+.player-ui .ui-icon-carat-1-w { background-position: -96px 0; }
+.player-ui .ui-icon-carat-1-nw { background-position: -112px 0; }
+.player-ui .ui-icon-carat-2-n-s { background-position: -128px 0; }
+.player-ui .ui-icon-carat-2-e-w { background-position: -144px 0; }
+.player-ui .ui-icon-triangle-1-n { background-position: 0 -16px; }
+.player-ui .ui-icon-triangle-1-ne { background-position: -16px -16px; }
+.player-ui .ui-icon-triangle-1-e { background-position: -32px -16px; }
+.player-ui .ui-icon-triangle-1-se { background-position: -48px -16px; }
+.player-ui .ui-icon-triangle-1-s { background-position: -64px -16px; }
+.player-ui .ui-icon-triangle-1-sw { background-position: -80px -16px; }
+.player-ui .ui-icon-triangle-1-w { background-position: -96px -16px; }
+.player-ui .ui-icon-triangle-1-nw { background-position: -112px -16px; }
+.player-ui .ui-icon-triangle-2-n-s { background-position: -128px -16px; }
+.player-ui .ui-icon-triangle-2-e-w { background-position: -144px -16px; }
+.player-ui .ui-icon-arrow-1-n { background-position: 0 -32px; }
+.player-ui .ui-icon-arrow-1-ne { background-position: -16px -32px; }
+.player-ui .ui-icon-arrow-1-e { background-position: -32px -32px; }
+.player-ui .ui-icon-arrow-1-se { background-position: -48px -32px; }
+.player-ui .ui-icon-arrow-1-s { background-position: -64px -32px; }
+.player-ui .ui-icon-arrow-1-sw { background-position: -80px -32px; }
+.player-ui .ui-icon-arrow-1-w { background-position: -96px -32px; }
+.player-ui .ui-icon-arrow-1-nw { background-position: -112px -32px; }
+.player-ui .ui-icon-arrow-2-n-s { background-position: -128px -32px; }
+.player-ui .ui-icon-arrow-2-ne-sw { background-position: -144px -32px; }
+.player-ui .ui-icon-arrow-2-e-w { background-position: -160px -32px; }
+.player-ui .ui-icon-arrow-2-se-nw { background-position: -176px -32px; }
+.player-ui .ui-icon-arrowstop-1-n { background-position: -192px -32px; }
+.player-ui .ui-icon-arrowstop-1-e { background-position: -208px -32px; }
+.player-ui .ui-icon-arrowstop-1-s { background-position: -224px -32px; }
+.player-ui .ui-icon-arrowstop-1-w { background-position: -240px -32px; }
+.player-ui .ui-icon-arrowthick-1-n { background-position: 0 -48px; }
+.player-ui .ui-icon-arrowthick-1-ne { background-position: -16px -48px; }
+.player-ui .ui-icon-arrowthick-1-e { background-position: -32px -48px; }
+.player-ui .ui-icon-arrowthick-1-se { background-position: -48px -48px; }
+.player-ui .ui-icon-arrowthick-1-s { background-position: -64px -48px; }
+.player-ui .ui-icon-arrowthick-1-sw { background-position: -80px -48px; }
+.player-ui .ui-icon-arrowthick-1-w { background-position: -96px -48px; }
+.player-ui .ui-icon-arrowthick-1-nw { background-position: -112px -48px; }
+.player-ui .ui-icon-arrowthick-2-n-s { background-position: -128px -48px; }
+.player-ui .ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px; }
+.player-ui .ui-icon-arrowthick-2-e-w { background-position: -160px -48px; }
+.player-ui .ui-icon-arrowthick-2-se-nw { background-position: -176px -48px; }
+.player-ui .ui-icon-arrowthickstop-1-n { background-position: -192px -48px; }
+.player-ui .ui-icon-arrowthickstop-1-e { background-position: -208px -48px; }
+.player-ui .ui-icon-arrowthickstop-1-s { background-position: -224px -48px; }
+.player-ui .ui-icon-arrowthickstop-1-w { background-position: -240px -48px; }
+.player-ui .ui-icon-arrowreturnthick-1-w { background-position: 0 -64px; }
+.player-ui .ui-icon-arrowreturnthick-1-n { background-position: -16px -64px; }
+.player-ui .ui-icon-arrowreturnthick-1-e { background-position: -32px -64px; }
+.player-ui .ui-icon-arrowreturnthick-1-s { background-position: -48px -64px; }
+.player-ui .ui-icon-arrowreturn-1-w { background-position: -64px -64px; }
+.player-ui .ui-icon-arrowreturn-1-n { background-position: -80px -64px; }
+.player-ui .ui-icon-arrowreturn-1-e { background-position: -96px -64px; }
+.player-ui .ui-icon-arrowreturn-1-s { background-position: -112px -64px; }
+.player-ui .ui-icon-arrowrefresh-1-w { background-position: -128px -64px; }
+.player-ui .ui-icon-arrowrefresh-1-n { background-position: -144px -64px; }
+.player-ui .ui-icon-arrowrefresh-1-e { background-position: -160px -64px; }
+.player-ui .ui-icon-arrowrefresh-1-s { background-position: -176px -64px; }
+.player-ui .ui-icon-arrow-4 { background-position: 0 -80px; }
+.player-ui .ui-icon-arrow-4-diag { background-position: -16px -80px; }
+.player-ui .ui-icon-extlink { background-position: -32px -80px; }
+.player-ui .ui-icon-newwin { background-position: -48px -80px; }
+.player-ui .ui-icon-refresh { background-position: -64px -80px; }
+.player-ui .ui-icon-shuffle { background-position: -80px -80px; }
+.player-ui .ui-icon-transfer-e-w { background-position: -96px -80px; }
+.player-ui .ui-icon-transferthick-e-w { background-position: -112px -80px; }
+.player-ui .ui-icon-folder-collapsed { background-position: 0 -96px; }
+.player-ui .ui-icon-folder-open { background-position: -16px -96px; }
+.player-ui .ui-icon-document { background-position: -32px -96px; }
+.player-ui .ui-icon-document-b { background-position: -48px -96px; }
+.player-ui .ui-icon-note { background-position: -64px -96px; }
+.player-ui .ui-icon-mail-closed { background-position: -80px -96px; }
+.player-ui .ui-icon-mail-open { background-position: -96px -96px; }
+.player-ui .ui-icon-suitcase { background-position: -112px -96px; }
+.player-ui .ui-icon-comment { background-position: -128px -96px; }
+.player-ui .ui-icon-person { background-position: -144px -96px; }
+.player-ui .ui-icon-print { background-position: -160px -96px; }
+.player-ui .ui-icon-trash { background-position: -176px -96px; }
+.player-ui .ui-icon-locked { background-position: -192px -96px; }
+.player-ui .ui-icon-unlocked { background-position: -208px -96px; }
+.player-ui .ui-icon-bookmark { background-position: -224px -96px; }
+.player-ui .ui-icon-tag { background-position: -240px -96px; }
+.player-ui .ui-icon-home { background-position: 0 -112px; }
+.player-ui .ui-icon-flag { background-position: -16px -112px; }
+.player-ui .ui-icon-calendar { background-position: -32px -112px; }
+.player-ui .ui-icon-cart { background-position: -48px -112px; }
+.player-ui .ui-icon-pencil { background-position: -64px -112px; }
+.player-ui .ui-icon-clock { background-position: -80px -112px; }
+.player-ui .ui-icon-disk { background-position: -96px -112px; }
+.player-ui .ui-icon-calculator { background-position: -112px -112px; }
+.player-ui .ui-icon-zoomin { background-position: -128px -112px; }
+.player-ui .ui-icon-zoomout { background-position: -144px -112px; }
+.player-ui .ui-icon-search { background-position: -160px -112px; }
+.player-ui .ui-icon-wrench { background-position: -176px -112px; }
+.player-ui .ui-icon-gear { background-position: -192px -112px; }
+.player-ui .ui-icon-heart { background-position: -208px -112px; }
+.player-ui .ui-icon-star { background-position: -224px -112px; }
+.player-ui .ui-icon-link { background-position: -240px -112px; }
+.player-ui .ui-icon-cancel { background-position: 0 -128px; }
+.player-ui .ui-icon-plus { background-position: -16px -128px; }
+.player-ui .ui-icon-plusthick { background-position: -32px -128px; }
+.player-ui .ui-icon-minus { background-position: -48px -128px; }
+.player-ui .ui-icon-minusthick { background-position: -64px -128px; }
+.player-ui .ui-icon-close { background-position: -80px -128px; }
+.player-ui .ui-icon-closethick { background-position: -96px -128px; }
+.player-ui .ui-icon-key { background-position: -112px -128px; }
+.player-ui .ui-icon-lightbulb { background-position: -128px -128px; }
+.player-ui .ui-icon-scissors { background-position: -144px -128px; }
+.player-ui .ui-icon-clipboard { background-position: -160px -128px; }
+.player-ui .ui-icon-copy { background-position: -176px -128px; }
+.player-ui .ui-icon-contact { background-position: -192px -128px; }
+.player-ui .ui-icon-image { background-position: -208px -128px; }
+.player-ui .ui-icon-video { background-position: -224px -128px; }
+.player-ui .ui-icon-script { background-position: -240px -128px; }
+.player-ui .ui-icon-alert { background-position: 0 -144px; }
+.player-ui .ui-icon-info { background-position: -16px -144px; }
+.player-ui .ui-icon-notice { background-position: -32px -144px; }
+.player-ui .ui-icon-help { background-position: -48px -144px; }
+.player-ui .ui-icon-check { background-position: -64px -144px; }
+.player-ui .ui-icon-bullet { background-position: -80px -144px; }
+.player-ui .ui-icon-radio-off { background-position: -96px -144px; }
+.player-ui .ui-icon-radio-on { background-position: -112px -144px; }
+.player-ui .ui-icon-pin-w { background-position: -128px -144px; }
+.player-ui .ui-icon-pin-s { background-position: -144px -144px; }
+.player-ui .ui-icon-play { background-position: 0 -160px; }
+.player-ui .ui-icon-pause { background-position: -16px -160px; }
+.player-ui .ui-icon-seek-next { background-position: -32px -160px; }
+.player-ui .ui-icon-seek-prev { background-position: -48px -160px; }
+.player-ui .ui-icon-seek-end { background-position: -64px -160px; }
+.player-ui .ui-icon-seek-start { background-position: -80px -160px; }
+/* ui-icon-seek-first is deprecated, use ui-icon-seek-start instead */
+.player-ui .ui-icon-seek-first { background-position: -80px -160px; }
+.player-ui .ui-icon-stop { background-position: -96px -160px; }
+.player-ui .ui-icon-eject { background-position: -112px -160px; }
+.player-ui .ui-icon-volume-off { background-position: -128px -160px; }
+.player-ui .ui-icon-volume-on { background-position: -144px -160px; }
+.player-ui .ui-icon-power { background-position: 0 -176px; }
+.player-ui .ui-icon-signal-diag { background-position: -16px -176px; }
+.player-ui .ui-icon-signal { background-position: -32px -176px; }
+.player-ui .ui-icon-battery-0 { background-position: -48px -176px; }
+.player-ui .ui-icon-battery-1 { background-position: -64px -176px; }
+.player-ui .ui-icon-battery-2 { background-position: -80px -176px; }
+.player-ui .ui-icon-battery-3 { background-position: -96px -176px; }
+.player-ui .ui-icon-circle-plus { background-position: 0 -192px; }
+.player-ui .ui-icon-circle-minus { background-position: -16px -192px; }
+.player-ui .ui-icon-circle-close { background-position: -32px -192px; }
+.player-ui .ui-icon-circle-triangle-e { background-position: -48px -192px; }
+.player-ui .ui-icon-circle-triangle-s { background-position: -64px -192px; }
+.player-ui .ui-icon-circle-triangle-w { background-position: -80px -192px; }
+.player-ui .ui-icon-circle-triangle-n { background-position: -96px -192px; }
+.player-ui .ui-icon-circle-arrow-e { background-position: -112px -192px; }
+.player-ui .ui-icon-circle-arrow-s { background-position: -128px -192px; }
+.player-ui .ui-icon-circle-arrow-w { background-position: -144px -192px; }
+.player-ui .ui-icon-circle-arrow-n { background-position: -160px -192px; }
+.player-ui .ui-icon-circle-zoomin { background-position: -176px -192px; }
+.player-ui .ui-icon-circle-zoomout { background-position: -192px -192px; }
+.player-ui .ui-icon-circle-check { background-position: -208px -192px; }
+.player-ui .ui-icon-circlesmall-plus { background-position: 0 -208px; }
+.player-ui .ui-icon-circlesmall-minus { background-position: -16px -208px; }
+.player-ui .ui-icon-circlesmall-close { background-position: -32px -208px; }
+.player-ui .ui-icon-squaresmall-plus { background-position: -48px -208px; }
+.player-ui .ui-icon-squaresmall-minus { background-position: -64px -208px; }
+.player-ui .ui-icon-squaresmall-close { background-position: -80px -208px; }
+.player-ui .ui-icon-grip-dotted-vertical { background-position: 0 -224px; }
+.player-ui .ui-icon-grip-dotted-horizontal { background-position: -16px -224px; }
+.player-ui .ui-icon-grip-solid-vertical { background-position: -32px -224px; }
+.player-ui .ui-icon-grip-solid-horizontal { background-position: -48px -224px; }
+.player-ui .ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; }
+.player-ui .ui-icon-grip-diagonal-se { background-position: -80px -224px; }
+
+
+/* Misc visuals
+----------------------------------*/
+
+/* Corner radius */
+.player-ui .ui-corner-all, .player-ui .ui-corner-top, .player-ui .ui-corner-left, .player-ui .ui-corner-tl { -moz-border-radius-topleft: 3px; -webkit-border-top-left-radius: 3px; -khtml-border-top-left-radius: 3px; border-top-left-radius: 3px; }
+.player-ui .ui-corner-all, .player-ui .ui-corner-top, .player-ui .ui-corner-right, .player-ui .ui-corner-tr { -moz-border-radius-topright: 3px; -webkit-border-top-right-radius: 3px; -khtml-border-top-right-radius: 3px; border-top-right-radius: 3px; }
+.player-ui .ui-corner-all, .player-ui .ui-corner-bottom, .player-ui .ui-corner-left, .player-ui .ui-corner-bl { -moz-border-radius-bottomleft: 3px; -webkit-border-bottom-left-radius: 3px; -khtml-border-bottom-left-radius: 3px; border-bottom-left-radius: 3px; }
+.player-ui .ui-corner-all, .player-ui .ui-corner-bottom, .player-ui .ui-corner-right, .player-ui .ui-corner-br { -moz-border-radius-bottomright: 3px; -webkit-border-bottom-right-radius: 3px; -khtml-border-bottom-right-radius: 3px; border-bottom-right-radius: 3px; }
+
+/* Overlays */
+.player-ui .ui-widget-overlay { background: #e6b900 url(images/ui-bg_flat_0_e6b900_40x100.png) 50% 50% repeat-x; opacity: .30;filter:Alpha(Opacity=30); }
+.player-ui .ui-widget-shadow { margin: 6px 0 0 6px; padding: 0px; background: #e69700 url(images/ui-bg_flat_0_e69700_40x100.png) 50% 50% repeat-x; opacity: .20;filter:Alpha(Opacity=20); -moz-border-radius: 3px; -khtml-border-radius: 3px; -webkit-border-radius: 3px; border-radius: 3px; }/*
+ * jQuery UI Resizable 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Resizable#theming
+ */
+.player-ui .ui-resizable { position: relative;}
+.player-ui .ui-resizable-handle { position: absolute;font-size: 0.1px;z-index: 99999; display: block; }
+.player-ui .ui-resizable-disabled .ui-resizable-handle, .player-ui .ui-resizable-autohide .ui-resizable-handle { display: none; }
+.player-ui .ui-resizable-n { cursor: n-resize; height: 7px; width: 100%; top: -5px; left: 0; }
+.player-ui .ui-resizable-s { cursor: s-resize; height: 7px; width: 100%; bottom: -5px; left: 0; }
+.player-ui .ui-resizable-e { cursor: e-resize; width: 7px; right: -5px; top: 0; height: 100%; }
+.player-ui .ui-resizable-w { cursor: w-resize; width: 7px; left: -5px; top: 0; height: 100%; }
+.player-ui .ui-resizable-se { cursor: se-resize; width: 12px; height: 12px; right: 1px; bottom: 1px; }
+.player-ui .ui-resizable-sw { cursor: sw-resize; width: 9px; height: 9px; left: -5px; bottom: -5px; }
+.player-ui .ui-resizable-nw { cursor: nw-resize; width: 9px; height: 9px; left: -5px; top: -5px; }
+.player-ui .ui-resizable-ne { cursor: ne-resize; width: 9px; height: 9px; right: -5px; top: -5px;}/*
+ * jQuery UI Selectable 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Selectable#theming
+ */
+.player-ui .ui-selectable-helper { position: absolute; z-index: 100; border:1px dotted black; }
+/*
+ * jQuery UI Accordion 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Accordion#theming
+ */
+/* IE/Win - Fix animation bug - #4615 */
+.player-ui .ui-accordion { width: 100%; }
+.player-ui .ui-accordion .ui-accordion-header { cursor: pointer; position: relative; margin-top: 1px; zoom: 1; }
+.player-ui .ui-accordion .ui-accordion-li-fix { display: inline; }
+.player-ui .ui-accordion .ui-accordion-header-active { border-bottom: 0 !important; }
+.player-ui .ui-accordion .ui-accordion-header a { display: block; font-size: 1em; padding: .5em .5em .5em .7em; }
+.player-ui .ui-accordion-icons .ui-accordion-header a { padding-left: 2.2em; }
+.player-ui .ui-accordion .ui-accordion-header .ui-icon { position: absolute; left: .5em; top: 50%; margin-top: -8px; }
+.player-ui .ui-accordion .ui-accordion-content { padding: 1em 2.2em; border-top: 0; margin-top: -2px; position: relative; top: 1px; margin-bottom: 2px; overflow: auto; display: none; zoom: 1; }
+.player-ui .ui-accordion .ui-accordion-content-active { display: block; }
+/*
+ * jQuery UI Autocomplete 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Autocomplete#theming
+ */
+.player-ui .ui-autocomplete { position: absolute; cursor: default; }	
+
+/* workarounds */
+* html .ui-autocomplete { width:1px; } /* without this, the menu expands to 100% in IE6 */
+
+/*
+ * jQuery UI Menu 1.8.18
+ *
+ * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Menu#theming
+ */
+.player-ui .ui-menu {
+	list-style:none;
+	padding: 2px;
+	margin: 0;
+	display:block;
+	float: left;
+}
+.player-ui .ui-menu .ui-menu {
+	margin-top: -3px;
+}
+.player-ui .ui-menu .ui-menu-item {
+	margin:0;
+	padding: 0;
+	zoom: 1;
+	float: left;
+	clear: left;
+	width: 100%;
+}
+.player-ui .ui-menu .ui-menu-item a {
+	text-decoration:none;
+	display:block;
+	padding:.2em .4em;
+	line-height:1.5;
+	zoom:1;
+}
+.player-ui .ui-menu .ui-menu-item a.ui-state-hover,
+.player-ui .ui-menu .ui-menu-item a.ui-state-active {
+	font-weight: normal;
+	margin: -1px;
+}
+/*
+ * jQuery UI Button 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Button#theming
+ */
+.player-ui .ui-button { display: inline-block; position: relative; padding: 0; margin-right: .1em; text-decoration: none !important; cursor: pointer; text-align: center; zoom: 1; overflow: hidden; *overflow: visible; } /* the overflow property removes extra width in IE */
+.player-ui .ui-button-icon-only { width: 2.2em; } /* to make room for the icon, a width needs to be set here */
+button.ui-button-icon-only { width: 2.4em; } /* button elements seem to need a little more width */
+.player-ui .ui-button-icons-only { width: 3.4em; } 
+button.ui-button-icons-only { width: 3.7em; } 
+
+/*button text element */
+.player-ui .ui-button .ui-button-text { display: block; line-height: 1.4;  }
+.player-ui .ui-button-text-only .ui-button-text { padding: .4em 1em; }
+.player-ui .ui-button-icon-only .ui-button-text, .player-ui .ui-button-icons-only .ui-button-text { padding: .4em; text-indent: -9999999px; }
+.player-ui .ui-button-text-icon-primary .ui-button-text, .player-ui .ui-button-text-icons .ui-button-text { padding: .4em 1em .4em 2.1em; }
+.player-ui .ui-button-text-icon-secondary .ui-button-text, .player-ui .ui-button-text-icons .ui-button-text { padding: .4em 2.1em .4em 1em; }
+.player-ui .ui-button-text-icons .ui-button-text { padding-left: 2.1em; padding-right: 2.1em; }
+/* no icon support for input elements, provide padding by default */
+input.ui-button { padding: .4em 1em; }
+
+/*button icon element(s) */
+.player-ui .ui-button-icon-only .ui-icon, .player-ui .ui-button-text-icon-primary .ui-icon, .player-ui .ui-button-text-icon-secondary .ui-icon, .player-ui .ui-button-text-icons .ui-icon, .player-ui .ui-button-icons-only .ui-icon { position: absolute; top: 50%; margin-top: -8px; }
+.player-ui .ui-button-icon-only .ui-icon { left: 50%; margin-left: -8px; }
+.player-ui .ui-button-text-icon-primary .ui-button-icon-primary, .player-ui .ui-button-text-icons .ui-button-icon-primary, .player-ui .ui-button-icons-only .ui-button-icon-primary { left: .5em; }
+.player-ui .ui-button-text-icon-secondary .ui-button-icon-secondary, .player-ui .ui-button-text-icons .ui-button-icon-secondary, .player-ui .ui-button-icons-only .ui-button-icon-secondary { right: .5em; }
+.player-ui .ui-button-text-icons .ui-button-icon-secondary, .player-ui .ui-button-icons-only .ui-button-icon-secondary { right: .5em; }
+
+/*button sets*/
+.player-ui .ui-buttonset { margin-right: 7px; }
+.player-ui .ui-buttonset .ui-button { margin-left: 0; margin-right: -.3em; }
+
+/* workarounds */
+button.ui-button::-moz-focus-inner { border: 0; padding: 0; } /* reset extra padding in Firefox */
+/*
+ * jQuery UI Dialog 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Dialog#theming
+ */
+.player-ui .ui-dialog { position: absolute; padding: .2em; width: 300px; overflow: hidden; }
+.player-ui .ui-dialog .ui-dialog-titlebar { padding: .4em 1em; position: relative;  }
+.player-ui .ui-dialog .ui-dialog-title { float: left; margin: .1em 16px .1em 0; } 
+.player-ui .ui-dialog .ui-dialog-titlebar-close { position: absolute; right: .3em; top: 50%; width: 19px; margin: -10px 0 0 0; padding: 1px; height: 18px; }
+.player-ui .ui-dialog .ui-dialog-titlebar-close span { display: block; margin: 1px; }
+.player-ui .ui-dialog .ui-dialog-titlebar-close:hover, .player-ui .ui-dialog .ui-dialog-titlebar-close:focus { padding: 0; }
+.player-ui .ui-dialog .ui-dialog-content { position: relative; border: 0; padding: .5em 1em; background: none; overflow: auto; zoom: 1; }
+.player-ui .ui-dialog .ui-dialog-buttonpane { text-align: left; border-width: 1px 0 0 0; background-image: none; margin: .5em 0 0 0; padding: .3em 1em .5em .4em; }
+.player-ui .ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset { float: right; }
+.player-ui .ui-dialog .ui-dialog-buttonpane button { margin: .5em .4em .5em 0; cursor: pointer; }
+.player-ui .ui-dialog .ui-resizable-se { width: 14px; height: 14px; right: 3px; bottom: 3px; }
+.player-ui .ui-draggable .ui-dialog-titlebar { cursor: move; }
+/*
+ * jQuery UI Slider 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Slider#theming
+ */
+.player-ui .ui-slider { position: relative; text-align: left; }
+.player-ui .ui-slider .ui-slider-handle { position: absolute; z-index: 2; width: 1.2em; height: 1.2em; cursor: default; }
+.player-ui .ui-slider .ui-slider-range { position: absolute; z-index: 1; font-size: .7em; display: block; border: 0; background-position: 0 0; }
+
+.player-ui .ui-slider-horizontal { height: .8em; }
+.player-ui .ui-slider-horizontal .ui-slider-handle { top: -.3em; margin-left: -.6em; }
+.player-ui .ui-slider-horizontal .ui-slider-range { top: 0; height: 100%; }
+.player-ui .ui-slider-horizontal .ui-slider-range-min { left: 0; }
+.player-ui .ui-slider-horizontal .ui-slider-range-max { right: 0; }
+
+.player-ui .ui-slider-vertical { width: .8em; height: 100px; }
+.player-ui .ui-slider-vertical .ui-slider-handle { left: -.3em; margin-left: 0; margin-bottom: -.6em; }
+.player-ui .ui-slider-vertical .ui-slider-range { left: 0; width: 100%; }
+.player-ui .ui-slider-vertical .ui-slider-range-min { bottom: 0; }
+.player-ui .ui-slider-vertical .ui-slider-range-max { top: 0; }/*
+ * jQuery UI Tabs 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Tabs#theming
+ */
+.player-ui .ui-tabs { position: relative; padding: .2em; zoom: 1; } /* position: relative prevents IE scroll bug (element with position: relative inside container with overflow: auto appear as "fixed") */
+.player-ui .ui-tabs .ui-tabs-nav { margin: 0; padding: .2em .2em 0; }
+.player-ui .ui-tabs .ui-tabs-nav li { list-style: none; float: left; position: relative; top: 1px; margin: 0 .2em 1px 0; border-bottom: 0 !important; padding: 0; white-space: nowrap; }
+.player-ui .ui-tabs .ui-tabs-nav li a { float: left; padding: .5em 1em; text-decoration: none; }
+.player-ui .ui-tabs .ui-tabs-nav li.ui-tabs-selected { margin-bottom: 0; padding-bottom: 1px; }
+.player-ui .ui-tabs .ui-tabs-nav li.ui-tabs-selected a, .player-ui .ui-tabs .ui-tabs-nav li.ui-state-disabled a, .player-ui .ui-tabs .ui-tabs-nav li.ui-state-processing a { cursor: text; }
+.player-ui .ui-tabs .ui-tabs-nav li a, .player-ui .ui-tabs.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-selected a { cursor: pointer; } /* first selector in group seems obsolete, but required to overcome bug in Opera applying cursor: text overall if defined elsewhere... */
+.player-ui .ui-tabs .ui-tabs-panel { display: block; border-width: 0; padding: 1em 1.4em; background: none; }
+.player-ui .ui-tabs .ui-tabs-hide { display: none !important; }
+/*
+ * jQuery UI Datepicker 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Datepicker#theming
+ */
+.player-ui .ui-datepicker { width: 17em; padding: .2em .2em 0; display: none; }
+.player-ui .ui-datepicker .ui-datepicker-header { position:relative; padding:.2em 0; }
+.player-ui .ui-datepicker .ui-datepicker-prev, .player-ui .ui-datepicker .ui-datepicker-next { position:absolute; top: 2px; width: 1.8em; height: 1.8em; }
+.player-ui .ui-datepicker .ui-datepicker-prev-hover, .player-ui .ui-datepicker .ui-datepicker-next-hover { top: 1px; }
+.player-ui .ui-datepicker .ui-datepicker-prev { left:2px; }
+.player-ui .ui-datepicker .ui-datepicker-next { right:2px; }
+.player-ui .ui-datepicker .ui-datepicker-prev-hover { left:1px; }
+.player-ui .ui-datepicker .ui-datepicker-next-hover { right:1px; }
+.player-ui .ui-datepicker .ui-datepicker-prev span, .player-ui .ui-datepicker .ui-datepicker-next span { display: block; position: absolute; left: 50%; margin-left: -8px; top: 50%; margin-top: -8px;  }
+.player-ui .ui-datepicker .ui-datepicker-title { margin: 0 2.3em; line-height: 1.8em; text-align: center; }
+.player-ui .ui-datepicker .ui-datepicker-title select { font-size:1em; margin:1px 0; }
+.player-ui .ui-datepicker select.ui-datepicker-month-year {width: 100%;}
+.player-ui .ui-datepicker select.ui-datepicker-month, 
+.player-ui .ui-datepicker select.ui-datepicker-year { width: 49%;}
+.player-ui .ui-datepicker table {width: 100%; font-size: .9em; border-collapse: collapse; margin:0 0 .4em; }
+.player-ui .ui-datepicker th { padding: .7em .3em; text-align: center; font-weight: bold; border: 0;  }
+.player-ui .ui-datepicker td { border: 0; padding: 1px; }
+.player-ui .ui-datepicker td span, .player-ui .ui-datepicker td a { display: block; padding: .2em; text-align: right; text-decoration: none; }
+.player-ui .ui-datepicker .ui-datepicker-buttonpane { background-image: none; margin: .7em 0 0 0; padding:0 .2em; border-left: 0; border-right: 0; border-bottom: 0; }
+.player-ui .ui-datepicker .ui-datepicker-buttonpane button { float: right; margin: .5em .2em .4em; cursor: pointer; padding: .2em .6em .3em .6em; width:auto; overflow:visible; }
+.player-ui .ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current { float:left; }
+
+/* with multiple calendars */
+.player-ui .ui-datepicker.ui-datepicker-multi { width:auto; }
+.player-ui .ui-datepicker-multi .ui-datepicker-group { float:left; }
+.player-ui .ui-datepicker-multi .ui-datepicker-group table { width:95%; margin:0 auto .4em; }
+.player-ui .ui-datepicker-multi-2 .ui-datepicker-group { width:50%; }
+.player-ui .ui-datepicker-multi-3 .ui-datepicker-group { width:33.3%; }
+.player-ui .ui-datepicker-multi-4 .ui-datepicker-group { width:25%; }
+.player-ui .ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header { border-left-width:0; }
+.player-ui .ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header { border-left-width:0; }
+.player-ui .ui-datepicker-multi .ui-datepicker-buttonpane { clear:left; }
+.player-ui .ui-datepicker-row-break { clear:both; width:100%; font-size:0em; }
+
+/* RTL support */
+.player-ui .ui-datepicker-rtl { direction: rtl; }
+.player-ui .ui-datepicker-rtl .ui-datepicker-prev { right: 2px; left: auto; }
+.player-ui .ui-datepicker-rtl .ui-datepicker-next { left: 2px; right: auto; }
+.player-ui .ui-datepicker-rtl .ui-datepicker-prev:hover { right: 1px; left: auto; }
+.player-ui .ui-datepicker-rtl .ui-datepicker-next:hover { left: 1px; right: auto; }
+.player-ui .ui-datepicker-rtl .ui-datepicker-buttonpane { clear:right; }
+.player-ui .ui-datepicker-rtl .ui-datepicker-buttonpane button { float: left; }
+.player-ui .ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current { float:right; }
+.player-ui .ui-datepicker-rtl .ui-datepicker-group { float:right; }
+.player-ui .ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header { border-right-width:0; border-left-width:1px; }
+.player-ui .ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header { border-right-width:0; border-left-width:1px; }
+
+/* IE6 IFRAME FIX (taken from datepicker 1.5.3 */
+.player-ui .ui-datepicker-cover {
+    display: none; /*sorry for IE5*/
+    display/**/: block; /*sorry for IE5*/
+    position: absolute; /*must have*/
+    z-index: -1; /*must have*/
+    filter: mask(); /*must have*/
+    top: -4px; /*must have*/
+    left: -4px; /*must have*/
+    width: 200px; /*must have*/
+    height: 200px; /*must have*/
+}/*
+ * jQuery UI Progressbar 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Progressbar#theming
+ */
+.player-ui .ui-progressbar { height:2em; text-align: left; overflow: hidden; }
+.player-ui .ui-progressbar .ui-progressbar-value {margin: -1px; height:100%; }
\ No newline at end of file
diff --git a/public/admin/js/osmplayer/jquery-ui/flick/images/ui-bg_flat_0_aaaaaa_40x100.png b/public/admin/js/osmplayer/jquery-ui/flick/images/ui-bg_flat_0_aaaaaa_40x100.png
new file mode 100644
index 0000000000000000000000000000000000000000..5b5dab2ab7b1c50dea9cfe73dc5a269a92d2d4b4
GIT binary patch
literal 180
zcmeAS@N?(olHy`uVBq!ia0vp^8bF-F!3HG1q!d*FscKIb$B>N1x91EQ4=4yQ7#`R^
z$vje}<irI&an_s0pV!D+$FtuP31JO&3=I&aE+u|=5A)Hv$*VMh&S3C#^>bP0l+XkK
DSH>_4

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/flick/images/ui-bg_flat_0_eeeeee_40x100.png b/public/admin/js/osmplayer/jquery-ui/flick/images/ui-bg_flat_0_eeeeee_40x100.png
new file mode 100644
index 0000000000000000000000000000000000000000..e44f861be1ccdfec4275eb20d9b056f14992f649
GIT binary patch
literal 180
zcmeAS@N?(olHy`uVBq!ia0vp^8bF-F!3HG1q!d*FscKIb$B>N1x91EQ4=4yQ7#`Sv
zZF_)9$%zYm;;c7~Kd+Iuj%U9o62cnl7#bi-T}u4XA(n|-?{<9$I)lN})z4*}Q$iB}
D#5ytf

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/flick/images/ui-bg_flat_55_ffffff_40x100.png b/public/admin/js/osmplayer/jquery-ui/flick/images/ui-bg_flat_55_ffffff_40x100.png
new file mode 100644
index 0000000000000000000000000000000000000000..ac8b229af950c29356abf64a6c4aa894575445f0
GIT binary patch
literal 178
zcmeAS@N?(olHy`uVBq!ia0vp^8bF-F!3HG1q!d*FsY*{5$B>N1x91EQ4=4yQYz+E8
zPo9&<{J;c_6SHRil>2s{Zw^OT)6@jj2u|u!(plXsM>LJD`vD!n;OXk;vd$@?2>^GI
BH@yG=

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/flick/images/ui-bg_flat_75_ffffff_40x100.png b/public/admin/js/osmplayer/jquery-ui/flick/images/ui-bg_flat_75_ffffff_40x100.png
new file mode 100644
index 0000000000000000000000000000000000000000..ac8b229af950c29356abf64a6c4aa894575445f0
GIT binary patch
literal 178
zcmeAS@N?(olHy`uVBq!ia0vp^8bF-F!3HG1q!d*FsY*{5$B>N1x91EQ4=4yQYz+E8
zPo9&<{J;c_6SHRil>2s{Zw^OT)6@jj2u|u!(plXsM>LJD`vD!n;OXk;vd$@?2>^GI
BH@yG=

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/flick/images/ui-bg_glass_65_ffffff_1x400.png b/public/admin/js/osmplayer/jquery-ui/flick/images/ui-bg_glass_65_ffffff_1x400.png
new file mode 100644
index 0000000000000000000000000000000000000000..42ccba269b6e91bef12ad0fa18be651b5ef0ee68
GIT binary patch
literal 105
zcmeAS@N?(olHy`uVBq!ia0vp^j6gJjgAK^akKnouqzpV=978O6-=0?FV^9z|eBtf=
z|7WztIJ;WT>{+tN>ySr~=F{k$>;_x^_y?afmf9pRKH0)6?eSP?3s5hEr>mdKI;Vst
E0O<Z9>;M1&

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/flick/images/ui-bg_highlight-soft_100_f6f6f6_1x100.png b/public/admin/js/osmplayer/jquery-ui/flick/images/ui-bg_highlight-soft_100_f6f6f6_1x100.png
new file mode 100644
index 0000000000000000000000000000000000000000..5dcfaa9a0168d65db3b8de1401cdf4e795880fa9
GIT binary patch
literal 90
zcmeAS@N?(olHy`uVBq!ia0vp^j6j^i!3HGVb)pi0l%l7LV~E7m<R5>3f3H_#V`FPu
o==SIT|M?Z1Nk>0;^9VCB@IMn?A*z)j3{=eE>FVdQ&MBb@0KuRb)c^nh

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/flick/images/ui-bg_highlight-soft_25_0073ea_1x100.png b/public/admin/js/osmplayer/jquery-ui/flick/images/ui-bg_highlight-soft_25_0073ea_1x100.png
new file mode 100644
index 0000000000000000000000000000000000000000..1530eff881ff92df6b63782dc7eb4d5fe1d587ae
GIT binary patch
literal 158
zcmeAS@N?(olHy`uVBq!ia0vp^j6j^i!3Ja)XlH!`a#B5A9780gF6}quYj)saasNGI
z&(!m7P75FS-H4OY=;#nxFf+?`_cPNyx()eX45ZQ*`x}4qWN9#VoO<y}@3FKij}N`|
zcX_+|R??LubN9dM6+v~Jk#3O-Of-Z<p60%6b5_aUTOh36`_<jBbTLmU&_V`JS3j3^
HP6<r_(F!?<

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/flick/images/ui-bg_highlight-soft_50_dddddd_1x100.png b/public/admin/js/osmplayer/jquery-ui/flick/images/ui-bg_highlight-soft_50_dddddd_1x100.png
new file mode 100644
index 0000000000000000000000000000000000000000..b47a4da5243c82396c15beedbe1584489bcce5b8
GIT binary patch
literal 92
zcmeAS@N?(olHy`uVBq!ia0vp^j6j^i!3HGVb)pi0l(MIbV~E7m<cfcPe%7n8v9Yx&
qy8QY7f4+vEpO_iv9IG~2MuxA`m16UcKDYu@&fw|l=d#Wzp$P!cF&WVS

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/flick/images/ui-icons_0073ea_256x240.png b/public/admin/js/osmplayer/jquery-ui/flick/images/ui-icons_0073ea_256x240.png
new file mode 100644
index 0000000000000000000000000000000000000000..6b852b618ad4e91b4c5fe65693731f160b9fb3cb
GIT binary patch
literal 4369
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

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/flick/images/ui-icons_454545_256x240.png b/public/admin/js/osmplayer/jquery-ui/flick/images/ui-icons_454545_256x240.png
new file mode 100644
index 0000000000000000000000000000000000000000..59bd45b907c4fd965697774ce8c5fc6b2fd9c105
GIT binary patch
literal 4369
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

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/flick/images/ui-icons_666666_256x240.png b/public/admin/js/osmplayer/jquery-ui/flick/images/ui-icons_666666_256x240.png
new file mode 100644
index 0000000000000000000000000000000000000000..f87de1ca1dc2eeefd7c2a4bed06c3f8bbfe2d483
GIT binary patch
literal 4369
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

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/flick/images/ui-icons_ff0084_256x240.png b/public/admin/js/osmplayer/jquery-ui/flick/images/ui-icons_ff0084_256x240.png
new file mode 100644
index 0000000000000000000000000000000000000000..0ca605d62f94b0919e567ae866c6aa0172987de0
GIT binary patch
literal 4369
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

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/flick/images/ui-icons_ffffff_256x240.png b/public/admin/js/osmplayer/jquery-ui/flick/images/ui-icons_ffffff_256x240.png
new file mode 100644
index 0000000000000000000000000000000000000000..42f8f992c727ddaa617da224a522e463df690387
GIT binary patch
literal 4369
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

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/flick/jquery-ui-1.8.18.custom.css b/public/admin/js/osmplayer/jquery-ui/flick/jquery-ui-1.8.18.custom.css
new file mode 100644
index 00000000000..a066b44a9d1
--- /dev/null
+++ b/public/admin/js/osmplayer/jquery-ui/flick/jquery-ui-1.8.18.custom.css
@@ -0,0 +1,565 @@
+/*
+ * jQuery UI CSS Framework 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Theming/API
+ */
+
+/* Layout helpers
+----------------------------------*/
+.player-ui .ui-helper-hidden { display: none; }
+.player-ui .ui-helper-hidden-accessible { position: absolute !important; clip: rect(1px 1px 1px 1px); clip: rect(1px,1px,1px,1px); }
+.player-ui .ui-helper-reset { margin: 0; padding: 0; border: 0; outline: 0; line-height: 1.3; text-decoration: none; font-size: 100%; list-style: none; }
+.player-ui .ui-helper-clearfix:before, .player-ui .ui-helper-clearfix:after { content: ""; display: table; }
+.player-ui .ui-helper-clearfix:after { clear: both; }
+.player-ui .ui-helper-clearfix { zoom: 1; }
+.player-ui .ui-helper-zfix { width: 100%; height: 100%; top: 0; left: 0; position: absolute; opacity: 0; filter:Alpha(Opacity=0); }
+
+
+/* Interaction Cues
+----------------------------------*/
+.player-ui .ui-state-disabled { cursor: default !important; }
+
+
+/* Icons
+----------------------------------*/
+
+/* states and images */
+.player-ui .ui-icon { display: block; text-indent: -99999px; overflow: hidden; background-repeat: no-repeat; }
+
+
+/* Misc visuals
+----------------------------------*/
+
+/* Overlays */
+.player-ui .ui-widget-overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }
+
+
+/*
+ * jQuery UI CSS Framework 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Theming/API
+ *
+ * To view and modify this theme, visit http://jqueryui.com/themeroller/?ffDefault=Helvetica,%20Arial,%20sans-serif&fwDefault=bold&fsDefault=1.1em&cornerRadius=2px&bgColorHeader=dddddd&bgTextureHeader=03_highlight_soft.png&bgImgOpacityHeader=50&borderColorHeader=dddddd&fcHeader=444444&iconColorHeader=0073ea&bgColorContent=ffffff&bgTextureContent=01_flat.png&bgImgOpacityContent=75&borderColorContent=dddddd&fcContent=444444&iconColorContent=ff0084&bgColorDefault=f6f6f6&bgTextureDefault=03_highlight_soft.png&bgImgOpacityDefault=100&borderColorDefault=dddddd&fcDefault=0073ea&iconColorDefault=666666&bgColorHover=0073ea&bgTextureHover=03_highlight_soft.png&bgImgOpacityHover=25&borderColorHover=0073ea&fcHover=ffffff&iconColorHover=ffffff&bgColorActive=ffffff&bgTextureActive=02_glass.png&bgImgOpacityActive=65&borderColorActive=dddddd&fcActive=ff0084&iconColorActive=454545&bgColorHighlight=ffffff&bgTextureHighlight=01_flat.png&bgImgOpacityHighlight=55&borderColorHighlight=cccccc&fcHighlight=444444&iconColorHighlight=0073ea&bgColorError=ffffff&bgTextureError=01_flat.png&bgImgOpacityError=55&borderColorError=ff0084&fcError=222222&iconColorError=ff0084&bgColorOverlay=eeeeee&bgTextureOverlay=01_flat.png&bgImgOpacityOverlay=0&opacityOverlay=80&bgColorShadow=aaaaaa&bgTextureShadow=01_flat.png&bgImgOpacityShadow=0&opacityShadow=60&thicknessShadow=4px&offsetTopShadow=-4px&offsetLeftShadow=-4px&cornerRadiusShadow=0px
+ */
+
+
+/* Component containers
+----------------------------------*/
+.player-ui .ui-widget { font-family: Helvetica, Arial, sans-serif; font-size: 1.1em; }
+.player-ui .ui-widget .ui-widget { font-size: 1em; }
+.player-ui .ui-widget input, .player-ui .ui-widget select, .player-ui .ui-widget textarea, .player-ui .ui-widget button { font-family: Helvetica, Arial, sans-serif; font-size: 1em; }
+.player-ui .ui-widget-content { border: 1px solid #dddddd; background: #ffffff url(images/ui-bg_flat_75_ffffff_40x100.png) 50% 50% repeat-x; color: #444444; }
+.player-ui .ui-widget-content a { color: #444444; }
+.player-ui .ui-widget-header { border: 1px solid #dddddd; background: #dddddd url(images/ui-bg_highlight-soft_50_dddddd_1x100.png) 50% 50% repeat-x; color: #444444; font-weight: bold; }
+.player-ui .ui-widget-header a { color: #444444; }
+
+/* Interaction states
+----------------------------------*/
+.player-ui .ui-state-default, .player-ui .ui-widget-content .ui-state-default, .player-ui .ui-widget-header .ui-state-default { border: 1px solid #dddddd; background: #f6f6f6 url(images/ui-bg_highlight-soft_100_f6f6f6_1x100.png) 50% 50% repeat-x; font-weight: bold; color: #0073ea; }
+.player-ui .ui-state-default a, .player-ui .ui-state-default a:link, .player-ui .ui-state-default a:visited { color: #0073ea; text-decoration: none; }
+.player-ui .ui-state-hover, .player-ui .ui-widget-content .ui-state-hover, .player-ui .ui-widget-header .ui-state-hover, .player-ui .ui-state-focus, .player-ui .ui-widget-content .ui-state-focus, .player-ui .ui-widget-header .ui-state-focus { border: 1px solid #0073ea; background: #0073ea url(images/ui-bg_highlight-soft_25_0073ea_1x100.png) 50% 50% repeat-x; font-weight: bold; color: #ffffff; }
+.player-ui .ui-state-hover a, .player-ui .ui-state-hover a:hover { color: #ffffff; text-decoration: none; }
+.player-ui .ui-state-active, .player-ui .ui-widget-content .ui-state-active, .player-ui .ui-widget-header .ui-state-active { border: 1px solid #dddddd; background: #ffffff url(images/ui-bg_glass_65_ffffff_1x400.png) 50% 50% repeat-x; font-weight: bold; color: #ff0084; }
+.player-ui .ui-state-active a, .player-ui .ui-state-active a:link, .player-ui .ui-state-active a:visited { color: #ff0084; text-decoration: none; }
+.player-ui .ui-widget :active { outline: none; }
+
+/* Interaction Cues
+----------------------------------*/
+.player-ui .ui-state-highlight, .player-ui .ui-widget-content .ui-state-highlight, .player-ui .ui-widget-header .ui-state-highlight  {border: 1px solid #cccccc; background: #ffffff url(images/ui-bg_flat_55_ffffff_40x100.png) 50% 50% repeat-x; color: #444444; }
+.player-ui .ui-state-highlight a, .player-ui .ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a { color: #444444; }
+.player-ui .ui-state-error, .player-ui .ui-widget-content .ui-state-error, .player-ui .ui-widget-header .ui-state-error {border: 1px solid #ff0084; background: #ffffff url(images/ui-bg_flat_55_ffffff_40x100.png) 50% 50% repeat-x; color: #222222; }
+.player-ui .ui-state-error a, .player-ui .ui-widget-content .ui-state-error a, .player-ui .ui-widget-header .ui-state-error a { color: #222222; }
+.player-ui .ui-state-error-text, .player-ui .ui-widget-content .ui-state-error-text, .player-ui .ui-widget-header .ui-state-error-text { color: #222222; }
+.player-ui .ui-priority-primary, .player-ui .ui-widget-content .ui-priority-primary, .player-ui .ui-widget-header .ui-priority-primary { font-weight: bold; }
+.player-ui .ui-priority-secondary, .player-ui .ui-widget-content .ui-priority-secondary,  .ui-widget-header .ui-priority-secondary { opacity: .7; filter:Alpha(Opacity=70); font-weight: normal; }
+.player-ui .ui-state-disabled, .player-ui .ui-widget-content .ui-state-disabled, .player-ui .ui-widget-header .ui-state-disabled { opacity: .35; filter:Alpha(Opacity=35); background-image: none; }
+
+/* Icons
+----------------------------------*/
+
+/* states and images */
+.player-ui .ui-icon { width: 16px; height: 16px; background-image: url(images/ui-icons_ff0084_256x240.png); }
+.player-ui .ui-widget-content .ui-icon {background-image: url(images/ui-icons_ff0084_256x240.png); }
+.player-ui .ui-widget-header .ui-icon {background-image: url(images/ui-icons_0073ea_256x240.png); }
+.player-ui .ui-state-default .ui-icon { background-image: url(images/ui-icons_666666_256x240.png); }
+.player-ui .ui-state-hover .ui-icon, .player-ui .ui-state-focus .ui-icon {background-image: url(images/ui-icons_ffffff_256x240.png); }
+.player-ui .ui-state-active .ui-icon {background-image: url(images/ui-icons_454545_256x240.png); }
+.player-ui .ui-state-highlight .ui-icon {background-image: url(images/ui-icons_0073ea_256x240.png); }
+.player-ui .ui-state-error .ui-icon, .player-ui .ui-state-error-text .ui-icon {background-image: url(images/ui-icons_ff0084_256x240.png); }
+
+/* positioning */
+.player-ui .ui-icon-carat-1-n { background-position: 0 0; }
+.player-ui .ui-icon-carat-1-ne { background-position: -16px 0; }
+.player-ui .ui-icon-carat-1-e { background-position: -32px 0; }
+.player-ui .ui-icon-carat-1-se { background-position: -48px 0; }
+.player-ui .ui-icon-carat-1-s { background-position: -64px 0; }
+.player-ui .ui-icon-carat-1-sw { background-position: -80px 0; }
+.player-ui .ui-icon-carat-1-w { background-position: -96px 0; }
+.player-ui .ui-icon-carat-1-nw { background-position: -112px 0; }
+.player-ui .ui-icon-carat-2-n-s { background-position: -128px 0; }
+.player-ui .ui-icon-carat-2-e-w { background-position: -144px 0; }
+.player-ui .ui-icon-triangle-1-n { background-position: 0 -16px; }
+.player-ui .ui-icon-triangle-1-ne { background-position: -16px -16px; }
+.player-ui .ui-icon-triangle-1-e { background-position: -32px -16px; }
+.player-ui .ui-icon-triangle-1-se { background-position: -48px -16px; }
+.player-ui .ui-icon-triangle-1-s { background-position: -64px -16px; }
+.player-ui .ui-icon-triangle-1-sw { background-position: -80px -16px; }
+.player-ui .ui-icon-triangle-1-w { background-position: -96px -16px; }
+.player-ui .ui-icon-triangle-1-nw { background-position: -112px -16px; }
+.player-ui .ui-icon-triangle-2-n-s { background-position: -128px -16px; }
+.player-ui .ui-icon-triangle-2-e-w { background-position: -144px -16px; }
+.player-ui .ui-icon-arrow-1-n { background-position: 0 -32px; }
+.player-ui .ui-icon-arrow-1-ne { background-position: -16px -32px; }
+.player-ui .ui-icon-arrow-1-e { background-position: -32px -32px; }
+.player-ui .ui-icon-arrow-1-se { background-position: -48px -32px; }
+.player-ui .ui-icon-arrow-1-s { background-position: -64px -32px; }
+.player-ui .ui-icon-arrow-1-sw { background-position: -80px -32px; }
+.player-ui .ui-icon-arrow-1-w { background-position: -96px -32px; }
+.player-ui .ui-icon-arrow-1-nw { background-position: -112px -32px; }
+.player-ui .ui-icon-arrow-2-n-s { background-position: -128px -32px; }
+.player-ui .ui-icon-arrow-2-ne-sw { background-position: -144px -32px; }
+.player-ui .ui-icon-arrow-2-e-w { background-position: -160px -32px; }
+.player-ui .ui-icon-arrow-2-se-nw { background-position: -176px -32px; }
+.player-ui .ui-icon-arrowstop-1-n { background-position: -192px -32px; }
+.player-ui .ui-icon-arrowstop-1-e { background-position: -208px -32px; }
+.player-ui .ui-icon-arrowstop-1-s { background-position: -224px -32px; }
+.player-ui .ui-icon-arrowstop-1-w { background-position: -240px -32px; }
+.player-ui .ui-icon-arrowthick-1-n { background-position: 0 -48px; }
+.player-ui .ui-icon-arrowthick-1-ne { background-position: -16px -48px; }
+.player-ui .ui-icon-arrowthick-1-e { background-position: -32px -48px; }
+.player-ui .ui-icon-arrowthick-1-se { background-position: -48px -48px; }
+.player-ui .ui-icon-arrowthick-1-s { background-position: -64px -48px; }
+.player-ui .ui-icon-arrowthick-1-sw { background-position: -80px -48px; }
+.player-ui .ui-icon-arrowthick-1-w { background-position: -96px -48px; }
+.player-ui .ui-icon-arrowthick-1-nw { background-position: -112px -48px; }
+.player-ui .ui-icon-arrowthick-2-n-s { background-position: -128px -48px; }
+.player-ui .ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px; }
+.player-ui .ui-icon-arrowthick-2-e-w { background-position: -160px -48px; }
+.player-ui .ui-icon-arrowthick-2-se-nw { background-position: -176px -48px; }
+.player-ui .ui-icon-arrowthickstop-1-n { background-position: -192px -48px; }
+.player-ui .ui-icon-arrowthickstop-1-e { background-position: -208px -48px; }
+.player-ui .ui-icon-arrowthickstop-1-s { background-position: -224px -48px; }
+.player-ui .ui-icon-arrowthickstop-1-w { background-position: -240px -48px; }
+.player-ui .ui-icon-arrowreturnthick-1-w { background-position: 0 -64px; }
+.player-ui .ui-icon-arrowreturnthick-1-n { background-position: -16px -64px; }
+.player-ui .ui-icon-arrowreturnthick-1-e { background-position: -32px -64px; }
+.player-ui .ui-icon-arrowreturnthick-1-s { background-position: -48px -64px; }
+.player-ui .ui-icon-arrowreturn-1-w { background-position: -64px -64px; }
+.player-ui .ui-icon-arrowreturn-1-n { background-position: -80px -64px; }
+.player-ui .ui-icon-arrowreturn-1-e { background-position: -96px -64px; }
+.player-ui .ui-icon-arrowreturn-1-s { background-position: -112px -64px; }
+.player-ui .ui-icon-arrowrefresh-1-w { background-position: -128px -64px; }
+.player-ui .ui-icon-arrowrefresh-1-n { background-position: -144px -64px; }
+.player-ui .ui-icon-arrowrefresh-1-e { background-position: -160px -64px; }
+.player-ui .ui-icon-arrowrefresh-1-s { background-position: -176px -64px; }
+.player-ui .ui-icon-arrow-4 { background-position: 0 -80px; }
+.player-ui .ui-icon-arrow-4-diag { background-position: -16px -80px; }
+.player-ui .ui-icon-extlink { background-position: -32px -80px; }
+.player-ui .ui-icon-newwin { background-position: -48px -80px; }
+.player-ui .ui-icon-refresh { background-position: -64px -80px; }
+.player-ui .ui-icon-shuffle { background-position: -80px -80px; }
+.player-ui .ui-icon-transfer-e-w { background-position: -96px -80px; }
+.player-ui .ui-icon-transferthick-e-w { background-position: -112px -80px; }
+.player-ui .ui-icon-folder-collapsed { background-position: 0 -96px; }
+.player-ui .ui-icon-folder-open { background-position: -16px -96px; }
+.player-ui .ui-icon-document { background-position: -32px -96px; }
+.player-ui .ui-icon-document-b { background-position: -48px -96px; }
+.player-ui .ui-icon-note { background-position: -64px -96px; }
+.player-ui .ui-icon-mail-closed { background-position: -80px -96px; }
+.player-ui .ui-icon-mail-open { background-position: -96px -96px; }
+.player-ui .ui-icon-suitcase { background-position: -112px -96px; }
+.player-ui .ui-icon-comment { background-position: -128px -96px; }
+.player-ui .ui-icon-person { background-position: -144px -96px; }
+.player-ui .ui-icon-print { background-position: -160px -96px; }
+.player-ui .ui-icon-trash { background-position: -176px -96px; }
+.player-ui .ui-icon-locked { background-position: -192px -96px; }
+.player-ui .ui-icon-unlocked { background-position: -208px -96px; }
+.player-ui .ui-icon-bookmark { background-position: -224px -96px; }
+.player-ui .ui-icon-tag { background-position: -240px -96px; }
+.player-ui .ui-icon-home { background-position: 0 -112px; }
+.player-ui .ui-icon-flag { background-position: -16px -112px; }
+.player-ui .ui-icon-calendar { background-position: -32px -112px; }
+.player-ui .ui-icon-cart { background-position: -48px -112px; }
+.player-ui .ui-icon-pencil { background-position: -64px -112px; }
+.player-ui .ui-icon-clock { background-position: -80px -112px; }
+.player-ui .ui-icon-disk { background-position: -96px -112px; }
+.player-ui .ui-icon-calculator { background-position: -112px -112px; }
+.player-ui .ui-icon-zoomin { background-position: -128px -112px; }
+.player-ui .ui-icon-zoomout { background-position: -144px -112px; }
+.player-ui .ui-icon-search { background-position: -160px -112px; }
+.player-ui .ui-icon-wrench { background-position: -176px -112px; }
+.player-ui .ui-icon-gear { background-position: -192px -112px; }
+.player-ui .ui-icon-heart { background-position: -208px -112px; }
+.player-ui .ui-icon-star { background-position: -224px -112px; }
+.player-ui .ui-icon-link { background-position: -240px -112px; }
+.player-ui .ui-icon-cancel { background-position: 0 -128px; }
+.player-ui .ui-icon-plus { background-position: -16px -128px; }
+.player-ui .ui-icon-plusthick { background-position: -32px -128px; }
+.player-ui .ui-icon-minus { background-position: -48px -128px; }
+.player-ui .ui-icon-minusthick { background-position: -64px -128px; }
+.player-ui .ui-icon-close { background-position: -80px -128px; }
+.player-ui .ui-icon-closethick { background-position: -96px -128px; }
+.player-ui .ui-icon-key { background-position: -112px -128px; }
+.player-ui .ui-icon-lightbulb { background-position: -128px -128px; }
+.player-ui .ui-icon-scissors { background-position: -144px -128px; }
+.player-ui .ui-icon-clipboard { background-position: -160px -128px; }
+.player-ui .ui-icon-copy { background-position: -176px -128px; }
+.player-ui .ui-icon-contact { background-position: -192px -128px; }
+.player-ui .ui-icon-image { background-position: -208px -128px; }
+.player-ui .ui-icon-video { background-position: -224px -128px; }
+.player-ui .ui-icon-script { background-position: -240px -128px; }
+.player-ui .ui-icon-alert { background-position: 0 -144px; }
+.player-ui .ui-icon-info { background-position: -16px -144px; }
+.player-ui .ui-icon-notice { background-position: -32px -144px; }
+.player-ui .ui-icon-help { background-position: -48px -144px; }
+.player-ui .ui-icon-check { background-position: -64px -144px; }
+.player-ui .ui-icon-bullet { background-position: -80px -144px; }
+.player-ui .ui-icon-radio-off { background-position: -96px -144px; }
+.player-ui .ui-icon-radio-on { background-position: -112px -144px; }
+.player-ui .ui-icon-pin-w { background-position: -128px -144px; }
+.player-ui .ui-icon-pin-s { background-position: -144px -144px; }
+.player-ui .ui-icon-play { background-position: 0 -160px; }
+.player-ui .ui-icon-pause { background-position: -16px -160px; }
+.player-ui .ui-icon-seek-next { background-position: -32px -160px; }
+.player-ui .ui-icon-seek-prev { background-position: -48px -160px; }
+.player-ui .ui-icon-seek-end { background-position: -64px -160px; }
+.player-ui .ui-icon-seek-start { background-position: -80px -160px; }
+/* ui-icon-seek-first is deprecated, use ui-icon-seek-start instead */
+.player-ui .ui-icon-seek-first { background-position: -80px -160px; }
+.player-ui .ui-icon-stop { background-position: -96px -160px; }
+.player-ui .ui-icon-eject { background-position: -112px -160px; }
+.player-ui .ui-icon-volume-off { background-position: -128px -160px; }
+.player-ui .ui-icon-volume-on { background-position: -144px -160px; }
+.player-ui .ui-icon-power { background-position: 0 -176px; }
+.player-ui .ui-icon-signal-diag { background-position: -16px -176px; }
+.player-ui .ui-icon-signal { background-position: -32px -176px; }
+.player-ui .ui-icon-battery-0 { background-position: -48px -176px; }
+.player-ui .ui-icon-battery-1 { background-position: -64px -176px; }
+.player-ui .ui-icon-battery-2 { background-position: -80px -176px; }
+.player-ui .ui-icon-battery-3 { background-position: -96px -176px; }
+.player-ui .ui-icon-circle-plus { background-position: 0 -192px; }
+.player-ui .ui-icon-circle-minus { background-position: -16px -192px; }
+.player-ui .ui-icon-circle-close { background-position: -32px -192px; }
+.player-ui .ui-icon-circle-triangle-e { background-position: -48px -192px; }
+.player-ui .ui-icon-circle-triangle-s { background-position: -64px -192px; }
+.player-ui .ui-icon-circle-triangle-w { background-position: -80px -192px; }
+.player-ui .ui-icon-circle-triangle-n { background-position: -96px -192px; }
+.player-ui .ui-icon-circle-arrow-e { background-position: -112px -192px; }
+.player-ui .ui-icon-circle-arrow-s { background-position: -128px -192px; }
+.player-ui .ui-icon-circle-arrow-w { background-position: -144px -192px; }
+.player-ui .ui-icon-circle-arrow-n { background-position: -160px -192px; }
+.player-ui .ui-icon-circle-zoomin { background-position: -176px -192px; }
+.player-ui .ui-icon-circle-zoomout { background-position: -192px -192px; }
+.player-ui .ui-icon-circle-check { background-position: -208px -192px; }
+.player-ui .ui-icon-circlesmall-plus { background-position: 0 -208px; }
+.player-ui .ui-icon-circlesmall-minus { background-position: -16px -208px; }
+.player-ui .ui-icon-circlesmall-close { background-position: -32px -208px; }
+.player-ui .ui-icon-squaresmall-plus { background-position: -48px -208px; }
+.player-ui .ui-icon-squaresmall-minus { background-position: -64px -208px; }
+.player-ui .ui-icon-squaresmall-close { background-position: -80px -208px; }
+.player-ui .ui-icon-grip-dotted-vertical { background-position: 0 -224px; }
+.player-ui .ui-icon-grip-dotted-horizontal { background-position: -16px -224px; }
+.player-ui .ui-icon-grip-solid-vertical { background-position: -32px -224px; }
+.player-ui .ui-icon-grip-solid-horizontal { background-position: -48px -224px; }
+.player-ui .ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; }
+.player-ui .ui-icon-grip-diagonal-se { background-position: -80px -224px; }
+
+
+/* Misc visuals
+----------------------------------*/
+
+/* Corner radius */
+.player-ui .ui-corner-all, .player-ui .ui-corner-top, .player-ui .ui-corner-left, .player-ui .ui-corner-tl { -moz-border-radius-topleft: 2px; -webkit-border-top-left-radius: 2px; -khtml-border-top-left-radius: 2px; border-top-left-radius: 2px; }
+.player-ui .ui-corner-all, .player-ui .ui-corner-top, .player-ui .ui-corner-right, .player-ui .ui-corner-tr { -moz-border-radius-topright: 2px; -webkit-border-top-right-radius: 2px; -khtml-border-top-right-radius: 2px; border-top-right-radius: 2px; }
+.player-ui .ui-corner-all, .player-ui .ui-corner-bottom, .player-ui .ui-corner-left, .player-ui .ui-corner-bl { -moz-border-radius-bottomleft: 2px; -webkit-border-bottom-left-radius: 2px; -khtml-border-bottom-left-radius: 2px; border-bottom-left-radius: 2px; }
+.player-ui .ui-corner-all, .player-ui .ui-corner-bottom, .player-ui .ui-corner-right, .player-ui .ui-corner-br { -moz-border-radius-bottomright: 2px; -webkit-border-bottom-right-radius: 2px; -khtml-border-bottom-right-radius: 2px; border-bottom-right-radius: 2px; }
+
+/* Overlays */
+.player-ui .ui-widget-overlay { background: #eeeeee url(images/ui-bg_flat_0_eeeeee_40x100.png) 50% 50% repeat-x; opacity: .80;filter:Alpha(Opacity=80); }
+.player-ui .ui-widget-shadow { margin: -4px 0 0 -4px; padding: 4px; background: #aaaaaa url(images/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x; opacity: .60;filter:Alpha(Opacity=60); -moz-border-radius: 0px; -khtml-border-radius: 0px; -webkit-border-radius: 0px; border-radius: 0px; }/*
+ * jQuery UI Resizable 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Resizable#theming
+ */
+.player-ui .ui-resizable { position: relative;}
+.player-ui .ui-resizable-handle { position: absolute;font-size: 0.1px;z-index: 99999; display: block; }
+.player-ui .ui-resizable-disabled .ui-resizable-handle, .player-ui .ui-resizable-autohide .ui-resizable-handle { display: none; }
+.player-ui .ui-resizable-n { cursor: n-resize; height: 7px; width: 100%; top: -5px; left: 0; }
+.player-ui .ui-resizable-s { cursor: s-resize; height: 7px; width: 100%; bottom: -5px; left: 0; }
+.player-ui .ui-resizable-e { cursor: e-resize; width: 7px; right: -5px; top: 0; height: 100%; }
+.player-ui .ui-resizable-w { cursor: w-resize; width: 7px; left: -5px; top: 0; height: 100%; }
+.player-ui .ui-resizable-se { cursor: se-resize; width: 12px; height: 12px; right: 1px; bottom: 1px; }
+.player-ui .ui-resizable-sw { cursor: sw-resize; width: 9px; height: 9px; left: -5px; bottom: -5px; }
+.player-ui .ui-resizable-nw { cursor: nw-resize; width: 9px; height: 9px; left: -5px; top: -5px; }
+.player-ui .ui-resizable-ne { cursor: ne-resize; width: 9px; height: 9px; right: -5px; top: -5px;}/*
+ * jQuery UI Selectable 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Selectable#theming
+ */
+.player-ui .ui-selectable-helper { position: absolute; z-index: 100; border:1px dotted black; }
+/*
+ * jQuery UI Accordion 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Accordion#theming
+ */
+/* IE/Win - Fix animation bug - #4615 */
+.player-ui .ui-accordion { width: 100%; }
+.player-ui .ui-accordion .ui-accordion-header { cursor: pointer; position: relative; margin-top: 1px; zoom: 1; }
+.player-ui .ui-accordion .ui-accordion-li-fix { display: inline; }
+.player-ui .ui-accordion .ui-accordion-header-active { border-bottom: 0 !important; }
+.player-ui .ui-accordion .ui-accordion-header a { display: block; font-size: 1em; padding: .5em .5em .5em .7em; }
+.player-ui .ui-accordion-icons .ui-accordion-header a { padding-left: 2.2em; }
+.player-ui .ui-accordion .ui-accordion-header .ui-icon { position: absolute; left: .5em; top: 50%; margin-top: -8px; }
+.player-ui .ui-accordion .ui-accordion-content { padding: 1em 2.2em; border-top: 0; margin-top: -2px; position: relative; top: 1px; margin-bottom: 2px; overflow: auto; display: none; zoom: 1; }
+.player-ui .ui-accordion .ui-accordion-content-active { display: block; }
+/*
+ * jQuery UI Autocomplete 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Autocomplete#theming
+ */
+.player-ui .ui-autocomplete { position: absolute; cursor: default; }	
+
+/* workarounds */
+* html .ui-autocomplete { width:1px; } /* without this, the menu expands to 100% in IE6 */
+
+/*
+ * jQuery UI Menu 1.8.18
+ *
+ * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Menu#theming
+ */
+.player-ui .ui-menu {
+	list-style:none;
+	padding: 2px;
+	margin: 0;
+	display:block;
+	float: left;
+}
+.player-ui .ui-menu .ui-menu {
+	margin-top: -3px;
+}
+.player-ui .ui-menu .ui-menu-item {
+	margin:0;
+	padding: 0;
+	zoom: 1;
+	float: left;
+	clear: left;
+	width: 100%;
+}
+.player-ui .ui-menu .ui-menu-item a {
+	text-decoration:none;
+	display:block;
+	padding:.2em .4em;
+	line-height:1.5;
+	zoom:1;
+}
+.player-ui .ui-menu .ui-menu-item a.ui-state-hover,
+.player-ui .ui-menu .ui-menu-item a.ui-state-active {
+	font-weight: normal;
+	margin: -1px;
+}
+/*
+ * jQuery UI Button 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Button#theming
+ */
+.player-ui .ui-button { display: inline-block; position: relative; padding: 0; margin-right: .1em; text-decoration: none !important; cursor: pointer; text-align: center; zoom: 1; overflow: hidden; *overflow: visible; } /* the overflow property removes extra width in IE */
+.player-ui .ui-button-icon-only { width: 2.2em; } /* to make room for the icon, a width needs to be set here */
+button.ui-button-icon-only { width: 2.4em; } /* button elements seem to need a little more width */
+.player-ui .ui-button-icons-only { width: 3.4em; } 
+button.ui-button-icons-only { width: 3.7em; } 
+
+/*button text element */
+.player-ui .ui-button .ui-button-text { display: block; line-height: 1.4;  }
+.player-ui .ui-button-text-only .ui-button-text { padding: .4em 1em; }
+.player-ui .ui-button-icon-only .ui-button-text, .player-ui .ui-button-icons-only .ui-button-text { padding: .4em; text-indent: -9999999px; }
+.player-ui .ui-button-text-icon-primary .ui-button-text, .player-ui .ui-button-text-icons .ui-button-text { padding: .4em 1em .4em 2.1em; }
+.player-ui .ui-button-text-icon-secondary .ui-button-text, .player-ui .ui-button-text-icons .ui-button-text { padding: .4em 2.1em .4em 1em; }
+.player-ui .ui-button-text-icons .ui-button-text { padding-left: 2.1em; padding-right: 2.1em; }
+/* no icon support for input elements, provide padding by default */
+input.ui-button { padding: .4em 1em; }
+
+/*button icon element(s) */
+.player-ui .ui-button-icon-only .ui-icon, .player-ui .ui-button-text-icon-primary .ui-icon, .player-ui .ui-button-text-icon-secondary .ui-icon, .player-ui .ui-button-text-icons .ui-icon, .player-ui .ui-button-icons-only .ui-icon { position: absolute; top: 50%; margin-top: -8px; }
+.player-ui .ui-button-icon-only .ui-icon { left: 50%; margin-left: -8px; }
+.player-ui .ui-button-text-icon-primary .ui-button-icon-primary, .player-ui .ui-button-text-icons .ui-button-icon-primary, .player-ui .ui-button-icons-only .ui-button-icon-primary { left: .5em; }
+.player-ui .ui-button-text-icon-secondary .ui-button-icon-secondary, .player-ui .ui-button-text-icons .ui-button-icon-secondary, .player-ui .ui-button-icons-only .ui-button-icon-secondary { right: .5em; }
+.player-ui .ui-button-text-icons .ui-button-icon-secondary, .player-ui .ui-button-icons-only .ui-button-icon-secondary { right: .5em; }
+
+/*button sets*/
+.player-ui .ui-buttonset { margin-right: 7px; }
+.player-ui .ui-buttonset .ui-button { margin-left: 0; margin-right: -.3em; }
+
+/* workarounds */
+button.ui-button::-moz-focus-inner { border: 0; padding: 0; } /* reset extra padding in Firefox */
+/*
+ * jQuery UI Dialog 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Dialog#theming
+ */
+.player-ui .ui-dialog { position: absolute; padding: .2em; width: 300px; overflow: hidden; }
+.player-ui .ui-dialog .ui-dialog-titlebar { padding: .4em 1em; position: relative;  }
+.player-ui .ui-dialog .ui-dialog-title { float: left; margin: .1em 16px .1em 0; } 
+.player-ui .ui-dialog .ui-dialog-titlebar-close { position: absolute; right: .3em; top: 50%; width: 19px; margin: -10px 0 0 0; padding: 1px; height: 18px; }
+.player-ui .ui-dialog .ui-dialog-titlebar-close span { display: block; margin: 1px; }
+.player-ui .ui-dialog .ui-dialog-titlebar-close:hover, .player-ui .ui-dialog .ui-dialog-titlebar-close:focus { padding: 0; }
+.player-ui .ui-dialog .ui-dialog-content { position: relative; border: 0; padding: .5em 1em; background: none; overflow: auto; zoom: 1; }
+.player-ui .ui-dialog .ui-dialog-buttonpane { text-align: left; border-width: 1px 0 0 0; background-image: none; margin: .5em 0 0 0; padding: .3em 1em .5em .4em; }
+.player-ui .ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset { float: right; }
+.player-ui .ui-dialog .ui-dialog-buttonpane button { margin: .5em .4em .5em 0; cursor: pointer; }
+.player-ui .ui-dialog .ui-resizable-se { width: 14px; height: 14px; right: 3px; bottom: 3px; }
+.player-ui .ui-draggable .ui-dialog-titlebar { cursor: move; }
+/*
+ * jQuery UI Slider 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Slider#theming
+ */
+.player-ui .ui-slider { position: relative; text-align: left; }
+.player-ui .ui-slider .ui-slider-handle { position: absolute; z-index: 2; width: 1.2em; height: 1.2em; cursor: default; }
+.player-ui .ui-slider .ui-slider-range { position: absolute; z-index: 1; font-size: .7em; display: block; border: 0; background-position: 0 0; }
+
+.player-ui .ui-slider-horizontal { height: .8em; }
+.player-ui .ui-slider-horizontal .ui-slider-handle { top: -.3em; margin-left: -.6em; }
+.player-ui .ui-slider-horizontal .ui-slider-range { top: 0; height: 100%; }
+.player-ui .ui-slider-horizontal .ui-slider-range-min { left: 0; }
+.player-ui .ui-slider-horizontal .ui-slider-range-max { right: 0; }
+
+.player-ui .ui-slider-vertical { width: .8em; height: 100px; }
+.player-ui .ui-slider-vertical .ui-slider-handle { left: -.3em; margin-left: 0; margin-bottom: -.6em; }
+.player-ui .ui-slider-vertical .ui-slider-range { left: 0; width: 100%; }
+.player-ui .ui-slider-vertical .ui-slider-range-min { bottom: 0; }
+.player-ui .ui-slider-vertical .ui-slider-range-max { top: 0; }/*
+ * jQuery UI Tabs 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Tabs#theming
+ */
+.player-ui .ui-tabs { position: relative; padding: .2em; zoom: 1; } /* position: relative prevents IE scroll bug (element with position: relative inside container with overflow: auto appear as "fixed") */
+.player-ui .ui-tabs .ui-tabs-nav { margin: 0; padding: .2em .2em 0; }
+.player-ui .ui-tabs .ui-tabs-nav li { list-style: none; float: left; position: relative; top: 1px; margin: 0 .2em 1px 0; border-bottom: 0 !important; padding: 0; white-space: nowrap; }
+.player-ui .ui-tabs .ui-tabs-nav li a { float: left; padding: .5em 1em; text-decoration: none; }
+.player-ui .ui-tabs .ui-tabs-nav li.ui-tabs-selected { margin-bottom: 0; padding-bottom: 1px; }
+.player-ui .ui-tabs .ui-tabs-nav li.ui-tabs-selected a, .player-ui .ui-tabs .ui-tabs-nav li.ui-state-disabled a, .player-ui .ui-tabs .ui-tabs-nav li.ui-state-processing a { cursor: text; }
+.player-ui .ui-tabs .ui-tabs-nav li a, .player-ui .ui-tabs.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-selected a { cursor: pointer; } /* first selector in group seems obsolete, but required to overcome bug in Opera applying cursor: text overall if defined elsewhere... */
+.player-ui .ui-tabs .ui-tabs-panel { display: block; border-width: 0; padding: 1em 1.4em; background: none; }
+.player-ui .ui-tabs .ui-tabs-hide { display: none !important; }
+/*
+ * jQuery UI Datepicker 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Datepicker#theming
+ */
+.player-ui .ui-datepicker { width: 17em; padding: .2em .2em 0; display: none; }
+.player-ui .ui-datepicker .ui-datepicker-header { position:relative; padding:.2em 0; }
+.player-ui .ui-datepicker .ui-datepicker-prev, .player-ui .ui-datepicker .ui-datepicker-next { position:absolute; top: 2px; width: 1.8em; height: 1.8em; }
+.player-ui .ui-datepicker .ui-datepicker-prev-hover, .player-ui .ui-datepicker .ui-datepicker-next-hover { top: 1px; }
+.player-ui .ui-datepicker .ui-datepicker-prev { left:2px; }
+.player-ui .ui-datepicker .ui-datepicker-next { right:2px; }
+.player-ui .ui-datepicker .ui-datepicker-prev-hover { left:1px; }
+.player-ui .ui-datepicker .ui-datepicker-next-hover { right:1px; }
+.player-ui .ui-datepicker .ui-datepicker-prev span, .player-ui .ui-datepicker .ui-datepicker-next span { display: block; position: absolute; left: 50%; margin-left: -8px; top: 50%; margin-top: -8px;  }
+.player-ui .ui-datepicker .ui-datepicker-title { margin: 0 2.3em; line-height: 1.8em; text-align: center; }
+.player-ui .ui-datepicker .ui-datepicker-title select { font-size:1em; margin:1px 0; }
+.player-ui .ui-datepicker select.ui-datepicker-month-year {width: 100%;}
+.player-ui .ui-datepicker select.ui-datepicker-month, 
+.player-ui .ui-datepicker select.ui-datepicker-year { width: 49%;}
+.player-ui .ui-datepicker table {width: 100%; font-size: .9em; border-collapse: collapse; margin:0 0 .4em; }
+.player-ui .ui-datepicker th { padding: .7em .3em; text-align: center; font-weight: bold; border: 0;  }
+.player-ui .ui-datepicker td { border: 0; padding: 1px; }
+.player-ui .ui-datepicker td span, .player-ui .ui-datepicker td a { display: block; padding: .2em; text-align: right; text-decoration: none; }
+.player-ui .ui-datepicker .ui-datepicker-buttonpane { background-image: none; margin: .7em 0 0 0; padding:0 .2em; border-left: 0; border-right: 0; border-bottom: 0; }
+.player-ui .ui-datepicker .ui-datepicker-buttonpane button { float: right; margin: .5em .2em .4em; cursor: pointer; padding: .2em .6em .3em .6em; width:auto; overflow:visible; }
+.player-ui .ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current { float:left; }
+
+/* with multiple calendars */
+.player-ui .ui-datepicker.ui-datepicker-multi { width:auto; }
+.player-ui .ui-datepicker-multi .ui-datepicker-group { float:left; }
+.player-ui .ui-datepicker-multi .ui-datepicker-group table { width:95%; margin:0 auto .4em; }
+.player-ui .ui-datepicker-multi-2 .ui-datepicker-group { width:50%; }
+.player-ui .ui-datepicker-multi-3 .ui-datepicker-group { width:33.3%; }
+.player-ui .ui-datepicker-multi-4 .ui-datepicker-group { width:25%; }
+.player-ui .ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header { border-left-width:0; }
+.player-ui .ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header { border-left-width:0; }
+.player-ui .ui-datepicker-multi .ui-datepicker-buttonpane { clear:left; }
+.player-ui .ui-datepicker-row-break { clear:both; width:100%; font-size:0em; }
+
+/* RTL support */
+.player-ui .ui-datepicker-rtl { direction: rtl; }
+.player-ui .ui-datepicker-rtl .ui-datepicker-prev { right: 2px; left: auto; }
+.player-ui .ui-datepicker-rtl .ui-datepicker-next { left: 2px; right: auto; }
+.player-ui .ui-datepicker-rtl .ui-datepicker-prev:hover { right: 1px; left: auto; }
+.player-ui .ui-datepicker-rtl .ui-datepicker-next:hover { left: 1px; right: auto; }
+.player-ui .ui-datepicker-rtl .ui-datepicker-buttonpane { clear:right; }
+.player-ui .ui-datepicker-rtl .ui-datepicker-buttonpane button { float: left; }
+.player-ui .ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current { float:right; }
+.player-ui .ui-datepicker-rtl .ui-datepicker-group { float:right; }
+.player-ui .ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header { border-right-width:0; border-left-width:1px; }
+.player-ui .ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header { border-right-width:0; border-left-width:1px; }
+
+/* IE6 IFRAME FIX (taken from datepicker 1.5.3 */
+.player-ui .ui-datepicker-cover {
+    display: none; /*sorry for IE5*/
+    display/**/: block; /*sorry for IE5*/
+    position: absolute; /*must have*/
+    z-index: -1; /*must have*/
+    filter: mask(); /*must have*/
+    top: -4px; /*must have*/
+    left: -4px; /*must have*/
+    width: 200px; /*must have*/
+    height: 200px; /*must have*/
+}/*
+ * jQuery UI Progressbar 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Progressbar#theming
+ */
+.player-ui .ui-progressbar { height:2em; text-align: left; overflow: hidden; }
+.player-ui .ui-progressbar .ui-progressbar-value {margin: -1px; height:100%; }
\ No newline at end of file
diff --git a/public/admin/js/osmplayer/jquery-ui/hot-sneaks/images/ui-bg_diagonals-small_40_db4865_40x40.png b/public/admin/js/osmplayer/jquery-ui/hot-sneaks/images/ui-bg_diagonals-small_40_db4865_40x40.png
new file mode 100644
index 0000000000000000000000000000000000000000..8198e1d06d60ec3bf0624a1cdf8f04be2db49ded
GIT binary patch
literal 160
zcmeAS@N?(olHy`uVBq!ia0vp^8X(NU1|)m_?Z^dE>7Fi*ArY-_FD(>pFc4t5_?Rd4
zNPv&j!Yl(#Wvv+}Ht&fwe0^-~kK>o$i&j6snzT=Oj@8_AA#?rGSNSbB4qbj(lIPz=
zi6aYk8Fo09CJQvbI;OyOwbzknm2|U2h&h|#iaegAfV<z=?7x(3h>csSlnS(x!PC{x
JWt~$(697L*JU{>d

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/hot-sneaks/images/ui-bg_diagonals-small_50_93c3cd_40x40.png b/public/admin/js/osmplayer/jquery-ui/hot-sneaks/images/ui-bg_diagonals-small_50_93c3cd_40x40.png
new file mode 100644
index 0000000000000000000000000000000000000000..ba126df4725e0efa9ed46a149a3a07fc0a1a753e
GIT binary patch
literal 162
zcmeAS@N?(olHy`uVBq!ia0vp^8X(NU1|)m_?Z^dEnVv3=ArY-_FD>LfU?AXp@%2M5
z$py*jOCI%IWK?QhuJR!xwK@OW%!Agy{;s*P`<CSU84s_#ELrxd#45PdYVJy_x#to-
z^dD1TyV~o>vr4*IBE+1{a77+ZQovn_BMWvJb~u(M3pBslX8wcG{P>0^-$Ih~fR-|N
My85}Sb4q9e03@G60ssI2

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/hot-sneaks/images/ui-bg_diagonals-small_50_ff3853_40x40.png b/public/admin/js/osmplayer/jquery-ui/hot-sneaks/images/ui-bg_diagonals-small_50_ff3853_40x40.png
new file mode 100644
index 0000000000000000000000000000000000000000..b355f96d299a9917b37ec454d0e0d25deff48f51
GIT binary patch
literal 156
zcmeAS@N?(olHy`uVBq!ia0vp^8X(NU1|)m_?Z^dE$(}BbArY-_FD(>2U?9MJaQiJo
zV=wua);eErXuQdEV^S~kNjSdmUF`j9YpU*fWvR}68ReP2E9}zDbyG{&n(Iy23}58&
zBwe^Gab&@6!w$#tWP#>)#}wG^_B!(Hl5UnLDc^IDIWI&pne*zBE}(S`p00i_>zopr
E05+^TVE_OC

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/hot-sneaks/images/ui-bg_diagonals-small_75_ccd232_40x40.png b/public/admin/js/osmplayer/jquery-ui/hot-sneaks/images/ui-bg_diagonals-small_75_ccd232_40x40.png
new file mode 100644
index 0000000000000000000000000000000000000000..d83ecc0990f18ff31df94bcf00e33cd11897988a
GIT binary patch
literal 162
zcmeAS@N?(olHy`uVBq!ia0vp^8X(NU1|)m_?Z^dEnVv3=ArY-_FD(>oFc5IL_}D7p
z5@+p_s9O#f-PKfCge#}r6s^Bou6^(0p6gwE%f3l`=3DN!+&Fak<(aE4zx28KvV^U<
z-h|C?MIKL5z+H(W3w9ZHIF=?0G`~8gz;?CQk!O{3vqZ@Dy$AX4Ox<uMB=7TNprs6+
Lu6{1-oD!M<0-Qgm

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/hot-sneaks/images/ui-bg_dots-medium_80_ffff38_4x4.png b/public/admin/js/osmplayer/jquery-ui/hot-sneaks/images/ui-bg_dots-medium_80_ffff38_4x4.png
new file mode 100644
index 0000000000000000000000000000000000000000..bc6d0c737890df161b9a93154325d2f68dbce6b3
GIT binary patch
literal 100
zcmeAS@N?(olHy`uVBq!ia0vp^EFjFm#=yXM@7uZ;K#sPji(?4KOxIHz85tA=njId6
z+<cT?>a-^07W3MS-Z0rkq6se<K5!`9tluenbc59Wt|J{gf!Y{6UHx3vIVCg!06i!m
AHvj+t

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/hot-sneaks/images/ui-bg_dots-small_35_35414f_2x2.png b/public/admin/js/osmplayer/jquery-ui/hot-sneaks/images/ui-bg_dots-small_35_35414f_2x2.png
new file mode 100644
index 0000000000000000000000000000000000000000..db109df1675ad8b146a8cb976c7891aa68488cbd
GIT binary patch
literal 83
zcmeAS@N?(olHy`uVBq!ia0vp^Od!m`1|*BN@u~nRDNh&25RRG2CZ%8gpFaQuM}T<2
d8ja%&4APxUT05>Se+*Q`;OXk;vd$@?2>?0k84Umc

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/hot-sneaks/images/ui-bg_flat_75_ba9217_40x100.png b/public/admin/js/osmplayer/jquery-ui/hot-sneaks/images/ui-bg_flat_75_ba9217_40x100.png
new file mode 100644
index 0000000000000000000000000000000000000000..446b43e192ccad0c9751f20e013cf07b746dbe01
GIT binary patch
literal 182
zcmeAS@N?(olHy`uVBq!ia0vp^8bF-F!3HG1q!d*Fsaj7L$B>N1x91EQ8x$BA9G9@{
z?M=4qJW$ZgSI_yb>fP5q`PuR8eq5`XRxQw4L1l_}y+5<otTU+~hcI}$`njxgN@xNA
D3U)-a

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/hot-sneaks/images/ui-bg_flat_75_ffffff_40x100.png b/public/admin/js/osmplayer/jquery-ui/hot-sneaks/images/ui-bg_flat_75_ffffff_40x100.png
new file mode 100644
index 0000000000000000000000000000000000000000..ac8b229af950c29356abf64a6c4aa894575445f0
GIT binary patch
literal 178
zcmeAS@N?(olHy`uVBq!ia0vp^8bF-F!3HG1q!d*FsY*{5$B>N1x91EQ4=4yQYz+E8
zPo9&<{J;c_6SHRil>2s{Zw^OT)6@jj2u|u!(plXsM>LJD`vD!n;OXk;vd$@?2>^GI
BH@yG=

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/hot-sneaks/images/ui-bg_white-lines_85_f7f7ba_40x100.png b/public/admin/js/osmplayer/jquery-ui/hot-sneaks/images/ui-bg_white-lines_85_f7f7ba_40x100.png
new file mode 100644
index 0000000000000000000000000000000000000000..6cf17b2c0b742d3adac35f472372030b0ac23136
GIT binary patch
literal 212
zcmeAS@N?(olHy`uVBq!ia0vp^8bF-F!3HG1q!d*Fso9<`jv*P1Z!d1-J!HVZ;HYq~
z`EU3MGoOd2ns_HY;tKxb`{9!PbDRDB_TO&F7NpA@uP#5lbmO&jASt$*wopE7Li*=>
Tvnx%2&Sda(^>bP0l+XkKp*l~h

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/hot-sneaks/images/ui-icons_454545_256x240.png b/public/admin/js/osmplayer/jquery-ui/hot-sneaks/images/ui-icons_454545_256x240.png
new file mode 100644
index 0000000000000000000000000000000000000000..59bd45b907c4fd965697774ce8c5fc6b2fd9c105
GIT binary patch
literal 4369
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

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/hot-sneaks/images/ui-icons_88a206_256x240.png b/public/admin/js/osmplayer/jquery-ui/hot-sneaks/images/ui-icons_88a206_256x240.png
new file mode 100644
index 0000000000000000000000000000000000000000..e2dde3a8cbcdc5eb10fbbc1e9260d6d138b55690
GIT binary patch
literal 5355
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
W`?Hm7LpJ~Km-$3pU#(WfA?ANy?;uP7

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/hot-sneaks/images/ui-icons_c02669_256x240.png b/public/admin/js/osmplayer/jquery-ui/hot-sneaks/images/ui-icons_c02669_256x240.png
new file mode 100644
index 0000000000000000000000000000000000000000..946ad953f8c1811c7e7a9548f0c9af612594c239
GIT binary patch
literal 5355
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
W`?Hm7LpJ~Km-$3pU#(WfA?APe6)9x^

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/hot-sneaks/images/ui-icons_e1e463_256x240.png b/public/admin/js/osmplayer/jquery-ui/hot-sneaks/images/ui-icons_e1e463_256x240.png
new file mode 100644
index 0000000000000000000000000000000000000000..15af835f12046710c0b1ddb1ebdef115a2cae534
GIT binary patch
literal 4369
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

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/hot-sneaks/images/ui-icons_ffeb33_256x240.png b/public/admin/js/osmplayer/jquery-ui/hot-sneaks/images/ui-icons_ffeb33_256x240.png
new file mode 100644
index 0000000000000000000000000000000000000000..21ed77c197992b80025a068d1f3f8a0ce7a00e24
GIT binary patch
literal 4369
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

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/hot-sneaks/images/ui-icons_ffffff_256x240.png b/public/admin/js/osmplayer/jquery-ui/hot-sneaks/images/ui-icons_ffffff_256x240.png
new file mode 100644
index 0000000000000000000000000000000000000000..42f8f992c727ddaa617da224a522e463df690387
GIT binary patch
literal 4369
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

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/hot-sneaks/jquery-ui-1.8.18.custom.css b/public/admin/js/osmplayer/jquery-ui/hot-sneaks/jquery-ui-1.8.18.custom.css
new file mode 100644
index 00000000000..c0b56180c04
--- /dev/null
+++ b/public/admin/js/osmplayer/jquery-ui/hot-sneaks/jquery-ui-1.8.18.custom.css
@@ -0,0 +1,565 @@
+/*
+ * jQuery UI CSS Framework 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Theming/API
+ */
+
+/* Layout helpers
+----------------------------------*/
+.player-ui .ui-helper-hidden { display: none; }
+.player-ui .ui-helper-hidden-accessible { position: absolute !important; clip: rect(1px 1px 1px 1px); clip: rect(1px,1px,1px,1px); }
+.player-ui .ui-helper-reset { margin: 0; padding: 0; border: 0; outline: 0; line-height: 1.3; text-decoration: none; font-size: 100%; list-style: none; }
+.player-ui .ui-helper-clearfix:before, .player-ui .ui-helper-clearfix:after { content: ""; display: table; }
+.player-ui .ui-helper-clearfix:after { clear: both; }
+.player-ui .ui-helper-clearfix { zoom: 1; }
+.player-ui .ui-helper-zfix { width: 100%; height: 100%; top: 0; left: 0; position: absolute; opacity: 0; filter:Alpha(Opacity=0); }
+
+
+/* Interaction Cues
+----------------------------------*/
+.player-ui .ui-state-disabled { cursor: default !important; }
+
+
+/* Icons
+----------------------------------*/
+
+/* states and images */
+.player-ui .ui-icon { display: block; text-indent: -99999px; overflow: hidden; background-repeat: no-repeat; }
+
+
+/* Misc visuals
+----------------------------------*/
+
+/* Overlays */
+.player-ui .ui-widget-overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }
+
+
+/*
+ * jQuery UI CSS Framework 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Theming/API
+ *
+ * To view and modify this theme, visit http://jqueryui.com/themeroller/?ffDefault=Gill%20Sans,Arial,sans-serif&fwDefault=bold&fsDefault=1.2em&cornerRadius=4px&bgColorHeader=35414f&bgTextureHeader=09_dots_small.png&bgImgOpacityHeader=35&borderColorHeader=2c4359&fcHeader=e1e463&iconColorHeader=e1e463&bgColorContent=ffffff&bgTextureContent=01_flat.png&bgImgOpacityContent=75&borderColorContent=aaaaaa&fcContent=2c4359&iconColorContent=c02669&bgColorDefault=93c3cd&bgTextureDefault=07_diagonals_small.png&bgImgOpacityDefault=50&borderColorDefault=93c3cd&fcDefault=333333&iconColorDefault=ffffff&bgColorHover=ccd232&bgTextureHover=07_diagonals_small.png&bgImgOpacityHover=75&borderColorHover=999999&fcHover=212121&iconColorHover=454545&bgColorActive=db4865&bgTextureActive=07_diagonals_small.png&bgImgOpacityActive=40&borderColorActive=ff6b7f&fcActive=ffffff&iconColorActive=ffffff&bgColorHighlight=ffff38&bgTextureHighlight=10_dots_medium.png&bgImgOpacityHighlight=80&borderColorHighlight=b4d100&fcHighlight=363636&iconColorHighlight=88a206&bgColorError=ff3853&bgTextureError=07_diagonals_small.png&bgImgOpacityError=50&borderColorError=ff6b7f&fcError=ffffff&iconColorError=ffeb33&bgColorOverlay=f7f7ba&bgTextureOverlay=11_white_lines.png&bgImgOpacityOverlay=85&opacityOverlay=80&bgColorShadow=ba9217&bgTextureShadow=01_flat.png&bgImgOpacityShadow=75&opacityShadow=20&thicknessShadow=10px&offsetTopShadow=8px&offsetLeftShadow=8px&cornerRadiusShadow=5px
+ */
+
+
+/* Component containers
+----------------------------------*/
+.player-ui .ui-widget { font-family: Gill Sans,Arial,sans-serif; font-size: 1.2em; }
+.player-ui .ui-widget .ui-widget { font-size: 1em; }
+.player-ui .ui-widget input, .player-ui .ui-widget select, .player-ui .ui-widget textarea, .player-ui .ui-widget button { font-family: Gill Sans,Arial,sans-serif; font-size: 1em; }
+.player-ui .ui-widget-content { border: 1px solid #aaaaaa; background: #ffffff url(images/ui-bg_flat_75_ffffff_40x100.png) 50% 50% repeat-x; color: #2c4359; }
+.player-ui .ui-widget-content a { color: #2c4359; }
+.player-ui .ui-widget-header { border: 1px solid #2c4359; background: #35414f url(images/ui-bg_dots-small_35_35414f_2x2.png) 50% 50% repeat; color: #e1e463; font-weight: bold; }
+.player-ui .ui-widget-header a { color: #e1e463; }
+
+/* Interaction states
+----------------------------------*/
+.player-ui .ui-state-default, .player-ui .ui-widget-content .ui-state-default, .player-ui .ui-widget-header .ui-state-default { border: 1px solid #93c3cd; background: #93c3cd url(images/ui-bg_diagonals-small_50_93c3cd_40x40.png) 50% 50% repeat; font-weight: bold; color: #333333; }
+.player-ui .ui-state-default a, .player-ui .ui-state-default a:link, .player-ui .ui-state-default a:visited { color: #333333; text-decoration: none; }
+.player-ui .ui-state-hover, .player-ui .ui-widget-content .ui-state-hover, .player-ui .ui-widget-header .ui-state-hover, .player-ui .ui-state-focus, .player-ui .ui-widget-content .ui-state-focus, .player-ui .ui-widget-header .ui-state-focus { border: 1px solid #999999; background: #ccd232 url(images/ui-bg_diagonals-small_75_ccd232_40x40.png) 50% 50% repeat; font-weight: bold; color: #212121; }
+.player-ui .ui-state-hover a, .player-ui .ui-state-hover a:hover { color: #212121; text-decoration: none; }
+.player-ui .ui-state-active, .player-ui .ui-widget-content .ui-state-active, .player-ui .ui-widget-header .ui-state-active { border: 1px solid #ff6b7f; background: #db4865 url(images/ui-bg_diagonals-small_40_db4865_40x40.png) 50% 50% repeat; font-weight: bold; color: #ffffff; }
+.player-ui .ui-state-active a, .player-ui .ui-state-active a:link, .player-ui .ui-state-active a:visited { color: #ffffff; text-decoration: none; }
+.player-ui .ui-widget :active { outline: none; }
+
+/* Interaction Cues
+----------------------------------*/
+.player-ui .ui-state-highlight, .player-ui .ui-widget-content .ui-state-highlight, .player-ui .ui-widget-header .ui-state-highlight  {border: 1px solid #b4d100; background: #ffff38 url(images/ui-bg_dots-medium_80_ffff38_4x4.png) 50% 50% repeat; color: #363636; }
+.player-ui .ui-state-highlight a, .player-ui .ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a { color: #363636; }
+.player-ui .ui-state-error, .player-ui .ui-widget-content .ui-state-error, .player-ui .ui-widget-header .ui-state-error {border: 1px solid #ff6b7f; background: #ff3853 url(images/ui-bg_diagonals-small_50_ff3853_40x40.png) 50% 50% repeat; color: #ffffff; }
+.player-ui .ui-state-error a, .player-ui .ui-widget-content .ui-state-error a, .player-ui .ui-widget-header .ui-state-error a { color: #ffffff; }
+.player-ui .ui-state-error-text, .player-ui .ui-widget-content .ui-state-error-text, .player-ui .ui-widget-header .ui-state-error-text { color: #ffffff; }
+.player-ui .ui-priority-primary, .player-ui .ui-widget-content .ui-priority-primary, .player-ui .ui-widget-header .ui-priority-primary { font-weight: bold; }
+.player-ui .ui-priority-secondary, .player-ui .ui-widget-content .ui-priority-secondary,  .ui-widget-header .ui-priority-secondary { opacity: .7; filter:Alpha(Opacity=70); font-weight: normal; }
+.player-ui .ui-state-disabled, .player-ui .ui-widget-content .ui-state-disabled, .player-ui .ui-widget-header .ui-state-disabled { opacity: .35; filter:Alpha(Opacity=35); background-image: none; }
+
+/* Icons
+----------------------------------*/
+
+/* states and images */
+.player-ui .ui-icon { width: 16px; height: 16px; background-image: url(images/ui-icons_c02669_256x240.png); }
+.player-ui .ui-widget-content .ui-icon {background-image: url(images/ui-icons_c02669_256x240.png); }
+.player-ui .ui-widget-header .ui-icon {background-image: url(images/ui-icons_e1e463_256x240.png); }
+.player-ui .ui-state-default .ui-icon { background-image: url(images/ui-icons_ffffff_256x240.png); }
+.player-ui .ui-state-hover .ui-icon, .player-ui .ui-state-focus .ui-icon {background-image: url(images/ui-icons_454545_256x240.png); }
+.player-ui .ui-state-active .ui-icon {background-image: url(images/ui-icons_ffffff_256x240.png); }
+.player-ui .ui-state-highlight .ui-icon {background-image: url(images/ui-icons_88a206_256x240.png); }
+.player-ui .ui-state-error .ui-icon, .player-ui .ui-state-error-text .ui-icon {background-image: url(images/ui-icons_ffeb33_256x240.png); }
+
+/* positioning */
+.player-ui .ui-icon-carat-1-n { background-position: 0 0; }
+.player-ui .ui-icon-carat-1-ne { background-position: -16px 0; }
+.player-ui .ui-icon-carat-1-e { background-position: -32px 0; }
+.player-ui .ui-icon-carat-1-se { background-position: -48px 0; }
+.player-ui .ui-icon-carat-1-s { background-position: -64px 0; }
+.player-ui .ui-icon-carat-1-sw { background-position: -80px 0; }
+.player-ui .ui-icon-carat-1-w { background-position: -96px 0; }
+.player-ui .ui-icon-carat-1-nw { background-position: -112px 0; }
+.player-ui .ui-icon-carat-2-n-s { background-position: -128px 0; }
+.player-ui .ui-icon-carat-2-e-w { background-position: -144px 0; }
+.player-ui .ui-icon-triangle-1-n { background-position: 0 -16px; }
+.player-ui .ui-icon-triangle-1-ne { background-position: -16px -16px; }
+.player-ui .ui-icon-triangle-1-e { background-position: -32px -16px; }
+.player-ui .ui-icon-triangle-1-se { background-position: -48px -16px; }
+.player-ui .ui-icon-triangle-1-s { background-position: -64px -16px; }
+.player-ui .ui-icon-triangle-1-sw { background-position: -80px -16px; }
+.player-ui .ui-icon-triangle-1-w { background-position: -96px -16px; }
+.player-ui .ui-icon-triangle-1-nw { background-position: -112px -16px; }
+.player-ui .ui-icon-triangle-2-n-s { background-position: -128px -16px; }
+.player-ui .ui-icon-triangle-2-e-w { background-position: -144px -16px; }
+.player-ui .ui-icon-arrow-1-n { background-position: 0 -32px; }
+.player-ui .ui-icon-arrow-1-ne { background-position: -16px -32px; }
+.player-ui .ui-icon-arrow-1-e { background-position: -32px -32px; }
+.player-ui .ui-icon-arrow-1-se { background-position: -48px -32px; }
+.player-ui .ui-icon-arrow-1-s { background-position: -64px -32px; }
+.player-ui .ui-icon-arrow-1-sw { background-position: -80px -32px; }
+.player-ui .ui-icon-arrow-1-w { background-position: -96px -32px; }
+.player-ui .ui-icon-arrow-1-nw { background-position: -112px -32px; }
+.player-ui .ui-icon-arrow-2-n-s { background-position: -128px -32px; }
+.player-ui .ui-icon-arrow-2-ne-sw { background-position: -144px -32px; }
+.player-ui .ui-icon-arrow-2-e-w { background-position: -160px -32px; }
+.player-ui .ui-icon-arrow-2-se-nw { background-position: -176px -32px; }
+.player-ui .ui-icon-arrowstop-1-n { background-position: -192px -32px; }
+.player-ui .ui-icon-arrowstop-1-e { background-position: -208px -32px; }
+.player-ui .ui-icon-arrowstop-1-s { background-position: -224px -32px; }
+.player-ui .ui-icon-arrowstop-1-w { background-position: -240px -32px; }
+.player-ui .ui-icon-arrowthick-1-n { background-position: 0 -48px; }
+.player-ui .ui-icon-arrowthick-1-ne { background-position: -16px -48px; }
+.player-ui .ui-icon-arrowthick-1-e { background-position: -32px -48px; }
+.player-ui .ui-icon-arrowthick-1-se { background-position: -48px -48px; }
+.player-ui .ui-icon-arrowthick-1-s { background-position: -64px -48px; }
+.player-ui .ui-icon-arrowthick-1-sw { background-position: -80px -48px; }
+.player-ui .ui-icon-arrowthick-1-w { background-position: -96px -48px; }
+.player-ui .ui-icon-arrowthick-1-nw { background-position: -112px -48px; }
+.player-ui .ui-icon-arrowthick-2-n-s { background-position: -128px -48px; }
+.player-ui .ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px; }
+.player-ui .ui-icon-arrowthick-2-e-w { background-position: -160px -48px; }
+.player-ui .ui-icon-arrowthick-2-se-nw { background-position: -176px -48px; }
+.player-ui .ui-icon-arrowthickstop-1-n { background-position: -192px -48px; }
+.player-ui .ui-icon-arrowthickstop-1-e { background-position: -208px -48px; }
+.player-ui .ui-icon-arrowthickstop-1-s { background-position: -224px -48px; }
+.player-ui .ui-icon-arrowthickstop-1-w { background-position: -240px -48px; }
+.player-ui .ui-icon-arrowreturnthick-1-w { background-position: 0 -64px; }
+.player-ui .ui-icon-arrowreturnthick-1-n { background-position: -16px -64px; }
+.player-ui .ui-icon-arrowreturnthick-1-e { background-position: -32px -64px; }
+.player-ui .ui-icon-arrowreturnthick-1-s { background-position: -48px -64px; }
+.player-ui .ui-icon-arrowreturn-1-w { background-position: -64px -64px; }
+.player-ui .ui-icon-arrowreturn-1-n { background-position: -80px -64px; }
+.player-ui .ui-icon-arrowreturn-1-e { background-position: -96px -64px; }
+.player-ui .ui-icon-arrowreturn-1-s { background-position: -112px -64px; }
+.player-ui .ui-icon-arrowrefresh-1-w { background-position: -128px -64px; }
+.player-ui .ui-icon-arrowrefresh-1-n { background-position: -144px -64px; }
+.player-ui .ui-icon-arrowrefresh-1-e { background-position: -160px -64px; }
+.player-ui .ui-icon-arrowrefresh-1-s { background-position: -176px -64px; }
+.player-ui .ui-icon-arrow-4 { background-position: 0 -80px; }
+.player-ui .ui-icon-arrow-4-diag { background-position: -16px -80px; }
+.player-ui .ui-icon-extlink { background-position: -32px -80px; }
+.player-ui .ui-icon-newwin { background-position: -48px -80px; }
+.player-ui .ui-icon-refresh { background-position: -64px -80px; }
+.player-ui .ui-icon-shuffle { background-position: -80px -80px; }
+.player-ui .ui-icon-transfer-e-w { background-position: -96px -80px; }
+.player-ui .ui-icon-transferthick-e-w { background-position: -112px -80px; }
+.player-ui .ui-icon-folder-collapsed { background-position: 0 -96px; }
+.player-ui .ui-icon-folder-open { background-position: -16px -96px; }
+.player-ui .ui-icon-document { background-position: -32px -96px; }
+.player-ui .ui-icon-document-b { background-position: -48px -96px; }
+.player-ui .ui-icon-note { background-position: -64px -96px; }
+.player-ui .ui-icon-mail-closed { background-position: -80px -96px; }
+.player-ui .ui-icon-mail-open { background-position: -96px -96px; }
+.player-ui .ui-icon-suitcase { background-position: -112px -96px; }
+.player-ui .ui-icon-comment { background-position: -128px -96px; }
+.player-ui .ui-icon-person { background-position: -144px -96px; }
+.player-ui .ui-icon-print { background-position: -160px -96px; }
+.player-ui .ui-icon-trash { background-position: -176px -96px; }
+.player-ui .ui-icon-locked { background-position: -192px -96px; }
+.player-ui .ui-icon-unlocked { background-position: -208px -96px; }
+.player-ui .ui-icon-bookmark { background-position: -224px -96px; }
+.player-ui .ui-icon-tag { background-position: -240px -96px; }
+.player-ui .ui-icon-home { background-position: 0 -112px; }
+.player-ui .ui-icon-flag { background-position: -16px -112px; }
+.player-ui .ui-icon-calendar { background-position: -32px -112px; }
+.player-ui .ui-icon-cart { background-position: -48px -112px; }
+.player-ui .ui-icon-pencil { background-position: -64px -112px; }
+.player-ui .ui-icon-clock { background-position: -80px -112px; }
+.player-ui .ui-icon-disk { background-position: -96px -112px; }
+.player-ui .ui-icon-calculator { background-position: -112px -112px; }
+.player-ui .ui-icon-zoomin { background-position: -128px -112px; }
+.player-ui .ui-icon-zoomout { background-position: -144px -112px; }
+.player-ui .ui-icon-search { background-position: -160px -112px; }
+.player-ui .ui-icon-wrench { background-position: -176px -112px; }
+.player-ui .ui-icon-gear { background-position: -192px -112px; }
+.player-ui .ui-icon-heart { background-position: -208px -112px; }
+.player-ui .ui-icon-star { background-position: -224px -112px; }
+.player-ui .ui-icon-link { background-position: -240px -112px; }
+.player-ui .ui-icon-cancel { background-position: 0 -128px; }
+.player-ui .ui-icon-plus { background-position: -16px -128px; }
+.player-ui .ui-icon-plusthick { background-position: -32px -128px; }
+.player-ui .ui-icon-minus { background-position: -48px -128px; }
+.player-ui .ui-icon-minusthick { background-position: -64px -128px; }
+.player-ui .ui-icon-close { background-position: -80px -128px; }
+.player-ui .ui-icon-closethick { background-position: -96px -128px; }
+.player-ui .ui-icon-key { background-position: -112px -128px; }
+.player-ui .ui-icon-lightbulb { background-position: -128px -128px; }
+.player-ui .ui-icon-scissors { background-position: -144px -128px; }
+.player-ui .ui-icon-clipboard { background-position: -160px -128px; }
+.player-ui .ui-icon-copy { background-position: -176px -128px; }
+.player-ui .ui-icon-contact { background-position: -192px -128px; }
+.player-ui .ui-icon-image { background-position: -208px -128px; }
+.player-ui .ui-icon-video { background-position: -224px -128px; }
+.player-ui .ui-icon-script { background-position: -240px -128px; }
+.player-ui .ui-icon-alert { background-position: 0 -144px; }
+.player-ui .ui-icon-info { background-position: -16px -144px; }
+.player-ui .ui-icon-notice { background-position: -32px -144px; }
+.player-ui .ui-icon-help { background-position: -48px -144px; }
+.player-ui .ui-icon-check { background-position: -64px -144px; }
+.player-ui .ui-icon-bullet { background-position: -80px -144px; }
+.player-ui .ui-icon-radio-off { background-position: -96px -144px; }
+.player-ui .ui-icon-radio-on { background-position: -112px -144px; }
+.player-ui .ui-icon-pin-w { background-position: -128px -144px; }
+.player-ui .ui-icon-pin-s { background-position: -144px -144px; }
+.player-ui .ui-icon-play { background-position: 0 -160px; }
+.player-ui .ui-icon-pause { background-position: -16px -160px; }
+.player-ui .ui-icon-seek-next { background-position: -32px -160px; }
+.player-ui .ui-icon-seek-prev { background-position: -48px -160px; }
+.player-ui .ui-icon-seek-end { background-position: -64px -160px; }
+.player-ui .ui-icon-seek-start { background-position: -80px -160px; }
+/* ui-icon-seek-first is deprecated, use ui-icon-seek-start instead */
+.player-ui .ui-icon-seek-first { background-position: -80px -160px; }
+.player-ui .ui-icon-stop { background-position: -96px -160px; }
+.player-ui .ui-icon-eject { background-position: -112px -160px; }
+.player-ui .ui-icon-volume-off { background-position: -128px -160px; }
+.player-ui .ui-icon-volume-on { background-position: -144px -160px; }
+.player-ui .ui-icon-power { background-position: 0 -176px; }
+.player-ui .ui-icon-signal-diag { background-position: -16px -176px; }
+.player-ui .ui-icon-signal { background-position: -32px -176px; }
+.player-ui .ui-icon-battery-0 { background-position: -48px -176px; }
+.player-ui .ui-icon-battery-1 { background-position: -64px -176px; }
+.player-ui .ui-icon-battery-2 { background-position: -80px -176px; }
+.player-ui .ui-icon-battery-3 { background-position: -96px -176px; }
+.player-ui .ui-icon-circle-plus { background-position: 0 -192px; }
+.player-ui .ui-icon-circle-minus { background-position: -16px -192px; }
+.player-ui .ui-icon-circle-close { background-position: -32px -192px; }
+.player-ui .ui-icon-circle-triangle-e { background-position: -48px -192px; }
+.player-ui .ui-icon-circle-triangle-s { background-position: -64px -192px; }
+.player-ui .ui-icon-circle-triangle-w { background-position: -80px -192px; }
+.player-ui .ui-icon-circle-triangle-n { background-position: -96px -192px; }
+.player-ui .ui-icon-circle-arrow-e { background-position: -112px -192px; }
+.player-ui .ui-icon-circle-arrow-s { background-position: -128px -192px; }
+.player-ui .ui-icon-circle-arrow-w { background-position: -144px -192px; }
+.player-ui .ui-icon-circle-arrow-n { background-position: -160px -192px; }
+.player-ui .ui-icon-circle-zoomin { background-position: -176px -192px; }
+.player-ui .ui-icon-circle-zoomout { background-position: -192px -192px; }
+.player-ui .ui-icon-circle-check { background-position: -208px -192px; }
+.player-ui .ui-icon-circlesmall-plus { background-position: 0 -208px; }
+.player-ui .ui-icon-circlesmall-minus { background-position: -16px -208px; }
+.player-ui .ui-icon-circlesmall-close { background-position: -32px -208px; }
+.player-ui .ui-icon-squaresmall-plus { background-position: -48px -208px; }
+.player-ui .ui-icon-squaresmall-minus { background-position: -64px -208px; }
+.player-ui .ui-icon-squaresmall-close { background-position: -80px -208px; }
+.player-ui .ui-icon-grip-dotted-vertical { background-position: 0 -224px; }
+.player-ui .ui-icon-grip-dotted-horizontal { background-position: -16px -224px; }
+.player-ui .ui-icon-grip-solid-vertical { background-position: -32px -224px; }
+.player-ui .ui-icon-grip-solid-horizontal { background-position: -48px -224px; }
+.player-ui .ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; }
+.player-ui .ui-icon-grip-diagonal-se { background-position: -80px -224px; }
+
+
+/* Misc visuals
+----------------------------------*/
+
+/* Corner radius */
+.player-ui .ui-corner-all, .player-ui .ui-corner-top, .player-ui .ui-corner-left, .player-ui .ui-corner-tl { -moz-border-radius-topleft: 4px; -webkit-border-top-left-radius: 4px; -khtml-border-top-left-radius: 4px; border-top-left-radius: 4px; }
+.player-ui .ui-corner-all, .player-ui .ui-corner-top, .player-ui .ui-corner-right, .player-ui .ui-corner-tr { -moz-border-radius-topright: 4px; -webkit-border-top-right-radius: 4px; -khtml-border-top-right-radius: 4px; border-top-right-radius: 4px; }
+.player-ui .ui-corner-all, .player-ui .ui-corner-bottom, .player-ui .ui-corner-left, .player-ui .ui-corner-bl { -moz-border-radius-bottomleft: 4px; -webkit-border-bottom-left-radius: 4px; -khtml-border-bottom-left-radius: 4px; border-bottom-left-radius: 4px; }
+.player-ui .ui-corner-all, .player-ui .ui-corner-bottom, .player-ui .ui-corner-right, .player-ui .ui-corner-br { -moz-border-radius-bottomright: 4px; -webkit-border-bottom-right-radius: 4px; -khtml-border-bottom-right-radius: 4px; border-bottom-right-radius: 4px; }
+
+/* Overlays */
+.player-ui .ui-widget-overlay { background: #f7f7ba url(images/ui-bg_white-lines_85_f7f7ba_40x100.png) 50% 50% repeat; opacity: .80;filter:Alpha(Opacity=80); }
+.player-ui .ui-widget-shadow { margin: 8px 0 0 8px; padding: 10px; background: #ba9217 url(images/ui-bg_flat_75_ba9217_40x100.png) 50% 50% repeat-x; opacity: .20;filter:Alpha(Opacity=20); -moz-border-radius: 5px; -khtml-border-radius: 5px; -webkit-border-radius: 5px; border-radius: 5px; }/*
+ * jQuery UI Resizable 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Resizable#theming
+ */
+.player-ui .ui-resizable { position: relative;}
+.player-ui .ui-resizable-handle { position: absolute;font-size: 0.1px;z-index: 99999; display: block; }
+.player-ui .ui-resizable-disabled .ui-resizable-handle, .player-ui .ui-resizable-autohide .ui-resizable-handle { display: none; }
+.player-ui .ui-resizable-n { cursor: n-resize; height: 7px; width: 100%; top: -5px; left: 0; }
+.player-ui .ui-resizable-s { cursor: s-resize; height: 7px; width: 100%; bottom: -5px; left: 0; }
+.player-ui .ui-resizable-e { cursor: e-resize; width: 7px; right: -5px; top: 0; height: 100%; }
+.player-ui .ui-resizable-w { cursor: w-resize; width: 7px; left: -5px; top: 0; height: 100%; }
+.player-ui .ui-resizable-se { cursor: se-resize; width: 12px; height: 12px; right: 1px; bottom: 1px; }
+.player-ui .ui-resizable-sw { cursor: sw-resize; width: 9px; height: 9px; left: -5px; bottom: -5px; }
+.player-ui .ui-resizable-nw { cursor: nw-resize; width: 9px; height: 9px; left: -5px; top: -5px; }
+.player-ui .ui-resizable-ne { cursor: ne-resize; width: 9px; height: 9px; right: -5px; top: -5px;}/*
+ * jQuery UI Selectable 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Selectable#theming
+ */
+.player-ui .ui-selectable-helper { position: absolute; z-index: 100; border:1px dotted black; }
+/*
+ * jQuery UI Accordion 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Accordion#theming
+ */
+/* IE/Win - Fix animation bug - #4615 */
+.player-ui .ui-accordion { width: 100%; }
+.player-ui .ui-accordion .ui-accordion-header { cursor: pointer; position: relative; margin-top: 1px; zoom: 1; }
+.player-ui .ui-accordion .ui-accordion-li-fix { display: inline; }
+.player-ui .ui-accordion .ui-accordion-header-active { border-bottom: 0 !important; }
+.player-ui .ui-accordion .ui-accordion-header a { display: block; font-size: 1em; padding: .5em .5em .5em .7em; }
+.player-ui .ui-accordion-icons .ui-accordion-header a { padding-left: 2.2em; }
+.player-ui .ui-accordion .ui-accordion-header .ui-icon { position: absolute; left: .5em; top: 50%; margin-top: -8px; }
+.player-ui .ui-accordion .ui-accordion-content { padding: 1em 2.2em; border-top: 0; margin-top: -2px; position: relative; top: 1px; margin-bottom: 2px; overflow: auto; display: none; zoom: 1; }
+.player-ui .ui-accordion .ui-accordion-content-active { display: block; }
+/*
+ * jQuery UI Autocomplete 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Autocomplete#theming
+ */
+.player-ui .ui-autocomplete { position: absolute; cursor: default; }	
+
+/* workarounds */
+* html .ui-autocomplete { width:1px; } /* without this, the menu expands to 100% in IE6 */
+
+/*
+ * jQuery UI Menu 1.8.18
+ *
+ * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Menu#theming
+ */
+.player-ui .ui-menu {
+	list-style:none;
+	padding: 2px;
+	margin: 0;
+	display:block;
+	float: left;
+}
+.player-ui .ui-menu .ui-menu {
+	margin-top: -3px;
+}
+.player-ui .ui-menu .ui-menu-item {
+	margin:0;
+	padding: 0;
+	zoom: 1;
+	float: left;
+	clear: left;
+	width: 100%;
+}
+.player-ui .ui-menu .ui-menu-item a {
+	text-decoration:none;
+	display:block;
+	padding:.2em .4em;
+	line-height:1.5;
+	zoom:1;
+}
+.player-ui .ui-menu .ui-menu-item a.ui-state-hover,
+.player-ui .ui-menu .ui-menu-item a.ui-state-active {
+	font-weight: normal;
+	margin: -1px;
+}
+/*
+ * jQuery UI Button 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Button#theming
+ */
+.player-ui .ui-button { display: inline-block; position: relative; padding: 0; margin-right: .1em; text-decoration: none !important; cursor: pointer; text-align: center; zoom: 1; overflow: hidden; *overflow: visible; } /* the overflow property removes extra width in IE */
+.player-ui .ui-button-icon-only { width: 2.2em; } /* to make room for the icon, a width needs to be set here */
+button.ui-button-icon-only { width: 2.4em; } /* button elements seem to need a little more width */
+.player-ui .ui-button-icons-only { width: 3.4em; } 
+button.ui-button-icons-only { width: 3.7em; } 
+
+/*button text element */
+.player-ui .ui-button .ui-button-text { display: block; line-height: 1.4;  }
+.player-ui .ui-button-text-only .ui-button-text { padding: .4em 1em; }
+.player-ui .ui-button-icon-only .ui-button-text, .player-ui .ui-button-icons-only .ui-button-text { padding: .4em; text-indent: -9999999px; }
+.player-ui .ui-button-text-icon-primary .ui-button-text, .player-ui .ui-button-text-icons .ui-button-text { padding: .4em 1em .4em 2.1em; }
+.player-ui .ui-button-text-icon-secondary .ui-button-text, .player-ui .ui-button-text-icons .ui-button-text { padding: .4em 2.1em .4em 1em; }
+.player-ui .ui-button-text-icons .ui-button-text { padding-left: 2.1em; padding-right: 2.1em; }
+/* no icon support for input elements, provide padding by default */
+input.ui-button { padding: .4em 1em; }
+
+/*button icon element(s) */
+.player-ui .ui-button-icon-only .ui-icon, .player-ui .ui-button-text-icon-primary .ui-icon, .player-ui .ui-button-text-icon-secondary .ui-icon, .player-ui .ui-button-text-icons .ui-icon, .player-ui .ui-button-icons-only .ui-icon { position: absolute; top: 50%; margin-top: -8px; }
+.player-ui .ui-button-icon-only .ui-icon { left: 50%; margin-left: -8px; }
+.player-ui .ui-button-text-icon-primary .ui-button-icon-primary, .player-ui .ui-button-text-icons .ui-button-icon-primary, .player-ui .ui-button-icons-only .ui-button-icon-primary { left: .5em; }
+.player-ui .ui-button-text-icon-secondary .ui-button-icon-secondary, .player-ui .ui-button-text-icons .ui-button-icon-secondary, .player-ui .ui-button-icons-only .ui-button-icon-secondary { right: .5em; }
+.player-ui .ui-button-text-icons .ui-button-icon-secondary, .player-ui .ui-button-icons-only .ui-button-icon-secondary { right: .5em; }
+
+/*button sets*/
+.player-ui .ui-buttonset { margin-right: 7px; }
+.player-ui .ui-buttonset .ui-button { margin-left: 0; margin-right: -.3em; }
+
+/* workarounds */
+button.ui-button::-moz-focus-inner { border: 0; padding: 0; } /* reset extra padding in Firefox */
+/*
+ * jQuery UI Dialog 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Dialog#theming
+ */
+.player-ui .ui-dialog { position: absolute; padding: .2em; width: 300px; overflow: hidden; }
+.player-ui .ui-dialog .ui-dialog-titlebar { padding: .4em 1em; position: relative;  }
+.player-ui .ui-dialog .ui-dialog-title { float: left; margin: .1em 16px .1em 0; } 
+.player-ui .ui-dialog .ui-dialog-titlebar-close { position: absolute; right: .3em; top: 50%; width: 19px; margin: -10px 0 0 0; padding: 1px; height: 18px; }
+.player-ui .ui-dialog .ui-dialog-titlebar-close span { display: block; margin: 1px; }
+.player-ui .ui-dialog .ui-dialog-titlebar-close:hover, .player-ui .ui-dialog .ui-dialog-titlebar-close:focus { padding: 0; }
+.player-ui .ui-dialog .ui-dialog-content { position: relative; border: 0; padding: .5em 1em; background: none; overflow: auto; zoom: 1; }
+.player-ui .ui-dialog .ui-dialog-buttonpane { text-align: left; border-width: 1px 0 0 0; background-image: none; margin: .5em 0 0 0; padding: .3em 1em .5em .4em; }
+.player-ui .ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset { float: right; }
+.player-ui .ui-dialog .ui-dialog-buttonpane button { margin: .5em .4em .5em 0; cursor: pointer; }
+.player-ui .ui-dialog .ui-resizable-se { width: 14px; height: 14px; right: 3px; bottom: 3px; }
+.player-ui .ui-draggable .ui-dialog-titlebar { cursor: move; }
+/*
+ * jQuery UI Slider 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Slider#theming
+ */
+.player-ui .ui-slider { position: relative; text-align: left; }
+.player-ui .ui-slider .ui-slider-handle { position: absolute; z-index: 2; width: 1.2em; height: 1.2em; cursor: default; }
+.player-ui .ui-slider .ui-slider-range { position: absolute; z-index: 1; font-size: .7em; display: block; border: 0; background-position: 0 0; }
+
+.player-ui .ui-slider-horizontal { height: .8em; }
+.player-ui .ui-slider-horizontal .ui-slider-handle { top: -.3em; margin-left: -.6em; }
+.player-ui .ui-slider-horizontal .ui-slider-range { top: 0; height: 100%; }
+.player-ui .ui-slider-horizontal .ui-slider-range-min { left: 0; }
+.player-ui .ui-slider-horizontal .ui-slider-range-max { right: 0; }
+
+.player-ui .ui-slider-vertical { width: .8em; height: 100px; }
+.player-ui .ui-slider-vertical .ui-slider-handle { left: -.3em; margin-left: 0; margin-bottom: -.6em; }
+.player-ui .ui-slider-vertical .ui-slider-range { left: 0; width: 100%; }
+.player-ui .ui-slider-vertical .ui-slider-range-min { bottom: 0; }
+.player-ui .ui-slider-vertical .ui-slider-range-max { top: 0; }/*
+ * jQuery UI Tabs 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Tabs#theming
+ */
+.player-ui .ui-tabs { position: relative; padding: .2em; zoom: 1; } /* position: relative prevents IE scroll bug (element with position: relative inside container with overflow: auto appear as "fixed") */
+.player-ui .ui-tabs .ui-tabs-nav { margin: 0; padding: .2em .2em 0; }
+.player-ui .ui-tabs .ui-tabs-nav li { list-style: none; float: left; position: relative; top: 1px; margin: 0 .2em 1px 0; border-bottom: 0 !important; padding: 0; white-space: nowrap; }
+.player-ui .ui-tabs .ui-tabs-nav li a { float: left; padding: .5em 1em; text-decoration: none; }
+.player-ui .ui-tabs .ui-tabs-nav li.ui-tabs-selected { margin-bottom: 0; padding-bottom: 1px; }
+.player-ui .ui-tabs .ui-tabs-nav li.ui-tabs-selected a, .player-ui .ui-tabs .ui-tabs-nav li.ui-state-disabled a, .player-ui .ui-tabs .ui-tabs-nav li.ui-state-processing a { cursor: text; }
+.player-ui .ui-tabs .ui-tabs-nav li a, .player-ui .ui-tabs.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-selected a { cursor: pointer; } /* first selector in group seems obsolete, but required to overcome bug in Opera applying cursor: text overall if defined elsewhere... */
+.player-ui .ui-tabs .ui-tabs-panel { display: block; border-width: 0; padding: 1em 1.4em; background: none; }
+.player-ui .ui-tabs .ui-tabs-hide { display: none !important; }
+/*
+ * jQuery UI Datepicker 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Datepicker#theming
+ */
+.player-ui .ui-datepicker { width: 17em; padding: .2em .2em 0; display: none; }
+.player-ui .ui-datepicker .ui-datepicker-header { position:relative; padding:.2em 0; }
+.player-ui .ui-datepicker .ui-datepicker-prev, .player-ui .ui-datepicker .ui-datepicker-next { position:absolute; top: 2px; width: 1.8em; height: 1.8em; }
+.player-ui .ui-datepicker .ui-datepicker-prev-hover, .player-ui .ui-datepicker .ui-datepicker-next-hover { top: 1px; }
+.player-ui .ui-datepicker .ui-datepicker-prev { left:2px; }
+.player-ui .ui-datepicker .ui-datepicker-next { right:2px; }
+.player-ui .ui-datepicker .ui-datepicker-prev-hover { left:1px; }
+.player-ui .ui-datepicker .ui-datepicker-next-hover { right:1px; }
+.player-ui .ui-datepicker .ui-datepicker-prev span, .player-ui .ui-datepicker .ui-datepicker-next span { display: block; position: absolute; left: 50%; margin-left: -8px; top: 50%; margin-top: -8px;  }
+.player-ui .ui-datepicker .ui-datepicker-title { margin: 0 2.3em; line-height: 1.8em; text-align: center; }
+.player-ui .ui-datepicker .ui-datepicker-title select { font-size:1em; margin:1px 0; }
+.player-ui .ui-datepicker select.ui-datepicker-month-year {width: 100%;}
+.player-ui .ui-datepicker select.ui-datepicker-month, 
+.player-ui .ui-datepicker select.ui-datepicker-year { width: 49%;}
+.player-ui .ui-datepicker table {width: 100%; font-size: .9em; border-collapse: collapse; margin:0 0 .4em; }
+.player-ui .ui-datepicker th { padding: .7em .3em; text-align: center; font-weight: bold; border: 0;  }
+.player-ui .ui-datepicker td { border: 0; padding: 1px; }
+.player-ui .ui-datepicker td span, .player-ui .ui-datepicker td a { display: block; padding: .2em; text-align: right; text-decoration: none; }
+.player-ui .ui-datepicker .ui-datepicker-buttonpane { background-image: none; margin: .7em 0 0 0; padding:0 .2em; border-left: 0; border-right: 0; border-bottom: 0; }
+.player-ui .ui-datepicker .ui-datepicker-buttonpane button { float: right; margin: .5em .2em .4em; cursor: pointer; padding: .2em .6em .3em .6em; width:auto; overflow:visible; }
+.player-ui .ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current { float:left; }
+
+/* with multiple calendars */
+.player-ui .ui-datepicker.ui-datepicker-multi { width:auto; }
+.player-ui .ui-datepicker-multi .ui-datepicker-group { float:left; }
+.player-ui .ui-datepicker-multi .ui-datepicker-group table { width:95%; margin:0 auto .4em; }
+.player-ui .ui-datepicker-multi-2 .ui-datepicker-group { width:50%; }
+.player-ui .ui-datepicker-multi-3 .ui-datepicker-group { width:33.3%; }
+.player-ui .ui-datepicker-multi-4 .ui-datepicker-group { width:25%; }
+.player-ui .ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header { border-left-width:0; }
+.player-ui .ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header { border-left-width:0; }
+.player-ui .ui-datepicker-multi .ui-datepicker-buttonpane { clear:left; }
+.player-ui .ui-datepicker-row-break { clear:both; width:100%; font-size:0em; }
+
+/* RTL support */
+.player-ui .ui-datepicker-rtl { direction: rtl; }
+.player-ui .ui-datepicker-rtl .ui-datepicker-prev { right: 2px; left: auto; }
+.player-ui .ui-datepicker-rtl .ui-datepicker-next { left: 2px; right: auto; }
+.player-ui .ui-datepicker-rtl .ui-datepicker-prev:hover { right: 1px; left: auto; }
+.player-ui .ui-datepicker-rtl .ui-datepicker-next:hover { left: 1px; right: auto; }
+.player-ui .ui-datepicker-rtl .ui-datepicker-buttonpane { clear:right; }
+.player-ui .ui-datepicker-rtl .ui-datepicker-buttonpane button { float: left; }
+.player-ui .ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current { float:right; }
+.player-ui .ui-datepicker-rtl .ui-datepicker-group { float:right; }
+.player-ui .ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header { border-right-width:0; border-left-width:1px; }
+.player-ui .ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header { border-right-width:0; border-left-width:1px; }
+
+/* IE6 IFRAME FIX (taken from datepicker 1.5.3 */
+.player-ui .ui-datepicker-cover {
+    display: none; /*sorry for IE5*/
+    display/**/: block; /*sorry for IE5*/
+    position: absolute; /*must have*/
+    z-index: -1; /*must have*/
+    filter: mask(); /*must have*/
+    top: -4px; /*must have*/
+    left: -4px; /*must have*/
+    width: 200px; /*must have*/
+    height: 200px; /*must have*/
+}/*
+ * jQuery UI Progressbar 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Progressbar#theming
+ */
+.player-ui .ui-progressbar { height:2em; text-align: left; overflow: hidden; }
+.player-ui .ui-progressbar .ui-progressbar-value {margin: -1px; height:100%; }
\ No newline at end of file
diff --git a/public/admin/js/osmplayer/jquery-ui/mint-choc/images/ui-bg_flat_0_aaaaaa_40x100.png b/public/admin/js/osmplayer/jquery-ui/mint-choc/images/ui-bg_flat_0_aaaaaa_40x100.png
new file mode 100644
index 0000000000000000000000000000000000000000..5b5dab2ab7b1c50dea9cfe73dc5a269a92d2d4b4
GIT binary patch
literal 180
zcmeAS@N?(olHy`uVBq!ia0vp^8bF-F!3HG1q!d*FscKIb$B>N1x91EQ4=4yQ7#`R^
z$vje}<irI&an_s0pV!D+$FtuP31JO&3=I&aE+u|=5A)Hv$*VMh&S3C#^>bP0l+XkK
DSH>_4

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/mint-choc/images/ui-bg_glass_15_5f391b_1x400.png b/public/admin/js/osmplayer/jquery-ui/mint-choc/images/ui-bg_glass_15_5f391b_1x400.png
new file mode 100644
index 0000000000000000000000000000000000000000..427c52fc5c771b54a96bc7e9c4e5279290c04e9e
GIT binary patch
literal 168
zcmeAS@N?(olHy`uVBq!ia0vp^j6gJjgAGVZ#9R3S1@b*z978O6-(ES*+hV}e^6;em
zoDV{!7fyWJ^jBSD_1*)mLIRFl)89YnPER@ctL~bt=PJjOo?jm8=zKHR55M~Cf4tz~
zEgbB=rt7_KZsJhn;tsrUQ#k0Z!(sFM>60ci)Z5KG=kwsNCA0pMJHnIp#T;P_<rG`_
TGUlW(&}s%xS3j3^P6<r_Xplh*

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/mint-choc/images/ui-bg_gloss-wave_20_1c160d_500x100.png b/public/admin/js/osmplayer/jquery-ui/mint-choc/images/ui-bg_gloss-wave_20_1c160d_500x100.png
new file mode 100644
index 0000000000000000000000000000000000000000..dc2d8bce64d47e0ae7648a7f207928300f9e2634
GIT binary patch
literal 2411
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
Lo(G@o54!eW9v7(e

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/mint-choc/images/ui-bg_gloss-wave_25_453326_500x100.png b/public/admin/js/osmplayer/jquery-ui/mint-choc/images/ui-bg_gloss-wave_25_453326_500x100.png
new file mode 100644
index 0000000000000000000000000000000000000000..08a4957c04b03b9a91b7019b40545d56d3764300
GIT binary patch
literal 3192
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

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/mint-choc/images/ui-bg_gloss-wave_30_44372c_500x100.png b/public/admin/js/osmplayer/jquery-ui/mint-choc/images/ui-bg_gloss-wave_30_44372c_500x100.png
new file mode 100644
index 0000000000000000000000000000000000000000..81bebee8234c4d3a5ac621d99525e52330b553e4
GIT binary patch
literal 4389
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

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/mint-choc/images/ui-bg_highlight-soft_20_201913_1x100.png b/public/admin/js/osmplayer/jquery-ui/mint-choc/images/ui-bg_highlight-soft_20_201913_1x100.png
new file mode 100644
index 0000000000000000000000000000000000000000..63e76095e8df360c9f2b83bdaa09e4f695bbd448
GIT binary patch
literal 118
zcmeAS@N?(olHy`uVBq!ia0vp^j6j^i!3HGVb)pi0l&z<WV~E7mtNn&t3<^BV{Ps^C
zJ^6os>JE|Ia>tmyDa|cL?&ZusIJPmrQPJl1G+8}QW}%Xg$eev!KK{9XI^z2k2cZ?!
S;wyj#F?hQAxvX<aXaWE;Iwl?f

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/mint-choc/images/ui-bg_highlight-soft_20_619226_1x100.png b/public/admin/js/osmplayer/jquery-ui/mint-choc/images/ui-bg_highlight-soft_20_619226_1x100.png
new file mode 100644
index 0000000000000000000000000000000000000000..1794e4e71b6173715adcafcf48706d994d80b15c
GIT binary patch
literal 125
zcmeAS@N?(olHy`uVBq!ia0vp^j6j^i!3HGVb)pi0l#8c}V~E7mtNo5#2Ml-)x7crU
zf9v=+^NRB>zB0L<*q#jv2j@ICV5sL(RB{y06uj+q>egHr)eizXS%Knr!+#zBUVXop
Z^M;B3{UbgMT0rv{JYD@<);T3K0RV-fDF^@n

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/mint-choc/images/ui-bg_inset-soft_10_201913_1x100.png b/public/admin/js/osmplayer/jquery-ui/mint-choc/images/ui-bg_inset-soft_10_201913_1x100.png
new file mode 100644
index 0000000000000000000000000000000000000000..7003624a85b062b307add5f321794aa5afea76bf
GIT binary patch
literal 106
zcmeAS@N?(olHy`uVBq!ia0vp^j6j^i!3HGVb)pi0l%c1KV~E7m<bVkx|IQydaNvLe
z52u@(TZ&lI=>sQD95`~~0LS!%0|D)!?5ip>)+jnNFk}fcSx>k<D+Q>T!PC{xWt~$(
F69B=eAc6n@

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/mint-choc/images/ui-icons_222222_256x240.png b/public/admin/js/osmplayer/jquery-ui/mint-choc/images/ui-icons_222222_256x240.png
new file mode 100644
index 0000000000000000000000000000000000000000..b273ff111d219c9b9a8b96d57683d0075fb7871a
GIT binary patch
literal 4369
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

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/mint-choc/images/ui-icons_9bcc60_256x240.png b/public/admin/js/osmplayer/jquery-ui/mint-choc/images/ui-icons_9bcc60_256x240.png
new file mode 100644
index 0000000000000000000000000000000000000000..ad508c9071eb6e7172ddfffbdd75a0c5b52396e1
GIT binary patch
literal 4369
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

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/mint-choc/images/ui-icons_add978_256x240.png b/public/admin/js/osmplayer/jquery-ui/mint-choc/images/ui-icons_add978_256x240.png
new file mode 100644
index 0000000000000000000000000000000000000000..6c309b2de680092e3bb82bc28003652dcf41e89e
GIT binary patch
literal 5355
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
X_Gc^EhHU=dFY}4IzFMt{L(KmGPi$W6

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/mint-choc/images/ui-icons_e3ddc9_256x240.png b/public/admin/js/osmplayer/jquery-ui/mint-choc/images/ui-icons_e3ddc9_256x240.png
new file mode 100644
index 0000000000000000000000000000000000000000..51308e28fca0fce5b9b644cff53210f866b9cc88
GIT binary patch
literal 4369
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

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/mint-choc/images/ui-icons_f1fd86_256x240.png b/public/admin/js/osmplayer/jquery-ui/mint-choc/images/ui-icons_f1fd86_256x240.png
new file mode 100644
index 0000000000000000000000000000000000000000..06ce08f1250b23f4910e60cab41665dcf2a0a019
GIT binary patch
literal 5355
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
Yo+k&wiZ>za|M$y$sA;HCt>zT_KaI147XSbN

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/mint-choc/images/ui-icons_ffffff_256x240.png b/public/admin/js/osmplayer/jquery-ui/mint-choc/images/ui-icons_ffffff_256x240.png
new file mode 100644
index 0000000000000000000000000000000000000000..42f8f992c727ddaa617da224a522e463df690387
GIT binary patch
literal 4369
zcmd^?`8O2)_s3^p#%>t<I$5%B*(%$RifAlJDl()+*_W)tj4atJl`V!4ku}Mhk*o=k
zjAh1XB8{;#7~8k^`}6($6`#j>oqJ#RmwV2==ic*rz7lOw=eaq=H~;_ux21)-Jpcgw
zdj+hrf&W^f<%Qk9Zpqf#;q3n5{{POY;f!wmTR1An9(4&I0z1LNX50QSTV2M%4|y9c
z#{ZQIVJKu~aY5?ZaZP*GIGqGs=e@q6o|EPhZB3CC?@LnORK8O@z{{<0KtSn5?#~OW
zy=L;x8T&*%xqElS;s5~Pjk7d2bqIaA<dW(>)xZbovnZd7eX17WNxx=w`p(8vulwUZ
zl{so}MuRNJx5!8S5G;$o2?BApPHt+)!^#*Ww`?rcVE}mcyuY`X2o|uVUyI9o1t11O
zemGWR?;aD#0$vJhiPhv~0iXS#iLq!>Qd<?G%nJo^-p4Na9!-~9`SCtu5pb5a9~>$`
zU{}<|Vb9Md>$4TMbL7C3GP#r;4Wc$}Z;^j;n}yc!E3d;<jpV}POQ7Zg#E;Ne*b?}a
zl*C&E6VP>`wry$!JkmJP0%(tIh!!TET8=<Gd-5-}J&kJ?em(xME6C65GA9%uz*QFf
z6kM7Y1~y|ZTrZI;z#@<ilrhg{i!qH~v+ffmr<i&f#|opJs22Wc^RvZ0%JzeR7uZT}
zs0FX%F}(c5BtI1x_sU>+{rhUi^60G0t2HJSxXv-*DgC(HrJd8`|Dp3NvL5yg>xAvU
zho|fEA~w^-HrW&H-JwkqNX2I-bEXBR&Uhp+y2^)1h1IIlNCzC!v-Mz@&z&VPz+cl1
z=f&f6Y*U~C`ixm4Sy1hl$hg(4%Dy;bq~k7d1<@K&%%NLT`L+A)-QXyKVswX?op90(
zB#yeFEih@c{OXU8Oq~1CFI_38GXmns3(`;W(i+bslovCx4u7gvK>DrGOug*?G|1nz
z_OR}|ZYS3pq-p?rS7G0qa`TM}r5XqDT4cV>%Qyk#9ES}`jc+Ww|DcbZrF6UG>CeXp
zOVIV}K1e#z9@tu#?X)Ri=?zXMB`X3G-_I7FL-Zq`nbfWtX_EO1*!+U6pJW-_k&+vk
zMd}THh}{(Ch_wPk(PI4vVB_KT76kGxVytLxpWg}&bHw`a3G#QzxV@ICNax&@hk3<_
zBh`Tq66G{-tCw$V{(y0v7l!tp20~@gdFX<t2yAf7TZbU4H+&N0D2hZ^a_6-I(yp$A
zLu-4Y{Ez$etx!T0KE1E^ABgv-=`PL?WxCx2K`NJ9btEB~b!5>jzFbF#bJE7i>T4ux
zQdrF3org^wFcnw$#bQMv@SfN3$Fuo7HnB_`2ZGB{ZqGr>%xP;2_!Q{=N-ZhU1c~^5
zdt=OO#wmcpkXJyCG?{{&n=R{Sn=Ytg;<09CH)l7TA&wkt{Q;>RrA2Ia6-QixEPLrU
z%0)N$3Nh0?U825&<F9?WK3>v($Sz}0G_(!v&xSSAzje4{rup+^W@^}ByqOb95$<wN
z+FlC*OS+|hQqPCLLP#G|{-Gsx{l!c#$SvU|*<FUbs>E0sbwK*%#GP}!6`%*Z@L;&C
z3^dE&>5%bWAXmP<sMdk^(BGixJsS?iR#(S<snG+CmKd<~(&IF$#~B&)6d2mrDuBh-
z`7=YP#+9XUV(~_Bik5uFl#L+MA?9LT<$`)GritanD!@)!d!CK9hHX$6M-ksae^D`j
z3O<QKrMApfW9&BT-mgQopCLGOW;!j??cokAvs0*DB`{2miv0!b50XsS$yAy~y>*X1
z_m}Pivs*u7@9i>qA!58fDCwj^M<1P(u^m;urVdlM@>aIf+E3-d9<VM%qyk!OJVCWh
zPAES=A4hZJY<Q^6E;Y6VV~t?=nmyu9K5i(m`ONw{XX$4$>ZW>fc4cS7w5O3sCmKKn
z+94A?VyfSBb9{}rEbCIYtXORJBCv__fnZ>?a}edaA%bP$jI?J^q0UKO!mduA8U!3b
z0CJ_Js}NWQZoebapVUHP%pPOUm?1<)zd<fq;MhF{ievF2n_&PhASNq*%9zmiH6XNj
zEs=Ea8SWPuzGGlUp!TE-8qB)a23IEsfKm?dH$i1qxCT5^L?@^KA}zidPI#gv8Gk-X
zqM+_@h7X;V9#72a+y&FDD1Goq_JL={tjxBl!n$f3IRf!$mA(-L;%G4SRZ1!Xm1z2f
zhjX-H01}>%`hzUM-Y6g1z|@@3G_kio?S0bcbjQuxJd>vU$Uyz(4*peEDSVc-G;O;%
z9Y97%Tq}TRsH+oN%2u(oyC=W<9`e@&m;i;jC%L;sP(9RBDQnth3;ZMEQNFH3GEf0c
zU<3RF!hNG-vCDooYFS^nPlFnv4(ElI1=vNcr42TF^u<zpNG@plq%<5<WA+sLT^{=-
z*SKa`IfTWbzHQm>q67f{MoN>{f&>xA91r4pz5Zc&@P^i-9||`98v$Si!U@}ouZ88W
zg;YL=OQ;4}UQtkpyd~lD{qWy0H|lwJXKmenz#E=*9kt$YX*X!wDk7ITlIUGWnj>a7
z<_GQR752@J)Y(U)ncu(d<qS5Uh{rKg3^Vr2bD|>Iit7P}oBq8x$FP85)&Nsw<#rOW
z8U_x(1J)Zgm(8tZXU%+(yYcO+Z7#ZszPwa2`ygiMPayX9KondtFMRK!7x`9uWN;(f
zfWW?8yOdj;GA3We0YAW92gWipn(d>zcbA+vZ_21B<GE0ey*BZvJpq=xH`~tz@gx|c
zR1DNG3&a$spo!;l*pkkI8!!LndXN^Ms=PE4MNl|PaHUi;bw5F9BU%~$>xF?-pfcW`
zbqY<k8GOpfKgG8NmJQVzlhFBu6R$nBAX~7++WL0raE6k7#bPQwo<1VA`kZ;~fW)ih
zqRHEcmh$T`EO<YY*CCdJD*xhpHDX3*L_aS^FT1A+oMlXy$~;c#+7(V<3O2N-e%AuZ
z6YUffqFHBX<0db?COgL)pQ{`%3Wzwk*NA!or_{An@fOVM>??6ie(6M)p@6@WQ?Tl7
zoKrKEj|x~2yZehhMLkFRRnOC>XL&L+N;m0B{_OQ9gzzTYb!!Jct=bk?_hIpY9rOwY
zMnr69R(?8EN52qR+k!~qnCYc-KmV&*d$&NY?t5cjR)V+ncMor=puTRoo?{5dH;@!*
z<~RrV!+ljAN+;Qx2LraY&JWnz^|sYbZjP+Y;|pC#DuHUH+>F~x3PqTkx)=OAE0X9(
z(AO6gp~AH^{nq+n)LHYDD8mQN?DDFcd!U&d4PaajzSD1~lXq3p{x=^vItrq3gD^4O
z=hYS`?&C-0&KuAV>Jv}T?ba0IafL$~+bZ}p$9lwyyx=-uPN`Hpvv<)Ia>OWHa4+N4
z6zscrW$^XA32E<j+Ty}+?MPo5Uc!qbGT;`7%Gx?l<xc9YfT7LQ>Jw^7hYtkRJr{Q8
zQ|*1pp_q6Mno|D6EX!kgSv0h0I3~ef_l%$<u(@0`-IS&EL||}ZN1R(*I)Ea^7I-yG
zyXCjhJ-1uF(Uyz)_^9=*N_DY9KS79>DTFjL`0y16n%^dGNQn;2V82mqoIi9i{15vu
zLq&(BTl9CInUjZlTIa>^!!HlMK3W8Sd_Ow0+E8IT?h$=55$^Z)$WYIuig=O;Lp_1Q
z4wOT;XbWQ!>Mh`pdXuSo=K<ST=}P*!xodlEIBHy%5{U$VZS$wEkNsG|u2<Kk)WCyL
zzTvy?7M8&Cfq_5@YIV!+<Rn^wt)5qtp<xK_KFldD3M^WAGlN-UQ|ANEBYVoG0w3xR
zek`?_!aFWQ%$ZEAn=XFHElm{gKzw@Bh0-LNwZ&Zh?yZ%*15_b_Y4{Osz^~4Oum!!<
zse&!G<a}e~Ot7vdkbjYnU^^LjG~ETn>Bba;wT!wK`Hf1Ueh04*%D7Kfj*#b~BNfvz
zsbf?uiMm5-xhaQ|7Om2OrYbU>ngUM9%F5nU<65IFyu(`yZ;Vb1)=wCd!L2K?c$ezE
z4IbS|^?Z>)eEp}ZfjwF)Waw?pPJ?{~*g%;e<TX6&>fxO~Nx7dQGLWZ)cPQ*T!((W-
zGm2?tM)K}7oG<0Xz<`ltWjxvE<$AH!4*R{A2~uYGr@m!vm*j+e#CE9^*}Oc#uihB|
z5;#kMY2^8mrr80%*+02bDx6B{Jsch(d7kQGV7~iGTgFZBu$Pf`tNf`B2{|t7fGhIq
zos0xF#l$bfxOtcGDd*MDbdKBaCKxg<zBS_t!TiI&D&FS>CEbr8JTNd_1bjWC{Ubgk
z9~)9;A1&=FyIt$l!VBXfD~6VCk0fjO%QwLJ7k00RH*%I8cCqF542VzP^;`OU-_?=<
zbV}OoQE)HqV`|)X5+WbgSxGWH>t+7-O;(l~Z+FJJ)sygu^+eF01#Suj+pnAcw!s>p
z$-xF}c>7t9X6H$^V9hvT5H{jKv+=zzWHA0pgw8e5fZpm9vIphVq3%S4*N3%&jsY^Q
zK%sSPuj=?d{ATs0o0y6#0w3%YT^@-_sTuTUwI(Q{;l3KjeAbVk#Wmi%PDxm`zoqQ~
z((<-}*FSP%5gt7uI3t1&75ne{@1^bpdW1;MMGNkSr~UAuDbB4+VQi|x(gdO^zin_)
zncfs2hj8xdiiy)@vVkfkItLKvsGtJh<Ah+N9r4Fk#4j}3)5fp4%$8OPm!2*v85$2i
z15p4UjH=DV!<+L-y~sIS7&k+wwQ@3eBlD0ewG{0*l>rTb0T~tFl4Q3J!flauS==b&
z6B<Vc5wD$nmC_i`0E<AeD?2H<QEoWxP-{X6_i15QJF-Cv-N-NLN9%$|5L;=d6lmF5
z;UuK7x%Cq%N?T&~lD+MeWZ|S<_sZ68ShNa0XXqal>m<Ivi+wgAY*(pVJxOj3;P^Mp
z{Py4Q&hV_4XtqYN^W_`w+k)rhb~b?0`@olx-tL`?jy^9&Cf7sqxSSo^=A<Kc6UYof
z^DkeMP>!g%dDvlCf(St$kVofvH90|9yl-gmvRvcKS&Ye9DdoTK@2m}iSvC{3m%4E0
z@TJD7c1V?!URM7+t?f3)%{X(6JXg~A9TvGQyX6n(^Yt0NX;>vDPcr~mICPooLWA_`
z<1A>FuXr|C)dtDr*PQt%Xs5WePWUB&gBj$zZ#BIY%?jDdpbSA-PV0`dGf^oa_Jp}Z
zlrGV7oe`#B^+nPIQ`ZDJeJas=ru#=*YL#+n?Go}f33>1GsZ{TTy2bdBihj}mz*mp!
zOzn%{WgLM=*CpiuKUs*GnHa{B$2siJqfNi|Z;|rH%stM*8b26kAMCYY&NHwPGtlYn
z7UVx_^sgR$Z8x27foS63FCP<b7NQ@4m$W&a4+pb@c6L8rWcYppH@1D~kD>t|gtcG_
zy#@C|!VQV~TY}G5e57qp?F4jRxqq~@h6^?-cvD>ySwVLl2m7=gERtEn>Fw_@ND%pO
oiVC*mbz<%I+0K1Z`+LWvZ$3~$+A!Gm?^hpSc@||}WrmLVKLvuzv;Y7A

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/mint-choc/jquery-ui-1.8.18.custom.css b/public/admin/js/osmplayer/jquery-ui/mint-choc/jquery-ui-1.8.18.custom.css
new file mode 100644
index 00000000000..d6057b38bc9
--- /dev/null
+++ b/public/admin/js/osmplayer/jquery-ui/mint-choc/jquery-ui-1.8.18.custom.css
@@ -0,0 +1,565 @@
+/*
+ * jQuery UI CSS Framework 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Theming/API
+ */
+
+/* Layout helpers
+----------------------------------*/
+.player-ui .ui-helper-hidden { display: none; }
+.player-ui .ui-helper-hidden-accessible { position: absolute !important; clip: rect(1px 1px 1px 1px); clip: rect(1px,1px,1px,1px); }
+.player-ui .ui-helper-reset { margin: 0; padding: 0; border: 0; outline: 0; line-height: 1.3; text-decoration: none; font-size: 100%; list-style: none; }
+.player-ui .ui-helper-clearfix:before, .player-ui .ui-helper-clearfix:after { content: ""; display: table; }
+.player-ui .ui-helper-clearfix:after { clear: both; }
+.player-ui .ui-helper-clearfix { zoom: 1; }
+.player-ui .ui-helper-zfix { width: 100%; height: 100%; top: 0; left: 0; position: absolute; opacity: 0; filter:Alpha(Opacity=0); }
+
+
+/* Interaction Cues
+----------------------------------*/
+.player-ui .ui-state-disabled { cursor: default !important; }
+
+
+/* Icons
+----------------------------------*/
+
+/* states and images */
+.player-ui .ui-icon { display: block; text-indent: -99999px; overflow: hidden; background-repeat: no-repeat; }
+
+
+/* Misc visuals
+----------------------------------*/
+
+/* Overlays */
+.player-ui .ui-widget-overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }
+
+
+/*
+ * jQuery UI CSS Framework 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Theming/API
+ *
+ * To view and modify this theme, visit http://jqueryui.com/themeroller/?ffDefault=Segoe%20UI,%20Helvetica,%20Arial,%20sans-serif&fwDefault=bold&fsDefault=1.1em&cornerRadius=4px&bgColorHeader=453326&bgTextureHeader=12_gloss_wave.png&bgImgOpacityHeader=25&borderColorHeader=695649&fcHeader=e3ddc9&iconColorHeader=e3ddc9&bgColorContent=201913&bgTextureContent=05_inset_soft.png&bgImgOpacityContent=10&borderColorContent=9c947c&fcContent=ffffff&iconColorContent=222222&bgColorDefault=1c160d&bgTextureDefault=12_gloss_wave.png&bgImgOpacityDefault=20&borderColorDefault=695444&fcDefault=9bcc60&iconColorDefault=9bcc60&bgColorHover=44372c&bgTextureHover=12_gloss_wave.png&bgImgOpacityHover=30&borderColorHover=9c947c&fcHover=baec7e&iconColorHover=add978&bgColorActive=201913&bgTextureActive=03_highlight_soft.png&bgImgOpacityActive=20&borderColorActive=9c947c&fcActive=e3ddc9&iconColorActive=e3ddc9&bgColorHighlight=619226&bgTextureHighlight=03_highlight_soft.png&bgImgOpacityHighlight=20&borderColorHighlight=add978&fcHighlight=ffffff&iconColorHighlight=ffffff&bgColorError=5f391b&bgTextureError=02_glass.png&bgImgOpacityError=15&borderColorError=5f391b&fcError=ffffff&iconColorError=f1fd86&bgColorOverlay=aaaaaa&bgTextureOverlay=01_flat.png&bgImgOpacityOverlay=0&opacityOverlay=30&bgColorShadow=aaaaaa&bgTextureShadow=01_flat.png&bgImgOpacityShadow=0&opacityShadow=30&thicknessShadow=8px&offsetTopShadow=-8px&offsetLeftShadow=-8px&cornerRadiusShadow=8px
+ */
+
+
+/* Component containers
+----------------------------------*/
+.player-ui .ui-widget { font-family: Segoe UI, Helvetica, Arial, sans-serif; font-size: 1.1em; }
+.player-ui .ui-widget .ui-widget { font-size: 1em; }
+.player-ui .ui-widget input, .player-ui .ui-widget select, .player-ui .ui-widget textarea, .player-ui .ui-widget button { font-family: Segoe UI, Helvetica, Arial, sans-serif; font-size: 1em; }
+.player-ui .ui-widget-content { border: 1px solid #9c947c; background: #201913 url(images/ui-bg_inset-soft_10_201913_1x100.png) 50% bottom repeat-x; color: #ffffff; }
+.player-ui .ui-widget-content a { color: #ffffff; }
+.player-ui .ui-widget-header { border: 1px solid #695649; background: #453326 url(images/ui-bg_gloss-wave_25_453326_500x100.png) 50% 50% repeat-x; color: #e3ddc9; font-weight: bold; }
+.player-ui .ui-widget-header a { color: #e3ddc9; }
+
+/* Interaction states
+----------------------------------*/
+.player-ui .ui-state-default, .player-ui .ui-widget-content .ui-state-default, .player-ui .ui-widget-header .ui-state-default { border: 1px solid #695444; background: #1c160d url(images/ui-bg_gloss-wave_20_1c160d_500x100.png) 50% 50% repeat-x; font-weight: bold; color: #9bcc60; }
+.player-ui .ui-state-default a, .player-ui .ui-state-default a:link, .player-ui .ui-state-default a:visited { color: #9bcc60; text-decoration: none; }
+.player-ui .ui-state-hover, .player-ui .ui-widget-content .ui-state-hover, .player-ui .ui-widget-header .ui-state-hover, .player-ui .ui-state-focus, .player-ui .ui-widget-content .ui-state-focus, .player-ui .ui-widget-header .ui-state-focus { border: 1px solid #9c947c; background: #44372c url(images/ui-bg_gloss-wave_30_44372c_500x100.png) 50% 50% repeat-x; font-weight: bold; color: #baec7e; }
+.player-ui .ui-state-hover a, .player-ui .ui-state-hover a:hover { color: #baec7e; text-decoration: none; }
+.player-ui .ui-state-active, .player-ui .ui-widget-content .ui-state-active, .player-ui .ui-widget-header .ui-state-active { border: 1px solid #9c947c; background: #201913 url(images/ui-bg_highlight-soft_20_201913_1x100.png) 50% 50% repeat-x; font-weight: bold; color: #e3ddc9; }
+.player-ui .ui-state-active a, .player-ui .ui-state-active a:link, .player-ui .ui-state-active a:visited { color: #e3ddc9; text-decoration: none; }
+.player-ui .ui-widget :active { outline: none; }
+
+/* Interaction Cues
+----------------------------------*/
+.player-ui .ui-state-highlight, .player-ui .ui-widget-content .ui-state-highlight, .player-ui .ui-widget-header .ui-state-highlight  {border: 1px solid #add978; background: #619226 url(images/ui-bg_highlight-soft_20_619226_1x100.png) 50% top repeat-x; color: #ffffff; }
+.player-ui .ui-state-highlight a, .player-ui .ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a { color: #ffffff; }
+.player-ui .ui-state-error, .player-ui .ui-widget-content .ui-state-error, .player-ui .ui-widget-header .ui-state-error {border: 1px solid #5f391b; background: #5f391b url(images/ui-bg_glass_15_5f391b_1x400.png) 50% 50% repeat-x; color: #ffffff; }
+.player-ui .ui-state-error a, .player-ui .ui-widget-content .ui-state-error a, .player-ui .ui-widget-header .ui-state-error a { color: #ffffff; }
+.player-ui .ui-state-error-text, .player-ui .ui-widget-content .ui-state-error-text, .player-ui .ui-widget-header .ui-state-error-text { color: #ffffff; }
+.player-ui .ui-priority-primary, .player-ui .ui-widget-content .ui-priority-primary, .player-ui .ui-widget-header .ui-priority-primary { font-weight: bold; }
+.player-ui .ui-priority-secondary, .player-ui .ui-widget-content .ui-priority-secondary,  .ui-widget-header .ui-priority-secondary { opacity: .7; filter:Alpha(Opacity=70); font-weight: normal; }
+.player-ui .ui-state-disabled, .player-ui .ui-widget-content .ui-state-disabled, .player-ui .ui-widget-header .ui-state-disabled { opacity: .35; filter:Alpha(Opacity=35); background-image: none; }
+
+/* Icons
+----------------------------------*/
+
+/* states and images */
+.player-ui .ui-icon { width: 16px; height: 16px; background-image: url(images/ui-icons_222222_256x240.png); }
+.player-ui .ui-widget-content .ui-icon {background-image: url(images/ui-icons_222222_256x240.png); }
+.player-ui .ui-widget-header .ui-icon {background-image: url(images/ui-icons_e3ddc9_256x240.png); }
+.player-ui .ui-state-default .ui-icon { background-image: url(images/ui-icons_9bcc60_256x240.png); }
+.player-ui .ui-state-hover .ui-icon, .player-ui .ui-state-focus .ui-icon {background-image: url(images/ui-icons_add978_256x240.png); }
+.player-ui .ui-state-active .ui-icon {background-image: url(images/ui-icons_e3ddc9_256x240.png); }
+.player-ui .ui-state-highlight .ui-icon {background-image: url(images/ui-icons_ffffff_256x240.png); }
+.player-ui .ui-state-error .ui-icon, .player-ui .ui-state-error-text .ui-icon {background-image: url(images/ui-icons_f1fd86_256x240.png); }
+
+/* positioning */
+.player-ui .ui-icon-carat-1-n { background-position: 0 0; }
+.player-ui .ui-icon-carat-1-ne { background-position: -16px 0; }
+.player-ui .ui-icon-carat-1-e { background-position: -32px 0; }
+.player-ui .ui-icon-carat-1-se { background-position: -48px 0; }
+.player-ui .ui-icon-carat-1-s { background-position: -64px 0; }
+.player-ui .ui-icon-carat-1-sw { background-position: -80px 0; }
+.player-ui .ui-icon-carat-1-w { background-position: -96px 0; }
+.player-ui .ui-icon-carat-1-nw { background-position: -112px 0; }
+.player-ui .ui-icon-carat-2-n-s { background-position: -128px 0; }
+.player-ui .ui-icon-carat-2-e-w { background-position: -144px 0; }
+.player-ui .ui-icon-triangle-1-n { background-position: 0 -16px; }
+.player-ui .ui-icon-triangle-1-ne { background-position: -16px -16px; }
+.player-ui .ui-icon-triangle-1-e { background-position: -32px -16px; }
+.player-ui .ui-icon-triangle-1-se { background-position: -48px -16px; }
+.player-ui .ui-icon-triangle-1-s { background-position: -64px -16px; }
+.player-ui .ui-icon-triangle-1-sw { background-position: -80px -16px; }
+.player-ui .ui-icon-triangle-1-w { background-position: -96px -16px; }
+.player-ui .ui-icon-triangle-1-nw { background-position: -112px -16px; }
+.player-ui .ui-icon-triangle-2-n-s { background-position: -128px -16px; }
+.player-ui .ui-icon-triangle-2-e-w { background-position: -144px -16px; }
+.player-ui .ui-icon-arrow-1-n { background-position: 0 -32px; }
+.player-ui .ui-icon-arrow-1-ne { background-position: -16px -32px; }
+.player-ui .ui-icon-arrow-1-e { background-position: -32px -32px; }
+.player-ui .ui-icon-arrow-1-se { background-position: -48px -32px; }
+.player-ui .ui-icon-arrow-1-s { background-position: -64px -32px; }
+.player-ui .ui-icon-arrow-1-sw { background-position: -80px -32px; }
+.player-ui .ui-icon-arrow-1-w { background-position: -96px -32px; }
+.player-ui .ui-icon-arrow-1-nw { background-position: -112px -32px; }
+.player-ui .ui-icon-arrow-2-n-s { background-position: -128px -32px; }
+.player-ui .ui-icon-arrow-2-ne-sw { background-position: -144px -32px; }
+.player-ui .ui-icon-arrow-2-e-w { background-position: -160px -32px; }
+.player-ui .ui-icon-arrow-2-se-nw { background-position: -176px -32px; }
+.player-ui .ui-icon-arrowstop-1-n { background-position: -192px -32px; }
+.player-ui .ui-icon-arrowstop-1-e { background-position: -208px -32px; }
+.player-ui .ui-icon-arrowstop-1-s { background-position: -224px -32px; }
+.player-ui .ui-icon-arrowstop-1-w { background-position: -240px -32px; }
+.player-ui .ui-icon-arrowthick-1-n { background-position: 0 -48px; }
+.player-ui .ui-icon-arrowthick-1-ne { background-position: -16px -48px; }
+.player-ui .ui-icon-arrowthick-1-e { background-position: -32px -48px; }
+.player-ui .ui-icon-arrowthick-1-se { background-position: -48px -48px; }
+.player-ui .ui-icon-arrowthick-1-s { background-position: -64px -48px; }
+.player-ui .ui-icon-arrowthick-1-sw { background-position: -80px -48px; }
+.player-ui .ui-icon-arrowthick-1-w { background-position: -96px -48px; }
+.player-ui .ui-icon-arrowthick-1-nw { background-position: -112px -48px; }
+.player-ui .ui-icon-arrowthick-2-n-s { background-position: -128px -48px; }
+.player-ui .ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px; }
+.player-ui .ui-icon-arrowthick-2-e-w { background-position: -160px -48px; }
+.player-ui .ui-icon-arrowthick-2-se-nw { background-position: -176px -48px; }
+.player-ui .ui-icon-arrowthickstop-1-n { background-position: -192px -48px; }
+.player-ui .ui-icon-arrowthickstop-1-e { background-position: -208px -48px; }
+.player-ui .ui-icon-arrowthickstop-1-s { background-position: -224px -48px; }
+.player-ui .ui-icon-arrowthickstop-1-w { background-position: -240px -48px; }
+.player-ui .ui-icon-arrowreturnthick-1-w { background-position: 0 -64px; }
+.player-ui .ui-icon-arrowreturnthick-1-n { background-position: -16px -64px; }
+.player-ui .ui-icon-arrowreturnthick-1-e { background-position: -32px -64px; }
+.player-ui .ui-icon-arrowreturnthick-1-s { background-position: -48px -64px; }
+.player-ui .ui-icon-arrowreturn-1-w { background-position: -64px -64px; }
+.player-ui .ui-icon-arrowreturn-1-n { background-position: -80px -64px; }
+.player-ui .ui-icon-arrowreturn-1-e { background-position: -96px -64px; }
+.player-ui .ui-icon-arrowreturn-1-s { background-position: -112px -64px; }
+.player-ui .ui-icon-arrowrefresh-1-w { background-position: -128px -64px; }
+.player-ui .ui-icon-arrowrefresh-1-n { background-position: -144px -64px; }
+.player-ui .ui-icon-arrowrefresh-1-e { background-position: -160px -64px; }
+.player-ui .ui-icon-arrowrefresh-1-s { background-position: -176px -64px; }
+.player-ui .ui-icon-arrow-4 { background-position: 0 -80px; }
+.player-ui .ui-icon-arrow-4-diag { background-position: -16px -80px; }
+.player-ui .ui-icon-extlink { background-position: -32px -80px; }
+.player-ui .ui-icon-newwin { background-position: -48px -80px; }
+.player-ui .ui-icon-refresh { background-position: -64px -80px; }
+.player-ui .ui-icon-shuffle { background-position: -80px -80px; }
+.player-ui .ui-icon-transfer-e-w { background-position: -96px -80px; }
+.player-ui .ui-icon-transferthick-e-w { background-position: -112px -80px; }
+.player-ui .ui-icon-folder-collapsed { background-position: 0 -96px; }
+.player-ui .ui-icon-folder-open { background-position: -16px -96px; }
+.player-ui .ui-icon-document { background-position: -32px -96px; }
+.player-ui .ui-icon-document-b { background-position: -48px -96px; }
+.player-ui .ui-icon-note { background-position: -64px -96px; }
+.player-ui .ui-icon-mail-closed { background-position: -80px -96px; }
+.player-ui .ui-icon-mail-open { background-position: -96px -96px; }
+.player-ui .ui-icon-suitcase { background-position: -112px -96px; }
+.player-ui .ui-icon-comment { background-position: -128px -96px; }
+.player-ui .ui-icon-person { background-position: -144px -96px; }
+.player-ui .ui-icon-print { background-position: -160px -96px; }
+.player-ui .ui-icon-trash { background-position: -176px -96px; }
+.player-ui .ui-icon-locked { background-position: -192px -96px; }
+.player-ui .ui-icon-unlocked { background-position: -208px -96px; }
+.player-ui .ui-icon-bookmark { background-position: -224px -96px; }
+.player-ui .ui-icon-tag { background-position: -240px -96px; }
+.player-ui .ui-icon-home { background-position: 0 -112px; }
+.player-ui .ui-icon-flag { background-position: -16px -112px; }
+.player-ui .ui-icon-calendar { background-position: -32px -112px; }
+.player-ui .ui-icon-cart { background-position: -48px -112px; }
+.player-ui .ui-icon-pencil { background-position: -64px -112px; }
+.player-ui .ui-icon-clock { background-position: -80px -112px; }
+.player-ui .ui-icon-disk { background-position: -96px -112px; }
+.player-ui .ui-icon-calculator { background-position: -112px -112px; }
+.player-ui .ui-icon-zoomin { background-position: -128px -112px; }
+.player-ui .ui-icon-zoomout { background-position: -144px -112px; }
+.player-ui .ui-icon-search { background-position: -160px -112px; }
+.player-ui .ui-icon-wrench { background-position: -176px -112px; }
+.player-ui .ui-icon-gear { background-position: -192px -112px; }
+.player-ui .ui-icon-heart { background-position: -208px -112px; }
+.player-ui .ui-icon-star { background-position: -224px -112px; }
+.player-ui .ui-icon-link { background-position: -240px -112px; }
+.player-ui .ui-icon-cancel { background-position: 0 -128px; }
+.player-ui .ui-icon-plus { background-position: -16px -128px; }
+.player-ui .ui-icon-plusthick { background-position: -32px -128px; }
+.player-ui .ui-icon-minus { background-position: -48px -128px; }
+.player-ui .ui-icon-minusthick { background-position: -64px -128px; }
+.player-ui .ui-icon-close { background-position: -80px -128px; }
+.player-ui .ui-icon-closethick { background-position: -96px -128px; }
+.player-ui .ui-icon-key { background-position: -112px -128px; }
+.player-ui .ui-icon-lightbulb { background-position: -128px -128px; }
+.player-ui .ui-icon-scissors { background-position: -144px -128px; }
+.player-ui .ui-icon-clipboard { background-position: -160px -128px; }
+.player-ui .ui-icon-copy { background-position: -176px -128px; }
+.player-ui .ui-icon-contact { background-position: -192px -128px; }
+.player-ui .ui-icon-image { background-position: -208px -128px; }
+.player-ui .ui-icon-video { background-position: -224px -128px; }
+.player-ui .ui-icon-script { background-position: -240px -128px; }
+.player-ui .ui-icon-alert { background-position: 0 -144px; }
+.player-ui .ui-icon-info { background-position: -16px -144px; }
+.player-ui .ui-icon-notice { background-position: -32px -144px; }
+.player-ui .ui-icon-help { background-position: -48px -144px; }
+.player-ui .ui-icon-check { background-position: -64px -144px; }
+.player-ui .ui-icon-bullet { background-position: -80px -144px; }
+.player-ui .ui-icon-radio-off { background-position: -96px -144px; }
+.player-ui .ui-icon-radio-on { background-position: -112px -144px; }
+.player-ui .ui-icon-pin-w { background-position: -128px -144px; }
+.player-ui .ui-icon-pin-s { background-position: -144px -144px; }
+.player-ui .ui-icon-play { background-position: 0 -160px; }
+.player-ui .ui-icon-pause { background-position: -16px -160px; }
+.player-ui .ui-icon-seek-next { background-position: -32px -160px; }
+.player-ui .ui-icon-seek-prev { background-position: -48px -160px; }
+.player-ui .ui-icon-seek-end { background-position: -64px -160px; }
+.player-ui .ui-icon-seek-start { background-position: -80px -160px; }
+/* ui-icon-seek-first is deprecated, use ui-icon-seek-start instead */
+.player-ui .ui-icon-seek-first { background-position: -80px -160px; }
+.player-ui .ui-icon-stop { background-position: -96px -160px; }
+.player-ui .ui-icon-eject { background-position: -112px -160px; }
+.player-ui .ui-icon-volume-off { background-position: -128px -160px; }
+.player-ui .ui-icon-volume-on { background-position: -144px -160px; }
+.player-ui .ui-icon-power { background-position: 0 -176px; }
+.player-ui .ui-icon-signal-diag { background-position: -16px -176px; }
+.player-ui .ui-icon-signal { background-position: -32px -176px; }
+.player-ui .ui-icon-battery-0 { background-position: -48px -176px; }
+.player-ui .ui-icon-battery-1 { background-position: -64px -176px; }
+.player-ui .ui-icon-battery-2 { background-position: -80px -176px; }
+.player-ui .ui-icon-battery-3 { background-position: -96px -176px; }
+.player-ui .ui-icon-circle-plus { background-position: 0 -192px; }
+.player-ui .ui-icon-circle-minus { background-position: -16px -192px; }
+.player-ui .ui-icon-circle-close { background-position: -32px -192px; }
+.player-ui .ui-icon-circle-triangle-e { background-position: -48px -192px; }
+.player-ui .ui-icon-circle-triangle-s { background-position: -64px -192px; }
+.player-ui .ui-icon-circle-triangle-w { background-position: -80px -192px; }
+.player-ui .ui-icon-circle-triangle-n { background-position: -96px -192px; }
+.player-ui .ui-icon-circle-arrow-e { background-position: -112px -192px; }
+.player-ui .ui-icon-circle-arrow-s { background-position: -128px -192px; }
+.player-ui .ui-icon-circle-arrow-w { background-position: -144px -192px; }
+.player-ui .ui-icon-circle-arrow-n { background-position: -160px -192px; }
+.player-ui .ui-icon-circle-zoomin { background-position: -176px -192px; }
+.player-ui .ui-icon-circle-zoomout { background-position: -192px -192px; }
+.player-ui .ui-icon-circle-check { background-position: -208px -192px; }
+.player-ui .ui-icon-circlesmall-plus { background-position: 0 -208px; }
+.player-ui .ui-icon-circlesmall-minus { background-position: -16px -208px; }
+.player-ui .ui-icon-circlesmall-close { background-position: -32px -208px; }
+.player-ui .ui-icon-squaresmall-plus { background-position: -48px -208px; }
+.player-ui .ui-icon-squaresmall-minus { background-position: -64px -208px; }
+.player-ui .ui-icon-squaresmall-close { background-position: -80px -208px; }
+.player-ui .ui-icon-grip-dotted-vertical { background-position: 0 -224px; }
+.player-ui .ui-icon-grip-dotted-horizontal { background-position: -16px -224px; }
+.player-ui .ui-icon-grip-solid-vertical { background-position: -32px -224px; }
+.player-ui .ui-icon-grip-solid-horizontal { background-position: -48px -224px; }
+.player-ui .ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; }
+.player-ui .ui-icon-grip-diagonal-se { background-position: -80px -224px; }
+
+
+/* Misc visuals
+----------------------------------*/
+
+/* Corner radius */
+.player-ui .ui-corner-all, .player-ui .ui-corner-top, .player-ui .ui-corner-left, .player-ui .ui-corner-tl { -moz-border-radius-topleft: 4px; -webkit-border-top-left-radius: 4px; -khtml-border-top-left-radius: 4px; border-top-left-radius: 4px; }
+.player-ui .ui-corner-all, .player-ui .ui-corner-top, .player-ui .ui-corner-right, .player-ui .ui-corner-tr { -moz-border-radius-topright: 4px; -webkit-border-top-right-radius: 4px; -khtml-border-top-right-radius: 4px; border-top-right-radius: 4px; }
+.player-ui .ui-corner-all, .player-ui .ui-corner-bottom, .player-ui .ui-corner-left, .player-ui .ui-corner-bl { -moz-border-radius-bottomleft: 4px; -webkit-border-bottom-left-radius: 4px; -khtml-border-bottom-left-radius: 4px; border-bottom-left-radius: 4px; }
+.player-ui .ui-corner-all, .player-ui .ui-corner-bottom, .player-ui .ui-corner-right, .player-ui .ui-corner-br { -moz-border-radius-bottomright: 4px; -webkit-border-bottom-right-radius: 4px; -khtml-border-bottom-right-radius: 4px; border-bottom-right-radius: 4px; }
+
+/* Overlays */
+.player-ui .ui-widget-overlay { background: #aaaaaa url(images/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x; opacity: .30;filter:Alpha(Opacity=30); }
+.player-ui .ui-widget-shadow { margin: -8px 0 0 -8px; padding: 8px; background: #aaaaaa url(images/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x; opacity: .30;filter:Alpha(Opacity=30); -moz-border-radius: 8px; -khtml-border-radius: 8px; -webkit-border-radius: 8px; border-radius: 8px; }/*
+ * jQuery UI Resizable 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Resizable#theming
+ */
+.player-ui .ui-resizable { position: relative;}
+.player-ui .ui-resizable-handle { position: absolute;font-size: 0.1px;z-index: 99999; display: block; }
+.player-ui .ui-resizable-disabled .ui-resizable-handle, .player-ui .ui-resizable-autohide .ui-resizable-handle { display: none; }
+.player-ui .ui-resizable-n { cursor: n-resize; height: 7px; width: 100%; top: -5px; left: 0; }
+.player-ui .ui-resizable-s { cursor: s-resize; height: 7px; width: 100%; bottom: -5px; left: 0; }
+.player-ui .ui-resizable-e { cursor: e-resize; width: 7px; right: -5px; top: 0; height: 100%; }
+.player-ui .ui-resizable-w { cursor: w-resize; width: 7px; left: -5px; top: 0; height: 100%; }
+.player-ui .ui-resizable-se { cursor: se-resize; width: 12px; height: 12px; right: 1px; bottom: 1px; }
+.player-ui .ui-resizable-sw { cursor: sw-resize; width: 9px; height: 9px; left: -5px; bottom: -5px; }
+.player-ui .ui-resizable-nw { cursor: nw-resize; width: 9px; height: 9px; left: -5px; top: -5px; }
+.player-ui .ui-resizable-ne { cursor: ne-resize; width: 9px; height: 9px; right: -5px; top: -5px;}/*
+ * jQuery UI Selectable 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Selectable#theming
+ */
+.player-ui .ui-selectable-helper { position: absolute; z-index: 100; border:1px dotted black; }
+/*
+ * jQuery UI Accordion 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Accordion#theming
+ */
+/* IE/Win - Fix animation bug - #4615 */
+.player-ui .ui-accordion { width: 100%; }
+.player-ui .ui-accordion .ui-accordion-header { cursor: pointer; position: relative; margin-top: 1px; zoom: 1; }
+.player-ui .ui-accordion .ui-accordion-li-fix { display: inline; }
+.player-ui .ui-accordion .ui-accordion-header-active { border-bottom: 0 !important; }
+.player-ui .ui-accordion .ui-accordion-header a { display: block; font-size: 1em; padding: .5em .5em .5em .7em; }
+.player-ui .ui-accordion-icons .ui-accordion-header a { padding-left: 2.2em; }
+.player-ui .ui-accordion .ui-accordion-header .ui-icon { position: absolute; left: .5em; top: 50%; margin-top: -8px; }
+.player-ui .ui-accordion .ui-accordion-content { padding: 1em 2.2em; border-top: 0; margin-top: -2px; position: relative; top: 1px; margin-bottom: 2px; overflow: auto; display: none; zoom: 1; }
+.player-ui .ui-accordion .ui-accordion-content-active { display: block; }
+/*
+ * jQuery UI Autocomplete 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Autocomplete#theming
+ */
+.player-ui .ui-autocomplete { position: absolute; cursor: default; }	
+
+/* workarounds */
+* html .ui-autocomplete { width:1px; } /* without this, the menu expands to 100% in IE6 */
+
+/*
+ * jQuery UI Menu 1.8.18
+ *
+ * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Menu#theming
+ */
+.player-ui .ui-menu {
+	list-style:none;
+	padding: 2px;
+	margin: 0;
+	display:block;
+	float: left;
+}
+.player-ui .ui-menu .ui-menu {
+	margin-top: -3px;
+}
+.player-ui .ui-menu .ui-menu-item {
+	margin:0;
+	padding: 0;
+	zoom: 1;
+	float: left;
+	clear: left;
+	width: 100%;
+}
+.player-ui .ui-menu .ui-menu-item a {
+	text-decoration:none;
+	display:block;
+	padding:.2em .4em;
+	line-height:1.5;
+	zoom:1;
+}
+.player-ui .ui-menu .ui-menu-item a.ui-state-hover,
+.player-ui .ui-menu .ui-menu-item a.ui-state-active {
+	font-weight: normal;
+	margin: -1px;
+}
+/*
+ * jQuery UI Button 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Button#theming
+ */
+.player-ui .ui-button { display: inline-block; position: relative; padding: 0; margin-right: .1em; text-decoration: none !important; cursor: pointer; text-align: center; zoom: 1; overflow: hidden; *overflow: visible; } /* the overflow property removes extra width in IE */
+.player-ui .ui-button-icon-only { width: 2.2em; } /* to make room for the icon, a width needs to be set here */
+button.ui-button-icon-only { width: 2.4em; } /* button elements seem to need a little more width */
+.player-ui .ui-button-icons-only { width: 3.4em; } 
+button.ui-button-icons-only { width: 3.7em; } 
+
+/*button text element */
+.player-ui .ui-button .ui-button-text { display: block; line-height: 1.4;  }
+.player-ui .ui-button-text-only .ui-button-text { padding: .4em 1em; }
+.player-ui .ui-button-icon-only .ui-button-text, .player-ui .ui-button-icons-only .ui-button-text { padding: .4em; text-indent: -9999999px; }
+.player-ui .ui-button-text-icon-primary .ui-button-text, .player-ui .ui-button-text-icons .ui-button-text { padding: .4em 1em .4em 2.1em; }
+.player-ui .ui-button-text-icon-secondary .ui-button-text, .player-ui .ui-button-text-icons .ui-button-text { padding: .4em 2.1em .4em 1em; }
+.player-ui .ui-button-text-icons .ui-button-text { padding-left: 2.1em; padding-right: 2.1em; }
+/* no icon support for input elements, provide padding by default */
+input.ui-button { padding: .4em 1em; }
+
+/*button icon element(s) */
+.player-ui .ui-button-icon-only .ui-icon, .player-ui .ui-button-text-icon-primary .ui-icon, .player-ui .ui-button-text-icon-secondary .ui-icon, .player-ui .ui-button-text-icons .ui-icon, .player-ui .ui-button-icons-only .ui-icon { position: absolute; top: 50%; margin-top: -8px; }
+.player-ui .ui-button-icon-only .ui-icon { left: 50%; margin-left: -8px; }
+.player-ui .ui-button-text-icon-primary .ui-button-icon-primary, .player-ui .ui-button-text-icons .ui-button-icon-primary, .player-ui .ui-button-icons-only .ui-button-icon-primary { left: .5em; }
+.player-ui .ui-button-text-icon-secondary .ui-button-icon-secondary, .player-ui .ui-button-text-icons .ui-button-icon-secondary, .player-ui .ui-button-icons-only .ui-button-icon-secondary { right: .5em; }
+.player-ui .ui-button-text-icons .ui-button-icon-secondary, .player-ui .ui-button-icons-only .ui-button-icon-secondary { right: .5em; }
+
+/*button sets*/
+.player-ui .ui-buttonset { margin-right: 7px; }
+.player-ui .ui-buttonset .ui-button { margin-left: 0; margin-right: -.3em; }
+
+/* workarounds */
+button.ui-button::-moz-focus-inner { border: 0; padding: 0; } /* reset extra padding in Firefox */
+/*
+ * jQuery UI Dialog 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Dialog#theming
+ */
+.player-ui .ui-dialog { position: absolute; padding: .2em; width: 300px; overflow: hidden; }
+.player-ui .ui-dialog .ui-dialog-titlebar { padding: .4em 1em; position: relative;  }
+.player-ui .ui-dialog .ui-dialog-title { float: left; margin: .1em 16px .1em 0; } 
+.player-ui .ui-dialog .ui-dialog-titlebar-close { position: absolute; right: .3em; top: 50%; width: 19px; margin: -10px 0 0 0; padding: 1px; height: 18px; }
+.player-ui .ui-dialog .ui-dialog-titlebar-close span { display: block; margin: 1px; }
+.player-ui .ui-dialog .ui-dialog-titlebar-close:hover, .player-ui .ui-dialog .ui-dialog-titlebar-close:focus { padding: 0; }
+.player-ui .ui-dialog .ui-dialog-content { position: relative; border: 0; padding: .5em 1em; background: none; overflow: auto; zoom: 1; }
+.player-ui .ui-dialog .ui-dialog-buttonpane { text-align: left; border-width: 1px 0 0 0; background-image: none; margin: .5em 0 0 0; padding: .3em 1em .5em .4em; }
+.player-ui .ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset { float: right; }
+.player-ui .ui-dialog .ui-dialog-buttonpane button { margin: .5em .4em .5em 0; cursor: pointer; }
+.player-ui .ui-dialog .ui-resizable-se { width: 14px; height: 14px; right: 3px; bottom: 3px; }
+.player-ui .ui-draggable .ui-dialog-titlebar { cursor: move; }
+/*
+ * jQuery UI Slider 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Slider#theming
+ */
+.player-ui .ui-slider { position: relative; text-align: left; }
+.player-ui .ui-slider .ui-slider-handle { position: absolute; z-index: 2; width: 1.2em; height: 1.2em; cursor: default; }
+.player-ui .ui-slider .ui-slider-range { position: absolute; z-index: 1; font-size: .7em; display: block; border: 0; background-position: 0 0; }
+
+.player-ui .ui-slider-horizontal { height: .8em; }
+.player-ui .ui-slider-horizontal .ui-slider-handle { top: -.3em; margin-left: -.6em; }
+.player-ui .ui-slider-horizontal .ui-slider-range { top: 0; height: 100%; }
+.player-ui .ui-slider-horizontal .ui-slider-range-min { left: 0; }
+.player-ui .ui-slider-horizontal .ui-slider-range-max { right: 0; }
+
+.player-ui .ui-slider-vertical { width: .8em; height: 100px; }
+.player-ui .ui-slider-vertical .ui-slider-handle { left: -.3em; margin-left: 0; margin-bottom: -.6em; }
+.player-ui .ui-slider-vertical .ui-slider-range { left: 0; width: 100%; }
+.player-ui .ui-slider-vertical .ui-slider-range-min { bottom: 0; }
+.player-ui .ui-slider-vertical .ui-slider-range-max { top: 0; }/*
+ * jQuery UI Tabs 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Tabs#theming
+ */
+.player-ui .ui-tabs { position: relative; padding: .2em; zoom: 1; } /* position: relative prevents IE scroll bug (element with position: relative inside container with overflow: auto appear as "fixed") */
+.player-ui .ui-tabs .ui-tabs-nav { margin: 0; padding: .2em .2em 0; }
+.player-ui .ui-tabs .ui-tabs-nav li { list-style: none; float: left; position: relative; top: 1px; margin: 0 .2em 1px 0; border-bottom: 0 !important; padding: 0; white-space: nowrap; }
+.player-ui .ui-tabs .ui-tabs-nav li a { float: left; padding: .5em 1em; text-decoration: none; }
+.player-ui .ui-tabs .ui-tabs-nav li.ui-tabs-selected { margin-bottom: 0; padding-bottom: 1px; }
+.player-ui .ui-tabs .ui-tabs-nav li.ui-tabs-selected a, .player-ui .ui-tabs .ui-tabs-nav li.ui-state-disabled a, .player-ui .ui-tabs .ui-tabs-nav li.ui-state-processing a { cursor: text; }
+.player-ui .ui-tabs .ui-tabs-nav li a, .player-ui .ui-tabs.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-selected a { cursor: pointer; } /* first selector in group seems obsolete, but required to overcome bug in Opera applying cursor: text overall if defined elsewhere... */
+.player-ui .ui-tabs .ui-tabs-panel { display: block; border-width: 0; padding: 1em 1.4em; background: none; }
+.player-ui .ui-tabs .ui-tabs-hide { display: none !important; }
+/*
+ * jQuery UI Datepicker 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Datepicker#theming
+ */
+.player-ui .ui-datepicker { width: 17em; padding: .2em .2em 0; display: none; }
+.player-ui .ui-datepicker .ui-datepicker-header { position:relative; padding:.2em 0; }
+.player-ui .ui-datepicker .ui-datepicker-prev, .player-ui .ui-datepicker .ui-datepicker-next { position:absolute; top: 2px; width: 1.8em; height: 1.8em; }
+.player-ui .ui-datepicker .ui-datepicker-prev-hover, .player-ui .ui-datepicker .ui-datepicker-next-hover { top: 1px; }
+.player-ui .ui-datepicker .ui-datepicker-prev { left:2px; }
+.player-ui .ui-datepicker .ui-datepicker-next { right:2px; }
+.player-ui .ui-datepicker .ui-datepicker-prev-hover { left:1px; }
+.player-ui .ui-datepicker .ui-datepicker-next-hover { right:1px; }
+.player-ui .ui-datepicker .ui-datepicker-prev span, .player-ui .ui-datepicker .ui-datepicker-next span { display: block; position: absolute; left: 50%; margin-left: -8px; top: 50%; margin-top: -8px;  }
+.player-ui .ui-datepicker .ui-datepicker-title { margin: 0 2.3em; line-height: 1.8em; text-align: center; }
+.player-ui .ui-datepicker .ui-datepicker-title select { font-size:1em; margin:1px 0; }
+.player-ui .ui-datepicker select.ui-datepicker-month-year {width: 100%;}
+.player-ui .ui-datepicker select.ui-datepicker-month, 
+.player-ui .ui-datepicker select.ui-datepicker-year { width: 49%;}
+.player-ui .ui-datepicker table {width: 100%; font-size: .9em; border-collapse: collapse; margin:0 0 .4em; }
+.player-ui .ui-datepicker th { padding: .7em .3em; text-align: center; font-weight: bold; border: 0;  }
+.player-ui .ui-datepicker td { border: 0; padding: 1px; }
+.player-ui .ui-datepicker td span, .player-ui .ui-datepicker td a { display: block; padding: .2em; text-align: right; text-decoration: none; }
+.player-ui .ui-datepicker .ui-datepicker-buttonpane { background-image: none; margin: .7em 0 0 0; padding:0 .2em; border-left: 0; border-right: 0; border-bottom: 0; }
+.player-ui .ui-datepicker .ui-datepicker-buttonpane button { float: right; margin: .5em .2em .4em; cursor: pointer; padding: .2em .6em .3em .6em; width:auto; overflow:visible; }
+.player-ui .ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current { float:left; }
+
+/* with multiple calendars */
+.player-ui .ui-datepicker.ui-datepicker-multi { width:auto; }
+.player-ui .ui-datepicker-multi .ui-datepicker-group { float:left; }
+.player-ui .ui-datepicker-multi .ui-datepicker-group table { width:95%; margin:0 auto .4em; }
+.player-ui .ui-datepicker-multi-2 .ui-datepicker-group { width:50%; }
+.player-ui .ui-datepicker-multi-3 .ui-datepicker-group { width:33.3%; }
+.player-ui .ui-datepicker-multi-4 .ui-datepicker-group { width:25%; }
+.player-ui .ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header { border-left-width:0; }
+.player-ui .ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header { border-left-width:0; }
+.player-ui .ui-datepicker-multi .ui-datepicker-buttonpane { clear:left; }
+.player-ui .ui-datepicker-row-break { clear:both; width:100%; font-size:0em; }
+
+/* RTL support */
+.player-ui .ui-datepicker-rtl { direction: rtl; }
+.player-ui .ui-datepicker-rtl .ui-datepicker-prev { right: 2px; left: auto; }
+.player-ui .ui-datepicker-rtl .ui-datepicker-next { left: 2px; right: auto; }
+.player-ui .ui-datepicker-rtl .ui-datepicker-prev:hover { right: 1px; left: auto; }
+.player-ui .ui-datepicker-rtl .ui-datepicker-next:hover { left: 1px; right: auto; }
+.player-ui .ui-datepicker-rtl .ui-datepicker-buttonpane { clear:right; }
+.player-ui .ui-datepicker-rtl .ui-datepicker-buttonpane button { float: left; }
+.player-ui .ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current { float:right; }
+.player-ui .ui-datepicker-rtl .ui-datepicker-group { float:right; }
+.player-ui .ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header { border-right-width:0; border-left-width:1px; }
+.player-ui .ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header { border-right-width:0; border-left-width:1px; }
+
+/* IE6 IFRAME FIX (taken from datepicker 1.5.3 */
+.player-ui .ui-datepicker-cover {
+    display: none; /*sorry for IE5*/
+    display/**/: block; /*sorry for IE5*/
+    position: absolute; /*must have*/
+    z-index: -1; /*must have*/
+    filter: mask(); /*must have*/
+    top: -4px; /*must have*/
+    left: -4px; /*must have*/
+    width: 200px; /*must have*/
+    height: 200px; /*must have*/
+}/*
+ * jQuery UI Progressbar 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Progressbar#theming
+ */
+.player-ui .ui-progressbar { height:2em; text-align: left; overflow: hidden; }
+.player-ui .ui-progressbar .ui-progressbar-value {margin: -1px; height:100%; }
\ No newline at end of file
diff --git a/public/admin/js/osmplayer/jquery-ui/overcast/images/ui-bg_flat_0_aaaaaa_40x100.png b/public/admin/js/osmplayer/jquery-ui/overcast/images/ui-bg_flat_0_aaaaaa_40x100.png
new file mode 100644
index 0000000000000000000000000000000000000000..5b5dab2ab7b1c50dea9cfe73dc5a269a92d2d4b4
GIT binary patch
literal 180
zcmeAS@N?(olHy`uVBq!ia0vp^8bF-F!3HG1q!d*FscKIb$B>N1x91EQ4=4yQ7#`R^
z$vje}<irI&an_s0pV!D+$FtuP31JO&3=I&aE+u|=5A)Hv$*VMh&S3C#^>bP0l+XkK
DSH>_4

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/overcast/images/ui-bg_flat_0_eeeeee_40x100.png b/public/admin/js/osmplayer/jquery-ui/overcast/images/ui-bg_flat_0_eeeeee_40x100.png
new file mode 100644
index 0000000000000000000000000000000000000000..e44f861be1ccdfec4275eb20d9b056f14992f649
GIT binary patch
literal 180
zcmeAS@N?(olHy`uVBq!ia0vp^8bF-F!3HG1q!d*FscKIb$B>N1x91EQ4=4yQ7#`Sv
zZF_)9$%zYm;;c7~Kd+Iuj%U9o62cnl7#bi-T}u4XA(n|-?{<9$I)lN})z4*}Q$iB}
D#5ytf

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/overcast/images/ui-bg_flat_55_c0402a_40x100.png b/public/admin/js/osmplayer/jquery-ui/overcast/images/ui-bg_flat_55_c0402a_40x100.png
new file mode 100644
index 0000000000000000000000000000000000000000..b8c9bb1160d4231b92714d925a1017c42ae312ac
GIT binary patch
literal 213
zcmeAS@N?(olHy`uVBq!ia0vp^8bF-F!N$PA*qrS22FRJ?>EalY(fIcIM&4!zkpmYd
z6wYY6cvEL(v&Mu!!3y(EUq1eWkMqc;{MXM*AJoQFTzK@zq0Z8F!s&47J(m}x=U#Zw
z%&xzm;n;g04>0&qzL4Km5g9y`ZGBw-<#Nya3aLg>lHgSR58VP2V;lkkf$n7RboFyt
I=akR{0G<3!4FCWD

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/overcast/images/ui-bg_flat_55_eeeeee_40x100.png b/public/admin/js/osmplayer/jquery-ui/overcast/images/ui-bg_flat_55_eeeeee_40x100.png
new file mode 100644
index 0000000000000000000000000000000000000000..e44f861be1ccdfec4275eb20d9b056f14992f649
GIT binary patch
literal 180
zcmeAS@N?(olHy`uVBq!ia0vp^8bF-F!3HG1q!d*FscKIb$B>N1x91EQ4=4yQ7#`Sv
zZF_)9$%zYm;;c7~Kd+Iuj%U9o62cnl7#bi-T}u4XA(n|-?{<9$I)lN})z4*}Q$iB}
D#5ytf

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/overcast/images/ui-bg_glass_100_f8f8f8_1x400.png b/public/admin/js/osmplayer/jquery-ui/overcast/images/ui-bg_glass_100_f8f8f8_1x400.png
new file mode 100644
index 0000000000000000000000000000000000000000..cd79e9f1966df03e2956237b5a878a7c7cc32872
GIT binary patch
literal 105
zcmeAS@N?(olHy`uVBq!ia0vp^j6gJjgAK^akKnouqzpV=978O6lYe}DeZ5|djg74>
zFlmZ}YMbuI_xJ5n^pusA+k{LEm8SFvEk2@QID>;>p$C_c^rhBHpk4+~S3j3^P6<r_
DT2CEQ

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/overcast/images/ui-bg_glass_35_dddddd_1x400.png b/public/admin/js/osmplayer/jquery-ui/overcast/images/ui-bg_glass_35_dddddd_1x400.png
new file mode 100644
index 0000000000000000000000000000000000000000..3550f06cc447d17ae2c4caac20ce49ed4eea2783
GIT binary patch
literal 109
zcmeAS@N?(olHy`uVBq!ia0vp^j6gJjgAK^akKnouq)a?r978O6lPi9Fcv!E-#>Unb
zm^4K~wN3Zq^YijNhHh?dDNKq7j~r=P!_sT&)g!d{$O9FIBu&m!xp}EfK>ZA!u6{1-
HoD!M<?ld3W

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/overcast/images/ui-bg_glass_60_eeeeee_1x400.png b/public/admin/js/osmplayer/jquery-ui/overcast/images/ui-bg_glass_60_eeeeee_1x400.png
new file mode 100644
index 0000000000000000000000000000000000000000..8ad921a83ec13830f2c887004fd062b9a2bcf42e
GIT binary patch
literal 110
zcmeAS@N?(olHy`uVBq!ia0vp^j6gJjgAK^akKnouq)a_s978O6lYe}9dAVMVjg74>
zFlmZ}YMbuI=jY{9^pusA%k+eWh1=p<bY^V>OR)(vGCX<3`Ri0;xE;^{22WQ%mvv4F
FO#t-yABX?|

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/overcast/images/ui-bg_inset-hard_75_999999_1x100.png b/public/admin/js/osmplayer/jquery-ui/overcast/images/ui-bg_inset-hard_75_999999_1x100.png
new file mode 100644
index 0000000000000000000000000000000000000000..89b88d8da7b9c849a8c9fa5f9d44d0f89be8002e
GIT binary patch
literal 114
zcmeAS@N?(olHy`uVBq!ia0vp^j6j^i!3HGVb)pi0l%=POV~E7myXQA@G8po(9K1a5
zO8uIww=N0d2^Bw55)Ox!>#MwMcWK$6%P?`~<WSSf4Yle9HUB@(;9WnRMdJ6AM{9wG
OFnGH9xvX<aXaWH9pe4cp

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/overcast/images/ui-bg_inset-soft_50_c9c9c9_1x100.png b/public/admin/js/osmplayer/jquery-ui/overcast/images/ui-bg_inset-soft_50_c9c9c9_1x100.png
new file mode 100644
index 0000000000000000000000000000000000000000..1c6203e5444ade7295c2e4ed84c3a416a20a8722
GIT binary patch
literal 142
zcmeAS@N?(olHy`uVBq!ia0vp^j6j^i!3Ja)XlH!`azZ^_9780gZte5tI$*%za{OcY
z|K!S5Wsj9wmMm$_ljH004-6G&OyD$THWn`Vp2`~C*wG+(k!jNN-RA?Yew!KT9{P52
r`?U4P?>oD=O^{ix>G#xLZWrUXOMEYXY~bbvTEO7x>gTe~DWM4f<N`6>

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/overcast/images/ui-icons_3383bb_256x240.png b/public/admin/js/osmplayer/jquery-ui/overcast/images/ui-icons_3383bb_256x240.png
new file mode 100644
index 0000000000000000000000000000000000000000..905274f21d0478fc479d4ccc8267da89772e9662
GIT binary patch
literal 4369
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

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/overcast/images/ui-icons_454545_256x240.png b/public/admin/js/osmplayer/jquery-ui/overcast/images/ui-icons_454545_256x240.png
new file mode 100644
index 0000000000000000000000000000000000000000..59bd45b907c4fd965697774ce8c5fc6b2fd9c105
GIT binary patch
literal 4369
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

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/overcast/images/ui-icons_70b2e1_256x240.png b/public/admin/js/osmplayer/jquery-ui/overcast/images/ui-icons_70b2e1_256x240.png
new file mode 100644
index 0000000000000000000000000000000000000000..e81ac8d9479570bb6bf8286a9780aa427cad2a3a
GIT binary patch
literal 5355
zcmd^D=RX^c*NsGC#onvbu3faY#8!L6-m_Y2i%o1*^INM%DWyh>wx}6Vd&I1n+7zW?
z*5=pe?|AO#zBuRIIp@tipZn5KUz41ag%kh)kU!B<GX?+%{z1S2G3Xzv(+~CjNB$V<
zBGd!EZ2bS(`z?c~|BUMg80(t=n5ZNOi48kr--vP{eBf>lEHqdsrvihDmi9d>K5=8=
zc&Wtb?&pJJ{W5B79WCKCjpeCTpS}v*6!YLoA;9!9r|frip36lVN?wtf?(UOXHvj;w
z{S!51L~!9BTQX-{6E$Q|+p03J^g56ADRN49{tI6iOisjFvTbLwcK7D4SaQu5vkJ)g
zF{Pbikn^tl*oSZ*Kt&kOL>N%4a>H2EMuLiX3<{Qg+2{{7d6A<!Fl{l=yvcI7&X%<{
zIkRD`Kuv4JJX)*qixXyYdX+weFVu2l65?wKIV%cSHc=PRJX|@?kl9t*Rjw#_F<<SH
zTz;`f!5L}Az5lC&z@KVyy6*89|K51Ln|?u6T*(gs^3NsFY~sAlJ=}f*Y8JE>It&#?
zvASRFv<pCVg3Jv%*#wv#aO%+KP(<Dr<*tVMrk%*U5El^yyY4gBV@8u269FC6@7^Rf
zmMjI%-Cd{XYh2;X$htbOe(UJsph@JcsD1O1^Bhkn*2vUJQAqXkqdKD6JtZo0k+zRk
zl`<+UTH_0BDamuWLOhXpy6XO#R-lmU`_zMvOc%0(vVC{V+AM;bW@?wktKP@iqwD<x
zzPa#L(b$>uXLq9`q?qb?@0#v4WQB30NnSEotNd}$vOThk+?m~UIOb7KNG?2*`OJ8>
znj;m<Jps{{-P_}ex~07TI}LrIJq(r`b;;&Q6eaJGgnOB}1{H1az6n}a;-<|d7)N3@
zskcTcP5QQw$56=X`^FE@A&#~vZedrN(<WO4neUC*;7U$-r}Hvy<17y~UFGza)y>Ce
zclni*)<d8MAQxl8Ipojrk)1LNsvAEo0ON`+Ypup{Te8=^dNpoX_TczBUG=f54IK}S
znMl5J!zd5M<jf?aQz7*4ayp7Z5@RftH~Zow@37fH)25)l`87JSj?`IBRdjqa*L2(Q
z?fWhNn?O}tX$2}*Y2o&EDUuHhlY`4cbu-MS^c3mSJ#6NTg&#!TTw+x_8BPX}(xu&j
zh%jEk&IZ|wNv^TYPP4eZsnFY1gC32-MAH^xI<U;@M9KqzWn{Y$^9t{p#V0Ae3Bu7_
zZPA3nd}_e;c_1X4+HPv%^%EvMR*&+jm^}-HUWd0U*F0Z!B=ZZ-SpGFq|4W0{NmJ(k
zNuP+se~nt1m5-Oaw;FuvM)UVSV(E}Fza*9)+^Q`_8$z<q9(s(nqNg&xmMKgw+{PV;
z4jDIq&bs-t>MajPQ#+4}xWC-jVumomz*?TZ$aLZ_W9w&HmTWPbO}}3~l88;6DgO3r
zg&4)YY#07(ft4-h0yKW$gbNFI>=K4~pi$~#$X-lrya!0PX#_S80hD<w%Dc=4d$P{4
zgDB}S>Z4(_o#)DOFvko%iB29(-vkw*Y<F6ML{+d-K!&Tm0f9`{=L3w(d1|G2kfCRj
zdWHjr{8U+aFs8rTdPlSvlb;z%?b7H7FzZ20aT{z%@f{N}{GReSflX~+_n8qkp>Ebl
zQ__i!&K+z~^Zx-2tC_j=6SSo*ofuvFrPG8#TGou)EE<(j5>13su9nqpJ0^e@D%{KP
zcPf0ejkY@bRK~lnhRbQ9dYhoijFgBIlXdK4SpL3y*e>v<t3mc_KlF^N%cd5OY(_(d
zFn+S8VH|P3e~{H4?4Qw<snkGr{3|iEI9rVQ%6B1H+3ptof^R*SrulGXe*UII5cd7m
zu6d{O`fA(Omc}m;ER}=f)NT#HwZ^u{i))<ejgy{=ZM%=qqw=Lrf~dk9a>+tXTa)fI
z(T5;Q$Ka~r2Zu}Du|!GJ*4LYD3Z>}xLfcA5{bc?xI;oep5venba|wc9{RbP0j(UW3
za830#)k&wgXU`otTvwLaL4KC#@2u1S#v$1d$A$4K(n{U3aLCx(2M}HBdMH9#vy8an
z_Z>av+nMn-E#}k^O=Z}c#<THBOni}{>_QM}a`iL7T%)30RlOSr_|+x`k&v5U&UOzt
z(9KF6hp|k{u*fTUDi}#?tZgHgu*%GEPb}u2R*qEYa0#m^Xg`e!)3S8(oz+tVBJkrT
z0QDHv1_QM3`kU+|*iZoQU1S$mW(M8Oo#nK(2S{^N3jxtl7uRcpALC`@&6427!1wKc
zZo9^N=(G5CEJELd&-Xvf1|uPoL{OU`7$yj&2$28|n%PWKrp%u8z<J+w`&Q=R;2Lb!
zHAM0iJsh`aQvuQ_wDBCFolJ9_M-D7NCw}=lIY?We315LG1Y%zWtV$yCuE<$+96VB%
zF0wK+W4=*vsVJfr2|C`~6F}j=TYkGP2`m4}rQa6bG!3%AXek<Uwv-b}Nc>If>ic)&
zj_<J+<90YBe1a6~@t(k}6@}?#+b@V_5mc}9da731NNT@-FJA@q6A~ANVCcPshfH4B
zZ_5McKCtZKS1XT>>y22&?AQz_6+j*$Hy7$Ia#SCaLRT@DVwC)c3i02k=$|OAJhw7T
zk2&?{S2jZ(iVV0R`c~eaU?Q-Z5=clGcwRW%LYe9P$kE(mh;pL7<zTbQ=bNR_y7|^<
z`d<8sAB4+n)&yRF5g@KvKM5~}H5C5`7ynPLp=fM9Ii2I9Jh*%P#5Z2P^>TG(`s)_5
zj`Z`vz>260v9}v<D7y)<vBCZTMFK5QBUfW0IA#BU&t@DVvzE#kbY}oLViWkaYQLyC
z0vfs3NIKUcQVE;7MX^$WeYZ-2s+0TEr!5I5HNjG;3kV^77V8WpLb4M#OBX=g(lun|
z@nF>)?azoXt7m6>DS;j(6W}Ga;({aXsbZGviNi7z8@o`bE?78FqxG65pnX^;#65=U
zls4k|`n-#u8_y<I@~49GL-EA^;xH&3ldn?oZqlrrs!K_}Xl|crSN42I*rIZIo%eHN
z{kUk7@~!#|);Km$)<m%p2@7P8!6c;<1upsw5Tmk16JgB|xy8Ovfc>l{BztIG7UQqZ
zV-?gq1~_({Wf{e$GvG8#leM^MIxnY5Tses~fBbrQZN(H+x@ab?l;h<%WnhiN3Jsy?
zy9V){Qf$du8Z^}fcC3(Ea?or-bk50DpFy3zTSt9IH^L{>@e+K%Le_^egBys6but`{
zoBSEGHHlgrORWhC?nHRu7NRMutu)uUiS=)}<{_9)tfQ@ebYt>#;daws3u)3}hrXLK
zikZVp%`oKN`S*tS9T?iIcBjGIzAJT9!xCHdOlZiIKl6A=ip=cm8uUHgxbzz9IBy6g
z!eKYD+HalU&%0EM3%4o*P%&h2)O+(iJYAX9Tgm*2jCDQA3nEdj6D7FF=+<AMclIlF
z&|R)ZIs;Jhs8{b&Xgr<0IV4X1?;f*4cd{XguD93Rpb`k0;V#F~{|33l@+2}|c4sTQ
zRfqGDTPwLs-WF@mH-Pi#-(|(OGG*nmGLn=vEjm)q50H@hed@akwh#>Mv+{6eI8xkM
zpFTcz<nI-J9z<EtSk;FV8mW3npJ1Lpx!LBYjl(J^8Wk12Xjr#aT%BNo><fT$lqGeU
zGB6d3+S4n#_g3SXEl7ydM+US&tiu(9U619aKe4>y2z{n~<6J?>pLOTP7yUAQM;Esk
z@TL$;1Q<a^JnY_oGzA?AkMHi|Ex<LU@~%jXAL6}LF*z?d*Ow0MgR5;&f0mpZ9+=&M
z95ud5DtJ+9ga<(i9Ldj1vhQ&S=f+3op~r{)0XoM%ihD<=Do!)W$O_qqubRAgohR1!
zDe$W|`p3f-tTG%c`|>D`%b$qW`?;#ABy}|Vy9CnNwf(8$B?XG3WIwu*REI$ZQ|~&H
zu8#2rFvshHJm5or;8qM<aKD5E_~6_zG)cmTd(8m19u7A}w0<k<FFL$)xHj2m*Bi4T
zK$A(kEp?%e3HBqUS1KmSTbP;eAKW^ue6hqYu^1UrNpN1@C|^0Rpm{SgsW}&CC{7TT
z7(h-~<%b0*=zRQzxmWbQGA|0s)_$$VDv;dmn{fy*V!OIM`E;?n_};d1c7VZdBUW2&
z-=TC<S^P+VGr0M`_)zNRd#i)pz?cE$mtk?j$;E>ULa01cs1Orr$-g2`=0Nxt2M(rH
z2xc7kH{1P7*(*2I3Q80{)&<m=#0st6{5PcZj>rhNMnj###MdP7fQ|0bV7KQzG9^@z
zKv=l@oR1+v3Wk3PEFmFrPp-)hxhxUufczQ8?+}Y4ydgOtkFjHpkcDS(`y}_{#}to*
z`Rn0Yg!xd_NDH7AxNnGqI@VM?eAvlgEeRD4aUQ&?8}}hmjLtmqaK=IZ7NCQ`g52Ee
z@5)wQOHV}UDA7>8{OR4_F-{2Lu^GRZBaZJI)7aE_WiZNxe3J|8fW~!0((in-B*phK
zs8JdpLfK@9bWwZ~K9rh?N*(LsW|0=LMqORNSc5O;A0uPx?h~pXkkU1P>kFXb0jxX=
z17XROq{K1Z*Gy5@q#88hX<=Y0jnQ>fN=iCQ*q^TGH%?X$gl#GW6xwJUQ0o}+;~nq%
zlqE(qZ%VfI62?qf@$8OUd!~3f0ebcZtV<>Zh)HV80=)G!AR`d_S>x1God`XBDPVzm
z*#O`})yMDsti1reaVUDb$i!^X&tY}M%o21$S@18)G>X->86`orrwr(|2eBlq#dn8W
z;)(Q&pMO%v&k26<4%8M<{JJr(x07Q>!71|uY{nTO{K+j25OaPDj92<3bRU3Liq3}R
zLpT#!;SC+H&t0#dt8C<|$sFAh`WTEkK6MFaGwesy`W}rwJ>r=d``e#RDf2A<!G!-`
zabZT)NJbknInx=l{Ktt~rp=@_y*my^($cHH9Lye8ZGz%Xdz|5fZgKizv4hq9oo;V)
zlkOP~#hTd)y62bvz(8AfS960zGid<ZxuvmT(yh-3v~~j{z8|(|dr1~zc6zV3;9$;l
zr0ePCDdisBXD2kk<rEgQYIsQ#9}_ZQzDhqF^AXV1+pFFR#`w)QmR5y4X%}oZjxqyC
zM5+@WASxm+=@j)hccL0)T&M4o2!?G7YaEEQ;NKA*kjaT!Hl%m4Kcyw+6u`d$zCQ1<
zyDy4*UWH<VNDbIM2IG@|H2wiT%JHUTB4N5zi3pFpv<8sR+SXFbtC}{FTDKc7JV0em
zIMz%cl#Zp>->nXdg~jTG@Kv#6$KGSZj0}oKLw-ES?B%ZMF72rEyB$lViA>vZyx+xV
zj%Kgf4JEf4`?2?~BNeex{%5va0qL$h%Wns4Kbg;d%Jq#g?@iNGPG`&^Q78gF144&h
zUSg+BB&@1i-_goOAjmjP9nVFsYp+JMz~#T{nDwyw(t`OJ2QyE{=N`&?9S&d7JeeeQ
z^O;of;3fP5ZoUKq$AM>r2d_fT?oWT<wuO^ev=Tm=Q@Nx($lX6S{{~;PcT_h|;amOv
zI}qMIQCV8(s@kUid#mx=<NEsmm%kjAZIhZB{C_Cwqi_AYQM*7t<(GA07JM7MZu6&8
zF~t__0agE**|*<bsU-C-+p~VjHt+Plv^$Gq7nzYIZ+LN>xy*c)_JBP_M+7n(F>%(G
zV$tm>7eUs5Kl5f~Rl#kV%IkrTWDe+OyBYN#+?uS}>yy=0*g`%P)b@_}xeR8H;;UA3
z#Pl;0>u^T_D9M^4a{ED*4$`Z}r&co{!qrfvEy7mglcC9S4*NF$f@@nwDG(RtC6F5B
zt-gUtRm<2?4l-?}LI4(JQnaekEt$yaNpD_%FB=-I!VsQ;2EgqnceYpAp(~qGz8%KR
z2e0Kr0w2l2U}uDI!VhNrqHmE=p3%<Po&?g;i+hE3V+&j6duX!utTLmgXDwJO5r!zf
z_(zNOJ8FQpv9PV}hw2vvnN>7NDy3iy0$92QU82>;@9UGyza8+^ekled3oEgUo_D&r
z&)wZ0#<?{TnW(ql7PhfnA1o$9q`eZm?{#!X#2WjcE6>QY@VSQ~FUR4ER3#%r^X%gj
zrp1Vow%f@7^cm?{h(-PD)V6I&oq=R&wQodnH8n5hCr?xHZBff%)T8ZmiS(!%agp|7
zA_*MA^h_5w12pVOz#m$0z&Uqj)57(*KdZ$Z)QBO+!J!Ns6ww?T7IaHDKE(=b6P&!<
z>r+G{b9+7Zyo;cFibp$rVxMF;1mH}n@c0!HOq``&U9*Q9hI>wg&Tj<Xty(bj$wh`Z
zW5ZDsm`De&?n_Z90Z{w|pTl>S+Ta>}vHh`;Fwc3c=W2h#PqB{$L7tfi;OXRd-E0Qd
z$^HamwAW$3MtkYE*XE2)zm}DGUsb<8escD7wrZ7abmx1=`>qfCN0PF}Si9e6dd39X
zW}lB{-n|5%XE3JofjecY<Ojcdg%*BIi<dkbQ2a1pX~N9RTugi(fx3Umu!F;H2M*(M
z?g2X~4+w-a%*0gM9-R~=*L}welNT}!9#D#2t9}V5=vei;$cn#e82!FDyA8@{Ya+3-
zlfRl2_W|>*zjo(ZgB*6H!v@kZ-Z44Sk=~x)9SM9O!k#UD_NMu(jtgUB8d}7}HXj>M
zq3$<nZJ&WFX9Nk`LYnq3RO+mknofuht^leh)8GEP{rlV`bn&RETv9>;;t<fcv|W~1
zSTnUFcYbvg_jW9dp6&)nb<%=a*JQw`;(`B+T*2?c)YC}gndI0$vDi#)PTy486|Rv0
zNUy12f&h73sVqtirP877ZGXMbh9iadGiKc;S;L_>wwy*c>5X7dvOvIx3pY0TTguC1
Wf3}is$mak3GM}jHtJSJF#QYEaKVokH

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/overcast/images/ui-icons_999999_256x240.png b/public/admin/js/osmplayer/jquery-ui/overcast/images/ui-icons_999999_256x240.png
new file mode 100644
index 0000000000000000000000000000000000000000..50ff803dceabc920d514d6a41634fe4388b6c128
GIT binary patch
literal 4369
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

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/overcast/images/ui-icons_fbc856_256x240.png b/public/admin/js/osmplayer/jquery-ui/overcast/images/ui-icons_fbc856_256x240.png
new file mode 100644
index 0000000000000000000000000000000000000000..9d1b027fc2f27eebc61240622e249d35498a2daa
GIT binary patch
literal 4369
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

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/overcast/jquery-ui-1.8.18.custom.css b/public/admin/js/osmplayer/jquery-ui/overcast/jquery-ui-1.8.18.custom.css
new file mode 100644
index 00000000000..87c655db2f8
--- /dev/null
+++ b/public/admin/js/osmplayer/jquery-ui/overcast/jquery-ui-1.8.18.custom.css
@@ -0,0 +1,565 @@
+/*
+ * jQuery UI CSS Framework 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Theming/API
+ */
+
+/* Layout helpers
+----------------------------------*/
+.player-ui .ui-helper-hidden { display: none; }
+.player-ui .ui-helper-hidden-accessible { position: absolute !important; clip: rect(1px 1px 1px 1px); clip: rect(1px,1px,1px,1px); }
+.player-ui .ui-helper-reset { margin: 0; padding: 0; border: 0; outline: 0; line-height: 1.3; text-decoration: none; font-size: 100%; list-style: none; }
+.player-ui .ui-helper-clearfix:before, .player-ui .ui-helper-clearfix:after { content: ""; display: table; }
+.player-ui .ui-helper-clearfix:after { clear: both; }
+.player-ui .ui-helper-clearfix { zoom: 1; }
+.player-ui .ui-helper-zfix { width: 100%; height: 100%; top: 0; left: 0; position: absolute; opacity: 0; filter:Alpha(Opacity=0); }
+
+
+/* Interaction Cues
+----------------------------------*/
+.player-ui .ui-state-disabled { cursor: default !important; }
+
+
+/* Icons
+----------------------------------*/
+
+/* states and images */
+.player-ui .ui-icon { display: block; text-indent: -99999px; overflow: hidden; background-repeat: no-repeat; }
+
+
+/* Misc visuals
+----------------------------------*/
+
+/* Overlays */
+.player-ui .ui-widget-overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }
+
+
+/*
+ * jQuery UI CSS Framework 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Theming/API
+ *
+ * To view and modify this theme, visit http://jqueryui.com/themeroller/?ffDefault=Trebuchet%20MS,%20Helvetica,%20Arial,%20sans-serif&fwDefault=bold&fsDefault=1.1em&cornerRadius=6px&bgColorHeader=dddddd&bgTextureHeader=02_glass.png&bgImgOpacityHeader=35&borderColorHeader=bbbbbb&fcHeader=444444&iconColorHeader=999999&bgColorContent=c9c9c9&bgTextureContent=05_inset_soft.png&bgImgOpacityContent=50&borderColorContent=aaaaaa&fcContent=333333&iconColorContent=999999&bgColorDefault=eeeeee&bgTextureDefault=02_glass.png&bgImgOpacityDefault=60&borderColorDefault=cccccc&fcDefault=3383bb&iconColorDefault=70b2e1&bgColorHover=f8f8f8&bgTextureHover=02_glass.png&bgImgOpacityHover=100&borderColorHover=bbbbbb&fcHover=599fcf&iconColorHover=3383bb&bgColorActive=999999&bgTextureActive=06_inset_hard.png&bgImgOpacityActive=75&borderColorActive=999999&fcActive=ffffff&iconColorActive=454545&bgColorHighlight=eeeeee&bgTextureHighlight=01_flat.png&bgImgOpacityHighlight=55&borderColorHighlight=ffffff&fcHighlight=444444&iconColorHighlight=3383bb&bgColorError=c0402a&bgTextureError=01_flat.png&bgImgOpacityError=55&borderColorError=c0402a&fcError=ffffff&iconColorError=fbc856&bgColorOverlay=eeeeee&bgTextureOverlay=01_flat.png&bgImgOpacityOverlay=0&opacityOverlay=80&bgColorShadow=aaaaaa&bgTextureShadow=01_flat.png&bgImgOpacityShadow=0&opacityShadow=60&thicknessShadow=4px&offsetTopShadow=-4px&offsetLeftShadow=-4px&cornerRadiusShadow=0pxdow=0px
+ */
+
+
+/* Component containers
+----------------------------------*/
+.player-ui .ui-widget { font-family: Trebuchet MS, Helvetica, Arial, sans-serif; font-size: 1.1em; }
+.player-ui .ui-widget .ui-widget { font-size: 1em; }
+.player-ui .ui-widget input, .player-ui .ui-widget select, .player-ui .ui-widget textarea, .player-ui .ui-widget button { font-family: Trebuchet MS, Helvetica, Arial, sans-serif; font-size: 1em; }
+.player-ui .ui-widget-content { border: 1px solid #aaaaaa; background: #c9c9c9 url(images/ui-bg_inset-soft_50_c9c9c9_1x100.png) 50% bottom repeat-x; color: #333333; }
+.player-ui .ui-widget-content a { color: #333333; }
+.player-ui .ui-widget-header { border: 1px solid #bbbbbb; background: #dddddd url(images/ui-bg_glass_35_dddddd_1x400.png) 50% 50% repeat-x; color: #444444; font-weight: bold; }
+.player-ui .ui-widget-header a { color: #444444; }
+
+/* Interaction states
+----------------------------------*/
+.player-ui .ui-state-default, .player-ui .ui-widget-content .ui-state-default, .player-ui .ui-widget-header .ui-state-default { border: 1px solid #cccccc; background: #eeeeee url(images/ui-bg_glass_60_eeeeee_1x400.png) 50% 50% repeat-x; font-weight: bold; color: #3383bb; }
+.player-ui .ui-state-default a, .player-ui .ui-state-default a:link, .player-ui .ui-state-default a:visited { color: #3383bb; text-decoration: none; }
+.player-ui .ui-state-hover, .player-ui .ui-widget-content .ui-state-hover, .player-ui .ui-widget-header .ui-state-hover, .player-ui .ui-state-focus, .player-ui .ui-widget-content .ui-state-focus, .player-ui .ui-widget-header .ui-state-focus { border: 1px solid #bbbbbb; background: #f8f8f8 url(images/ui-bg_glass_100_f8f8f8_1x400.png) 50% 50% repeat-x; font-weight: bold; color: #599fcf; }
+.player-ui .ui-state-hover a, .player-ui .ui-state-hover a:hover { color: #599fcf; text-decoration: none; }
+.player-ui .ui-state-active, .player-ui .ui-widget-content .ui-state-active, .player-ui .ui-widget-header .ui-state-active { border: 1px solid #999999; background: #999999 url(images/ui-bg_inset-hard_75_999999_1x100.png) 50% 50% repeat-x; font-weight: bold; color: #ffffff; }
+.player-ui .ui-state-active a, .player-ui .ui-state-active a:link, .player-ui .ui-state-active a:visited { color: #ffffff; text-decoration: none; }
+.player-ui .ui-widget :active { outline: none; }
+
+/* Interaction Cues
+----------------------------------*/
+.player-ui .ui-state-highlight, .player-ui .ui-widget-content .ui-state-highlight, .player-ui .ui-widget-header .ui-state-highlight  {border: 1px solid #ffffff; background: #eeeeee url(images/ui-bg_flat_55_eeeeee_40x100.png) 50% 50% repeat-x; color: #444444; }
+.player-ui .ui-state-highlight a, .player-ui .ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a { color: #444444; }
+.player-ui .ui-state-error, .player-ui .ui-widget-content .ui-state-error, .player-ui .ui-widget-header .ui-state-error {border: 1px solid #c0402a; background: #c0402a url(images/ui-bg_flat_55_c0402a_40x100.png) 50% 50% repeat-x; color: #ffffff; }
+.player-ui .ui-state-error a, .player-ui .ui-widget-content .ui-state-error a, .player-ui .ui-widget-header .ui-state-error a { color: #ffffff; }
+.player-ui .ui-state-error-text, .player-ui .ui-widget-content .ui-state-error-text, .player-ui .ui-widget-header .ui-state-error-text { color: #ffffff; }
+.player-ui .ui-priority-primary, .player-ui .ui-widget-content .ui-priority-primary, .player-ui .ui-widget-header .ui-priority-primary { font-weight: bold; }
+.player-ui .ui-priority-secondary, .player-ui .ui-widget-content .ui-priority-secondary,  .ui-widget-header .ui-priority-secondary { opacity: .7; filter:Alpha(Opacity=70); font-weight: normal; }
+.player-ui .ui-state-disabled, .player-ui .ui-widget-content .ui-state-disabled, .player-ui .ui-widget-header .ui-state-disabled { opacity: .35; filter:Alpha(Opacity=35); background-image: none; }
+
+/* Icons
+----------------------------------*/
+
+/* states and images */
+.player-ui .ui-icon { width: 16px; height: 16px; background-image: url(images/ui-icons_999999_256x240.png); }
+.player-ui .ui-widget-content .ui-icon {background-image: url(images/ui-icons_999999_256x240.png); }
+.player-ui .ui-widget-header .ui-icon {background-image: url(images/ui-icons_999999_256x240.png); }
+.player-ui .ui-state-default .ui-icon { background-image: url(images/ui-icons_70b2e1_256x240.png); }
+.player-ui .ui-state-hover .ui-icon, .player-ui .ui-state-focus .ui-icon {background-image: url(images/ui-icons_3383bb_256x240.png); }
+.player-ui .ui-state-active .ui-icon {background-image: url(images/ui-icons_454545_256x240.png); }
+.player-ui .ui-state-highlight .ui-icon {background-image: url(images/ui-icons_3383bb_256x240.png); }
+.player-ui .ui-state-error .ui-icon, .player-ui .ui-state-error-text .ui-icon {background-image: url(images/ui-icons_fbc856_256x240.png); }
+
+/* positioning */
+.player-ui .ui-icon-carat-1-n { background-position: 0 0; }
+.player-ui .ui-icon-carat-1-ne { background-position: -16px 0; }
+.player-ui .ui-icon-carat-1-e { background-position: -32px 0; }
+.player-ui .ui-icon-carat-1-se { background-position: -48px 0; }
+.player-ui .ui-icon-carat-1-s { background-position: -64px 0; }
+.player-ui .ui-icon-carat-1-sw { background-position: -80px 0; }
+.player-ui .ui-icon-carat-1-w { background-position: -96px 0; }
+.player-ui .ui-icon-carat-1-nw { background-position: -112px 0; }
+.player-ui .ui-icon-carat-2-n-s { background-position: -128px 0; }
+.player-ui .ui-icon-carat-2-e-w { background-position: -144px 0; }
+.player-ui .ui-icon-triangle-1-n { background-position: 0 -16px; }
+.player-ui .ui-icon-triangle-1-ne { background-position: -16px -16px; }
+.player-ui .ui-icon-triangle-1-e { background-position: -32px -16px; }
+.player-ui .ui-icon-triangle-1-se { background-position: -48px -16px; }
+.player-ui .ui-icon-triangle-1-s { background-position: -64px -16px; }
+.player-ui .ui-icon-triangle-1-sw { background-position: -80px -16px; }
+.player-ui .ui-icon-triangle-1-w { background-position: -96px -16px; }
+.player-ui .ui-icon-triangle-1-nw { background-position: -112px -16px; }
+.player-ui .ui-icon-triangle-2-n-s { background-position: -128px -16px; }
+.player-ui .ui-icon-triangle-2-e-w { background-position: -144px -16px; }
+.player-ui .ui-icon-arrow-1-n { background-position: 0 -32px; }
+.player-ui .ui-icon-arrow-1-ne { background-position: -16px -32px; }
+.player-ui .ui-icon-arrow-1-e { background-position: -32px -32px; }
+.player-ui .ui-icon-arrow-1-se { background-position: -48px -32px; }
+.player-ui .ui-icon-arrow-1-s { background-position: -64px -32px; }
+.player-ui .ui-icon-arrow-1-sw { background-position: -80px -32px; }
+.player-ui .ui-icon-arrow-1-w { background-position: -96px -32px; }
+.player-ui .ui-icon-arrow-1-nw { background-position: -112px -32px; }
+.player-ui .ui-icon-arrow-2-n-s { background-position: -128px -32px; }
+.player-ui .ui-icon-arrow-2-ne-sw { background-position: -144px -32px; }
+.player-ui .ui-icon-arrow-2-e-w { background-position: -160px -32px; }
+.player-ui .ui-icon-arrow-2-se-nw { background-position: -176px -32px; }
+.player-ui .ui-icon-arrowstop-1-n { background-position: -192px -32px; }
+.player-ui .ui-icon-arrowstop-1-e { background-position: -208px -32px; }
+.player-ui .ui-icon-arrowstop-1-s { background-position: -224px -32px; }
+.player-ui .ui-icon-arrowstop-1-w { background-position: -240px -32px; }
+.player-ui .ui-icon-arrowthick-1-n { background-position: 0 -48px; }
+.player-ui .ui-icon-arrowthick-1-ne { background-position: -16px -48px; }
+.player-ui .ui-icon-arrowthick-1-e { background-position: -32px -48px; }
+.player-ui .ui-icon-arrowthick-1-se { background-position: -48px -48px; }
+.player-ui .ui-icon-arrowthick-1-s { background-position: -64px -48px; }
+.player-ui .ui-icon-arrowthick-1-sw { background-position: -80px -48px; }
+.player-ui .ui-icon-arrowthick-1-w { background-position: -96px -48px; }
+.player-ui .ui-icon-arrowthick-1-nw { background-position: -112px -48px; }
+.player-ui .ui-icon-arrowthick-2-n-s { background-position: -128px -48px; }
+.player-ui .ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px; }
+.player-ui .ui-icon-arrowthick-2-e-w { background-position: -160px -48px; }
+.player-ui .ui-icon-arrowthick-2-se-nw { background-position: -176px -48px; }
+.player-ui .ui-icon-arrowthickstop-1-n { background-position: -192px -48px; }
+.player-ui .ui-icon-arrowthickstop-1-e { background-position: -208px -48px; }
+.player-ui .ui-icon-arrowthickstop-1-s { background-position: -224px -48px; }
+.player-ui .ui-icon-arrowthickstop-1-w { background-position: -240px -48px; }
+.player-ui .ui-icon-arrowreturnthick-1-w { background-position: 0 -64px; }
+.player-ui .ui-icon-arrowreturnthick-1-n { background-position: -16px -64px; }
+.player-ui .ui-icon-arrowreturnthick-1-e { background-position: -32px -64px; }
+.player-ui .ui-icon-arrowreturnthick-1-s { background-position: -48px -64px; }
+.player-ui .ui-icon-arrowreturn-1-w { background-position: -64px -64px; }
+.player-ui .ui-icon-arrowreturn-1-n { background-position: -80px -64px; }
+.player-ui .ui-icon-arrowreturn-1-e { background-position: -96px -64px; }
+.player-ui .ui-icon-arrowreturn-1-s { background-position: -112px -64px; }
+.player-ui .ui-icon-arrowrefresh-1-w { background-position: -128px -64px; }
+.player-ui .ui-icon-arrowrefresh-1-n { background-position: -144px -64px; }
+.player-ui .ui-icon-arrowrefresh-1-e { background-position: -160px -64px; }
+.player-ui .ui-icon-arrowrefresh-1-s { background-position: -176px -64px; }
+.player-ui .ui-icon-arrow-4 { background-position: 0 -80px; }
+.player-ui .ui-icon-arrow-4-diag { background-position: -16px -80px; }
+.player-ui .ui-icon-extlink { background-position: -32px -80px; }
+.player-ui .ui-icon-newwin { background-position: -48px -80px; }
+.player-ui .ui-icon-refresh { background-position: -64px -80px; }
+.player-ui .ui-icon-shuffle { background-position: -80px -80px; }
+.player-ui .ui-icon-transfer-e-w { background-position: -96px -80px; }
+.player-ui .ui-icon-transferthick-e-w { background-position: -112px -80px; }
+.player-ui .ui-icon-folder-collapsed { background-position: 0 -96px; }
+.player-ui .ui-icon-folder-open { background-position: -16px -96px; }
+.player-ui .ui-icon-document { background-position: -32px -96px; }
+.player-ui .ui-icon-document-b { background-position: -48px -96px; }
+.player-ui .ui-icon-note { background-position: -64px -96px; }
+.player-ui .ui-icon-mail-closed { background-position: -80px -96px; }
+.player-ui .ui-icon-mail-open { background-position: -96px -96px; }
+.player-ui .ui-icon-suitcase { background-position: -112px -96px; }
+.player-ui .ui-icon-comment { background-position: -128px -96px; }
+.player-ui .ui-icon-person { background-position: -144px -96px; }
+.player-ui .ui-icon-print { background-position: -160px -96px; }
+.player-ui .ui-icon-trash { background-position: -176px -96px; }
+.player-ui .ui-icon-locked { background-position: -192px -96px; }
+.player-ui .ui-icon-unlocked { background-position: -208px -96px; }
+.player-ui .ui-icon-bookmark { background-position: -224px -96px; }
+.player-ui .ui-icon-tag { background-position: -240px -96px; }
+.player-ui .ui-icon-home { background-position: 0 -112px; }
+.player-ui .ui-icon-flag { background-position: -16px -112px; }
+.player-ui .ui-icon-calendar { background-position: -32px -112px; }
+.player-ui .ui-icon-cart { background-position: -48px -112px; }
+.player-ui .ui-icon-pencil { background-position: -64px -112px; }
+.player-ui .ui-icon-clock { background-position: -80px -112px; }
+.player-ui .ui-icon-disk { background-position: -96px -112px; }
+.player-ui .ui-icon-calculator { background-position: -112px -112px; }
+.player-ui .ui-icon-zoomin { background-position: -128px -112px; }
+.player-ui .ui-icon-zoomout { background-position: -144px -112px; }
+.player-ui .ui-icon-search { background-position: -160px -112px; }
+.player-ui .ui-icon-wrench { background-position: -176px -112px; }
+.player-ui .ui-icon-gear { background-position: -192px -112px; }
+.player-ui .ui-icon-heart { background-position: -208px -112px; }
+.player-ui .ui-icon-star { background-position: -224px -112px; }
+.player-ui .ui-icon-link { background-position: -240px -112px; }
+.player-ui .ui-icon-cancel { background-position: 0 -128px; }
+.player-ui .ui-icon-plus { background-position: -16px -128px; }
+.player-ui .ui-icon-plusthick { background-position: -32px -128px; }
+.player-ui .ui-icon-minus { background-position: -48px -128px; }
+.player-ui .ui-icon-minusthick { background-position: -64px -128px; }
+.player-ui .ui-icon-close { background-position: -80px -128px; }
+.player-ui .ui-icon-closethick { background-position: -96px -128px; }
+.player-ui .ui-icon-key { background-position: -112px -128px; }
+.player-ui .ui-icon-lightbulb { background-position: -128px -128px; }
+.player-ui .ui-icon-scissors { background-position: -144px -128px; }
+.player-ui .ui-icon-clipboard { background-position: -160px -128px; }
+.player-ui .ui-icon-copy { background-position: -176px -128px; }
+.player-ui .ui-icon-contact { background-position: -192px -128px; }
+.player-ui .ui-icon-image { background-position: -208px -128px; }
+.player-ui .ui-icon-video { background-position: -224px -128px; }
+.player-ui .ui-icon-script { background-position: -240px -128px; }
+.player-ui .ui-icon-alert { background-position: 0 -144px; }
+.player-ui .ui-icon-info { background-position: -16px -144px; }
+.player-ui .ui-icon-notice { background-position: -32px -144px; }
+.player-ui .ui-icon-help { background-position: -48px -144px; }
+.player-ui .ui-icon-check { background-position: -64px -144px; }
+.player-ui .ui-icon-bullet { background-position: -80px -144px; }
+.player-ui .ui-icon-radio-off { background-position: -96px -144px; }
+.player-ui .ui-icon-radio-on { background-position: -112px -144px; }
+.player-ui .ui-icon-pin-w { background-position: -128px -144px; }
+.player-ui .ui-icon-pin-s { background-position: -144px -144px; }
+.player-ui .ui-icon-play { background-position: 0 -160px; }
+.player-ui .ui-icon-pause { background-position: -16px -160px; }
+.player-ui .ui-icon-seek-next { background-position: -32px -160px; }
+.player-ui .ui-icon-seek-prev { background-position: -48px -160px; }
+.player-ui .ui-icon-seek-end { background-position: -64px -160px; }
+.player-ui .ui-icon-seek-start { background-position: -80px -160px; }
+/* ui-icon-seek-first is deprecated, use ui-icon-seek-start instead */
+.player-ui .ui-icon-seek-first { background-position: -80px -160px; }
+.player-ui .ui-icon-stop { background-position: -96px -160px; }
+.player-ui .ui-icon-eject { background-position: -112px -160px; }
+.player-ui .ui-icon-volume-off { background-position: -128px -160px; }
+.player-ui .ui-icon-volume-on { background-position: -144px -160px; }
+.player-ui .ui-icon-power { background-position: 0 -176px; }
+.player-ui .ui-icon-signal-diag { background-position: -16px -176px; }
+.player-ui .ui-icon-signal { background-position: -32px -176px; }
+.player-ui .ui-icon-battery-0 { background-position: -48px -176px; }
+.player-ui .ui-icon-battery-1 { background-position: -64px -176px; }
+.player-ui .ui-icon-battery-2 { background-position: -80px -176px; }
+.player-ui .ui-icon-battery-3 { background-position: -96px -176px; }
+.player-ui .ui-icon-circle-plus { background-position: 0 -192px; }
+.player-ui .ui-icon-circle-minus { background-position: -16px -192px; }
+.player-ui .ui-icon-circle-close { background-position: -32px -192px; }
+.player-ui .ui-icon-circle-triangle-e { background-position: -48px -192px; }
+.player-ui .ui-icon-circle-triangle-s { background-position: -64px -192px; }
+.player-ui .ui-icon-circle-triangle-w { background-position: -80px -192px; }
+.player-ui .ui-icon-circle-triangle-n { background-position: -96px -192px; }
+.player-ui .ui-icon-circle-arrow-e { background-position: -112px -192px; }
+.player-ui .ui-icon-circle-arrow-s { background-position: -128px -192px; }
+.player-ui .ui-icon-circle-arrow-w { background-position: -144px -192px; }
+.player-ui .ui-icon-circle-arrow-n { background-position: -160px -192px; }
+.player-ui .ui-icon-circle-zoomin { background-position: -176px -192px; }
+.player-ui .ui-icon-circle-zoomout { background-position: -192px -192px; }
+.player-ui .ui-icon-circle-check { background-position: -208px -192px; }
+.player-ui .ui-icon-circlesmall-plus { background-position: 0 -208px; }
+.player-ui .ui-icon-circlesmall-minus { background-position: -16px -208px; }
+.player-ui .ui-icon-circlesmall-close { background-position: -32px -208px; }
+.player-ui .ui-icon-squaresmall-plus { background-position: -48px -208px; }
+.player-ui .ui-icon-squaresmall-minus { background-position: -64px -208px; }
+.player-ui .ui-icon-squaresmall-close { background-position: -80px -208px; }
+.player-ui .ui-icon-grip-dotted-vertical { background-position: 0 -224px; }
+.player-ui .ui-icon-grip-dotted-horizontal { background-position: -16px -224px; }
+.player-ui .ui-icon-grip-solid-vertical { background-position: -32px -224px; }
+.player-ui .ui-icon-grip-solid-horizontal { background-position: -48px -224px; }
+.player-ui .ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; }
+.player-ui .ui-icon-grip-diagonal-se { background-position: -80px -224px; }
+
+
+/* Misc visuals
+----------------------------------*/
+
+/* Corner radius */
+.player-ui .ui-corner-all, .player-ui .ui-corner-top, .player-ui .ui-corner-left, .player-ui .ui-corner-tl { -moz-border-radius-topleft: 6px; -webkit-border-top-left-radius: 6px; -khtml-border-top-left-radius: 6px; border-top-left-radius: 6px; }
+.player-ui .ui-corner-all, .player-ui .ui-corner-top, .player-ui .ui-corner-right, .player-ui .ui-corner-tr { -moz-border-radius-topright: 6px; -webkit-border-top-right-radius: 6px; -khtml-border-top-right-radius: 6px; border-top-right-radius: 6px; }
+.player-ui .ui-corner-all, .player-ui .ui-corner-bottom, .player-ui .ui-corner-left, .player-ui .ui-corner-bl { -moz-border-radius-bottomleft: 6px; -webkit-border-bottom-left-radius: 6px; -khtml-border-bottom-left-radius: 6px; border-bottom-left-radius: 6px; }
+.player-ui .ui-corner-all, .player-ui .ui-corner-bottom, .player-ui .ui-corner-right, .player-ui .ui-corner-br { -moz-border-radius-bottomright: 6px; -webkit-border-bottom-right-radius: 6px; -khtml-border-bottom-right-radius: 6px; border-bottom-right-radius: 6px; }
+
+/* Overlays */
+.player-ui .ui-widget-overlay { background: #eeeeee url(images/ui-bg_flat_0_eeeeee_40x100.png) 50% 50% repeat-x; opacity: .80;filter:Alpha(Opacity=80); }
+.player-ui .ui-widget-shadow { margin: -4px 0 0 -4px; padding: 4px; background: #aaaaaa url(images/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x; opacity: .60;filter:Alpha(Opacity=60); -moz-border-radius: 0pxdow=0px; -khtml-border-radius: 0pxdow=0px; -webkit-border-radius: 0pxdow=0px; border-radius: 0pxdow=0px; }/*
+ * jQuery UI Resizable 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Resizable#theming
+ */
+.player-ui .ui-resizable { position: relative;}
+.player-ui .ui-resizable-handle { position: absolute;font-size: 0.1px;z-index: 99999; display: block; }
+.player-ui .ui-resizable-disabled .ui-resizable-handle, .player-ui .ui-resizable-autohide .ui-resizable-handle { display: none; }
+.player-ui .ui-resizable-n { cursor: n-resize; height: 7px; width: 100%; top: -5px; left: 0; }
+.player-ui .ui-resizable-s { cursor: s-resize; height: 7px; width: 100%; bottom: -5px; left: 0; }
+.player-ui .ui-resizable-e { cursor: e-resize; width: 7px; right: -5px; top: 0; height: 100%; }
+.player-ui .ui-resizable-w { cursor: w-resize; width: 7px; left: -5px; top: 0; height: 100%; }
+.player-ui .ui-resizable-se { cursor: se-resize; width: 12px; height: 12px; right: 1px; bottom: 1px; }
+.player-ui .ui-resizable-sw { cursor: sw-resize; width: 9px; height: 9px; left: -5px; bottom: -5px; }
+.player-ui .ui-resizable-nw { cursor: nw-resize; width: 9px; height: 9px; left: -5px; top: -5px; }
+.player-ui .ui-resizable-ne { cursor: ne-resize; width: 9px; height: 9px; right: -5px; top: -5px;}/*
+ * jQuery UI Selectable 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Selectable#theming
+ */
+.player-ui .ui-selectable-helper { position: absolute; z-index: 100; border:1px dotted black; }
+/*
+ * jQuery UI Accordion 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Accordion#theming
+ */
+/* IE/Win - Fix animation bug - #4615 */
+.player-ui .ui-accordion { width: 100%; }
+.player-ui .ui-accordion .ui-accordion-header { cursor: pointer; position: relative; margin-top: 1px; zoom: 1; }
+.player-ui .ui-accordion .ui-accordion-li-fix { display: inline; }
+.player-ui .ui-accordion .ui-accordion-header-active { border-bottom: 0 !important; }
+.player-ui .ui-accordion .ui-accordion-header a { display: block; font-size: 1em; padding: .5em .5em .5em .7em; }
+.player-ui .ui-accordion-icons .ui-accordion-header a { padding-left: 2.2em; }
+.player-ui .ui-accordion .ui-accordion-header .ui-icon { position: absolute; left: .5em; top: 50%; margin-top: -8px; }
+.player-ui .ui-accordion .ui-accordion-content { padding: 1em 2.2em; border-top: 0; margin-top: -2px; position: relative; top: 1px; margin-bottom: 2px; overflow: auto; display: none; zoom: 1; }
+.player-ui .ui-accordion .ui-accordion-content-active { display: block; }
+/*
+ * jQuery UI Autocomplete 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Autocomplete#theming
+ */
+.player-ui .ui-autocomplete { position: absolute; cursor: default; }	
+
+/* workarounds */
+* html .ui-autocomplete { width:1px; } /* without this, the menu expands to 100% in IE6 */
+
+/*
+ * jQuery UI Menu 1.8.18
+ *
+ * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Menu#theming
+ */
+.player-ui .ui-menu {
+	list-style:none;
+	padding: 2px;
+	margin: 0;
+	display:block;
+	float: left;
+}
+.player-ui .ui-menu .ui-menu {
+	margin-top: -3px;
+}
+.player-ui .ui-menu .ui-menu-item {
+	margin:0;
+	padding: 0;
+	zoom: 1;
+	float: left;
+	clear: left;
+	width: 100%;
+}
+.player-ui .ui-menu .ui-menu-item a {
+	text-decoration:none;
+	display:block;
+	padding:.2em .4em;
+	line-height:1.5;
+	zoom:1;
+}
+.player-ui .ui-menu .ui-menu-item a.ui-state-hover,
+.player-ui .ui-menu .ui-menu-item a.ui-state-active {
+	font-weight: normal;
+	margin: -1px;
+}
+/*
+ * jQuery UI Button 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Button#theming
+ */
+.player-ui .ui-button { display: inline-block; position: relative; padding: 0; margin-right: .1em; text-decoration: none !important; cursor: pointer; text-align: center; zoom: 1; overflow: hidden; *overflow: visible; } /* the overflow property removes extra width in IE */
+.player-ui .ui-button-icon-only { width: 2.2em; } /* to make room for the icon, a width needs to be set here */
+button.ui-button-icon-only { width: 2.4em; } /* button elements seem to need a little more width */
+.player-ui .ui-button-icons-only { width: 3.4em; } 
+button.ui-button-icons-only { width: 3.7em; } 
+
+/*button text element */
+.player-ui .ui-button .ui-button-text { display: block; line-height: 1.4;  }
+.player-ui .ui-button-text-only .ui-button-text { padding: .4em 1em; }
+.player-ui .ui-button-icon-only .ui-button-text, .player-ui .ui-button-icons-only .ui-button-text { padding: .4em; text-indent: -9999999px; }
+.player-ui .ui-button-text-icon-primary .ui-button-text, .player-ui .ui-button-text-icons .ui-button-text { padding: .4em 1em .4em 2.1em; }
+.player-ui .ui-button-text-icon-secondary .ui-button-text, .player-ui .ui-button-text-icons .ui-button-text { padding: .4em 2.1em .4em 1em; }
+.player-ui .ui-button-text-icons .ui-button-text { padding-left: 2.1em; padding-right: 2.1em; }
+/* no icon support for input elements, provide padding by default */
+input.ui-button { padding: .4em 1em; }
+
+/*button icon element(s) */
+.player-ui .ui-button-icon-only .ui-icon, .player-ui .ui-button-text-icon-primary .ui-icon, .player-ui .ui-button-text-icon-secondary .ui-icon, .player-ui .ui-button-text-icons .ui-icon, .player-ui .ui-button-icons-only .ui-icon { position: absolute; top: 50%; margin-top: -8px; }
+.player-ui .ui-button-icon-only .ui-icon { left: 50%; margin-left: -8px; }
+.player-ui .ui-button-text-icon-primary .ui-button-icon-primary, .player-ui .ui-button-text-icons .ui-button-icon-primary, .player-ui .ui-button-icons-only .ui-button-icon-primary { left: .5em; }
+.player-ui .ui-button-text-icon-secondary .ui-button-icon-secondary, .player-ui .ui-button-text-icons .ui-button-icon-secondary, .player-ui .ui-button-icons-only .ui-button-icon-secondary { right: .5em; }
+.player-ui .ui-button-text-icons .ui-button-icon-secondary, .player-ui .ui-button-icons-only .ui-button-icon-secondary { right: .5em; }
+
+/*button sets*/
+.player-ui .ui-buttonset { margin-right: 7px; }
+.player-ui .ui-buttonset .ui-button { margin-left: 0; margin-right: -.3em; }
+
+/* workarounds */
+button.ui-button::-moz-focus-inner { border: 0; padding: 0; } /* reset extra padding in Firefox */
+/*
+ * jQuery UI Dialog 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Dialog#theming
+ */
+.player-ui .ui-dialog { position: absolute; padding: .2em; width: 300px; overflow: hidden; }
+.player-ui .ui-dialog .ui-dialog-titlebar { padding: .4em 1em; position: relative;  }
+.player-ui .ui-dialog .ui-dialog-title { float: left; margin: .1em 16px .1em 0; } 
+.player-ui .ui-dialog .ui-dialog-titlebar-close { position: absolute; right: .3em; top: 50%; width: 19px; margin: -10px 0 0 0; padding: 1px; height: 18px; }
+.player-ui .ui-dialog .ui-dialog-titlebar-close span { display: block; margin: 1px; }
+.player-ui .ui-dialog .ui-dialog-titlebar-close:hover, .player-ui .ui-dialog .ui-dialog-titlebar-close:focus { padding: 0; }
+.player-ui .ui-dialog .ui-dialog-content { position: relative; border: 0; padding: .5em 1em; background: none; overflow: auto; zoom: 1; }
+.player-ui .ui-dialog .ui-dialog-buttonpane { text-align: left; border-width: 1px 0 0 0; background-image: none; margin: .5em 0 0 0; padding: .3em 1em .5em .4em; }
+.player-ui .ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset { float: right; }
+.player-ui .ui-dialog .ui-dialog-buttonpane button { margin: .5em .4em .5em 0; cursor: pointer; }
+.player-ui .ui-dialog .ui-resizable-se { width: 14px; height: 14px; right: 3px; bottom: 3px; }
+.player-ui .ui-draggable .ui-dialog-titlebar { cursor: move; }
+/*
+ * jQuery UI Slider 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Slider#theming
+ */
+.player-ui .ui-slider { position: relative; text-align: left; }
+.player-ui .ui-slider .ui-slider-handle { position: absolute; z-index: 2; width: 1.2em; height: 1.2em; cursor: default; }
+.player-ui .ui-slider .ui-slider-range { position: absolute; z-index: 1; font-size: .7em; display: block; border: 0; background-position: 0 0; }
+
+.player-ui .ui-slider-horizontal { height: .8em; }
+.player-ui .ui-slider-horizontal .ui-slider-handle { top: -.3em; margin-left: -.6em; }
+.player-ui .ui-slider-horizontal .ui-slider-range { top: 0; height: 100%; }
+.player-ui .ui-slider-horizontal .ui-slider-range-min { left: 0; }
+.player-ui .ui-slider-horizontal .ui-slider-range-max { right: 0; }
+
+.player-ui .ui-slider-vertical { width: .8em; height: 100px; }
+.player-ui .ui-slider-vertical .ui-slider-handle { left: -.3em; margin-left: 0; margin-bottom: -.6em; }
+.player-ui .ui-slider-vertical .ui-slider-range { left: 0; width: 100%; }
+.player-ui .ui-slider-vertical .ui-slider-range-min { bottom: 0; }
+.player-ui .ui-slider-vertical .ui-slider-range-max { top: 0; }/*
+ * jQuery UI Tabs 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Tabs#theming
+ */
+.player-ui .ui-tabs { position: relative; padding: .2em; zoom: 1; } /* position: relative prevents IE scroll bug (element with position: relative inside container with overflow: auto appear as "fixed") */
+.player-ui .ui-tabs .ui-tabs-nav { margin: 0; padding: .2em .2em 0; }
+.player-ui .ui-tabs .ui-tabs-nav li { list-style: none; float: left; position: relative; top: 1px; margin: 0 .2em 1px 0; border-bottom: 0 !important; padding: 0; white-space: nowrap; }
+.player-ui .ui-tabs .ui-tabs-nav li a { float: left; padding: .5em 1em; text-decoration: none; }
+.player-ui .ui-tabs .ui-tabs-nav li.ui-tabs-selected { margin-bottom: 0; padding-bottom: 1px; }
+.player-ui .ui-tabs .ui-tabs-nav li.ui-tabs-selected a, .player-ui .ui-tabs .ui-tabs-nav li.ui-state-disabled a, .player-ui .ui-tabs .ui-tabs-nav li.ui-state-processing a { cursor: text; }
+.player-ui .ui-tabs .ui-tabs-nav li a, .player-ui .ui-tabs.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-selected a { cursor: pointer; } /* first selector in group seems obsolete, but required to overcome bug in Opera applying cursor: text overall if defined elsewhere... */
+.player-ui .ui-tabs .ui-tabs-panel { display: block; border-width: 0; padding: 1em 1.4em; background: none; }
+.player-ui .ui-tabs .ui-tabs-hide { display: none !important; }
+/*
+ * jQuery UI Datepicker 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Datepicker#theming
+ */
+.player-ui .ui-datepicker { width: 17em; padding: .2em .2em 0; display: none; }
+.player-ui .ui-datepicker .ui-datepicker-header { position:relative; padding:.2em 0; }
+.player-ui .ui-datepicker .ui-datepicker-prev, .player-ui .ui-datepicker .ui-datepicker-next { position:absolute; top: 2px; width: 1.8em; height: 1.8em; }
+.player-ui .ui-datepicker .ui-datepicker-prev-hover, .player-ui .ui-datepicker .ui-datepicker-next-hover { top: 1px; }
+.player-ui .ui-datepicker .ui-datepicker-prev { left:2px; }
+.player-ui .ui-datepicker .ui-datepicker-next { right:2px; }
+.player-ui .ui-datepicker .ui-datepicker-prev-hover { left:1px; }
+.player-ui .ui-datepicker .ui-datepicker-next-hover { right:1px; }
+.player-ui .ui-datepicker .ui-datepicker-prev span, .player-ui .ui-datepicker .ui-datepicker-next span { display: block; position: absolute; left: 50%; margin-left: -8px; top: 50%; margin-top: -8px;  }
+.player-ui .ui-datepicker .ui-datepicker-title { margin: 0 2.3em; line-height: 1.8em; text-align: center; }
+.player-ui .ui-datepicker .ui-datepicker-title select { font-size:1em; margin:1px 0; }
+.player-ui .ui-datepicker select.ui-datepicker-month-year {width: 100%;}
+.player-ui .ui-datepicker select.ui-datepicker-month, 
+.player-ui .ui-datepicker select.ui-datepicker-year { width: 49%;}
+.player-ui .ui-datepicker table {width: 100%; font-size: .9em; border-collapse: collapse; margin:0 0 .4em; }
+.player-ui .ui-datepicker th { padding: .7em .3em; text-align: center; font-weight: bold; border: 0;  }
+.player-ui .ui-datepicker td { border: 0; padding: 1px; }
+.player-ui .ui-datepicker td span, .player-ui .ui-datepicker td a { display: block; padding: .2em; text-align: right; text-decoration: none; }
+.player-ui .ui-datepicker .ui-datepicker-buttonpane { background-image: none; margin: .7em 0 0 0; padding:0 .2em; border-left: 0; border-right: 0; border-bottom: 0; }
+.player-ui .ui-datepicker .ui-datepicker-buttonpane button { float: right; margin: .5em .2em .4em; cursor: pointer; padding: .2em .6em .3em .6em; width:auto; overflow:visible; }
+.player-ui .ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current { float:left; }
+
+/* with multiple calendars */
+.player-ui .ui-datepicker.ui-datepicker-multi { width:auto; }
+.player-ui .ui-datepicker-multi .ui-datepicker-group { float:left; }
+.player-ui .ui-datepicker-multi .ui-datepicker-group table { width:95%; margin:0 auto .4em; }
+.player-ui .ui-datepicker-multi-2 .ui-datepicker-group { width:50%; }
+.player-ui .ui-datepicker-multi-3 .ui-datepicker-group { width:33.3%; }
+.player-ui .ui-datepicker-multi-4 .ui-datepicker-group { width:25%; }
+.player-ui .ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header { border-left-width:0; }
+.player-ui .ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header { border-left-width:0; }
+.player-ui .ui-datepicker-multi .ui-datepicker-buttonpane { clear:left; }
+.player-ui .ui-datepicker-row-break { clear:both; width:100%; font-size:0em; }
+
+/* RTL support */
+.player-ui .ui-datepicker-rtl { direction: rtl; }
+.player-ui .ui-datepicker-rtl .ui-datepicker-prev { right: 2px; left: auto; }
+.player-ui .ui-datepicker-rtl .ui-datepicker-next { left: 2px; right: auto; }
+.player-ui .ui-datepicker-rtl .ui-datepicker-prev:hover { right: 1px; left: auto; }
+.player-ui .ui-datepicker-rtl .ui-datepicker-next:hover { left: 1px; right: auto; }
+.player-ui .ui-datepicker-rtl .ui-datepicker-buttonpane { clear:right; }
+.player-ui .ui-datepicker-rtl .ui-datepicker-buttonpane button { float: left; }
+.player-ui .ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current { float:right; }
+.player-ui .ui-datepicker-rtl .ui-datepicker-group { float:right; }
+.player-ui .ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header { border-right-width:0; border-left-width:1px; }
+.player-ui .ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header { border-right-width:0; border-left-width:1px; }
+
+/* IE6 IFRAME FIX (taken from datepicker 1.5.3 */
+.player-ui .ui-datepicker-cover {
+    display: none; /*sorry for IE5*/
+    display/**/: block; /*sorry for IE5*/
+    position: absolute; /*must have*/
+    z-index: -1; /*must have*/
+    filter: mask(); /*must have*/
+    top: -4px; /*must have*/
+    left: -4px; /*must have*/
+    width: 200px; /*must have*/
+    height: 200px; /*must have*/
+}/*
+ * jQuery UI Progressbar 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Progressbar#theming
+ */
+.player-ui .ui-progressbar { height:2em; text-align: left; overflow: hidden; }
+.player-ui .ui-progressbar .ui-progressbar-value {margin: -1px; height:100%; }
\ No newline at end of file
diff --git a/public/admin/js/osmplayer/jquery-ui/pepper-grinder/images/ui-bg_diagonal-maze_20_6e4f1c_10x10.png b/public/admin/js/osmplayer/jquery-ui/pepper-grinder/images/ui-bg_diagonal-maze_20_6e4f1c_10x10.png
new file mode 100644
index 0000000000000000000000000000000000000000..1bb13a2539636d70117fa6cb75f2d9640f544b83
GIT binary patch
literal 154
zcmeAS@N?(olHy`uVBq!ia0vp^AT}2V8<6ZZI=>f4C3?CzhDc0JKJ$6{&+`X>Kwab5
zhnIh~*(4mEedg>kG!R_;;_~ls9v=g?`3ods6n81H0fCwXbFAU6l{!2g43UOyR}J{|
z7`98zK74U*<0H3{`O4bIq-<X7JI*2J^pKOmS0w0NbM)g>pk)l6u6{1-oD!M<sy{T6

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/pepper-grinder/images/ui-bg_diagonal-maze_40_000000_10x10.png b/public/admin/js/osmplayer/jquery-ui/pepper-grinder/images/ui-bg_diagonal-maze_40_000000_10x10.png
new file mode 100644
index 0000000000000000000000000000000000000000..c6b7e984a0365e86ff271e58c057695562c2d1ce
GIT binary patch
literal 132
zcmeAS@N?(olHy`uVBq!ia0vp^AT}2V8<6ZZI=>f4d3(AzhDc29op6x%fB^@yf9%QM
z{Re#BDR+hhPC9UU0W&iLo6bq^=QXdyQl_0K2;A-SD=K|QRt1B~#_kS@M@irBe=PC&
gIq&W2D1jfWR=PQ7Y?df{1C3?yboFyt=akR{0BZLyAOHXW

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/pepper-grinder/images/ui-bg_fine-grain_10_eceadf_60x60.png b/public/admin/js/osmplayer/jquery-ui/pepper-grinder/images/ui-bg_fine-grain_10_eceadf_60x60.png
new file mode 100644
index 0000000000000000000000000000000000000000..46567420785a91503f30de00eec3a331cd4a969e
GIT binary patch
literal 4429
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
T(^GCZ00000NkvXXu0mjfj|q=Y

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/pepper-grinder/images/ui-bg_fine-grain_10_f8f7f6_60x60.png b/public/admin/js/osmplayer/jquery-ui/pepper-grinder/images/ui-bg_fine-grain_10_f8f7f6_60x60.png
new file mode 100644
index 0000000000000000000000000000000000000000..4550e40778219da3b91c383a9afa7ddf01c5f973
GIT binary patch
literal 3251
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

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/pepper-grinder/images/ui-bg_fine-grain_15_eceadf_60x60.png b/public/admin/js/osmplayer/jquery-ui/pepper-grinder/images/ui-bg_fine-grain_15_eceadf_60x60.png
new file mode 100644
index 0000000000000000000000000000000000000000..e6308291914efa50ad6efab74e602d622deeef8d
GIT binary patch
literal 4391
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

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/pepper-grinder/images/ui-bg_fine-grain_15_f7f3de_60x60.png b/public/admin/js/osmplayer/jquery-ui/pepper-grinder/images/ui-bg_fine-grain_15_f7f3de_60x60.png
new file mode 100644
index 0000000000000000000000000000000000000000..475c1fa0d721e80a2dcc96a8bb67bc591a236920
GIT binary patch
literal 4731
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
JPDHLkV1ho`E&c!i

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/pepper-grinder/images/ui-bg_fine-grain_15_ffffff_60x60.png b/public/admin/js/osmplayer/jquery-ui/pepper-grinder/images/ui-bg_fine-grain_15_ffffff_60x60.png
new file mode 100644
index 0000000000000000000000000000000000000000..19ab46c3f875f352230abdd8a2a651003b8b83b1
GIT binary patch
literal 3716
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

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/pepper-grinder/images/ui-bg_fine-grain_65_654b24_60x60.png b/public/admin/js/osmplayer/jquery-ui/pepper-grinder/images/ui-bg_fine-grain_65_654b24_60x60.png
new file mode 100644
index 0000000000000000000000000000000000000000..40b75b9943b3570a2d2c08a1980917a7d541301e
GIT binary patch
literal 7369
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
b^o$uIAXXyIO&<vSMM-C7WM$Z*?;iI*a4vOJ

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/pepper-grinder/images/ui-bg_fine-grain_68_b83400_60x60.png b/public/admin/js/osmplayer/jquery-ui/pepper-grinder/images/ui-bg_fine-grain_68_b83400_60x60.png
new file mode 100644
index 0000000000000000000000000000000000000000..4e197986238f6f343b967cfc3e2b1231288c2c83
GIT binary patch
literal 8347
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
Bf|mdQ

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/pepper-grinder/images/ui-icons_222222_256x240.png b/public/admin/js/osmplayer/jquery-ui/pepper-grinder/images/ui-icons_222222_256x240.png
new file mode 100644
index 0000000000000000000000000000000000000000..b273ff111d219c9b9a8b96d57683d0075fb7871a
GIT binary patch
literal 4369
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

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/pepper-grinder/images/ui-icons_3572ac_256x240.png b/public/admin/js/osmplayer/jquery-ui/pepper-grinder/images/ui-icons_3572ac_256x240.png
new file mode 100644
index 0000000000000000000000000000000000000000..0f2db87cd8293fccff0a22e349823951744287a2
GIT binary patch
literal 5355
zcmd^@=Q|sY*Ty4}Sh4piwQCoxEwR-evG=T&+F}!1)%@0~QA(-NqAhAh)E+TwrZz>X
zn6>%!`8%F-ofn_`-MQ~q_jO(x>T8mdvXBA*0P-hVYQ_Kn!9N5X5QF|voqnkIKk>&<
z7ojfY_woPFo+XW*|1+*1V61NfV4{*BBsT1feIv?+@PWHIu+U(koC*voTH5!l_{5Ec
z<E0X#yPpq^^~<QSb+m-nG?u4UeflbJQ_O=Wg#gpboU-55c`g@eD0xL@y1P$m-2ecz
z_D|H55y6FjY{{H)P1KM<ZL7+>((63dr^qSc`7eB7FgX!x$+n%z+TEMGV#zgM%qk$`
z$CP%8LC(AGV;{nO02N_86JbEH$_-;t8wo1nF(_E}WurgT<VB9^z_i6c^CrvTI$PG-
z<jjV#0yV7>^JuNcFHV@r=~em=zEI1JNr<l{<g6%Q*+gAL^Kj)nLuOZLSGl6##eB6(
za{0v`1!trc_x`UA0)MK->AJ^b{Cnf|Zu$jPaV0+l$Um1vvx)OI_i+0Os9Dfj=rB|m
z#p-^w(=Gtf2{Je6WD{U|z^Ox@LlJpjl)D=0n|31aLR>@;?7Gifj~PvBOaydLzk8F|
zSh5s2cXyqluW^MlBkStC`mLjjgC>!)qV~;4&T~ASSR+#>MIqJCkLrkO_mrs2McO`E
zRm!NaXpJwhr6kYg3h_kZ>8kr{T7g2Y?^6#xGF`|D%J$tcYqJP$nyFnDuX-P6kFNI*
z_~yb}MPp~qpWTg)kYcLmy=%JHkQK&}CV9zVt@6h~%l61Fa%Xna;h0A`A-V8K<}>5j
zYK~Ma_XI>+c5ja>>X!2U?=<v<_App()FqoIQIxz#67FT@8dS8w`zB~ziJLZ;U>u3r
zq~02(H0j$y9z!9k?;AfrhdA1zxP@J5PMd5IWWG0IgDW}VozBa+jk7$|bd}RvRyQA?
z-Q`zKS`UF5fLx3T=a4_gM|R3AsBZkU0E{cPthE})ZOLBu>eaYm*@NTjbk)bIHgr5R
zW+M5@4Wm31lQWZyPKD6F%jqZvNsO^n-t3E$yu)S(O`C%H=GW-RI#OpjRnhUyT+?mG
zx9_+7Zvs_qr4^`LrG?wurAR(3Ob#v&)y*)Q(o>{Q_pq5W7Jd+UbBR^$WH=c>N|$yA
zBEonDI~!y#Cb`BoJI&(urb2I54SF;R6HQx)>A*6p6Dbb>mXYm3%qzTW7N4Z>CJ0A!
zwM7#O^Qi&X=Yf!HYP+e4*H4)6SUt+8V)iT)dL7=bT=RU@k<2eRWBJ!e{Vxq(Crz3E
zCw(Fk|21l5Rz6<x-fHlv8_nPUh^0fy{E}FHaI3ZyZ3xLad+0IRik`~&TBb0$a2t0V
zI%M1cI_u`os<%8GP3=4?;{I}9iy6WM18aHuBGZY#jIEz(S+d1!HvN9}NFp|Mruf^h
z6=D?ovR(ME1y;703()w16D};=u}c`{fkvr|A$u{g@g5-ErV-dY1W@L!DDN^G?8!RE
z4x*&TsE>xxcAhKC!5lO6BszICeG^oKvfXJ35>>%U0U56L1_Ux)pARrD=c$$AL57}9
z>KP6g@>6By!I=JT>mAWzOnzo4wM(NTz^n%~#ci-5#dl1^@O#SR1U9vO-DgJFgt}QH
zO-Uy@I(M)|&Ho29tY+rcPtcaObYgVvmrfG~X<0LFvuIRCNi-2kxms4Y?U(>ssBkaC
z->LA?Hrnd!QyK5R8ZM`a>TQB5Gg2Z>OxCfFVfp*+VY|Sat_In!{m?V6E}L3BvKb8-
z!uZLWhH=FC{y|oIuzyBZrcwjh@vp?t;%qVIE8m4+WxHGS3%>PSn&!im`T3g;LD=_K
zyXKwB>#J>BTN=Mauv89?Q@b?)*BaX*FRpQ>H%@vgw(UMbkII)i38D&b$R!IkZB4q<
zL?41I9fPZe9~>@q#}Xw?TVHRsDU_n$3vDYM^^^I(=%ilWMx@R#&Ls$b^&e~~I_eSD
z!8O&}R41L{o;`Qqa9vqu2l-i|zq3*U7>8s-92dr`NGo;A!XaaCA3$`i>!Ao~%`)PO
z-*@zwZ)e8Ww3t&vG?ig%8qdZjG4Vx)vI{|^$<@yQbB&62RrPKh;8&X%L_%(YIomzp
zKsPIO9L6#&!y>QbsbD0nv9^s|!YVVvJ+YX7w{oOHhf7#ZLHlV;n3koJ@2s905P=^z
z0jS5QHW;9N*WY9(!G;2W?;^XnGBfCI?kuORJwTeHS_p`ay0~5&{1`7IZ<Yiv2EK3q
zbK5oEL!ZUBV-flue7^r-HW&$!B!b!m!7xEEMTi7&(9C9<GG+Fx2hRJh+qW_g2iIV;
zt|5}I=;63Un+lLdp^fJV?PQwcJaS+GI`PZb$wArzP525lArSj2U{w;4cSX*s<KU69
zbdi;r8S{;TOGOd2NYL@-o&XB}-SXRYNm%($F8#LfrfHA`MoZC<v!$F+LgH^)SKr_%
z;P@VEF>Z%5!Y4?v9`6avT2Yu@w*7)=7D4qoucvCIjimPb_wrRxKOu2Z2!`HEc*x|1
z{kA-C?gPs%ezo%GxZa3W%#O`~QUT;4a&w{XB1iQxDRdQcDMrbEs1W~sivEe>%5y8j
z^q5nBeq}S%p~!$6qHpEx2_^!oDS?E9f#-$8EtHwwj~vZChA1cMTMjm>e7;!<t($L+
zrtihC_(8bLW=-G)7y;s%^^@>oSVQrDaPj}-8j8l&lhZjq%7eStPkiI$TQ65vroV0>
z>qtKz46KOC5PQ4vhO(Ow8yoBoP$bX-HF7m3f>ZVn_-w`@GHa=vL3aj_BQ}9wtM-eU
zBcPFcjihrOB9*YITNEo5*mtWWs5-enecF<6QWGqdx_}VUXR*#uA|yL;vvdK(EnP!a
z9uHQ{(f*7GvwC*6mlEhvG67yvD=s+Fo+@U!o;WNsv9Sw<>Vky>HCnG}0@{alLfm7h
zPH7{aug|;qx$$gbC4VX?KNL^wFAjs!G5IPL?<UR4sk)Tpi{|#3c4g0Zge@wU*LgoT
z){l!ODc`EkV2xt~Wla<tk+4Aa7)(++QQ)G_05K|CG!fPekz4Ew1=!DOLb8X}WikHh
zJXS%?V}N7FS(Z_3Is;C_G+B$Art@-|#Fdj+^T)4;*H%nHrHf|LN;zJRQwG*Jtk4jO
zzH1QQDaDqor9o3&V8;rnB?rwWMCY7b^%>OZyLHrebR&F19WTKLEM$EsGq{16SSQ2L
zxXGU}Ta&28vDBKN;7)`WZXueo+Ddbsn^^yrYaW8>#5&sgM>i%<7j8HGwU8zqcIdk)
zqnJ6o)C@!JoqunL-+`gcYIhpU?YmM(H7v1J&xD3d`7@7~q{z&^u0h|^jZ3ewj`N04
zA{=%TtNqpq{=7@IxNxg702M<PN4+=S!_$>ny_L+b$XM5-ydV<gI#Gg)jBfoEdS|~<
z2i@grq%!~|k9zekg~rp_n?vIC|L!p>bSE2<=z4q24Jv`48SZi%{cn&<EKefiWp}o+
zTXi@exwVqJ<ZZF`d;>U-{#{mlD^pf3D<er+)1o8w`~V55->1H-U<<*}J}VDrh9kwD
z_37hdNB&;n=RuSOja7X}p^>VG^a<wqlbdaR+BmF&qES)Ni-vV;#nlNW$i4t5M_E#r
zDFains6D-+dv7(K*@A>PePloj#5!Ct*!5U$`V-4Lj?ib?H_jE5{8@Kye9<q{cXV-!
z0dESiM1T=w#KZ3WM^n&|@c8aN-U3`xD({NK_#xg~6_fLVbA9R1KDgQj^=HYs;epv5
z$Wh~~q=FZvMtBgUz>)mCB>NtRaBh5L9(sJ(AE0yWqqui;s^T=0jI5A-_^Qc^*Lh-n
zp8~&nqklYX!79VCvM-O~xcrG|y`QU^N>WF&ze^yUUE7~3UQ(bqO7^20Np%=xF!io8
z>FOA70CT)9$OAs~2X4i%1@}uxfDg_cLz5(YxYrDD>)~)yMC-Sr{-VP>hij94cD*qh
z0yLSl+fo<mm|#CrdZl8LyoH(h{=u!o$`?!g5{r=`l?3PYjq;WA3Ys?~lbUmJhT;Ta
zi2>w<Reo52g3iZZn0rO<EAyhDZ0*--tOCj1z8QxABetvClTR1Bi|=hKX9pPUHe$8a
z_8m$$mBo()ID?!2iw~u4zPCEq4U8F3ei;@goLoG(AcV?8g$gl|mi#O7WDbOXao}KD
zg<!^kf3w}cl)Z9Ot)N8VV_iU<NvzQ7&3{8m?}&_WYc$j;OnglO57_7~4R(9pBU3^Z
z3512a&-oY<q+s}$z!DM?_vD)FkjoOW4#=Nj{0^}=!W)tU@)$ej2w8Xrw@-3EeoXO5
zn7<ybMVJp&jkEx2f%}FysAEmV!-t&=){;=+5a+?Gx^W*8#puiv4`&?oZvi?8EXd8h
z{;q80we&=kjuH*k%b(u;9pi)`9-HxtIpX-fF^x@)R|cb8$Tzvb4rp9AB>m1OOHzC<
zgBqprA(TyqNEgK?;X|pJsMN78ZWd_~Yt+>Rj5YXj{xLG9?mnUV0V!PrxV``?9>B`8
zFc6kZNlF~kea#egO{zg7o)!kC(imMwrKF^@g#GD?e&b~IK-i{2K%tGs0kw`1Ki=`K
zPg!C_^QL5LFJa7-70>RtwP%W#6QE~rz`A5ofS9DVEWle&12O`!pEXWB)rrv4mjV{3
zmkj_uRDJy3&)N&n8;7E|i%iTG{Tx<D%q&4Clm-8yOruzBn^6)}d&+=bdk{;)T6}l7
zC7wvX`1vPw{G8wy??7z<#jhLldOJCG6r3_oz-F8g!k^sY05Rvcz<8xkLiYh^rRZ!}
zK7=!&72eSC`rP&UxynYan#|EHp^w3s<5QP#Hp6~It?$w3(<7dVvA_N4lrqoqA58fF
z6&GeyjbyYTlQW$$%YU4>W!g+?)4StvBrU!A%fakn)g~zJw8t4v=oY6h7CTto-|6-?
zH|d_?P^_7)pnHDl4-B+*cQrRiG?NCfom(0kCf)jsKx;QJ;`?EXwwGifW~cXh3l8Q?
zN4lPFo>K17eRe_vTuxy@tA>{}@i8F-=BxC>F&_b4y}jzKV2s~<V`){$lXk&o<0vzL
zM5H?50iq)El1@>7b0?}%#&!BWiD1~au*QK%3;rG90hyerWkY%w`%_wCP67NI;Op}q
zyZfT3=T#^+h}3}HV=zAXN8=yhqa1HaCK9Ggm5A`jOKSl6tZgl|ysBv<sdc;Y!UI(1
zgk#MFLg`p~{oU%YSXiu12wxRDcI-Vi%*dc<G~~yF%wF!A?$VArzuU1?n#i;r$NOD;
z=4kes-B5C?u^)TyI#LlE<$q?&6_D=Av;20z_LKSSr(E9{^WHQ~<#fgz5``k*Gaz*6
z<t297M8c}N^&PEj1cHpy)bU*8y7p>B3taxIj#&?@FD;m#aWM0AeD0yV*WvIL&67z|
zH=jur4_?AA;O0v(a2$9>c<?IZ?EdrzZd*8sMJwT>Ih9MwgWUaN^KbAqdq;Ki6u#Bp
zzXRdj6P2ZfuBvVNzqcB{J+8kGaQVw&**2-E!T*P%KKj<b8?_7cQ+`<|X2G}7>o$Kn
z6;o`%9#Hk4nSJ~1l}b|YvOVjUZ1Ya<OS`i;c99ub@`e}3naj*)X%E;_bVMMt5ff)^
zDHh$HauH+=_%m--Ru$Z)sk|QeNalckwwqD^!L7-fy*^o8g)QV$L2d7dpUYtOD86bn
zM@&C6u?}|>fRd~!BDWt@=^(vod}=iVB3uns+9GT<J{g)U=df?{FSxd4lmc;KUIM96
z-s&5eRJDvP<sj2mDg<CrCPk|n-I9r%p7iGR_p+hUDh%NnXaL-Pa%X#$9lEk9<=bK0
zeDGR6B=C_O40c8cC;VW>FZvc4<r(dq?MWaly|`CsH@2{4zK14j&nh!|de(xq5@Cqq
zi+{9ezoQ0t8w=aoeyDy?kXc2Oq*4mTAb_P?&?Q=Z{JuWP{M!Lv?U!Oevak}n=y|7`
z``q3AVVqkdk%@ZyZDAYR^}%8yMA|E{`(8(PM69t7y7G)X3!i%^@^T!mNL4a2G|xUh
zVOoqRX}g^aK%bGGg;><TPHo$k)EP*YR{KUIS5xz1e)2RG-xjqTMm^e2mq?GQ5f^DM
zCX&D*OwV+2GeE<h1pJ`|2b^<fHZ5F_`?FfyL5&!4930BPK@rWdVL`Wa<5R4_Ho?iu
zy*@=WGPl=b&$|e^r+Bo}C-zBpLjcaC3XfkQ!NghW)iry#VYuf+==?_D-KqscpIl^!
zGd3JGfr)hR>b?|(5&*?d@Hu>EsSU2t7uz2j3G<xCdam{-{1p3G5agMO0G>{M*Ue^N
zo$OCAMtdFhYqXbsdu`6>^lMp}_f_@l<0ofNXRB7(Mt8n<yzlzJe<UeujJ5lHre{pB
zZT9(S=G{vGdIn=UAGlMdN`COWS7_naw0Oz00mTmkmL|;1%*Dj#5vco@3_CdNcHl5B
z=N_<=@_;}%!%R%2?a@h5a@}{lFnJ-v-~pxRwd$8}f{s<ci>&yohSBefv)iDIwk8rQ
zJNc_gaUU?>`fGQtHOOICI&2^v;~kSD9qH})-I2ftBJA1XXK$Ln>bNjArlCblZ1b@J
z73zMI*7g~=az>D_Eu?AxLZ!}nsp*9H;0mC6GX3qp+rQ6ELKlyk$|WTvAPxb2OWS3M
zg*8(<a_3h^ac{@M=;>~NR3|N%bxj70DjxXH$QAr9Og)V>o=J}F6N}B%=JZXaUEvxD
zfb^OQCJ2znmCB;TP%0hD-uBn~Y&cSQKV#Nyk~JK9W6NoDlimpSBnt$5xNu{WzoooP
X_Gc^EhHU=dFY}4IzFMt{L(KmGqq!<n

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/pepper-grinder/images/ui-icons_8c291d_256x240.png b/public/admin/js/osmplayer/jquery-ui/pepper-grinder/images/ui-icons_8c291d_256x240.png
new file mode 100644
index 0000000000000000000000000000000000000000..a90f0cec755b4a555e4d505ed45a02893c305dd5
GIT binary patch
literal 4369
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

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/pepper-grinder/images/ui-icons_b83400_256x240.png b/public/admin/js/osmplayer/jquery-ui/pepper-grinder/images/ui-icons_b83400_256x240.png
new file mode 100644
index 0000000000000000000000000000000000000000..7ca9d0b84c359a3b0d621f4aad50c0d5b2ef58a0
GIT binary patch
literal 4369
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

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/pepper-grinder/images/ui-icons_fbdb93_256x240.png b/public/admin/js/osmplayer/jquery-ui/pepper-grinder/images/ui-icons_fbdb93_256x240.png
new file mode 100644
index 0000000000000000000000000000000000000000..95c4a66f6679511ccf8a96c5af8521308cd276f7
GIT binary patch
literal 4369
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

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/pepper-grinder/images/ui-icons_ffffff_256x240.png b/public/admin/js/osmplayer/jquery-ui/pepper-grinder/images/ui-icons_ffffff_256x240.png
new file mode 100644
index 0000000000000000000000000000000000000000..42f8f992c727ddaa617da224a522e463df690387
GIT binary patch
literal 4369
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

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/pepper-grinder/jquery-ui-1.8.18.custom.css b/public/admin/js/osmplayer/jquery-ui/pepper-grinder/jquery-ui-1.8.18.custom.css
new file mode 100644
index 00000000000..17d326a2428
--- /dev/null
+++ b/public/admin/js/osmplayer/jquery-ui/pepper-grinder/jquery-ui-1.8.18.custom.css
@@ -0,0 +1,565 @@
+/*
+ * jQuery UI CSS Framework 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Theming/API
+ */
+
+/* Layout helpers
+----------------------------------*/
+.player-ui .ui-helper-hidden { display: none; }
+.player-ui .ui-helper-hidden-accessible { position: absolute !important; clip: rect(1px 1px 1px 1px); clip: rect(1px,1px,1px,1px); }
+.player-ui .ui-helper-reset { margin: 0; padding: 0; border: 0; outline: 0; line-height: 1.3; text-decoration: none; font-size: 100%; list-style: none; }
+.player-ui .ui-helper-clearfix:before, .player-ui .ui-helper-clearfix:after { content: ""; display: table; }
+.player-ui .ui-helper-clearfix:after { clear: both; }
+.player-ui .ui-helper-clearfix { zoom: 1; }
+.player-ui .ui-helper-zfix { width: 100%; height: 100%; top: 0; left: 0; position: absolute; opacity: 0; filter:Alpha(Opacity=0); }
+
+
+/* Interaction Cues
+----------------------------------*/
+.player-ui .ui-state-disabled { cursor: default !important; }
+
+
+/* Icons
+----------------------------------*/
+
+/* states and images */
+.player-ui .ui-icon { display: block; text-indent: -99999px; overflow: hidden; background-repeat: no-repeat; }
+
+
+/* Misc visuals
+----------------------------------*/
+
+/* Overlays */
+.player-ui .ui-widget-overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }
+
+
+/*
+ * jQuery UI CSS Framework 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Theming/API
+ *
+ * To view and modify this theme, visit http://jqueryui.com/themeroller/?ffDefault=Trebuchet%20MS,%20Tahoma,%20Verdana,%20Arial,%20sans-serif&fwDefault=bold&fsDefault=1.1em&cornerRadius=6px&bgColorHeader=ffffff&bgTextureHeader=23_fine_grain.png&bgImgOpacityHeader=15&borderColorHeader=d4d1bf&fcHeader=453821&iconColorHeader=b83400&bgColorContent=eceadf&bgTextureContent=23_fine_grain.png&bgImgOpacityContent=10&borderColorContent=d9d6c4&fcContent=1f1f1f&iconColorContent=222222&bgColorDefault=f8f7f6&bgTextureDefault=23_fine_grain.png&bgImgOpacityDefault=10&borderColorDefault=cbc7bd&fcDefault=654b24&iconColorDefault=b83400&bgColorHover=654b24&bgTextureHover=23_fine_grain.png&bgImgOpacityHover=65&borderColorHover=654b24&fcHover=ffffff&iconColorHover=ffffff&bgColorActive=eceadf&bgTextureActive=23_fine_grain.png&bgImgOpacityActive=15&borderColorActive=d9d6c4&fcActive=140f06&iconColorActive=8c291d&bgColorHighlight=f7f3de&bgTextureHighlight=23_fine_grain.png&bgImgOpacityHighlight=15&borderColorHighlight=b2a266&fcHighlight=3a3427&iconColorHighlight=3572ac&bgColorError=b83400&bgTextureError=23_fine_grain.png&bgImgOpacityError=68&borderColorError=681818&fcError=ffffff&iconColorError=fbdb93&bgColorOverlay=6e4f1c&bgTextureOverlay=16_diagonal_maze.png&bgImgOpacityOverlay=20&opacityOverlay=60&bgColorShadow=000000&bgTextureShadow=16_diagonal_maze.png&bgImgOpacityShadow=40&opacityShadow=60&thicknessShadow=5px&offsetTopShadow=0&offsetLeftShadow=-10px&cornerRadiusShadow=18px
+ */
+
+
+/* Component containers
+----------------------------------*/
+.player-ui .ui-widget { font-family: Trebuchet MS, Tahoma, Verdana, Arial, sans-serif; font-size: 1.1em; }
+.player-ui .ui-widget .ui-widget { font-size: 1em; }
+.player-ui .ui-widget input, .player-ui .ui-widget select, .player-ui .ui-widget textarea, .player-ui .ui-widget button { font-family: Trebuchet MS, Tahoma, Verdana, Arial, sans-serif; font-size: 1em; }
+.player-ui .ui-widget-content { border: 1px solid #d9d6c4; background: #eceadf url(images/ui-bg_fine-grain_10_eceadf_60x60.png) 50% 50% repeat; color: #1f1f1f; }
+.player-ui .ui-widget-content a { color: #1f1f1f; }
+.player-ui .ui-widget-header { border: 1px solid #d4d1bf; background: #ffffff url(images/ui-bg_fine-grain_15_ffffff_60x60.png) 50% 50% repeat; color: #453821; font-weight: bold; }
+.player-ui .ui-widget-header a { color: #453821; }
+
+/* Interaction states
+----------------------------------*/
+.player-ui .ui-state-default, .player-ui .ui-widget-content .ui-state-default, .player-ui .ui-widget-header .ui-state-default { border: 1px solid #cbc7bd; background: #f8f7f6 url(images/ui-bg_fine-grain_10_f8f7f6_60x60.png) 50% 50% repeat; font-weight: bold; color: #654b24; }
+.player-ui .ui-state-default a, .player-ui .ui-state-default a:link, .player-ui .ui-state-default a:visited { color: #654b24; text-decoration: none; }
+.player-ui .ui-state-hover, .player-ui .ui-widget-content .ui-state-hover, .player-ui .ui-widget-header .ui-state-hover, .player-ui .ui-state-focus, .player-ui .ui-widget-content .ui-state-focus, .player-ui .ui-widget-header .ui-state-focus { border: 1px solid #654b24; background: #654b24 url(images/ui-bg_fine-grain_65_654b24_60x60.png) 50% 50% repeat; font-weight: bold; color: #ffffff; }
+.player-ui .ui-state-hover a, .player-ui .ui-state-hover a:hover { color: #ffffff; text-decoration: none; }
+.player-ui .ui-state-active, .player-ui .ui-widget-content .ui-state-active, .player-ui .ui-widget-header .ui-state-active { border: 1px solid #d9d6c4; background: #eceadf url(images/ui-bg_fine-grain_15_eceadf_60x60.png) 50% 50% repeat; font-weight: bold; color: #140f06; }
+.player-ui .ui-state-active a, .player-ui .ui-state-active a:link, .player-ui .ui-state-active a:visited { color: #140f06; text-decoration: none; }
+.player-ui .ui-widget :active { outline: none; }
+
+/* Interaction Cues
+----------------------------------*/
+.player-ui .ui-state-highlight, .player-ui .ui-widget-content .ui-state-highlight, .player-ui .ui-widget-header .ui-state-highlight  {border: 1px solid #b2a266; background: #f7f3de url(images/ui-bg_fine-grain_15_f7f3de_60x60.png) 50% 50% repeat; color: #3a3427; }
+.player-ui .ui-state-highlight a, .player-ui .ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a { color: #3a3427; }
+.player-ui .ui-state-error, .player-ui .ui-widget-content .ui-state-error, .player-ui .ui-widget-header .ui-state-error {border: 1px solid #681818; background: #b83400 url(images/ui-bg_fine-grain_68_b83400_60x60.png) 50% 50% repeat; color: #ffffff; }
+.player-ui .ui-state-error a, .player-ui .ui-widget-content .ui-state-error a, .player-ui .ui-widget-header .ui-state-error a { color: #ffffff; }
+.player-ui .ui-state-error-text, .player-ui .ui-widget-content .ui-state-error-text, .player-ui .ui-widget-header .ui-state-error-text { color: #ffffff; }
+.player-ui .ui-priority-primary, .player-ui .ui-widget-content .ui-priority-primary, .player-ui .ui-widget-header .ui-priority-primary { font-weight: bold; }
+.player-ui .ui-priority-secondary, .player-ui .ui-widget-content .ui-priority-secondary,  .ui-widget-header .ui-priority-secondary { opacity: .7; filter:Alpha(Opacity=70); font-weight: normal; }
+.player-ui .ui-state-disabled, .player-ui .ui-widget-content .ui-state-disabled, .player-ui .ui-widget-header .ui-state-disabled { opacity: .35; filter:Alpha(Opacity=35); background-image: none; }
+
+/* Icons
+----------------------------------*/
+
+/* states and images */
+.player-ui .ui-icon { width: 16px; height: 16px; background-image: url(images/ui-icons_222222_256x240.png); }
+.player-ui .ui-widget-content .ui-icon {background-image: url(images/ui-icons_222222_256x240.png); }
+.player-ui .ui-widget-header .ui-icon {background-image: url(images/ui-icons_b83400_256x240.png); }
+.player-ui .ui-state-default .ui-icon { background-image: url(images/ui-icons_b83400_256x240.png); }
+.player-ui .ui-state-hover .ui-icon, .player-ui .ui-state-focus .ui-icon {background-image: url(images/ui-icons_ffffff_256x240.png); }
+.player-ui .ui-state-active .ui-icon {background-image: url(images/ui-icons_8c291d_256x240.png); }
+.player-ui .ui-state-highlight .ui-icon {background-image: url(images/ui-icons_3572ac_256x240.png); }
+.player-ui .ui-state-error .ui-icon, .player-ui .ui-state-error-text .ui-icon {background-image: url(images/ui-icons_fbdb93_256x240.png); }
+
+/* positioning */
+.player-ui .ui-icon-carat-1-n { background-position: 0 0; }
+.player-ui .ui-icon-carat-1-ne { background-position: -16px 0; }
+.player-ui .ui-icon-carat-1-e { background-position: -32px 0; }
+.player-ui .ui-icon-carat-1-se { background-position: -48px 0; }
+.player-ui .ui-icon-carat-1-s { background-position: -64px 0; }
+.player-ui .ui-icon-carat-1-sw { background-position: -80px 0; }
+.player-ui .ui-icon-carat-1-w { background-position: -96px 0; }
+.player-ui .ui-icon-carat-1-nw { background-position: -112px 0; }
+.player-ui .ui-icon-carat-2-n-s { background-position: -128px 0; }
+.player-ui .ui-icon-carat-2-e-w { background-position: -144px 0; }
+.player-ui .ui-icon-triangle-1-n { background-position: 0 -16px; }
+.player-ui .ui-icon-triangle-1-ne { background-position: -16px -16px; }
+.player-ui .ui-icon-triangle-1-e { background-position: -32px -16px; }
+.player-ui .ui-icon-triangle-1-se { background-position: -48px -16px; }
+.player-ui .ui-icon-triangle-1-s { background-position: -64px -16px; }
+.player-ui .ui-icon-triangle-1-sw { background-position: -80px -16px; }
+.player-ui .ui-icon-triangle-1-w { background-position: -96px -16px; }
+.player-ui .ui-icon-triangle-1-nw { background-position: -112px -16px; }
+.player-ui .ui-icon-triangle-2-n-s { background-position: -128px -16px; }
+.player-ui .ui-icon-triangle-2-e-w { background-position: -144px -16px; }
+.player-ui .ui-icon-arrow-1-n { background-position: 0 -32px; }
+.player-ui .ui-icon-arrow-1-ne { background-position: -16px -32px; }
+.player-ui .ui-icon-arrow-1-e { background-position: -32px -32px; }
+.player-ui .ui-icon-arrow-1-se { background-position: -48px -32px; }
+.player-ui .ui-icon-arrow-1-s { background-position: -64px -32px; }
+.player-ui .ui-icon-arrow-1-sw { background-position: -80px -32px; }
+.player-ui .ui-icon-arrow-1-w { background-position: -96px -32px; }
+.player-ui .ui-icon-arrow-1-nw { background-position: -112px -32px; }
+.player-ui .ui-icon-arrow-2-n-s { background-position: -128px -32px; }
+.player-ui .ui-icon-arrow-2-ne-sw { background-position: -144px -32px; }
+.player-ui .ui-icon-arrow-2-e-w { background-position: -160px -32px; }
+.player-ui .ui-icon-arrow-2-se-nw { background-position: -176px -32px; }
+.player-ui .ui-icon-arrowstop-1-n { background-position: -192px -32px; }
+.player-ui .ui-icon-arrowstop-1-e { background-position: -208px -32px; }
+.player-ui .ui-icon-arrowstop-1-s { background-position: -224px -32px; }
+.player-ui .ui-icon-arrowstop-1-w { background-position: -240px -32px; }
+.player-ui .ui-icon-arrowthick-1-n { background-position: 0 -48px; }
+.player-ui .ui-icon-arrowthick-1-ne { background-position: -16px -48px; }
+.player-ui .ui-icon-arrowthick-1-e { background-position: -32px -48px; }
+.player-ui .ui-icon-arrowthick-1-se { background-position: -48px -48px; }
+.player-ui .ui-icon-arrowthick-1-s { background-position: -64px -48px; }
+.player-ui .ui-icon-arrowthick-1-sw { background-position: -80px -48px; }
+.player-ui .ui-icon-arrowthick-1-w { background-position: -96px -48px; }
+.player-ui .ui-icon-arrowthick-1-nw { background-position: -112px -48px; }
+.player-ui .ui-icon-arrowthick-2-n-s { background-position: -128px -48px; }
+.player-ui .ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px; }
+.player-ui .ui-icon-arrowthick-2-e-w { background-position: -160px -48px; }
+.player-ui .ui-icon-arrowthick-2-se-nw { background-position: -176px -48px; }
+.player-ui .ui-icon-arrowthickstop-1-n { background-position: -192px -48px; }
+.player-ui .ui-icon-arrowthickstop-1-e { background-position: -208px -48px; }
+.player-ui .ui-icon-arrowthickstop-1-s { background-position: -224px -48px; }
+.player-ui .ui-icon-arrowthickstop-1-w { background-position: -240px -48px; }
+.player-ui .ui-icon-arrowreturnthick-1-w { background-position: 0 -64px; }
+.player-ui .ui-icon-arrowreturnthick-1-n { background-position: -16px -64px; }
+.player-ui .ui-icon-arrowreturnthick-1-e { background-position: -32px -64px; }
+.player-ui .ui-icon-arrowreturnthick-1-s { background-position: -48px -64px; }
+.player-ui .ui-icon-arrowreturn-1-w { background-position: -64px -64px; }
+.player-ui .ui-icon-arrowreturn-1-n { background-position: -80px -64px; }
+.player-ui .ui-icon-arrowreturn-1-e { background-position: -96px -64px; }
+.player-ui .ui-icon-arrowreturn-1-s { background-position: -112px -64px; }
+.player-ui .ui-icon-arrowrefresh-1-w { background-position: -128px -64px; }
+.player-ui .ui-icon-arrowrefresh-1-n { background-position: -144px -64px; }
+.player-ui .ui-icon-arrowrefresh-1-e { background-position: -160px -64px; }
+.player-ui .ui-icon-arrowrefresh-1-s { background-position: -176px -64px; }
+.player-ui .ui-icon-arrow-4 { background-position: 0 -80px; }
+.player-ui .ui-icon-arrow-4-diag { background-position: -16px -80px; }
+.player-ui .ui-icon-extlink { background-position: -32px -80px; }
+.player-ui .ui-icon-newwin { background-position: -48px -80px; }
+.player-ui .ui-icon-refresh { background-position: -64px -80px; }
+.player-ui .ui-icon-shuffle { background-position: -80px -80px; }
+.player-ui .ui-icon-transfer-e-w { background-position: -96px -80px; }
+.player-ui .ui-icon-transferthick-e-w { background-position: -112px -80px; }
+.player-ui .ui-icon-folder-collapsed { background-position: 0 -96px; }
+.player-ui .ui-icon-folder-open { background-position: -16px -96px; }
+.player-ui .ui-icon-document { background-position: -32px -96px; }
+.player-ui .ui-icon-document-b { background-position: -48px -96px; }
+.player-ui .ui-icon-note { background-position: -64px -96px; }
+.player-ui .ui-icon-mail-closed { background-position: -80px -96px; }
+.player-ui .ui-icon-mail-open { background-position: -96px -96px; }
+.player-ui .ui-icon-suitcase { background-position: -112px -96px; }
+.player-ui .ui-icon-comment { background-position: -128px -96px; }
+.player-ui .ui-icon-person { background-position: -144px -96px; }
+.player-ui .ui-icon-print { background-position: -160px -96px; }
+.player-ui .ui-icon-trash { background-position: -176px -96px; }
+.player-ui .ui-icon-locked { background-position: -192px -96px; }
+.player-ui .ui-icon-unlocked { background-position: -208px -96px; }
+.player-ui .ui-icon-bookmark { background-position: -224px -96px; }
+.player-ui .ui-icon-tag { background-position: -240px -96px; }
+.player-ui .ui-icon-home { background-position: 0 -112px; }
+.player-ui .ui-icon-flag { background-position: -16px -112px; }
+.player-ui .ui-icon-calendar { background-position: -32px -112px; }
+.player-ui .ui-icon-cart { background-position: -48px -112px; }
+.player-ui .ui-icon-pencil { background-position: -64px -112px; }
+.player-ui .ui-icon-clock { background-position: -80px -112px; }
+.player-ui .ui-icon-disk { background-position: -96px -112px; }
+.player-ui .ui-icon-calculator { background-position: -112px -112px; }
+.player-ui .ui-icon-zoomin { background-position: -128px -112px; }
+.player-ui .ui-icon-zoomout { background-position: -144px -112px; }
+.player-ui .ui-icon-search { background-position: -160px -112px; }
+.player-ui .ui-icon-wrench { background-position: -176px -112px; }
+.player-ui .ui-icon-gear { background-position: -192px -112px; }
+.player-ui .ui-icon-heart { background-position: -208px -112px; }
+.player-ui .ui-icon-star { background-position: -224px -112px; }
+.player-ui .ui-icon-link { background-position: -240px -112px; }
+.player-ui .ui-icon-cancel { background-position: 0 -128px; }
+.player-ui .ui-icon-plus { background-position: -16px -128px; }
+.player-ui .ui-icon-plusthick { background-position: -32px -128px; }
+.player-ui .ui-icon-minus { background-position: -48px -128px; }
+.player-ui .ui-icon-minusthick { background-position: -64px -128px; }
+.player-ui .ui-icon-close { background-position: -80px -128px; }
+.player-ui .ui-icon-closethick { background-position: -96px -128px; }
+.player-ui .ui-icon-key { background-position: -112px -128px; }
+.player-ui .ui-icon-lightbulb { background-position: -128px -128px; }
+.player-ui .ui-icon-scissors { background-position: -144px -128px; }
+.player-ui .ui-icon-clipboard { background-position: -160px -128px; }
+.player-ui .ui-icon-copy { background-position: -176px -128px; }
+.player-ui .ui-icon-contact { background-position: -192px -128px; }
+.player-ui .ui-icon-image { background-position: -208px -128px; }
+.player-ui .ui-icon-video { background-position: -224px -128px; }
+.player-ui .ui-icon-script { background-position: -240px -128px; }
+.player-ui .ui-icon-alert { background-position: 0 -144px; }
+.player-ui .ui-icon-info { background-position: -16px -144px; }
+.player-ui .ui-icon-notice { background-position: -32px -144px; }
+.player-ui .ui-icon-help { background-position: -48px -144px; }
+.player-ui .ui-icon-check { background-position: -64px -144px; }
+.player-ui .ui-icon-bullet { background-position: -80px -144px; }
+.player-ui .ui-icon-radio-off { background-position: -96px -144px; }
+.player-ui .ui-icon-radio-on { background-position: -112px -144px; }
+.player-ui .ui-icon-pin-w { background-position: -128px -144px; }
+.player-ui .ui-icon-pin-s { background-position: -144px -144px; }
+.player-ui .ui-icon-play { background-position: 0 -160px; }
+.player-ui .ui-icon-pause { background-position: -16px -160px; }
+.player-ui .ui-icon-seek-next { background-position: -32px -160px; }
+.player-ui .ui-icon-seek-prev { background-position: -48px -160px; }
+.player-ui .ui-icon-seek-end { background-position: -64px -160px; }
+.player-ui .ui-icon-seek-start { background-position: -80px -160px; }
+/* ui-icon-seek-first is deprecated, use ui-icon-seek-start instead */
+.player-ui .ui-icon-seek-first { background-position: -80px -160px; }
+.player-ui .ui-icon-stop { background-position: -96px -160px; }
+.player-ui .ui-icon-eject { background-position: -112px -160px; }
+.player-ui .ui-icon-volume-off { background-position: -128px -160px; }
+.player-ui .ui-icon-volume-on { background-position: -144px -160px; }
+.player-ui .ui-icon-power { background-position: 0 -176px; }
+.player-ui .ui-icon-signal-diag { background-position: -16px -176px; }
+.player-ui .ui-icon-signal { background-position: -32px -176px; }
+.player-ui .ui-icon-battery-0 { background-position: -48px -176px; }
+.player-ui .ui-icon-battery-1 { background-position: -64px -176px; }
+.player-ui .ui-icon-battery-2 { background-position: -80px -176px; }
+.player-ui .ui-icon-battery-3 { background-position: -96px -176px; }
+.player-ui .ui-icon-circle-plus { background-position: 0 -192px; }
+.player-ui .ui-icon-circle-minus { background-position: -16px -192px; }
+.player-ui .ui-icon-circle-close { background-position: -32px -192px; }
+.player-ui .ui-icon-circle-triangle-e { background-position: -48px -192px; }
+.player-ui .ui-icon-circle-triangle-s { background-position: -64px -192px; }
+.player-ui .ui-icon-circle-triangle-w { background-position: -80px -192px; }
+.player-ui .ui-icon-circle-triangle-n { background-position: -96px -192px; }
+.player-ui .ui-icon-circle-arrow-e { background-position: -112px -192px; }
+.player-ui .ui-icon-circle-arrow-s { background-position: -128px -192px; }
+.player-ui .ui-icon-circle-arrow-w { background-position: -144px -192px; }
+.player-ui .ui-icon-circle-arrow-n { background-position: -160px -192px; }
+.player-ui .ui-icon-circle-zoomin { background-position: -176px -192px; }
+.player-ui .ui-icon-circle-zoomout { background-position: -192px -192px; }
+.player-ui .ui-icon-circle-check { background-position: -208px -192px; }
+.player-ui .ui-icon-circlesmall-plus { background-position: 0 -208px; }
+.player-ui .ui-icon-circlesmall-minus { background-position: -16px -208px; }
+.player-ui .ui-icon-circlesmall-close { background-position: -32px -208px; }
+.player-ui .ui-icon-squaresmall-plus { background-position: -48px -208px; }
+.player-ui .ui-icon-squaresmall-minus { background-position: -64px -208px; }
+.player-ui .ui-icon-squaresmall-close { background-position: -80px -208px; }
+.player-ui .ui-icon-grip-dotted-vertical { background-position: 0 -224px; }
+.player-ui .ui-icon-grip-dotted-horizontal { background-position: -16px -224px; }
+.player-ui .ui-icon-grip-solid-vertical { background-position: -32px -224px; }
+.player-ui .ui-icon-grip-solid-horizontal { background-position: -48px -224px; }
+.player-ui .ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; }
+.player-ui .ui-icon-grip-diagonal-se { background-position: -80px -224px; }
+
+
+/* Misc visuals
+----------------------------------*/
+
+/* Corner radius */
+.player-ui .ui-corner-all, .player-ui .ui-corner-top, .player-ui .ui-corner-left, .player-ui .ui-corner-tl { -moz-border-radius-topleft: 6px; -webkit-border-top-left-radius: 6px; -khtml-border-top-left-radius: 6px; border-top-left-radius: 6px; }
+.player-ui .ui-corner-all, .player-ui .ui-corner-top, .player-ui .ui-corner-right, .player-ui .ui-corner-tr { -moz-border-radius-topright: 6px; -webkit-border-top-right-radius: 6px; -khtml-border-top-right-radius: 6px; border-top-right-radius: 6px; }
+.player-ui .ui-corner-all, .player-ui .ui-corner-bottom, .player-ui .ui-corner-left, .player-ui .ui-corner-bl { -moz-border-radius-bottomleft: 6px; -webkit-border-bottom-left-radius: 6px; -khtml-border-bottom-left-radius: 6px; border-bottom-left-radius: 6px; }
+.player-ui .ui-corner-all, .player-ui .ui-corner-bottom, .player-ui .ui-corner-right, .player-ui .ui-corner-br { -moz-border-radius-bottomright: 6px; -webkit-border-bottom-right-radius: 6px; -khtml-border-bottom-right-radius: 6px; border-bottom-right-radius: 6px; }
+
+/* Overlays */
+.player-ui .ui-widget-overlay { background: #6e4f1c url(images/ui-bg_diagonal-maze_20_6e4f1c_10x10.png) 50% 50% repeat; opacity: .60;filter:Alpha(Opacity=60); }
+.player-ui .ui-widget-shadow { margin: 0 0 0 -10px; padding: 5px; background: #000000 url(images/ui-bg_diagonal-maze_40_000000_10x10.png) 50% 50% repeat; opacity: .60;filter:Alpha(Opacity=60); -moz-border-radius: 18px; -khtml-border-radius: 18px; -webkit-border-radius: 18px; border-radius: 18px; }/*
+ * jQuery UI Resizable 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Resizable#theming
+ */
+.player-ui .ui-resizable { position: relative;}
+.player-ui .ui-resizable-handle { position: absolute;font-size: 0.1px;z-index: 99999; display: block; }
+.player-ui .ui-resizable-disabled .ui-resizable-handle, .player-ui .ui-resizable-autohide .ui-resizable-handle { display: none; }
+.player-ui .ui-resizable-n { cursor: n-resize; height: 7px; width: 100%; top: -5px; left: 0; }
+.player-ui .ui-resizable-s { cursor: s-resize; height: 7px; width: 100%; bottom: -5px; left: 0; }
+.player-ui .ui-resizable-e { cursor: e-resize; width: 7px; right: -5px; top: 0; height: 100%; }
+.player-ui .ui-resizable-w { cursor: w-resize; width: 7px; left: -5px; top: 0; height: 100%; }
+.player-ui .ui-resizable-se { cursor: se-resize; width: 12px; height: 12px; right: 1px; bottom: 1px; }
+.player-ui .ui-resizable-sw { cursor: sw-resize; width: 9px; height: 9px; left: -5px; bottom: -5px; }
+.player-ui .ui-resizable-nw { cursor: nw-resize; width: 9px; height: 9px; left: -5px; top: -5px; }
+.player-ui .ui-resizable-ne { cursor: ne-resize; width: 9px; height: 9px; right: -5px; top: -5px;}/*
+ * jQuery UI Selectable 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Selectable#theming
+ */
+.player-ui .ui-selectable-helper { position: absolute; z-index: 100; border:1px dotted black; }
+/*
+ * jQuery UI Accordion 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Accordion#theming
+ */
+/* IE/Win - Fix animation bug - #4615 */
+.player-ui .ui-accordion { width: 100%; }
+.player-ui .ui-accordion .ui-accordion-header { cursor: pointer; position: relative; margin-top: 1px; zoom: 1; }
+.player-ui .ui-accordion .ui-accordion-li-fix { display: inline; }
+.player-ui .ui-accordion .ui-accordion-header-active { border-bottom: 0 !important; }
+.player-ui .ui-accordion .ui-accordion-header a { display: block; font-size: 1em; padding: .5em .5em .5em .7em; }
+.player-ui .ui-accordion-icons .ui-accordion-header a { padding-left: 2.2em; }
+.player-ui .ui-accordion .ui-accordion-header .ui-icon { position: absolute; left: .5em; top: 50%; margin-top: -8px; }
+.player-ui .ui-accordion .ui-accordion-content { padding: 1em 2.2em; border-top: 0; margin-top: -2px; position: relative; top: 1px; margin-bottom: 2px; overflow: auto; display: none; zoom: 1; }
+.player-ui .ui-accordion .ui-accordion-content-active { display: block; }
+/*
+ * jQuery UI Autocomplete 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Autocomplete#theming
+ */
+.player-ui .ui-autocomplete { position: absolute; cursor: default; }	
+
+/* workarounds */
+* html .ui-autocomplete { width:1px; } /* without this, the menu expands to 100% in IE6 */
+
+/*
+ * jQuery UI Menu 1.8.18
+ *
+ * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Menu#theming
+ */
+.player-ui .ui-menu {
+	list-style:none;
+	padding: 2px;
+	margin: 0;
+	display:block;
+	float: left;
+}
+.player-ui .ui-menu .ui-menu {
+	margin-top: -3px;
+}
+.player-ui .ui-menu .ui-menu-item {
+	margin:0;
+	padding: 0;
+	zoom: 1;
+	float: left;
+	clear: left;
+	width: 100%;
+}
+.player-ui .ui-menu .ui-menu-item a {
+	text-decoration:none;
+	display:block;
+	padding:.2em .4em;
+	line-height:1.5;
+	zoom:1;
+}
+.player-ui .ui-menu .ui-menu-item a.ui-state-hover,
+.player-ui .ui-menu .ui-menu-item a.ui-state-active {
+	font-weight: normal;
+	margin: -1px;
+}
+/*
+ * jQuery UI Button 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Button#theming
+ */
+.player-ui .ui-button { display: inline-block; position: relative; padding: 0; margin-right: .1em; text-decoration: none !important; cursor: pointer; text-align: center; zoom: 1; overflow: hidden; *overflow: visible; } /* the overflow property removes extra width in IE */
+.player-ui .ui-button-icon-only { width: 2.2em; } /* to make room for the icon, a width needs to be set here */
+button.ui-button-icon-only { width: 2.4em; } /* button elements seem to need a little more width */
+.player-ui .ui-button-icons-only { width: 3.4em; } 
+button.ui-button-icons-only { width: 3.7em; } 
+
+/*button text element */
+.player-ui .ui-button .ui-button-text { display: block; line-height: 1.4;  }
+.player-ui .ui-button-text-only .ui-button-text { padding: .4em 1em; }
+.player-ui .ui-button-icon-only .ui-button-text, .player-ui .ui-button-icons-only .ui-button-text { padding: .4em; text-indent: -9999999px; }
+.player-ui .ui-button-text-icon-primary .ui-button-text, .player-ui .ui-button-text-icons .ui-button-text { padding: .4em 1em .4em 2.1em; }
+.player-ui .ui-button-text-icon-secondary .ui-button-text, .player-ui .ui-button-text-icons .ui-button-text { padding: .4em 2.1em .4em 1em; }
+.player-ui .ui-button-text-icons .ui-button-text { padding-left: 2.1em; padding-right: 2.1em; }
+/* no icon support for input elements, provide padding by default */
+input.ui-button { padding: .4em 1em; }
+
+/*button icon element(s) */
+.player-ui .ui-button-icon-only .ui-icon, .player-ui .ui-button-text-icon-primary .ui-icon, .player-ui .ui-button-text-icon-secondary .ui-icon, .player-ui .ui-button-text-icons .ui-icon, .player-ui .ui-button-icons-only .ui-icon { position: absolute; top: 50%; margin-top: -8px; }
+.player-ui .ui-button-icon-only .ui-icon { left: 50%; margin-left: -8px; }
+.player-ui .ui-button-text-icon-primary .ui-button-icon-primary, .player-ui .ui-button-text-icons .ui-button-icon-primary, .player-ui .ui-button-icons-only .ui-button-icon-primary { left: .5em; }
+.player-ui .ui-button-text-icon-secondary .ui-button-icon-secondary, .player-ui .ui-button-text-icons .ui-button-icon-secondary, .player-ui .ui-button-icons-only .ui-button-icon-secondary { right: .5em; }
+.player-ui .ui-button-text-icons .ui-button-icon-secondary, .player-ui .ui-button-icons-only .ui-button-icon-secondary { right: .5em; }
+
+/*button sets*/
+.player-ui .ui-buttonset { margin-right: 7px; }
+.player-ui .ui-buttonset .ui-button { margin-left: 0; margin-right: -.3em; }
+
+/* workarounds */
+button.ui-button::-moz-focus-inner { border: 0; padding: 0; } /* reset extra padding in Firefox */
+/*
+ * jQuery UI Dialog 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Dialog#theming
+ */
+.player-ui .ui-dialog { position: absolute; padding: .2em; width: 300px; overflow: hidden; }
+.player-ui .ui-dialog .ui-dialog-titlebar { padding: .4em 1em; position: relative;  }
+.player-ui .ui-dialog .ui-dialog-title { float: left; margin: .1em 16px .1em 0; } 
+.player-ui .ui-dialog .ui-dialog-titlebar-close { position: absolute; right: .3em; top: 50%; width: 19px; margin: -10px 0 0 0; padding: 1px; height: 18px; }
+.player-ui .ui-dialog .ui-dialog-titlebar-close span { display: block; margin: 1px; }
+.player-ui .ui-dialog .ui-dialog-titlebar-close:hover, .player-ui .ui-dialog .ui-dialog-titlebar-close:focus { padding: 0; }
+.player-ui .ui-dialog .ui-dialog-content { position: relative; border: 0; padding: .5em 1em; background: none; overflow: auto; zoom: 1; }
+.player-ui .ui-dialog .ui-dialog-buttonpane { text-align: left; border-width: 1px 0 0 0; background-image: none; margin: .5em 0 0 0; padding: .3em 1em .5em .4em; }
+.player-ui .ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset { float: right; }
+.player-ui .ui-dialog .ui-dialog-buttonpane button { margin: .5em .4em .5em 0; cursor: pointer; }
+.player-ui .ui-dialog .ui-resizable-se { width: 14px; height: 14px; right: 3px; bottom: 3px; }
+.player-ui .ui-draggable .ui-dialog-titlebar { cursor: move; }
+/*
+ * jQuery UI Slider 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Slider#theming
+ */
+.player-ui .ui-slider { position: relative; text-align: left; }
+.player-ui .ui-slider .ui-slider-handle { position: absolute; z-index: 2; width: 1.2em; height: 1.2em; cursor: default; }
+.player-ui .ui-slider .ui-slider-range { position: absolute; z-index: 1; font-size: .7em; display: block; border: 0; background-position: 0 0; }
+
+.player-ui .ui-slider-horizontal { height: .8em; }
+.player-ui .ui-slider-horizontal .ui-slider-handle { top: -.3em; margin-left: -.6em; }
+.player-ui .ui-slider-horizontal .ui-slider-range { top: 0; height: 100%; }
+.player-ui .ui-slider-horizontal .ui-slider-range-min { left: 0; }
+.player-ui .ui-slider-horizontal .ui-slider-range-max { right: 0; }
+
+.player-ui .ui-slider-vertical { width: .8em; height: 100px; }
+.player-ui .ui-slider-vertical .ui-slider-handle { left: -.3em; margin-left: 0; margin-bottom: -.6em; }
+.player-ui .ui-slider-vertical .ui-slider-range { left: 0; width: 100%; }
+.player-ui .ui-slider-vertical .ui-slider-range-min { bottom: 0; }
+.player-ui .ui-slider-vertical .ui-slider-range-max { top: 0; }/*
+ * jQuery UI Tabs 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Tabs#theming
+ */
+.player-ui .ui-tabs { position: relative; padding: .2em; zoom: 1; } /* position: relative prevents IE scroll bug (element with position: relative inside container with overflow: auto appear as "fixed") */
+.player-ui .ui-tabs .ui-tabs-nav { margin: 0; padding: .2em .2em 0; }
+.player-ui .ui-tabs .ui-tabs-nav li { list-style: none; float: left; position: relative; top: 1px; margin: 0 .2em 1px 0; border-bottom: 0 !important; padding: 0; white-space: nowrap; }
+.player-ui .ui-tabs .ui-tabs-nav li a { float: left; padding: .5em 1em; text-decoration: none; }
+.player-ui .ui-tabs .ui-tabs-nav li.ui-tabs-selected { margin-bottom: 0; padding-bottom: 1px; }
+.player-ui .ui-tabs .ui-tabs-nav li.ui-tabs-selected a, .player-ui .ui-tabs .ui-tabs-nav li.ui-state-disabled a, .player-ui .ui-tabs .ui-tabs-nav li.ui-state-processing a { cursor: text; }
+.player-ui .ui-tabs .ui-tabs-nav li a, .player-ui .ui-tabs.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-selected a { cursor: pointer; } /* first selector in group seems obsolete, but required to overcome bug in Opera applying cursor: text overall if defined elsewhere... */
+.player-ui .ui-tabs .ui-tabs-panel { display: block; border-width: 0; padding: 1em 1.4em; background: none; }
+.player-ui .ui-tabs .ui-tabs-hide { display: none !important; }
+/*
+ * jQuery UI Datepicker 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Datepicker#theming
+ */
+.player-ui .ui-datepicker { width: 17em; padding: .2em .2em 0; display: none; }
+.player-ui .ui-datepicker .ui-datepicker-header { position:relative; padding:.2em 0; }
+.player-ui .ui-datepicker .ui-datepicker-prev, .player-ui .ui-datepicker .ui-datepicker-next { position:absolute; top: 2px; width: 1.8em; height: 1.8em; }
+.player-ui .ui-datepicker .ui-datepicker-prev-hover, .player-ui .ui-datepicker .ui-datepicker-next-hover { top: 1px; }
+.player-ui .ui-datepicker .ui-datepicker-prev { left:2px; }
+.player-ui .ui-datepicker .ui-datepicker-next { right:2px; }
+.player-ui .ui-datepicker .ui-datepicker-prev-hover { left:1px; }
+.player-ui .ui-datepicker .ui-datepicker-next-hover { right:1px; }
+.player-ui .ui-datepicker .ui-datepicker-prev span, .player-ui .ui-datepicker .ui-datepicker-next span { display: block; position: absolute; left: 50%; margin-left: -8px; top: 50%; margin-top: -8px;  }
+.player-ui .ui-datepicker .ui-datepicker-title { margin: 0 2.3em; line-height: 1.8em; text-align: center; }
+.player-ui .ui-datepicker .ui-datepicker-title select { font-size:1em; margin:1px 0; }
+.player-ui .ui-datepicker select.ui-datepicker-month-year {width: 100%;}
+.player-ui .ui-datepicker select.ui-datepicker-month, 
+.player-ui .ui-datepicker select.ui-datepicker-year { width: 49%;}
+.player-ui .ui-datepicker table {width: 100%; font-size: .9em; border-collapse: collapse; margin:0 0 .4em; }
+.player-ui .ui-datepicker th { padding: .7em .3em; text-align: center; font-weight: bold; border: 0;  }
+.player-ui .ui-datepicker td { border: 0; padding: 1px; }
+.player-ui .ui-datepicker td span, .player-ui .ui-datepicker td a { display: block; padding: .2em; text-align: right; text-decoration: none; }
+.player-ui .ui-datepicker .ui-datepicker-buttonpane { background-image: none; margin: .7em 0 0 0; padding:0 .2em; border-left: 0; border-right: 0; border-bottom: 0; }
+.player-ui .ui-datepicker .ui-datepicker-buttonpane button { float: right; margin: .5em .2em .4em; cursor: pointer; padding: .2em .6em .3em .6em; width:auto; overflow:visible; }
+.player-ui .ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current { float:left; }
+
+/* with multiple calendars */
+.player-ui .ui-datepicker.ui-datepicker-multi { width:auto; }
+.player-ui .ui-datepicker-multi .ui-datepicker-group { float:left; }
+.player-ui .ui-datepicker-multi .ui-datepicker-group table { width:95%; margin:0 auto .4em; }
+.player-ui .ui-datepicker-multi-2 .ui-datepicker-group { width:50%; }
+.player-ui .ui-datepicker-multi-3 .ui-datepicker-group { width:33.3%; }
+.player-ui .ui-datepicker-multi-4 .ui-datepicker-group { width:25%; }
+.player-ui .ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header { border-left-width:0; }
+.player-ui .ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header { border-left-width:0; }
+.player-ui .ui-datepicker-multi .ui-datepicker-buttonpane { clear:left; }
+.player-ui .ui-datepicker-row-break { clear:both; width:100%; font-size:0em; }
+
+/* RTL support */
+.player-ui .ui-datepicker-rtl { direction: rtl; }
+.player-ui .ui-datepicker-rtl .ui-datepicker-prev { right: 2px; left: auto; }
+.player-ui .ui-datepicker-rtl .ui-datepicker-next { left: 2px; right: auto; }
+.player-ui .ui-datepicker-rtl .ui-datepicker-prev:hover { right: 1px; left: auto; }
+.player-ui .ui-datepicker-rtl .ui-datepicker-next:hover { left: 1px; right: auto; }
+.player-ui .ui-datepicker-rtl .ui-datepicker-buttonpane { clear:right; }
+.player-ui .ui-datepicker-rtl .ui-datepicker-buttonpane button { float: left; }
+.player-ui .ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current { float:right; }
+.player-ui .ui-datepicker-rtl .ui-datepicker-group { float:right; }
+.player-ui .ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header { border-right-width:0; border-left-width:1px; }
+.player-ui .ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header { border-right-width:0; border-left-width:1px; }
+
+/* IE6 IFRAME FIX (taken from datepicker 1.5.3 */
+.player-ui .ui-datepicker-cover {
+    display: none; /*sorry for IE5*/
+    display/**/: block; /*sorry for IE5*/
+    position: absolute; /*must have*/
+    z-index: -1; /*must have*/
+    filter: mask(); /*must have*/
+    top: -4px; /*must have*/
+    left: -4px; /*must have*/
+    width: 200px; /*must have*/
+    height: 200px; /*must have*/
+}/*
+ * jQuery UI Progressbar 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Progressbar#theming
+ */
+.player-ui .ui-progressbar { height:2em; text-align: left; overflow: hidden; }
+.player-ui .ui-progressbar .ui-progressbar-value {margin: -1px; height:100%; }
\ No newline at end of file
diff --git a/public/admin/js/osmplayer/jquery-ui/redmond/images/ui-bg_flat_0_aaaaaa_40x100.png b/public/admin/js/osmplayer/jquery-ui/redmond/images/ui-bg_flat_0_aaaaaa_40x100.png
new file mode 100644
index 0000000000000000000000000000000000000000..5b5dab2ab7b1c50dea9cfe73dc5a269a92d2d4b4
GIT binary patch
literal 180
zcmeAS@N?(olHy`uVBq!ia0vp^8bF-F!3HG1q!d*FscKIb$B>N1x91EQ4=4yQ7#`R^
z$vje}<irI&an_s0pV!D+$FtuP31JO&3=I&aE+u|=5A)Hv$*VMh&S3C#^>bP0l+XkK
DSH>_4

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/redmond/images/ui-bg_flat_55_fbec88_40x100.png b/public/admin/js/osmplayer/jquery-ui/redmond/images/ui-bg_flat_55_fbec88_40x100.png
new file mode 100644
index 0000000000000000000000000000000000000000..47acaadd737478ddb090f47f618810712163317b
GIT binary patch
literal 182
zcmeAS@N?(olHy`uVBq!ia0vp^8bF-F!3HG1q!d*Fsaj7L$B>N1x91EQ8x$BA993)+
za~~)OO5|O5sDCi_{N8&XlRv*c;OQ6|AR59NN?mFzWBXJVGojypu|S6~c)I$ztaD0e
F0syyrGF|`x

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/redmond/images/ui-bg_glass_75_d0e5f5_1x400.png b/public/admin/js/osmplayer/jquery-ui/redmond/images/ui-bg_glass_75_d0e5f5_1x400.png
new file mode 100644
index 0000000000000000000000000000000000000000..9fb564f8d0a117f17aa6b844490309dadbd94821
GIT binary patch
literal 124
zcmeAS@N?(olHy`uVBq!ia0vp^j6gJjgAK^akKnouq?|on978O6-=0_GYj6;7zWBfT
zzjhI`OjAO{6(N>+Em!s|xjZW|^1EO|(5d{JeUmv{p6fa-GJh;t>KCH4`R~7(L8qj}
Y_egNRQF(If70@^aPgg&ebxsLQ0Qgob)Bpeg

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/redmond/images/ui-bg_glass_85_dfeffc_1x400.png b/public/admin/js/osmplayer/jquery-ui/redmond/images/ui-bg_glass_85_dfeffc_1x400.png
new file mode 100644
index 0000000000000000000000000000000000000000..014951529c315d6042e72febc310a4d2db5b4a82
GIT binary patch
literal 123
zcmeAS@N?(olHy`uVBq!ia0vp^j6gJjgAK^akKnouq?|lm978O6-<~(*YA_IRxoBVf
zfAX@vsV!R#l$@#*eLnw)_Sv|_?i7P!ORnX)SxaXh+BPpZ!Fw~yjr&#G|Jw^YMHDhV
X&EsZx`7bsSXc~j3tDnm{r-UW|&(SK+

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/redmond/images/ui-bg_glass_95_fef1ec_1x400.png b/public/admin/js/osmplayer/jquery-ui/redmond/images/ui-bg_glass_95_fef1ec_1x400.png
new file mode 100644
index 0000000000000000000000000000000000000000..4443fdc1a156babad4336f004eaf5ca5dfa0f9ab
GIT binary patch
literal 119
zcmeAS@N?(olHy`uVBq!ia0vp^j6gJjgAK^akKnour0hIh978O6-<~(*YA|4MzBvER
z|7}eQtdCVXoUc2b{PaWeaIKu7gJx>{vDV26o)#~38&#8k_!`W=^oo1w6ixmPC4R1b
Tyd6G3lNdZ*{an^LB{Ts5`idse

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/redmond/images/ui-bg_gloss-wave_55_5c9ccc_500x100.png b/public/admin/js/osmplayer/jquery-ui/redmond/images/ui-bg_gloss-wave_55_5c9ccc_500x100.png
new file mode 100644
index 0000000000000000000000000000000000000000..81ecc362d50ef5abbc0420aacd5345822f1f6098
GIT binary patch
literal 3457
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
POMny9)vos2J3syt(aqlh

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/redmond/images/ui-bg_inset-hard_100_f5f8f9_1x100.png b/public/admin/js/osmplayer/jquery-ui/redmond/images/ui-bg_inset-hard_100_f5f8f9_1x100.png
new file mode 100644
index 0000000000000000000000000000000000000000..4f3faf8aa8b1054ef1b18b80ab58f670b406a794
GIT binary patch
literal 104
zcmeAS@N?(olHy`uVBq!ia0vp^j6j^i!3HGVb)pi0l)k5nV~E7m<R8BtKd)C~V`FPe
z^ffRtGB7YSFfcMOd?b?G;%#7X=!+3wPjRL<14F_FmL0`{@$Z0I89ZJ6T-G@yGywp_
Co*P~O

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/redmond/images/ui-bg_inset-hard_100_fcfdfd_1x100.png b/public/admin/js/osmplayer/jquery-ui/redmond/images/ui-bg_inset-hard_100_fcfdfd_1x100.png
new file mode 100644
index 0000000000000000000000000000000000000000..38c38335d0919ceb7b0dd09e88a86be90a966ef3
GIT binary patch
literal 88
zcmeAS@N?(olHy`uVBq!ia0vp^j6j^i!3HGVb)pi0l)R^lV~E7m<R72EzpqzgV`FO*
mbT@c3B{fBc=iOpSMuu`pmi>1R+}Z$C%HZkh=d#Wzp$Pz8A{XNT

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/redmond/images/ui-icons_217bc0_256x240.png b/public/admin/js/osmplayer/jquery-ui/redmond/images/ui-icons_217bc0_256x240.png
new file mode 100644
index 0000000000000000000000000000000000000000..6f4bd87c041453ef037c4a9a1a698f0105d02eba
GIT binary patch
literal 4369
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

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/redmond/images/ui-icons_2e83ff_256x240.png b/public/admin/js/osmplayer/jquery-ui/redmond/images/ui-icons_2e83ff_256x240.png
new file mode 100644
index 0000000000000000000000000000000000000000..09d1cdc856c292c4ab6dd818c7543ac0828bd616
GIT binary patch
literal 4369
zcmd^?`8O2)_s3@pGmLE*`#M>&Z`mr_kcu#tBo!IbqU=l7VaSrbQrTh%5m}S08Obh0
zGL{*mi8RK}U~J#s@6Y%1S9~7lb?$xLU+y{go_o*h`AW1wUF3v{Kmh;%r@5J_9RL9Q
zdj+hqg8o{9`K7(TZrR4t{=9O`!T-(~c=yEWZ{eswJJe->5bP8)t4;f(Y*i_HU*sLM
z2=7-8guZ}@*(HhVC)Mqg<Fpc@JMZ@m_nbBrYio+A_)wDiw(`CFAx>r$3T8?#a(hu&
z?Kzuw!O%PM>AicSW`_U(cbvJYv3<y^W#?44=>{HfpIP~Q>@$^c588E$vv)V2c|Mr%
zuFO$+I~Hg@u}wPm17n%}j1Y+Pbu!bt?iPkjGAo7>9eRN0FZz3X2_QZj+V!}+*8oBQ
z_=iI^_TCA;Ea2tPmRNOeX3+VM>KL;o1(h`c@`6Ah`vdH<&+$yTg)jGWW<DoLyP@F%
z1a?(b6!zkLvMy_3J2VHTkjbIwpclDibDQ*&(<G#ZS8)TbY#<XBUji}ZBYc9y!j?g=
zCB)t#7=W%zwQbX@pwY(37C?J!LzE!l%t|=o`O|-??P**$^X>72T}6J`kUAv?2CgyV
zrs0y@Fpvpj@kWVE0TzL@Cy#qHn~kgensb{hIm6J&I8hkoNHOz6o1QQ3QM4NZyu?;=
zLd>`wPT*uGr+6vAxYv3k8{gMDR>tO}UavDKzzyi6hvbuP=XQ4Y|A)r4#B$U(q7{1Z
z0iLeSjo3;T*<wqybAvRAA?2T+&Y9txKIfi5?<yZ57FH|IAnl`(9<7HXJZ{X1{(kDN
z(Vkq6C${(+AkP^!;sw>diS*me%4|!s23l@>R}rn@#Zc{<%CFt;?gd5S<)b=8Yz32U
zBBLprntW3RE3f|uNX5Aw|I(IlJjW-Byd?QFFRk%hLU}O*YyYQel}WcXilLMJp9cB4
z)E?D+*Y4zai&XY!>niMfTW-2pp-^KFT93%Leig@uoQGPYRCva-`w#orm`is`p8b4s
zxD462;f<sb?0~I>*^XO$=3by=VzN9i@xxr<1w=pcxl!$!fjWt|fYmq1@@badT?v`d
zIi$|e$Ji}FXsiVYf)?pN1R0LBw;+)B5aUJj2fP+=m;=_Eho84g%Jq#@MLPSQEX*@T
z6sZb)m?)zby>{j1)(;rRML|gKSs+9jorf-XhQJ2Jyt5Cqc*`S3iX@A5C3jvgAns|4
z*|)YQ%Kmsj+YZ53;nMqh|AFvehUV-9R;1ZZ;w5r9l}8hjSw@#k;>)$P*r%)=Extyu
zB!$Kd-F?*50aJ2;TNTR-fc8B{KAq3!vW{g$LlGPfGW+%#CXU<Nz-K_W*D6U7Mo7f>
zJDcMsvyT2`x~v>>w8@yssoA`KuIZ98CLU{Ia%*nW3G4t}@ApsbC@o^WCqL>OXx>Y^
zSuVWEQ;3=A=@RxCnt0>G@#(VWBQ`0$qTwA#e>SX{_N~JWGsBxFHCw|5<IbE^2zQft
z+V(~OSkf)|lX5W_7EJt<@((Sk8!u;jnOqZIk=&$6YYOz$F?*zMPTU2T+x|MROAklN
z%9!TpTpdzgi=@hTRw^Ahcil~@&hwEFY;|?)K#dO5Scx8UFD*{3dV-!oOM#&cE&Q2n
zoW9TnYFwBbCzoyprD(`zOk49a>|?CzDi>92F-^=b*8sMXnhUJdb!>yGD2nhN@{582
zRPcxuDzs&;8De)>_J19z{0xppXQop#T_5ejGCKv@l>$O#DA-@X{y_1B-AsiU)H}DR
z3xDZ8G`amV_WmA&8!W=@jgm|%bnw<n8Q)drY3eYBD{f~yuK!dV>H%qkg(@J$hLaSV
z<b?8z3vpCe_J&8AY!c(!FqUw-kI7@s<dgb*ThA?Tu$O)zp>C-rXIFMM%y<|Gb)o?j
zpe-`dJ*N5tC-iH)d0CgLdBsw*C!ST9hY1EkI|Y(&=p&dH&q;a&7HXa5#_wtMsenQL
zcpyhwx)Ppw@XmVz?P)DI#^ee1oC!i`>>Jq1ESk-OuQ(Pbv=s{A0AjM@rw#FaU;RUh
z*At0{U*NtGVY_-JcuG$?zuuf%ZBTWxKU2yf?iN#-MRWs>A*2;p0G1Tp3d29u5RbnY
zDOON-G|PidOOGeybnbzu7UVv71l!<qLl#EcbYWe!wG5tcyhhuMWP&yr`zRz8F_ozM
zhJ``fFaR+RaQ$HxV1JAUt!HeCZ<^dcnDIL8eYWG)9j+;3USxo7a|iDliv%vqQj)sU
zoDLu%#I6^B)l^mSEoEz1>b=w7eU5l*{EdKuoKu`#LZ}|fnUr-+lSST9(MTT`0tqOG
z#<K!`0^vSUvDg(~Yn7}4&a+I75c`V)D|~FimXdl~J-Q;PJw#_TZAuc(RAcfC`&|}0
zkZV}8q8Q9<U*ERkYb6H2y_HbsHY0*XF((5#-fVna8M>+Q_=lXe-=;rE4u8s~;%i~~
z8v&&+VPeXG=2zw9B5sR$e?R(n%nf?p-(BCZ8}x!_-9T+LT;2=Zu?Wv)j3#>35$6dR
z4*7xmI)#06qjh#sXvX(%`#D1mD8fn1G~I;l%Dk{pw)}>_{+3^Fv_q)>2#de5qGCId
zPz?ix-3954nM&u@vaw{o%-#HU%_bLJMO#@enR^&B{3ihWdoU6%pBJ`o<w?5T9ud^Y
zI>>im+b-c6r-;c{vd0Z_)`75$jApy2?!9G4_FGa)iZ~9`6VELiYM+n!-mUfvfm{jt
zC?!1=%pxJhF>vyQ47Q}R;O48pxgMs)rz$SbM&jkp<6X$r4DHWg>ZnGB-$r2o1*nL#
zW0^*itcRY_^Uv^XgQP>W#>KQgM~l{;S(GkVW@&vld^AhWzG^m|9#0#USbM>^en{k2
za8~DTL`(Q~=ofsL&Fc`!L6r~qTnnGo8r98<(aG*<0%aNEr!!BIyY>VV82k<Gsoyn#
zvIJW>xhR%d>V(lN&#BId#urK_i~Pe6?>C~J!pU_lRon#&S_cXoQv;poG8FK4atc<p
zjeUBy@^Jw(V((z7r>N)npz1~X%p6x{M(Gw!!H=!}lmO0Xr*8ewyH(Q+>oy`fxQkxJ
zzzB$)%*xM4s_2(O>)T-QXhwP|&DZam#{O+47q|WKfz_ZL-MypRN~o{fE*I#6@eM?I
zs%f-6{Lz6j7rB#U$%O$~TIT!j?|Ip1CpSmb=JA9qCY3-mQf|fVCxswPjok|VofUEP
zW5^pTd5B;wRkyW%1a;nYHB$ef6Pv8^);`m0jv6p72iNJl+sVBqZugsq6cq_pyNREi
z>GN!h6ZQ6`aOMr_2KI@j=XR@$aJj(2jcpY?>f=2kMV@di5W7Swj?ug10zRe}F1nR*
ztMm6+T^)LJe^SzGgSxahQajq0h7<FIM)==mqOi0sP&ku%D`037mHLEQ;?YBXRgcBJ
zg;YBqQV1p<N>#|8oMV0>D~*N}jl?9_X`ka42R4@rryDc3o(c$R?1*!1O9zleSOczw
zYPS3~xbJ$~C(3+D7Z<s)U8yQk=*tiGGzJrAhaSC#qIs?Jh81YQ47QuqhWW!*VSm_0
z=t^45-NL{7OdQ=+(>krfjs_lneY^zv^kHmxt)aqZ!aeGABHZ`gvA&K`72z}ihI$Ht
z9V&)wQy0g@R9irwbf!{uE&_J2l9jXz^Vj#=qA77*3Pd9OjrE_tKDHADd!AjFQv(ji
zct-BMUt9()1Ox!dsI_h1(^F_U)_QJrx|%+y`zWWlD4=Nd?JQ=URh0*{fb1!o4tS(H
z^r_T(8t1SAHf1oduG+X^*EC_kL(!QnXL6Hp);449yO&1xE>MXGqT)t10lzvALl<?{
zrVF-Nlk*Lcvq9SGK;9)Dyv<a=@k|#mT05o~q+!s##A{Fr@jZNvP>lX;;Q)RiJX$dm
zlR8ep5-GdHmRm9?N#QCjNUA);vC03Gw6yds6^?c4;(MH>;O5xmQ2nGK3Dmk8i*v5t
z-{jJsQq30%z}0`g7SN-yN`l-`@6<bxgAJDPgWtfjt{vU|la%{8JOg<~aF@)sJ2H-T
zJtv=5W+3ZEjrJj*8XPnbuZ$;ozuG9)*k!x_DnY^o_splP?Xrx3x5yraES;Cf|J5r4
zKm=v+F$_FjQPn%(xB916O9fMjy+<RXM2|CFbj)`jN%Oc#F19k_UX>rkJ|V|>18`MV
zwUeH}DxWw&h+A+Dn|4|YNr&EfKS`Hz_NkeW3*sI5Rq-J&FzG=!{-K`n65#7O%^&f>
z`PkqxyC_K)>781~7H${^Nj{`>XEa&OPqqQhySR5%w2{5+sEakXXHazJp6~LP2QKDx
zpkvZrkDOa+A4BbqqX6ls&O)5-Q7`qkZ_?6~c-wQ9tseNtET;nhEOL^`*naKwcMX;R
zbto&a;oTR0s;vjfj3wigUg)Sj)!OHQfZoJwAsWYI1A4ntz>X=W4s|y?tUk1r=>#Ct
zf+?hq^>rQ3$KNboG$UhCdEmp{qAR13DK$f0ES7kAG~7q+g!jfVq`1b5+c62N^0%~o
zKw91o@Wv;0EW*7fINAX3O~L-V{`;xB0q()#^HKZ<VQD|Ssq*t15*X{M&@{ft%5R$-
z6owZW2o=m-TQzdLLef(vN96$G9ORVX`|MzBlmqVMs_3OgJL<%B=eg2K!P2uuCBqY8
z=fHBH!!ecFczAO@u@^ZX9m+}9YOS0K+RQxSNG(M>OlLrXVL*Dtw<PJE!!R49Z5AiW
z@RZu|VfY&-AB8mfbHEZ%<mzrpZlr6pW{4#|nDeZli!Dhng=XNJ^rLmrJ&?7uQ-W#5
zN$xbbvAOj#F;Y`(?y{ZDw0Pl^PWS5eUTBmOE@${373(N^u!ns<C}>-$SUp8*_J{r(
zW`6r`cz0yZQ#f0#*y+m64{bs7GP|2V$phf42rswJB?s@9qf;Bfc^pm-ZS#^5dkG{u
zzv;l&B$NYcegSqAnjnPN1?17VUQbPummcWry((85IFB(pFQNGN{hhN$Fv?~l_fr?|
z9=%dK(+;kZ(8=mwptjwC-ikBD$Z{l2++~*8wq5ynF<+PNlZI7ba5V#fg~L}kE;UH5
zJ;{P(`G{tNl&z5rUiH~e{I>GT8~9&*(J;Myx9z5P!db!F8RTII^I7c)HU=ss*bYB`
zgwiIMZ_q>KEC$4lFm+Afvu6^$X1jm1rB*4H)-EIO5Rvz<oJsXcs9TC3t>_p24?OkJ
zovD4{-1KA6*oL?a;3qR7GZRB!cE5oAdA#M@{w+fGgsJ-lSmQ^-?8E&Q%tbmjd=@gZ
z(}Mg*jsDf6Z)|7s%@9pc-tuw5W&zqUXjv2bVkC%-X?O3F72W4EsIl#1e<T(7Fti0z
z=*7Pu9Hvju-R6I>>Mdz=X4k*_>VxCu_2?jjg16N*5fwC-36OW&;Sz}@jMn}hgJdEd
pO;bST+>R{W-aENZYk%(=^(_R5N$LmL{Qc?!%+I4tt4z=_{|902Wu5>4

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/redmond/images/ui-icons_469bdd_256x240.png b/public/admin/js/osmplayer/jquery-ui/redmond/images/ui-icons_469bdd_256x240.png
new file mode 100644
index 0000000000000000000000000000000000000000..bd2cf079add1ca236adeb509698adabbffb08acb
GIT binary patch
literal 4369
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

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/redmond/images/ui-icons_6da8d5_256x240.png b/public/admin/js/osmplayer/jquery-ui/redmond/images/ui-icons_6da8d5_256x240.png
new file mode 100644
index 0000000000000000000000000000000000000000..9f3eafaab0f048da81e1e072c3091282742c4980
GIT binary patch
literal 4369
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

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/redmond/images/ui-icons_cd0a0a_256x240.png b/public/admin/js/osmplayer/jquery-ui/redmond/images/ui-icons_cd0a0a_256x240.png
new file mode 100644
index 0000000000000000000000000000000000000000..2ab019b73ec11a485fa09378f3a0e155194f6a5d
GIT binary patch
literal 4369
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

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/redmond/images/ui-icons_d8e7f3_256x240.png b/public/admin/js/osmplayer/jquery-ui/redmond/images/ui-icons_d8e7f3_256x240.png
new file mode 100644
index 0000000000000000000000000000000000000000..ad2dc6f9dbeeabbda9ae6917659b6df07817ec35
GIT binary patch
literal 4369
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

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/redmond/images/ui-icons_f9bd01_256x240.png b/public/admin/js/osmplayer/jquery-ui/redmond/images/ui-icons_f9bd01_256x240.png
new file mode 100644
index 0000000000000000000000000000000000000000..78625024d94a74eb1aceb327f45059faf439fece
GIT binary patch
literal 4369
zcmd^?`8O2a|Ho&{n6VqizD}0xTeiwJq#_zil8OvzQT8S4Fe6L$N@a^7L}X2}W+ZDu
zBx9K|nn+{p4952D{r-GEf5qo<UgzG|>z8}Z>v>-H+~-ZSMV;s75aR#<0Nj=q=Jo&p
z@NWuOWdr?PiIx|3|87gR)(&U)KZ5^v;+yyRze)g5LH4Li01?;;Fq>`r!)$dK2S4O(
zv>5+aE`*_wnZ*UEYsWS1RpWFLaGm%1hI&q#OSCmbR=h7seN*{P@c=Kk!U17PFLHlg
zSnV~Fch1-+>dD=^BNhh$0B@Y7xv4|w%O#go_o)UxNS{UdT<lY|2v7PotJ8Njo_gIM
z_o>WLdovnjIle_c@`qr-{w4^-**dwY9S<vG7P)0(sSX3cv*-Q2y+n|JE&W<t-YWnx
z5c0#Z8hiJcKo;;)SWB!XFBo+8gC@qJNl9&0h%zq}#CadP<a;z-Zso`O3@qR*Z9h0v
zfWWS(i^HCuP1a{CZ0E><DP?jgI~qi7+TJ4n<TeYf;a6UVs~X9L$Cp6O1&AM^v9Kl3
zD=CS$2qvKGLT%gB3TUKpq6N?%+Yl{GJhdEwc=qI9YI_>jEc|->VONl!*JVy9K!B@Y
z{1jZ87X~t8E?h5>E5IU<4wNy^W{WY6U$gELC8wBr8OI8vov0T6X!EnhJ<9fjfEU<G
zZm0#X<1xJa#3Vlz828Fxc>Vio$MWc`%&Rpf6}ZkZ;VJ#N+ohe;<Nu-aEV3T<4eNyM
zzlW#m@*+0V#WvX!?cJeG5=g~oCv&C+rp|aIFuKZzNrly_(?|y#(zEqon9m)Y7~rqz
zhV$ZaI<_g$0DZ=+ku0e8OJv+?R%KtDG174txPoYnDCW?usr=gg_HJ+#K{2{R%uYDz
z1`<cz&=#09T7LCMNG8tx=$EdP(-{GA<OS&`d1;Mj63UC2ScgAVD=hl0(M-MU{|Myo
zT6<XcUAL3#4N^6Ly{oYAO}Y6-g;I?JXe~0|=4G4!a*o3WrN%dw-G9)>4ldm;dHVD5
z!4h=+x(||0v<J2pW;<;PSbBq!Ny&=9#P_p>=MeqKXC}3)Mw(>)0ye*3>nB+TcckP-
zW|4Y>A7VF!Iby9qP_$V80myi`y#;~1ix?}K+vm4}!yK_be1iO4GH$PBD$+T3<zZei
z;z)JigG4zE-0I~Un?GP&=Y^rYr-4vebRN3kDFPcD^VT8A>J6U+If^3DmE3u)fV8VC
z;n3QiDF5R=eJhkug-`G6{RiUxX}XIuM44_kL6FMjRvk%5W*u2Hi!ayF;heN_vicgy
zniLi@c;{hL2Ta8kez90l2(;%l{PAo)k4-ES$ARE-l-qOAGIQG60zL)0zfwzzG(jT1
z-`*HAn{f)DFys}GBTc3(&drwfvrQLNG4WV4vzxOU&JahAwf=zAj?yBwyNV+&L6*Jr
z8|9)Ke1(|lo-R?}!SUC=TpurKKV+9NC>q*^_GiPI>EAlsG1L5cGBY*oFy71wr3iPq
zCvC5VfF<41KdI+KU?HTBDgV%ty8dFOm&GmNCD~nuysE@l8FfJV<;0zHy%nGbyYOJR
ztc+!r!P6n*y+E#fdr_?e@1egz(|a}?imk4W{ZgaHGFoB)?xn|RRF5+<=qWI?u~h)r
z*7-9-sKyoCII(ymI7Lf7W6DO5=@4_Vu5v-W7SjZNu?n!0)}CjhtzjF~#Zkm}&|g#x
zpn^}LP^m3*)fl_Yy7%i)?PmxMotaL{bbGi1%j^_tR|yQ0qhfyn`-3DCb~2TwQE%O&
z&;6zQ!0gt~*n7K7UWgd44@x?z(9uUHWo$>4uc^ZnuDq4)wDwbZum_|I5vhO{8&6Pe
zlM~9%&&Sc+I2#^nvrCO_!B`_0zGjcOlaCt;Y(BHT&RP1IjJm0woL$-3Fzsn1(uoF8
zfp*A5kC^KB+#FxyEz7#pEh`qAy$Ecgd@L{!+Bt}F-4Fp@I3w*DRH$>3m$0kTrv?E9
z5P)21=_&;9!0mTL`jc8njM-!C88d{)=r_nk3mm(rKyfTyWHSuF1;k{<PZ<;Xz6OLA
zuO*TWKEwSY!*>kK2-Kc*L4#TM+TiNs0G5;k{7sfJD_jGfDWVfp0Ff5o3@1F%l8iqe
zB~eg!IKzidOOGe!bnb#^R+K(?B>TWKV^(I{RAF7UjU0h^v`XKIV&P~o^;JqLVkyz|
z3lHaL!vG{aA@v7YfW1*Zw1KHPp=n}of7<(`&*_evw|OQ_`H_M8%^m!!tWx+aYiZhc
zb2@;GkhoR=(NI?>w3Mx4X?IV4_dVpV2`~W)b5C-2iJ*F@r&89m%@+7a#G`y&iDaMx
zn!pD5355Gb$6}ZLY}B&8aGz#rggTrTS{7gzwU##6?9mrX?IF3K>66lMmKw9C*zfY#
zFS*7w%gP~Ohx)c<zl#z8{2M7vUJDXL9CJK~>-GAF<-r?TkA5iF_-_P&6bL75E4~(%
zzZO#Y94?_6WO+qFA@Y`l&-cTB$K0sr-JP{{`vGrw)^*f+!=>GzZL5e}=18J<9chl3
z;g}z^r&riFJ5pyKjb?uTwwE*5fFd5pOfk&ZFVBgJWGk)*7;gIa;vB;QhFJqlm6h8`
z#A+BQ{0>NO)Lb^VmYp^8MefG8tG2o5D*EzL$?Suep+AAx-vd!_#k}yni(ceg?UBKa
zYy$%OcI{Gbamtu{6$ktPcO3}J%xJcc?%rK;;=C!NqKxN4J@(qfqxJ;AcW<_z3*t#I
zM5!34VHSufPC*mT<*+541vg&)J?lYQe5&%&OcX)kEWwph&D8w_p^a!|_^%fRQh~~N
zd)6s5*=F!5BmWfN7DzT!XG}up6HdJL)Piim5^L+*p~D$U_7#h%^mzJ+)arBQwF45b
zl8Yv9BU;L@!?57}OkRgr4yyc%@70JIoe}-K7`^PCCQz0!VJh=DrE6C>fhpL~p88!2
zC{MIgP>5!op^clo^qTA(Z+xzDyeJ^z;9eu@37k^bQpH;^ud}bjHTk6zU4{bwPENt9
zw{cF*R6Z&IBX;)}dy0CF_N$(!PtWpXW|VHymHgT3PYB^nw(Hgod|I_Fu<pa+13Tyy
z42+1_&aC`&sE&RivbF`0#4*!L>3;rKwf1hYxVrC+eOU?K*55t6rGomp<$8`G9N$1v
zq?zL!;1Bmzc_^J^YaR^9+B!dAZ`a#aH@P{oHjgiKA*lqam2xv~FDVpZZt7m}@2p6o
zA3<MVRD=rG()3&Fhf!zESE39bIJ3*EZtk(n<Y)lna`2sgJDt3%lJ>v($k9;{jT?lC
z={~QvIB_38DtF$1eo&uydTzI-7>_F)(%4qPr#aRmR^$cO0dY#D;+egRu8<=};evY^
zuclz%#Vdoa?@dU1uhSM6hHFRq((n>q9FYOHSg5S6^HlDn-U=AnOszhlmUQ?)P~CH3
zcRtnLmmG?T=b$O&Pt1ZJ%gdsnMZ+-(_PS>TC4tT5qUomK))RrjjU91rZRr4t7+c`g
zFzuG#M)%xq`9@nV>f@u<w<^`e3jG8jUZxPz%;3XU9B6)<ydfnzFoXR@wQ>H?#qdAu
z!weN2aJT61J~Jl|^|a25;fG%ye0{VC`uKiyXtkljcHATSWFp+}?UA9LNfq%V5r%pK
zg&in|ZqXLTB-C3#AN3|v_09vfvC@_Fb92}B+HlmkE+rBP{@UhGUmyFif?cn!OR0ee
zqkO}6-z_YG<^uzP6x8aL-^od|0$V+=CPTvz)P0y!TohQe@@59J#-`2(nn(7OO$9#G
zAN*KqGlh3thL|&%ST|k#kXxE4;DPw`rVFJ>G;52w`rTVAdk3gO0@3gz+JIl32Vo0(
zt5XGAY{~h?$eCbWO(6dwAHjAq@MyXVh|`TJ25A{}FY+6eLj4Y2A(U~StQ;ZFMMo;8
zV^YVcSQ2%I)N)e}B`sQ|15H(AIyD8Hkd>9asm8TNTX=`J7Ty@07_6T#CWBg6V(~83
zdmB8ulj`{*f%y7QR|9*rR>;uXnw<vw3b27PLC9-(*44v1f0A-PMPwjP3GYzYcZSE%
zZf6wJ%8caQX*gfXiGcwl$;x=L&&%~<tsVAzFB7E9@K1fq+Ahfn`H1aODYAKaf?vHe
z03=YB0Mp3xB~7yfezSjarBpbT)O$EQLh?M-#lU>`m9~tV;9)N#?N<3y9TIX})&W=K
z)jJspY>J6rh;j2S;Zx45q3ImA-%T)NTzqTB6@vMPe^tEC3re~lL3m(bx(N7sM*By6
zNIo{C%syJ$Rd&19sf8EDMOF+g-5yES@Rx6Z^DpdP5pU!yJM3c1?HLfCzU#O2`M#?q
z1L%~r+oRxK+Q-zm?Ic7#th172c-G7O)lF8G8gF;Ty492Li1kF!p9O9T1>3Ki{<gsy
zpvl1oY<T-wkY?vewqVUTVGuUrK(q0^FJv(ON`%fe(SY9S6tZW@sYBg~2(J%oWjO}O
zv|<UZV|!J{_u)6IH{HZkToL$Sr|9xXR7%aDH>)*45e@g%IOel{1TC)d=5<QKs{L(k
z50I9(4ZQx56N~WZ3Bef=e5lxeum4`^PM}AK<Xp7iet6msADZIax)jEyDlAPPs`A?g
z7nSKv0dffEuCACkT_zi-QlfJJagGWq@I6ilHrf$?d`0|1qdjf>n#*iyrEux#qLQKU
z@G}qv(7~wMOgy|fpVW(-!-a7(bXqGXgEuk{xl&8fj#C-X5EzhA@hwSq`ykvFX_v)~
zGCrYkbP(~{*;grz@eHsC6uYvMk{jiQ(+;&Jgm9l0cC{lLq|lB0l76%<cm%PPc1p1<
zJ1d-oG&Z+>B1LIS%wDp$osuk^)azc^+6{|V!RHM9<6@n}_jj?+288V@m8&Po%>f+$
zmYLuFTizL-^%Bk2D0aSl<9%E3oZQX^P<kKuGSb_<bJ5Y~#mMA(NFJB7W80i`<Zc3)
zA!z>PYZA&4H8&4C3`-Cp=mYZTJg+7vD2w+E4PKUOd^w9TIV+|7_x+u<K`_f^qV`f3
z?i{|<IMoiRlG4lSpQp9m=C~PWj*;g|8ovXU+p=5!a6Vt3;hTn4V)8TtfQ3Vsxh^zF
zuRhL#X8DR|gH&yhOn%LokAilJOY4MR0yvmKzWY|wThXkLtqjT#6nt8DoSlhE39%>4
z9inuJmg|f#1*<QTCYZV=$mvsw-ZR}l+ES~OOKX>qw@Ju*mrtd7C)6#*k5u%F{s+E#
zTxV)u1TW(VG`cP+2lxplW@cg-OCIO2KaV#3+P_80A2atj2W$LboPDs@f;rE?M$AB`
zw_A|^xY56U^tIh|z6GL*gTH)CxLJsP1X|MOcs?A=&a$)n@gl?b6R5H6Lw^(v_#mtW
zQ|K+Y7ZPqr)ZY?(zTzWoduk`3`^x>Jr8QizQNf$)n#c;e>o~}#?O>728cuJ2he5KC
q52vUgOI|0|ZlCSkC$+zKO#0>nC8Q05ZU27t0hVV`=2d3snEwN&^J`52

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/redmond/jquery-ui-1.8.18.custom.css b/public/admin/js/osmplayer/jquery-ui/redmond/jquery-ui-1.8.18.custom.css
new file mode 100644
index 00000000000..51cb08fa8ee
--- /dev/null
+++ b/public/admin/js/osmplayer/jquery-ui/redmond/jquery-ui-1.8.18.custom.css
@@ -0,0 +1,565 @@
+/*
+ * jQuery UI CSS Framework 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Theming/API
+ */
+
+/* Layout helpers
+----------------------------------*/
+.player-ui .ui-helper-hidden { display: none; }
+.player-ui .ui-helper-hidden-accessible { position: absolute !important; clip: rect(1px 1px 1px 1px); clip: rect(1px,1px,1px,1px); }
+.player-ui .ui-helper-reset { margin: 0; padding: 0; border: 0; outline: 0; line-height: 1.3; text-decoration: none; font-size: 100%; list-style: none; }
+.player-ui .ui-helper-clearfix:before, .player-ui .ui-helper-clearfix:after { content: ""; display: table; }
+.player-ui .ui-helper-clearfix:after { clear: both; }
+.player-ui .ui-helper-clearfix { zoom: 1; }
+.player-ui .ui-helper-zfix { width: 100%; height: 100%; top: 0; left: 0; position: absolute; opacity: 0; filter:Alpha(Opacity=0); }
+
+
+/* Interaction Cues
+----------------------------------*/
+.player-ui .ui-state-disabled { cursor: default !important; }
+
+
+/* Icons
+----------------------------------*/
+
+/* states and images */
+.player-ui .ui-icon { display: block; text-indent: -99999px; overflow: hidden; background-repeat: no-repeat; }
+
+
+/* Misc visuals
+----------------------------------*/
+
+/* Overlays */
+.player-ui .ui-widget-overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }
+
+
+/*
+ * jQuery UI CSS Framework 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Theming/API
+ *
+ * To view and modify this theme, visit http://jqueryui.com/themeroller/?ffDefault=Lucida%20Grande,%20Lucida%20Sans,%20Arial,%20sans-serif&fwDefault=bold&fsDefault=1.1em&cornerRadius=5px&bgColorHeader=5c9ccc&bgTextureHeader=12_gloss_wave.png&bgImgOpacityHeader=55&borderColorHeader=4297d7&fcHeader=ffffff&iconColorHeader=d8e7f3&bgColorContent=fcfdfd&bgTextureContent=06_inset_hard.png&bgImgOpacityContent=100&borderColorContent=a6c9e2&fcContent=222222&iconColorContent=469bdd&bgColorDefault=dfeffc&bgTextureDefault=02_glass.png&bgImgOpacityDefault=85&borderColorDefault=c5dbec&fcDefault=2e6e9e&iconColorDefault=6da8d5&bgColorHover=d0e5f5&bgTextureHover=02_glass.png&bgImgOpacityHover=75&borderColorHover=79b7e7&fcHover=1d5987&iconColorHover=217bc0&bgColorActive=f5f8f9&bgTextureActive=06_inset_hard.png&bgImgOpacityActive=100&borderColorActive=79b7e7&fcActive=e17009&iconColorActive=f9bd01&bgColorHighlight=fbec88&bgTextureHighlight=01_flat.png&bgImgOpacityHighlight=55&borderColorHighlight=fad42e&fcHighlight=363636&iconColorHighlight=2e83ff&bgColorError=fef1ec&bgTextureError=02_glass.png&bgImgOpacityError=95&borderColorError=cd0a0a&fcError=cd0a0a&iconColorError=cd0a0a&bgColorOverlay=aaaaaa&bgTextureOverlay=01_flat.png&bgImgOpacityOverlay=0&opacityOverlay=30&bgColorShadow=aaaaaa&bgTextureShadow=01_flat.png&bgImgOpacityShadow=0&opacityShadow=30&thicknessShadow=8px&offsetTopShadow=-8px&offsetLeftShadow=-8px&cornerRadiusShadow=8px
+ */
+
+
+/* Component containers
+----------------------------------*/
+.player-ui .ui-widget { font-family: Lucida Grande, Lucida Sans, Arial, sans-serif; font-size: 1.1em; }
+.player-ui .ui-widget .ui-widget { font-size: 1em; }
+.player-ui .ui-widget input, .player-ui .ui-widget select, .player-ui .ui-widget textarea, .player-ui .ui-widget button { font-family: Lucida Grande, Lucida Sans, Arial, sans-serif; font-size: 1em; }
+.player-ui .ui-widget-content { border: 1px solid #a6c9e2; background: #fcfdfd url(images/ui-bg_inset-hard_100_fcfdfd_1x100.png) 50% bottom repeat-x; color: #222222; }
+.player-ui .ui-widget-content a { color: #222222; }
+.player-ui .ui-widget-header { border: 1px solid #4297d7; background: #5c9ccc url(images/ui-bg_gloss-wave_55_5c9ccc_500x100.png) 50% 50% repeat-x; color: #ffffff; font-weight: bold; }
+.player-ui .ui-widget-header a { color: #ffffff; }
+
+/* Interaction states
+----------------------------------*/
+.player-ui .ui-state-default, .player-ui .ui-widget-content .ui-state-default, .player-ui .ui-widget-header .ui-state-default { border: 1px solid #c5dbec; background: #dfeffc url(images/ui-bg_glass_85_dfeffc_1x400.png) 50% 50% repeat-x; font-weight: bold; color: #2e6e9e; }
+.player-ui .ui-state-default a, .player-ui .ui-state-default a:link, .player-ui .ui-state-default a:visited { color: #2e6e9e; text-decoration: none; }
+.player-ui .ui-state-hover, .player-ui .ui-widget-content .ui-state-hover, .player-ui .ui-widget-header .ui-state-hover, .player-ui .ui-state-focus, .player-ui .ui-widget-content .ui-state-focus, .player-ui .ui-widget-header .ui-state-focus { border: 1px solid #79b7e7; background: #d0e5f5 url(images/ui-bg_glass_75_d0e5f5_1x400.png) 50% 50% repeat-x; font-weight: bold; color: #1d5987; }
+.player-ui .ui-state-hover a, .player-ui .ui-state-hover a:hover { color: #1d5987; text-decoration: none; }
+.player-ui .ui-state-active, .player-ui .ui-widget-content .ui-state-active, .player-ui .ui-widget-header .ui-state-active { border: 1px solid #79b7e7; background: #f5f8f9 url(images/ui-bg_inset-hard_100_f5f8f9_1x100.png) 50% 50% repeat-x; font-weight: bold; color: #e17009; }
+.player-ui .ui-state-active a, .player-ui .ui-state-active a:link, .player-ui .ui-state-active a:visited { color: #e17009; text-decoration: none; }
+.player-ui .ui-widget :active { outline: none; }
+
+/* Interaction Cues
+----------------------------------*/
+.player-ui .ui-state-highlight, .player-ui .ui-widget-content .ui-state-highlight, .player-ui .ui-widget-header .ui-state-highlight  {border: 1px solid #fad42e; background: #fbec88 url(images/ui-bg_flat_55_fbec88_40x100.png) 50% 50% repeat-x; color: #363636; }
+.player-ui .ui-state-highlight a, .player-ui .ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a { color: #363636; }
+.player-ui .ui-state-error, .player-ui .ui-widget-content .ui-state-error, .player-ui .ui-widget-header .ui-state-error {border: 1px solid #cd0a0a; background: #fef1ec url(images/ui-bg_glass_95_fef1ec_1x400.png) 50% 50% repeat-x; color: #cd0a0a; }
+.player-ui .ui-state-error a, .player-ui .ui-widget-content .ui-state-error a, .player-ui .ui-widget-header .ui-state-error a { color: #cd0a0a; }
+.player-ui .ui-state-error-text, .player-ui .ui-widget-content .ui-state-error-text, .player-ui .ui-widget-header .ui-state-error-text { color: #cd0a0a; }
+.player-ui .ui-priority-primary, .player-ui .ui-widget-content .ui-priority-primary, .player-ui .ui-widget-header .ui-priority-primary { font-weight: bold; }
+.player-ui .ui-priority-secondary, .player-ui .ui-widget-content .ui-priority-secondary,  .ui-widget-header .ui-priority-secondary { opacity: .7; filter:Alpha(Opacity=70); font-weight: normal; }
+.player-ui .ui-state-disabled, .player-ui .ui-widget-content .ui-state-disabled, .player-ui .ui-widget-header .ui-state-disabled { opacity: .35; filter:Alpha(Opacity=35); background-image: none; }
+
+/* Icons
+----------------------------------*/
+
+/* states and images */
+.player-ui .ui-icon { width: 16px; height: 16px; background-image: url(images/ui-icons_469bdd_256x240.png); }
+.player-ui .ui-widget-content .ui-icon {background-image: url(images/ui-icons_469bdd_256x240.png); }
+.player-ui .ui-widget-header .ui-icon {background-image: url(images/ui-icons_d8e7f3_256x240.png); }
+.player-ui .ui-state-default .ui-icon { background-image: url(images/ui-icons_6da8d5_256x240.png); }
+.player-ui .ui-state-hover .ui-icon, .player-ui .ui-state-focus .ui-icon {background-image: url(images/ui-icons_217bc0_256x240.png); }
+.player-ui .ui-state-active .ui-icon {background-image: url(images/ui-icons_f9bd01_256x240.png); }
+.player-ui .ui-state-highlight .ui-icon {background-image: url(images/ui-icons_2e83ff_256x240.png); }
+.player-ui .ui-state-error .ui-icon, .player-ui .ui-state-error-text .ui-icon {background-image: url(images/ui-icons_cd0a0a_256x240.png); }
+
+/* positioning */
+.player-ui .ui-icon-carat-1-n { background-position: 0 0; }
+.player-ui .ui-icon-carat-1-ne { background-position: -16px 0; }
+.player-ui .ui-icon-carat-1-e { background-position: -32px 0; }
+.player-ui .ui-icon-carat-1-se { background-position: -48px 0; }
+.player-ui .ui-icon-carat-1-s { background-position: -64px 0; }
+.player-ui .ui-icon-carat-1-sw { background-position: -80px 0; }
+.player-ui .ui-icon-carat-1-w { background-position: -96px 0; }
+.player-ui .ui-icon-carat-1-nw { background-position: -112px 0; }
+.player-ui .ui-icon-carat-2-n-s { background-position: -128px 0; }
+.player-ui .ui-icon-carat-2-e-w { background-position: -144px 0; }
+.player-ui .ui-icon-triangle-1-n { background-position: 0 -16px; }
+.player-ui .ui-icon-triangle-1-ne { background-position: -16px -16px; }
+.player-ui .ui-icon-triangle-1-e { background-position: -32px -16px; }
+.player-ui .ui-icon-triangle-1-se { background-position: -48px -16px; }
+.player-ui .ui-icon-triangle-1-s { background-position: -64px -16px; }
+.player-ui .ui-icon-triangle-1-sw { background-position: -80px -16px; }
+.player-ui .ui-icon-triangle-1-w { background-position: -96px -16px; }
+.player-ui .ui-icon-triangle-1-nw { background-position: -112px -16px; }
+.player-ui .ui-icon-triangle-2-n-s { background-position: -128px -16px; }
+.player-ui .ui-icon-triangle-2-e-w { background-position: -144px -16px; }
+.player-ui .ui-icon-arrow-1-n { background-position: 0 -32px; }
+.player-ui .ui-icon-arrow-1-ne { background-position: -16px -32px; }
+.player-ui .ui-icon-arrow-1-e { background-position: -32px -32px; }
+.player-ui .ui-icon-arrow-1-se { background-position: -48px -32px; }
+.player-ui .ui-icon-arrow-1-s { background-position: -64px -32px; }
+.player-ui .ui-icon-arrow-1-sw { background-position: -80px -32px; }
+.player-ui .ui-icon-arrow-1-w { background-position: -96px -32px; }
+.player-ui .ui-icon-arrow-1-nw { background-position: -112px -32px; }
+.player-ui .ui-icon-arrow-2-n-s { background-position: -128px -32px; }
+.player-ui .ui-icon-arrow-2-ne-sw { background-position: -144px -32px; }
+.player-ui .ui-icon-arrow-2-e-w { background-position: -160px -32px; }
+.player-ui .ui-icon-arrow-2-se-nw { background-position: -176px -32px; }
+.player-ui .ui-icon-arrowstop-1-n { background-position: -192px -32px; }
+.player-ui .ui-icon-arrowstop-1-e { background-position: -208px -32px; }
+.player-ui .ui-icon-arrowstop-1-s { background-position: -224px -32px; }
+.player-ui .ui-icon-arrowstop-1-w { background-position: -240px -32px; }
+.player-ui .ui-icon-arrowthick-1-n { background-position: 0 -48px; }
+.player-ui .ui-icon-arrowthick-1-ne { background-position: -16px -48px; }
+.player-ui .ui-icon-arrowthick-1-e { background-position: -32px -48px; }
+.player-ui .ui-icon-arrowthick-1-se { background-position: -48px -48px; }
+.player-ui .ui-icon-arrowthick-1-s { background-position: -64px -48px; }
+.player-ui .ui-icon-arrowthick-1-sw { background-position: -80px -48px; }
+.player-ui .ui-icon-arrowthick-1-w { background-position: -96px -48px; }
+.player-ui .ui-icon-arrowthick-1-nw { background-position: -112px -48px; }
+.player-ui .ui-icon-arrowthick-2-n-s { background-position: -128px -48px; }
+.player-ui .ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px; }
+.player-ui .ui-icon-arrowthick-2-e-w { background-position: -160px -48px; }
+.player-ui .ui-icon-arrowthick-2-se-nw { background-position: -176px -48px; }
+.player-ui .ui-icon-arrowthickstop-1-n { background-position: -192px -48px; }
+.player-ui .ui-icon-arrowthickstop-1-e { background-position: -208px -48px; }
+.player-ui .ui-icon-arrowthickstop-1-s { background-position: -224px -48px; }
+.player-ui .ui-icon-arrowthickstop-1-w { background-position: -240px -48px; }
+.player-ui .ui-icon-arrowreturnthick-1-w { background-position: 0 -64px; }
+.player-ui .ui-icon-arrowreturnthick-1-n { background-position: -16px -64px; }
+.player-ui .ui-icon-arrowreturnthick-1-e { background-position: -32px -64px; }
+.player-ui .ui-icon-arrowreturnthick-1-s { background-position: -48px -64px; }
+.player-ui .ui-icon-arrowreturn-1-w { background-position: -64px -64px; }
+.player-ui .ui-icon-arrowreturn-1-n { background-position: -80px -64px; }
+.player-ui .ui-icon-arrowreturn-1-e { background-position: -96px -64px; }
+.player-ui .ui-icon-arrowreturn-1-s { background-position: -112px -64px; }
+.player-ui .ui-icon-arrowrefresh-1-w { background-position: -128px -64px; }
+.player-ui .ui-icon-arrowrefresh-1-n { background-position: -144px -64px; }
+.player-ui .ui-icon-arrowrefresh-1-e { background-position: -160px -64px; }
+.player-ui .ui-icon-arrowrefresh-1-s { background-position: -176px -64px; }
+.player-ui .ui-icon-arrow-4 { background-position: 0 -80px; }
+.player-ui .ui-icon-arrow-4-diag { background-position: -16px -80px; }
+.player-ui .ui-icon-extlink { background-position: -32px -80px; }
+.player-ui .ui-icon-newwin { background-position: -48px -80px; }
+.player-ui .ui-icon-refresh { background-position: -64px -80px; }
+.player-ui .ui-icon-shuffle { background-position: -80px -80px; }
+.player-ui .ui-icon-transfer-e-w { background-position: -96px -80px; }
+.player-ui .ui-icon-transferthick-e-w { background-position: -112px -80px; }
+.player-ui .ui-icon-folder-collapsed { background-position: 0 -96px; }
+.player-ui .ui-icon-folder-open { background-position: -16px -96px; }
+.player-ui .ui-icon-document { background-position: -32px -96px; }
+.player-ui .ui-icon-document-b { background-position: -48px -96px; }
+.player-ui .ui-icon-note { background-position: -64px -96px; }
+.player-ui .ui-icon-mail-closed { background-position: -80px -96px; }
+.player-ui .ui-icon-mail-open { background-position: -96px -96px; }
+.player-ui .ui-icon-suitcase { background-position: -112px -96px; }
+.player-ui .ui-icon-comment { background-position: -128px -96px; }
+.player-ui .ui-icon-person { background-position: -144px -96px; }
+.player-ui .ui-icon-print { background-position: -160px -96px; }
+.player-ui .ui-icon-trash { background-position: -176px -96px; }
+.player-ui .ui-icon-locked { background-position: -192px -96px; }
+.player-ui .ui-icon-unlocked { background-position: -208px -96px; }
+.player-ui .ui-icon-bookmark { background-position: -224px -96px; }
+.player-ui .ui-icon-tag { background-position: -240px -96px; }
+.player-ui .ui-icon-home { background-position: 0 -112px; }
+.player-ui .ui-icon-flag { background-position: -16px -112px; }
+.player-ui .ui-icon-calendar { background-position: -32px -112px; }
+.player-ui .ui-icon-cart { background-position: -48px -112px; }
+.player-ui .ui-icon-pencil { background-position: -64px -112px; }
+.player-ui .ui-icon-clock { background-position: -80px -112px; }
+.player-ui .ui-icon-disk { background-position: -96px -112px; }
+.player-ui .ui-icon-calculator { background-position: -112px -112px; }
+.player-ui .ui-icon-zoomin { background-position: -128px -112px; }
+.player-ui .ui-icon-zoomout { background-position: -144px -112px; }
+.player-ui .ui-icon-search { background-position: -160px -112px; }
+.player-ui .ui-icon-wrench { background-position: -176px -112px; }
+.player-ui .ui-icon-gear { background-position: -192px -112px; }
+.player-ui .ui-icon-heart { background-position: -208px -112px; }
+.player-ui .ui-icon-star { background-position: -224px -112px; }
+.player-ui .ui-icon-link { background-position: -240px -112px; }
+.player-ui .ui-icon-cancel { background-position: 0 -128px; }
+.player-ui .ui-icon-plus { background-position: -16px -128px; }
+.player-ui .ui-icon-plusthick { background-position: -32px -128px; }
+.player-ui .ui-icon-minus { background-position: -48px -128px; }
+.player-ui .ui-icon-minusthick { background-position: -64px -128px; }
+.player-ui .ui-icon-close { background-position: -80px -128px; }
+.player-ui .ui-icon-closethick { background-position: -96px -128px; }
+.player-ui .ui-icon-key { background-position: -112px -128px; }
+.player-ui .ui-icon-lightbulb { background-position: -128px -128px; }
+.player-ui .ui-icon-scissors { background-position: -144px -128px; }
+.player-ui .ui-icon-clipboard { background-position: -160px -128px; }
+.player-ui .ui-icon-copy { background-position: -176px -128px; }
+.player-ui .ui-icon-contact { background-position: -192px -128px; }
+.player-ui .ui-icon-image { background-position: -208px -128px; }
+.player-ui .ui-icon-video { background-position: -224px -128px; }
+.player-ui .ui-icon-script { background-position: -240px -128px; }
+.player-ui .ui-icon-alert { background-position: 0 -144px; }
+.player-ui .ui-icon-info { background-position: -16px -144px; }
+.player-ui .ui-icon-notice { background-position: -32px -144px; }
+.player-ui .ui-icon-help { background-position: -48px -144px; }
+.player-ui .ui-icon-check { background-position: -64px -144px; }
+.player-ui .ui-icon-bullet { background-position: -80px -144px; }
+.player-ui .ui-icon-radio-off { background-position: -96px -144px; }
+.player-ui .ui-icon-radio-on { background-position: -112px -144px; }
+.player-ui .ui-icon-pin-w { background-position: -128px -144px; }
+.player-ui .ui-icon-pin-s { background-position: -144px -144px; }
+.player-ui .ui-icon-play { background-position: 0 -160px; }
+.player-ui .ui-icon-pause { background-position: -16px -160px; }
+.player-ui .ui-icon-seek-next { background-position: -32px -160px; }
+.player-ui .ui-icon-seek-prev { background-position: -48px -160px; }
+.player-ui .ui-icon-seek-end { background-position: -64px -160px; }
+.player-ui .ui-icon-seek-start { background-position: -80px -160px; }
+/* ui-icon-seek-first is deprecated, use ui-icon-seek-start instead */
+.player-ui .ui-icon-seek-first { background-position: -80px -160px; }
+.player-ui .ui-icon-stop { background-position: -96px -160px; }
+.player-ui .ui-icon-eject { background-position: -112px -160px; }
+.player-ui .ui-icon-volume-off { background-position: -128px -160px; }
+.player-ui .ui-icon-volume-on { background-position: -144px -160px; }
+.player-ui .ui-icon-power { background-position: 0 -176px; }
+.player-ui .ui-icon-signal-diag { background-position: -16px -176px; }
+.player-ui .ui-icon-signal { background-position: -32px -176px; }
+.player-ui .ui-icon-battery-0 { background-position: -48px -176px; }
+.player-ui .ui-icon-battery-1 { background-position: -64px -176px; }
+.player-ui .ui-icon-battery-2 { background-position: -80px -176px; }
+.player-ui .ui-icon-battery-3 { background-position: -96px -176px; }
+.player-ui .ui-icon-circle-plus { background-position: 0 -192px; }
+.player-ui .ui-icon-circle-minus { background-position: -16px -192px; }
+.player-ui .ui-icon-circle-close { background-position: -32px -192px; }
+.player-ui .ui-icon-circle-triangle-e { background-position: -48px -192px; }
+.player-ui .ui-icon-circle-triangle-s { background-position: -64px -192px; }
+.player-ui .ui-icon-circle-triangle-w { background-position: -80px -192px; }
+.player-ui .ui-icon-circle-triangle-n { background-position: -96px -192px; }
+.player-ui .ui-icon-circle-arrow-e { background-position: -112px -192px; }
+.player-ui .ui-icon-circle-arrow-s { background-position: -128px -192px; }
+.player-ui .ui-icon-circle-arrow-w { background-position: -144px -192px; }
+.player-ui .ui-icon-circle-arrow-n { background-position: -160px -192px; }
+.player-ui .ui-icon-circle-zoomin { background-position: -176px -192px; }
+.player-ui .ui-icon-circle-zoomout { background-position: -192px -192px; }
+.player-ui .ui-icon-circle-check { background-position: -208px -192px; }
+.player-ui .ui-icon-circlesmall-plus { background-position: 0 -208px; }
+.player-ui .ui-icon-circlesmall-minus { background-position: -16px -208px; }
+.player-ui .ui-icon-circlesmall-close { background-position: -32px -208px; }
+.player-ui .ui-icon-squaresmall-plus { background-position: -48px -208px; }
+.player-ui .ui-icon-squaresmall-minus { background-position: -64px -208px; }
+.player-ui .ui-icon-squaresmall-close { background-position: -80px -208px; }
+.player-ui .ui-icon-grip-dotted-vertical { background-position: 0 -224px; }
+.player-ui .ui-icon-grip-dotted-horizontal { background-position: -16px -224px; }
+.player-ui .ui-icon-grip-solid-vertical { background-position: -32px -224px; }
+.player-ui .ui-icon-grip-solid-horizontal { background-position: -48px -224px; }
+.player-ui .ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; }
+.player-ui .ui-icon-grip-diagonal-se { background-position: -80px -224px; }
+
+
+/* Misc visuals
+----------------------------------*/
+
+/* Corner radius */
+.player-ui .ui-corner-all, .player-ui .ui-corner-top, .player-ui .ui-corner-left, .player-ui .ui-corner-tl { -moz-border-radius-topleft: 5px; -webkit-border-top-left-radius: 5px; -khtml-border-top-left-radius: 5px; border-top-left-radius: 5px; }
+.player-ui .ui-corner-all, .player-ui .ui-corner-top, .player-ui .ui-corner-right, .player-ui .ui-corner-tr { -moz-border-radius-topright: 5px; -webkit-border-top-right-radius: 5px; -khtml-border-top-right-radius: 5px; border-top-right-radius: 5px; }
+.player-ui .ui-corner-all, .player-ui .ui-corner-bottom, .player-ui .ui-corner-left, .player-ui .ui-corner-bl { -moz-border-radius-bottomleft: 5px; -webkit-border-bottom-left-radius: 5px; -khtml-border-bottom-left-radius: 5px; border-bottom-left-radius: 5px; }
+.player-ui .ui-corner-all, .player-ui .ui-corner-bottom, .player-ui .ui-corner-right, .player-ui .ui-corner-br { -moz-border-radius-bottomright: 5px; -webkit-border-bottom-right-radius: 5px; -khtml-border-bottom-right-radius: 5px; border-bottom-right-radius: 5px; }
+
+/* Overlays */
+.player-ui .ui-widget-overlay { background: #aaaaaa url(images/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x; opacity: .30;filter:Alpha(Opacity=30); }
+.player-ui .ui-widget-shadow { margin: -8px 0 0 -8px; padding: 8px; background: #aaaaaa url(images/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x; opacity: .30;filter:Alpha(Opacity=30); -moz-border-radius: 8px; -khtml-border-radius: 8px; -webkit-border-radius: 8px; border-radius: 8px; }/*
+ * jQuery UI Resizable 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Resizable#theming
+ */
+.player-ui .ui-resizable { position: relative;}
+.player-ui .ui-resizable-handle { position: absolute;font-size: 0.1px;z-index: 99999; display: block; }
+.player-ui .ui-resizable-disabled .ui-resizable-handle, .player-ui .ui-resizable-autohide .ui-resizable-handle { display: none; }
+.player-ui .ui-resizable-n { cursor: n-resize; height: 7px; width: 100%; top: -5px; left: 0; }
+.player-ui .ui-resizable-s { cursor: s-resize; height: 7px; width: 100%; bottom: -5px; left: 0; }
+.player-ui .ui-resizable-e { cursor: e-resize; width: 7px; right: -5px; top: 0; height: 100%; }
+.player-ui .ui-resizable-w { cursor: w-resize; width: 7px; left: -5px; top: 0; height: 100%; }
+.player-ui .ui-resizable-se { cursor: se-resize; width: 12px; height: 12px; right: 1px; bottom: 1px; }
+.player-ui .ui-resizable-sw { cursor: sw-resize; width: 9px; height: 9px; left: -5px; bottom: -5px; }
+.player-ui .ui-resizable-nw { cursor: nw-resize; width: 9px; height: 9px; left: -5px; top: -5px; }
+.player-ui .ui-resizable-ne { cursor: ne-resize; width: 9px; height: 9px; right: -5px; top: -5px;}/*
+ * jQuery UI Selectable 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Selectable#theming
+ */
+.player-ui .ui-selectable-helper { position: absolute; z-index: 100; border:1px dotted black; }
+/*
+ * jQuery UI Accordion 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Accordion#theming
+ */
+/* IE/Win - Fix animation bug - #4615 */
+.player-ui .ui-accordion { width: 100%; }
+.player-ui .ui-accordion .ui-accordion-header { cursor: pointer; position: relative; margin-top: 1px; zoom: 1; }
+.player-ui .ui-accordion .ui-accordion-li-fix { display: inline; }
+.player-ui .ui-accordion .ui-accordion-header-active { border-bottom: 0 !important; }
+.player-ui .ui-accordion .ui-accordion-header a { display: block; font-size: 1em; padding: .5em .5em .5em .7em; }
+.player-ui .ui-accordion-icons .ui-accordion-header a { padding-left: 2.2em; }
+.player-ui .ui-accordion .ui-accordion-header .ui-icon { position: absolute; left: .5em; top: 50%; margin-top: -8px; }
+.player-ui .ui-accordion .ui-accordion-content { padding: 1em 2.2em; border-top: 0; margin-top: -2px; position: relative; top: 1px; margin-bottom: 2px; overflow: auto; display: none; zoom: 1; }
+.player-ui .ui-accordion .ui-accordion-content-active { display: block; }
+/*
+ * jQuery UI Autocomplete 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Autocomplete#theming
+ */
+.player-ui .ui-autocomplete { position: absolute; cursor: default; }	
+
+/* workarounds */
+* html .ui-autocomplete { width:1px; } /* without this, the menu expands to 100% in IE6 */
+
+/*
+ * jQuery UI Menu 1.8.18
+ *
+ * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Menu#theming
+ */
+.player-ui .ui-menu {
+	list-style:none;
+	padding: 2px;
+	margin: 0;
+	display:block;
+	float: left;
+}
+.player-ui .ui-menu .ui-menu {
+	margin-top: -3px;
+}
+.player-ui .ui-menu .ui-menu-item {
+	margin:0;
+	padding: 0;
+	zoom: 1;
+	float: left;
+	clear: left;
+	width: 100%;
+}
+.player-ui .ui-menu .ui-menu-item a {
+	text-decoration:none;
+	display:block;
+	padding:.2em .4em;
+	line-height:1.5;
+	zoom:1;
+}
+.player-ui .ui-menu .ui-menu-item a.ui-state-hover,
+.player-ui .ui-menu .ui-menu-item a.ui-state-active {
+	font-weight: normal;
+	margin: -1px;
+}
+/*
+ * jQuery UI Button 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Button#theming
+ */
+.player-ui .ui-button { display: inline-block; position: relative; padding: 0; margin-right: .1em; text-decoration: none !important; cursor: pointer; text-align: center; zoom: 1; overflow: hidden; *overflow: visible; } /* the overflow property removes extra width in IE */
+.player-ui .ui-button-icon-only { width: 2.2em; } /* to make room for the icon, a width needs to be set here */
+button.ui-button-icon-only { width: 2.4em; } /* button elements seem to need a little more width */
+.player-ui .ui-button-icons-only { width: 3.4em; } 
+button.ui-button-icons-only { width: 3.7em; } 
+
+/*button text element */
+.player-ui .ui-button .ui-button-text { display: block; line-height: 1.4;  }
+.player-ui .ui-button-text-only .ui-button-text { padding: .4em 1em; }
+.player-ui .ui-button-icon-only .ui-button-text, .player-ui .ui-button-icons-only .ui-button-text { padding: .4em; text-indent: -9999999px; }
+.player-ui .ui-button-text-icon-primary .ui-button-text, .player-ui .ui-button-text-icons .ui-button-text { padding: .4em 1em .4em 2.1em; }
+.player-ui .ui-button-text-icon-secondary .ui-button-text, .player-ui .ui-button-text-icons .ui-button-text { padding: .4em 2.1em .4em 1em; }
+.player-ui .ui-button-text-icons .ui-button-text { padding-left: 2.1em; padding-right: 2.1em; }
+/* no icon support for input elements, provide padding by default */
+input.ui-button { padding: .4em 1em; }
+
+/*button icon element(s) */
+.player-ui .ui-button-icon-only .ui-icon, .player-ui .ui-button-text-icon-primary .ui-icon, .player-ui .ui-button-text-icon-secondary .ui-icon, .player-ui .ui-button-text-icons .ui-icon, .player-ui .ui-button-icons-only .ui-icon { position: absolute; top: 50%; margin-top: -8px; }
+.player-ui .ui-button-icon-only .ui-icon { left: 50%; margin-left: -8px; }
+.player-ui .ui-button-text-icon-primary .ui-button-icon-primary, .player-ui .ui-button-text-icons .ui-button-icon-primary, .player-ui .ui-button-icons-only .ui-button-icon-primary { left: .5em; }
+.player-ui .ui-button-text-icon-secondary .ui-button-icon-secondary, .player-ui .ui-button-text-icons .ui-button-icon-secondary, .player-ui .ui-button-icons-only .ui-button-icon-secondary { right: .5em; }
+.player-ui .ui-button-text-icons .ui-button-icon-secondary, .player-ui .ui-button-icons-only .ui-button-icon-secondary { right: .5em; }
+
+/*button sets*/
+.player-ui .ui-buttonset { margin-right: 7px; }
+.player-ui .ui-buttonset .ui-button { margin-left: 0; margin-right: -.3em; }
+
+/* workarounds */
+button.ui-button::-moz-focus-inner { border: 0; padding: 0; } /* reset extra padding in Firefox */
+/*
+ * jQuery UI Dialog 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Dialog#theming
+ */
+.player-ui .ui-dialog { position: absolute; padding: .2em; width: 300px; overflow: hidden; }
+.player-ui .ui-dialog .ui-dialog-titlebar { padding: .4em 1em; position: relative;  }
+.player-ui .ui-dialog .ui-dialog-title { float: left; margin: .1em 16px .1em 0; } 
+.player-ui .ui-dialog .ui-dialog-titlebar-close { position: absolute; right: .3em; top: 50%; width: 19px; margin: -10px 0 0 0; padding: 1px; height: 18px; }
+.player-ui .ui-dialog .ui-dialog-titlebar-close span { display: block; margin: 1px; }
+.player-ui .ui-dialog .ui-dialog-titlebar-close:hover, .player-ui .ui-dialog .ui-dialog-titlebar-close:focus { padding: 0; }
+.player-ui .ui-dialog .ui-dialog-content { position: relative; border: 0; padding: .5em 1em; background: none; overflow: auto; zoom: 1; }
+.player-ui .ui-dialog .ui-dialog-buttonpane { text-align: left; border-width: 1px 0 0 0; background-image: none; margin: .5em 0 0 0; padding: .3em 1em .5em .4em; }
+.player-ui .ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset { float: right; }
+.player-ui .ui-dialog .ui-dialog-buttonpane button { margin: .5em .4em .5em 0; cursor: pointer; }
+.player-ui .ui-dialog .ui-resizable-se { width: 14px; height: 14px; right: 3px; bottom: 3px; }
+.player-ui .ui-draggable .ui-dialog-titlebar { cursor: move; }
+/*
+ * jQuery UI Slider 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Slider#theming
+ */
+.player-ui .ui-slider { position: relative; text-align: left; }
+.player-ui .ui-slider .ui-slider-handle { position: absolute; z-index: 2; width: 1.2em; height: 1.2em; cursor: default; }
+.player-ui .ui-slider .ui-slider-range { position: absolute; z-index: 1; font-size: .7em; display: block; border: 0; background-position: 0 0; }
+
+.player-ui .ui-slider-horizontal { height: .8em; }
+.player-ui .ui-slider-horizontal .ui-slider-handle { top: -.3em; margin-left: -.6em; }
+.player-ui .ui-slider-horizontal .ui-slider-range { top: 0; height: 100%; }
+.player-ui .ui-slider-horizontal .ui-slider-range-min { left: 0; }
+.player-ui .ui-slider-horizontal .ui-slider-range-max { right: 0; }
+
+.player-ui .ui-slider-vertical { width: .8em; height: 100px; }
+.player-ui .ui-slider-vertical .ui-slider-handle { left: -.3em; margin-left: 0; margin-bottom: -.6em; }
+.player-ui .ui-slider-vertical .ui-slider-range { left: 0; width: 100%; }
+.player-ui .ui-slider-vertical .ui-slider-range-min { bottom: 0; }
+.player-ui .ui-slider-vertical .ui-slider-range-max { top: 0; }/*
+ * jQuery UI Tabs 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Tabs#theming
+ */
+.player-ui .ui-tabs { position: relative; padding: .2em; zoom: 1; } /* position: relative prevents IE scroll bug (element with position: relative inside container with overflow: auto appear as "fixed") */
+.player-ui .ui-tabs .ui-tabs-nav { margin: 0; padding: .2em .2em 0; }
+.player-ui .ui-tabs .ui-tabs-nav li { list-style: none; float: left; position: relative; top: 1px; margin: 0 .2em 1px 0; border-bottom: 0 !important; padding: 0; white-space: nowrap; }
+.player-ui .ui-tabs .ui-tabs-nav li a { float: left; padding: .5em 1em; text-decoration: none; }
+.player-ui .ui-tabs .ui-tabs-nav li.ui-tabs-selected { margin-bottom: 0; padding-bottom: 1px; }
+.player-ui .ui-tabs .ui-tabs-nav li.ui-tabs-selected a, .player-ui .ui-tabs .ui-tabs-nav li.ui-state-disabled a, .player-ui .ui-tabs .ui-tabs-nav li.ui-state-processing a { cursor: text; }
+.player-ui .ui-tabs .ui-tabs-nav li a, .player-ui .ui-tabs.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-selected a { cursor: pointer; } /* first selector in group seems obsolete, but required to overcome bug in Opera applying cursor: text overall if defined elsewhere... */
+.player-ui .ui-tabs .ui-tabs-panel { display: block; border-width: 0; padding: 1em 1.4em; background: none; }
+.player-ui .ui-tabs .ui-tabs-hide { display: none !important; }
+/*
+ * jQuery UI Datepicker 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Datepicker#theming
+ */
+.player-ui .ui-datepicker { width: 17em; padding: .2em .2em 0; display: none; }
+.player-ui .ui-datepicker .ui-datepicker-header { position:relative; padding:.2em 0; }
+.player-ui .ui-datepicker .ui-datepicker-prev, .player-ui .ui-datepicker .ui-datepicker-next { position:absolute; top: 2px; width: 1.8em; height: 1.8em; }
+.player-ui .ui-datepicker .ui-datepicker-prev-hover, .player-ui .ui-datepicker .ui-datepicker-next-hover { top: 1px; }
+.player-ui .ui-datepicker .ui-datepicker-prev { left:2px; }
+.player-ui .ui-datepicker .ui-datepicker-next { right:2px; }
+.player-ui .ui-datepicker .ui-datepicker-prev-hover { left:1px; }
+.player-ui .ui-datepicker .ui-datepicker-next-hover { right:1px; }
+.player-ui .ui-datepicker .ui-datepicker-prev span, .player-ui .ui-datepicker .ui-datepicker-next span { display: block; position: absolute; left: 50%; margin-left: -8px; top: 50%; margin-top: -8px;  }
+.player-ui .ui-datepicker .ui-datepicker-title { margin: 0 2.3em; line-height: 1.8em; text-align: center; }
+.player-ui .ui-datepicker .ui-datepicker-title select { font-size:1em; margin:1px 0; }
+.player-ui .ui-datepicker select.ui-datepicker-month-year {width: 100%;}
+.player-ui .ui-datepicker select.ui-datepicker-month, 
+.player-ui .ui-datepicker select.ui-datepicker-year { width: 49%;}
+.player-ui .ui-datepicker table {width: 100%; font-size: .9em; border-collapse: collapse; margin:0 0 .4em; }
+.player-ui .ui-datepicker th { padding: .7em .3em; text-align: center; font-weight: bold; border: 0;  }
+.player-ui .ui-datepicker td { border: 0; padding: 1px; }
+.player-ui .ui-datepicker td span, .player-ui .ui-datepicker td a { display: block; padding: .2em; text-align: right; text-decoration: none; }
+.player-ui .ui-datepicker .ui-datepicker-buttonpane { background-image: none; margin: .7em 0 0 0; padding:0 .2em; border-left: 0; border-right: 0; border-bottom: 0; }
+.player-ui .ui-datepicker .ui-datepicker-buttonpane button { float: right; margin: .5em .2em .4em; cursor: pointer; padding: .2em .6em .3em .6em; width:auto; overflow:visible; }
+.player-ui .ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current { float:left; }
+
+/* with multiple calendars */
+.player-ui .ui-datepicker.ui-datepicker-multi { width:auto; }
+.player-ui .ui-datepicker-multi .ui-datepicker-group { float:left; }
+.player-ui .ui-datepicker-multi .ui-datepicker-group table { width:95%; margin:0 auto .4em; }
+.player-ui .ui-datepicker-multi-2 .ui-datepicker-group { width:50%; }
+.player-ui .ui-datepicker-multi-3 .ui-datepicker-group { width:33.3%; }
+.player-ui .ui-datepicker-multi-4 .ui-datepicker-group { width:25%; }
+.player-ui .ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header { border-left-width:0; }
+.player-ui .ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header { border-left-width:0; }
+.player-ui .ui-datepicker-multi .ui-datepicker-buttonpane { clear:left; }
+.player-ui .ui-datepicker-row-break { clear:both; width:100%; font-size:0em; }
+
+/* RTL support */
+.player-ui .ui-datepicker-rtl { direction: rtl; }
+.player-ui .ui-datepicker-rtl .ui-datepicker-prev { right: 2px; left: auto; }
+.player-ui .ui-datepicker-rtl .ui-datepicker-next { left: 2px; right: auto; }
+.player-ui .ui-datepicker-rtl .ui-datepicker-prev:hover { right: 1px; left: auto; }
+.player-ui .ui-datepicker-rtl .ui-datepicker-next:hover { left: 1px; right: auto; }
+.player-ui .ui-datepicker-rtl .ui-datepicker-buttonpane { clear:right; }
+.player-ui .ui-datepicker-rtl .ui-datepicker-buttonpane button { float: left; }
+.player-ui .ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current { float:right; }
+.player-ui .ui-datepicker-rtl .ui-datepicker-group { float:right; }
+.player-ui .ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header { border-right-width:0; border-left-width:1px; }
+.player-ui .ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header { border-right-width:0; border-left-width:1px; }
+
+/* IE6 IFRAME FIX (taken from datepicker 1.5.3 */
+.player-ui .ui-datepicker-cover {
+    display: none; /*sorry for IE5*/
+    display/**/: block; /*sorry for IE5*/
+    position: absolute; /*must have*/
+    z-index: -1; /*must have*/
+    filter: mask(); /*must have*/
+    top: -4px; /*must have*/
+    left: -4px; /*must have*/
+    width: 200px; /*must have*/
+    height: 200px; /*must have*/
+}/*
+ * jQuery UI Progressbar 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Progressbar#theming
+ */
+.player-ui .ui-progressbar { height:2em; text-align: left; overflow: hidden; }
+.player-ui .ui-progressbar .ui-progressbar-value {margin: -1px; height:100%; }
\ No newline at end of file
diff --git a/public/admin/js/osmplayer/jquery-ui/smoothness/images/ui-bg_flat_0_aaaaaa_40x100.png b/public/admin/js/osmplayer/jquery-ui/smoothness/images/ui-bg_flat_0_aaaaaa_40x100.png
new file mode 100644
index 0000000000000000000000000000000000000000..5b5dab2ab7b1c50dea9cfe73dc5a269a92d2d4b4
GIT binary patch
literal 180
zcmeAS@N?(olHy`uVBq!ia0vp^8bF-F!3HG1q!d*FscKIb$B>N1x91EQ4=4yQ7#`R^
z$vje}<irI&an_s0pV!D+$FtuP31JO&3=I&aE+u|=5A)Hv$*VMh&S3C#^>bP0l+XkK
DSH>_4

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/smoothness/images/ui-bg_flat_75_ffffff_40x100.png b/public/admin/js/osmplayer/jquery-ui/smoothness/images/ui-bg_flat_75_ffffff_40x100.png
new file mode 100644
index 0000000000000000000000000000000000000000..ac8b229af950c29356abf64a6c4aa894575445f0
GIT binary patch
literal 178
zcmeAS@N?(olHy`uVBq!ia0vp^8bF-F!3HG1q!d*FsY*{5$B>N1x91EQ4=4yQYz+E8
zPo9&<{J;c_6SHRil>2s{Zw^OT)6@jj2u|u!(plXsM>LJD`vD!n;OXk;vd$@?2>^GI
BH@yG=

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/smoothness/images/ui-bg_glass_55_fbf9ee_1x400.png b/public/admin/js/osmplayer/jquery-ui/smoothness/images/ui-bg_glass_55_fbf9ee_1x400.png
new file mode 100644
index 0000000000000000000000000000000000000000..ad3d6346e00f246102f72f2e026ed0491988b394
GIT binary patch
literal 120
zcmeAS@N?(olHy`uVBq!ia0vp^j6gJjgAK^akKnour0hLi978O6-<~(*I$*%ybaDOn
z{W;e!B}_MSUQoPXhYd^Y6RUoS1yepnPx`2Kz)7OXQG!!=-jY=F+d2OOy?#DnJ32>z
UEim$g7SJdLPgg&ebxsLQ09~*s;{X5v

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/smoothness/images/ui-bg_glass_65_ffffff_1x400.png b/public/admin/js/osmplayer/jquery-ui/smoothness/images/ui-bg_glass_65_ffffff_1x400.png
new file mode 100644
index 0000000000000000000000000000000000000000..42ccba269b6e91bef12ad0fa18be651b5ef0ee68
GIT binary patch
literal 105
zcmeAS@N?(olHy`uVBq!ia0vp^j6gJjgAK^akKnouqzpV=978O6-=0?FV^9z|eBtf=
z|7WztIJ;WT>{+tN>ySr~=F{k$>;_x^_y?afmf9pRKH0)6?eSP?3s5hEr>mdKI;Vst
E0O<Z9>;M1&

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/smoothness/images/ui-bg_glass_75_dadada_1x400.png b/public/admin/js/osmplayer/jquery-ui/smoothness/images/ui-bg_glass_75_dadada_1x400.png
new file mode 100644
index 0000000000000000000000000000000000000000..5a46b47cb16631068aee9e0bd61269fc4e95e5cd
GIT binary patch
literal 111
zcmeAS@N?(olHy`uVBq!ia0vp^j6gJjgAK^akKnouq|7{B978O6lPf+wIa#m9#>Unb
zm^4K~wN3Zq+uP<E-4iDYHYX${Ii)G?xY5!0{fvg8SC7yQ4u<2&oOc%dd<Zm-fx*+&
K&t;ucLK6Ud-y?JY

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/smoothness/images/ui-bg_glass_75_e6e6e6_1x400.png b/public/admin/js/osmplayer/jquery-ui/smoothness/images/ui-bg_glass_75_e6e6e6_1x400.png
new file mode 100644
index 0000000000000000000000000000000000000000..86c2baa655eac8539db34f8d9adb69ec1226201c
GIT binary patch
literal 110
zcmeAS@N?(olHy`uVBq!ia0vp^j6gJjgAK^akKnouq)a_s978O6-<~$)Vo(rZKDhVK
z|J9WTLT^QIG;Q^ml{ow8HvtEZhta#LLqp$|vO7%bGjI7IBizcw`SFI!bT^;@44$rj
JF6*2UngEbSBdP!Z

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/smoothness/images/ui-bg_glass_95_fef1ec_1x400.png b/public/admin/js/osmplayer/jquery-ui/smoothness/images/ui-bg_glass_95_fef1ec_1x400.png
new file mode 100644
index 0000000000000000000000000000000000000000..4443fdc1a156babad4336f004eaf5ca5dfa0f9ab
GIT binary patch
literal 119
zcmeAS@N?(olHy`uVBq!ia0vp^j6gJjgAK^akKnour0hIh978O6-<~(*YA|4MzBvER
z|7}eQtdCVXoUc2b{PaWeaIKu7gJx>{vDV26o)#~38&#8k_!`W=^oo1w6ixmPC4R1b
Tyd6G3lNdZ*{an^LB{Ts5`idse

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/smoothness/images/ui-bg_highlight-soft_75_cccccc_1x100.png b/public/admin/js/osmplayer/jquery-ui/smoothness/images/ui-bg_highlight-soft_75_cccccc_1x100.png
new file mode 100644
index 0000000000000000000000000000000000000000..7c9fa6c6edcfcdd3e5b77e6f547b719e6fc66e30
GIT binary patch
literal 101
zcmeAS@N?(olHy`uVBq!ia0vp^j6j^i!3HGVb)pi0l#Zv1V~E7m<ccpZF4n8Dv9Yx&
zy8QY7U*2m$;l+;n|NjK_PainIAnKgVYt6(keT9{lbLSy{pgsmqS3j3^P6<r_2PGZu

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/smoothness/images/ui-icons_222222_256x240.png b/public/admin/js/osmplayer/jquery-ui/smoothness/images/ui-icons_222222_256x240.png
new file mode 100644
index 0000000000000000000000000000000000000000..b273ff111d219c9b9a8b96d57683d0075fb7871a
GIT binary patch
literal 4369
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

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/smoothness/images/ui-icons_2e83ff_256x240.png b/public/admin/js/osmplayer/jquery-ui/smoothness/images/ui-icons_2e83ff_256x240.png
new file mode 100644
index 0000000000000000000000000000000000000000..09d1cdc856c292c4ab6dd818c7543ac0828bd616
GIT binary patch
literal 4369
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

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/smoothness/images/ui-icons_454545_256x240.png b/public/admin/js/osmplayer/jquery-ui/smoothness/images/ui-icons_454545_256x240.png
new file mode 100644
index 0000000000000000000000000000000000000000..59bd45b907c4fd965697774ce8c5fc6b2fd9c105
GIT binary patch
literal 4369
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

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/smoothness/images/ui-icons_888888_256x240.png b/public/admin/js/osmplayer/jquery-ui/smoothness/images/ui-icons_888888_256x240.png
new file mode 100644
index 0000000000000000000000000000000000000000..6d02426c114be4b57aabc0a80b8a63d9e56b9eb6
GIT binary patch
literal 4369
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

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/smoothness/images/ui-icons_cd0a0a_256x240.png b/public/admin/js/osmplayer/jquery-ui/smoothness/images/ui-icons_cd0a0a_256x240.png
new file mode 100644
index 0000000000000000000000000000000000000000..2ab019b73ec11a485fa09378f3a0e155194f6a5d
GIT binary patch
literal 4369
zcmd^?`8O2)_s3@pGmLE*`#M>&Z`mr_kcwz5Nh&gy7G+<u4l}Z3uT-`eLPXXiYeupr
zL^75cG?B*G8I0}g{r-GEf5qo<UgzG|{pFr>@45H9p05OJ)J0CH2owMSaGIN$+5!N;
z<11j56?ANg=9hMl-IBGX-T8hf$N$b*<htN?TsSJw7Ig(61UtpdYTfoIOI6Cw7kLLQ
z!uyQ_p)X)!c1hyKNp)N0Sgm+m$Nk>H?$f4Xt&I`oABt1nR=k%#z{{*a!Axm|t}hCz
zJg0Ln7<xxOy?1Ze>;M4Zjx{$mwhMW+<dot%S<eIRH7lEod8QKXLAzmb_U^_r&j(}P
z71=6pM*_{qw#Y|*U@Wtr5dv|(R%UX?-NKMbX4z1pT@Ud5MPE-35yWRryAhlF8bAyH
z|Fo~d-aEmU3A_^89HY+73_AZ&9b?w0pt343GcORx{s6n=b2L?E;miG;na@$uc3?0c
zfn8A*g}peRq{~{+2F->kWN;|j>qTx_-zNX!GzqEZRa}QF8_0yk6+=w<h@T)auqDuI
z39)ww2B7m&P3z<eXt-g#8PFC}A0<dUvmB0i{`6mJx*OKae7pT%*N|V<rB2C#fve2;
zNw_383}nJsxLGWdk3}HuW=1`l%tqCI&$^BmpJC{vpD2iOpqTlgP0tr~E7}eKUScaa
zA!gk6C-Ac46TB2)>}$QD^&hM4%OkT=uh$q9;5u~NL-I+NQyaVc|3l+iWI5~|(hA-G
z08i8AMr@{uY_cWTx<VSokn+z@XHW4>o^y|<ca{y23aXT+kajqvN6Wzwk1KP6zn{7b
z&XddG#3o-o<T;~SJip2}fquJ5nQd{}K+Bcy8lok<2&!FO@vZCKy`V^fd{n!LjbP#}
zB#yG7$v0uJ{Q9qeRIKaKZ*2*Ob9|!6OOj7>Qyb33mlZLvc7H2Zm~>mB7&=-1X^@|D
z&0*~i?GBE&NM(Pv&Vt^zWu_bD3e|R?wTL{cSFwD^Ij9v%g=aLY@1U2Bxn#Te*{>%D
zOOW-O-bfnJ7T8jd<*><T?gdIBCCLL5KFk(eK=dJ>8`Z2DsFQi~S$%^npJwXam5>>p
zMd}QEjM)@~##n$LXpz1Hkl|2UGXi-JF<Lmc&uamP*<-zV_<1{}T;52Pr?KzK!aSoz
zk*dIl2{LN9)vLEQf5JE}3PO6$0wL1qTy*|31U4x8on4^CTOKiT<cwHnQpb&a(yq3c
zT}xYn?9T_Ztq?*bKCQRsABYd8Xikn`MViexK_Z7!c{o0aWq8pfu1rgdeZtDY;#&ku
zVrcZh-A9e>FePXB<sx|j(4Ober}KGSRxu156v1IHvuCGa;;^*^d<JxVt&$jFghc$f
zvoUHi?chH{mz6^fHySfJHksGWHeOQ3#9>WL+-5f%!S>L#KL3>Vl0w#d^21Jn<~_7q
zWx^Xg1(>PsPGO&cu{S;(pRQ;=Vw2J<9NdQVWx<+g-`ia=Q@puS)75M+?u>DTa95e9
zt#1T?#a)uWC>Mia!K6>g|InPW{&Kp9$tC_3*;R_Xsz6^Eu|xW1$6j#0?XLs7^l+%O
zlxddE)h^|=K(2UqS*0ECuDe0ic|H_^t*VOoTCKx0Qmn_^LyJ|b8l$Jvl3{2=3x8&7
z$1ik&YG>w#@x@y~$r`fhlUDo;yXecc6$`30m`3K8s{k8G&3RVp8n#|l6h(Xw`Axw9
z%6Y^J6k0P@4YAuSd%q7=eg)&u8EMoEmq$CWj1GY|rGQWw3ida!FHk&wCqrQh_0Bcw
z!ZBS3CbxgZ+}~wzgGIQ#QId%T_TE~_qdUqxjqS#8#jPxdwO@(@-5_nSP&uT?aGYYD
z6km36K9=gjUjImwO=5Hl#u85VF?r0HbW)#h^SR|s_L47Tl$&Z&Rz*ksl!t*(2O2;D
z+8`6$qpLn}LchhCmv*X}moGMX5?F<Km|!5ZW8ln9eFXEuIZ2Pe0<F{Bgk7y(6)?!3
z0OUwbQz9_;-+51@J*@#pn>@juGeHQAd<S1P!?Ahr6~*9%HbVg%Kul)bq#>dAn}0~r
zS_0|d3*0v%Y)8+8K<Q57*PC^%393r+XG%W6yD^no;Og-VA+5lCu%zf_7~!dgc-+NE
zvHaS@X&!WHS{yOEV;4lVnCXQ_u=PJTWMQ;U7SvW*$q<M~tF(<sCTP8}k3wQ0Q?a^l
zSQxYw0}%57*BxX6_C|Qndd8-N#__%VDX-JsXWQNGa7`HVA_H`r+Id%5B=DJ*lGN>{
zGyoYPb|W9Grm9M4E?vb^@16ePbI4omZv+(NoZ##fLUmKlB(G_jEbtDCM*27t$v`<Y
zffeuz2=|GK!7lq+sbqfTJj>JovAZa+%*Q5dDXF*Ftt*n!O>#ohCM4lZ)h5rdKV-3A
za}2AO6@!`W>ROk5FN*>2Zza^Z%}8KT%*jBGH|rml2X1LR{wZhWx8V<xBb>4>|5i};
zMnLIHn3!^)`87GYh}&Y`KMwyLbA#^pch}Z!`@P_qH&N^LS9SxpEy8mc!wFusq&Z@`
zeO}<6PC@VNaII|=n(^cNUiLseig*$;NjG7;IwvfYCBN>kzv<V5vk&zjV(~XtRBR&=
zt6-q8yC9trQ|X)<HkOQ+IUC=vTj!uFY0FE+vk#*O{{~?H^hd(wbHny7dy;RrMFcgl
z_VexAv`M(cDq`}K?C|}ZwID1by~#GJYj??k-AzhK5zm2o;<<@O?eQ_+b8EX0$Q7@T
zQqohwED)0&0>@v-V2eBQZ@oIs^)NLqMR935k|1}U;5<{s(Ebdj4r`?QtrrAPfQooq
zmPs_(YTy|??+nitNIFDoR7~qLPPFFCf^_~8OUt{#!|9o<Yi5&aakOEH)fbE#2PAF<
zCw1-yw1jWFe*TB)+;)*{RM}Ub>*3Q{!@9ZAI$7O~piD!;WX8#v&RxNH27i59$`1{o
zEYU_zE{bKEI%f3BbE0Fc;f2!4LjUlC`wgh4@R{1?O78r5t$hWKiLV{#QWWq{QZiPx
zm3?x$;&DDRVt0SByRiFczw$-e)GSv<ddVhD!H=!(lmOmnyLRosyG7Fs>pCRbzk^=E
zz=(+LjEc{Ps_2(OYg=G(93!oS=IeJ|WA8STv+LgI*Oj1c-QC06N~mvJ&KKx{arGp5
zswvJ6{%BvBYo>#2$%O$~TITuh?Rr^jCpAUX<nn|pBo;$7lHFqW5<?KC#;*DQ&Wbqt
zG33o<d5B;QRkx*X2zB0cB~t&PBb%)9<{r~@wi+-t8{gr()4{zeZu^Ia92E&xyG0nE
z>h)}m74`O|aOU>w2KI`k<#efwa5=-l4Xx!o>Z9Evg`RLN5W7SQp3$@D3_hY4EV!0(
ztMm6>zBcgY{<x&qI(2bjsAjk~6))xqjqtzCL}6)}r*J0rl*7;_Ds}NSq{D~&svZlw
z^C`AI<Pc08l&X+7KFj<>RvHZ{9Ey&&)jr2B4s0qDPBUh1ITaAp&>rj3ng*B=VGXz*
zs@eR<;J(XkpD6Q1U3}#FR)wlafiFMU(-=&e9(eQ`isrS-9aNwJ)7frS8RiXM4*SbC
zL|4*c?h^jfYvSOpn%Z$W?C|TuZ;uy2pFWHXuGW`ZkGV&kPJsKqJJQ!NswAE!!cb2k
zumi=AE$YIkm})cVlg>nn&PBjBR<eS2VeZCWD~=M|sX!vZ-&p<a?PWWWzw6m~B_-fs
zglFj9`-LUYd_Vwj2DQ57dwK#b$6Cj&PFK?hbsc6G6$TWpyq(6Zv8wWb=8@f{lL3!(
z2R@ZpP2%mB!KMrb)<qjX=#nZ7cqlrx=`_<QoVmqV{o$pNwF6WlfvEUlO~CJtgU|(?
z)ye!V)}%Z`<aCg>I*@mfhhRMsa5U8k#A!ztfiw)d7I_UyAif8$5sJ9a7WUv5!o%fL
z(J7-8EQzv1YIc)BNeWkLK~m%y4vqe&q@|_ZR5;eC3-9rkf*T{_19jtuWKhdW4Bn|~
zZ-YyFLN!k)0AKg{dO)|v3K?=oy+dzb4%T1F4}JsByncB1Z(`2p@O0!E!JQelouN^*
z%Q^YfQUh66D$Zx-RDZvLctsr9`_+1p#tz&4SMd@i_-8()tyg3OyhU~?Gt#-a{NKFN
z0VGf+AH%@o6;-_*?$$T4QX-f_>Ny-5CV8Ccq+@>gNSeovbFr0@b}RiTcJbLx>ws&r
zsvY!rR{4al#MpVKut~?&kTmF>_v3UaC!gvuxgg%5-{l{20}~&F6CUarF9N=u)BG71
zoQDlAwT+T=mfo&$Xy%4-kmW;4wuh6{{ABClybHV6L>t&k4?9_Ny8A_^?)ff#dEjhL
z2RbC~cFVbz^fJ`$I0%prYc0g-9(7X3eUp}^#Mzv)Z1EsGW;qr3cY$+e2HU5d_O9L%
zpbljP*1!A0PqpzNo3W&y(hD87qgweq5YQWYEkxrOuSain2-q@Z*P`x*ht-9)Fr5Ho
zSTKduvc9h6`S^#$i)LgjDi3_PQ+RbaGP!!di^Y;4kB0lGo$y{if)rJIaXTbpRgO#B
z1El6|18;s}$0FRjgK-7~ZwmI`_1{a`32+Y<pNrz(4@>>&O_iTpm%vz6hNkjGR(#*!
zpfJ2<fKb7l)fFR$t7JXpnW$_)ti7BPe2*QBjk3p|ToJw0U`rjl;WS%PAy{&@uy}AR
z>>OAQbTFba9S3j9BlRHXaG{)Zt(J<3ppA?}j+7F#{bV{M7zU)5e@~R&J_xf$+GKK~
z3{R;Y9fZGe^ifEqKL;!VMXv26=R~^TG(#*2!JKCWoo&c^$utAs#Gfq-?t!c&9TH5-
zj&i5L4NWbdNs*djvsY}bC&ddUbh=iyc0;3-@Y#d^s8|Ql{ax(yenFcG#i|K%lRxy|
zFys4w!@EPXp2AsbMUGc*eP|7uliAq-O6~(+MR>V(EZTd&9G+MY&gF2lZ=I8j*o`OC
z`AxrmOGMeD=H_9Cq47clT|h34>-EI=%;E!my;o&wU(aKV&PymBzrV9q2uA62<X+0c
z-NRREXWGD(5;~cE^VHTmP`6l9j4Vgu*j;9sEt}<!7xQ%KKB-s*23HdRSTJ~%<5Iok
z>XS@JrjKYANZAU>;8mag#BU?Nv`+ZVhlA<mxo$PS6V43YN}m~oFrU>PV`HF_gKY_O
zhbV2L`8qvR&f=@M5vH~geD+L&*L2s<)|5)clA0yt9TM{X)iWtx@wJO_!{vR#|AD6t
z*OAg2&P_i8jjW5y0DdtOGcqvrCHD*1Uq_q1ZQmngPnf!2fHizH%sSX>#$2Rh!>1ur
z+s(*-)abDuePc6~XNG8m@|KMXHVM#<Kuem?7ehg8Ogp=uF4KKJgBn^t_C->G4?~+V
z1z!An!D0GD-7WqXE8ddUXLkI%u01$fTEhhy<iD+|jwq)&kAb{f4;INRVYIgQ7$g(<
paFPNt=XPM}^4`vQTJvYesCPa<Oj19{`uM94Fh7qntu#SL{~w9ECo}*6

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/smoothness/jquery-ui-1.8.18.custom.css b/public/admin/js/osmplayer/jquery-ui/smoothness/jquery-ui-1.8.18.custom.css
new file mode 100644
index 00000000000..ce196ee68d7
--- /dev/null
+++ b/public/admin/js/osmplayer/jquery-ui/smoothness/jquery-ui-1.8.18.custom.css
@@ -0,0 +1,565 @@
+/*
+ * jQuery UI CSS Framework 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Theming/API
+ */
+
+/* Layout helpers
+----------------------------------*/
+.player-ui .ui-helper-hidden { display: none; }
+.player-ui .ui-helper-hidden-accessible { position: absolute !important; clip: rect(1px 1px 1px 1px); clip: rect(1px,1px,1px,1px); }
+.player-ui .ui-helper-reset { margin: 0; padding: 0; border: 0; outline: 0; line-height: 1.3; text-decoration: none; font-size: 100%; list-style: none; }
+.player-ui .ui-helper-clearfix:before, .player-ui .ui-helper-clearfix:after { content: ""; display: table; }
+.player-ui .ui-helper-clearfix:after { clear: both; }
+.player-ui .ui-helper-clearfix { zoom: 1; }
+.player-ui .ui-helper-zfix { width: 100%; height: 100%; top: 0; left: 0; position: absolute; opacity: 0; filter:Alpha(Opacity=0); }
+
+
+/* Interaction Cues
+----------------------------------*/
+.player-ui .ui-state-disabled { cursor: default !important; }
+
+
+/* Icons
+----------------------------------*/
+
+/* states and images */
+.player-ui .ui-icon { display: block; text-indent: -99999px; overflow: hidden; background-repeat: no-repeat; }
+
+
+/* Misc visuals
+----------------------------------*/
+
+/* Overlays */
+.player-ui .ui-widget-overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }
+
+
+/*
+ * jQuery UI CSS Framework 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Theming/API
+ *
+ * To view and modify this theme, visit http://jqueryui.com/themeroller/?ffDefault=Verdana,Arial,sans-serif&fwDefault=normal&fsDefault=1.1em&cornerRadius=4px&bgColorHeader=cccccc&bgTextureHeader=03_highlight_soft.png&bgImgOpacityHeader=75&borderColorHeader=aaaaaa&fcHeader=222222&iconColorHeader=222222&bgColorContent=ffffff&bgTextureContent=01_flat.png&bgImgOpacityContent=75&borderColorContent=aaaaaa&fcContent=222222&iconColorContent=222222&bgColorDefault=e6e6e6&bgTextureDefault=02_glass.png&bgImgOpacityDefault=75&borderColorDefault=d3d3d3&fcDefault=555555&iconColorDefault=888888&bgColorHover=dadada&bgTextureHover=02_glass.png&bgImgOpacityHover=75&borderColorHover=999999&fcHover=212121&iconColorHover=454545&bgColorActive=ffffff&bgTextureActive=02_glass.png&bgImgOpacityActive=65&borderColorActive=aaaaaa&fcActive=212121&iconColorActive=454545&bgColorHighlight=fbf9ee&bgTextureHighlight=02_glass.png&bgImgOpacityHighlight=55&borderColorHighlight=fcefa1&fcHighlight=363636&iconColorHighlight=2e83ff&bgColorError=fef1ec&bgTextureError=02_glass.png&bgImgOpacityError=95&borderColorError=cd0a0a&fcError=cd0a0a&iconColorError=cd0a0a&bgColorOverlay=aaaaaa&bgTextureOverlay=01_flat.png&bgImgOpacityOverlay=0&opacityOverlay=30&bgColorShadow=aaaaaa&bgTextureShadow=01_flat.png&bgImgOpacityShadow=0&opacityShadow=30&thicknessShadow=8px&offsetTopShadow=-8px&offsetLeftShadow=-8px&cornerRadiusShadow=8px
+ */
+
+
+/* Component containers
+----------------------------------*/
+.player-ui .ui-widget { font-family: Verdana,Arial,sans-serif; font-size: 1.1em; }
+.player-ui .ui-widget .ui-widget { font-size: 1em; }
+.player-ui .ui-widget input, .player-ui .ui-widget select, .player-ui .ui-widget textarea, .player-ui .ui-widget button { font-family: Verdana,Arial,sans-serif; font-size: 1em; }
+.player-ui .ui-widget-content { border: 1px solid #aaaaaa; background: #ffffff url(images/ui-bg_flat_75_ffffff_40x100.png) 50% 50% repeat-x; color: #222222; }
+.player-ui .ui-widget-content a { color: #222222; }
+.player-ui .ui-widget-header { border: 1px solid #aaaaaa; background: #cccccc url(images/ui-bg_highlight-soft_75_cccccc_1x100.png) 50% 50% repeat-x; color: #222222; font-weight: bold; }
+.player-ui .ui-widget-header a { color: #222222; }
+
+/* Interaction states
+----------------------------------*/
+.player-ui .ui-state-default, .player-ui .ui-widget-content .ui-state-default, .player-ui .ui-widget-header .ui-state-default { border: 1px solid #d3d3d3; background: #e6e6e6 url(images/ui-bg_glass_75_e6e6e6_1x400.png) 50% 50% repeat-x; font-weight: normal; color: #555555; }
+.player-ui .ui-state-default a, .player-ui .ui-state-default a:link, .player-ui .ui-state-default a:visited { color: #555555; text-decoration: none; }
+.player-ui .ui-state-hover, .player-ui .ui-widget-content .ui-state-hover, .player-ui .ui-widget-header .ui-state-hover, .player-ui .ui-state-focus, .player-ui .ui-widget-content .ui-state-focus, .player-ui .ui-widget-header .ui-state-focus { border: 1px solid #999999; background: #dadada url(images/ui-bg_glass_75_dadada_1x400.png) 50% 50% repeat-x; font-weight: normal; color: #212121; }
+.player-ui .ui-state-hover a, .player-ui .ui-state-hover a:hover { color: #212121; text-decoration: none; }
+.player-ui .ui-state-active, .player-ui .ui-widget-content .ui-state-active, .player-ui .ui-widget-header .ui-state-active { border: 1px solid #aaaaaa; background: #ffffff url(images/ui-bg_glass_65_ffffff_1x400.png) 50% 50% repeat-x; font-weight: normal; color: #212121; }
+.player-ui .ui-state-active a, .player-ui .ui-state-active a:link, .player-ui .ui-state-active a:visited { color: #212121; text-decoration: none; }
+.player-ui .ui-widget :active { outline: none; }
+
+/* Interaction Cues
+----------------------------------*/
+.player-ui .ui-state-highlight, .player-ui .ui-widget-content .ui-state-highlight, .player-ui .ui-widget-header .ui-state-highlight  {border: 1px solid #fcefa1; background: #fbf9ee url(images/ui-bg_glass_55_fbf9ee_1x400.png) 50% 50% repeat-x; color: #363636; }
+.player-ui .ui-state-highlight a, .player-ui .ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a { color: #363636; }
+.player-ui .ui-state-error, .player-ui .ui-widget-content .ui-state-error, .player-ui .ui-widget-header .ui-state-error {border: 1px solid #cd0a0a; background: #fef1ec url(images/ui-bg_glass_95_fef1ec_1x400.png) 50% 50% repeat-x; color: #cd0a0a; }
+.player-ui .ui-state-error a, .player-ui .ui-widget-content .ui-state-error a, .player-ui .ui-widget-header .ui-state-error a { color: #cd0a0a; }
+.player-ui .ui-state-error-text, .player-ui .ui-widget-content .ui-state-error-text, .player-ui .ui-widget-header .ui-state-error-text { color: #cd0a0a; }
+.player-ui .ui-priority-primary, .player-ui .ui-widget-content .ui-priority-primary, .player-ui .ui-widget-header .ui-priority-primary { font-weight: bold; }
+.player-ui .ui-priority-secondary, .player-ui .ui-widget-content .ui-priority-secondary,  .ui-widget-header .ui-priority-secondary { opacity: .7; filter:Alpha(Opacity=70); font-weight: normal; }
+.player-ui .ui-state-disabled, .player-ui .ui-widget-content .ui-state-disabled, .player-ui .ui-widget-header .ui-state-disabled { opacity: .35; filter:Alpha(Opacity=35); background-image: none; }
+
+/* Icons
+----------------------------------*/
+
+/* states and images */
+.player-ui .ui-icon { width: 16px; height: 16px; background-image: url(images/ui-icons_222222_256x240.png); }
+.player-ui .ui-widget-content .ui-icon {background-image: url(images/ui-icons_222222_256x240.png); }
+.player-ui .ui-widget-header .ui-icon {background-image: url(images/ui-icons_222222_256x240.png); }
+.player-ui .ui-state-default .ui-icon { background-image: url(images/ui-icons_888888_256x240.png); }
+.player-ui .ui-state-hover .ui-icon, .player-ui .ui-state-focus .ui-icon {background-image: url(images/ui-icons_454545_256x240.png); }
+.player-ui .ui-state-active .ui-icon {background-image: url(images/ui-icons_454545_256x240.png); }
+.player-ui .ui-state-highlight .ui-icon {background-image: url(images/ui-icons_2e83ff_256x240.png); }
+.player-ui .ui-state-error .ui-icon, .player-ui .ui-state-error-text .ui-icon {background-image: url(images/ui-icons_cd0a0a_256x240.png); }
+
+/* positioning */
+.player-ui .ui-icon-carat-1-n { background-position: 0 0; }
+.player-ui .ui-icon-carat-1-ne { background-position: -16px 0; }
+.player-ui .ui-icon-carat-1-e { background-position: -32px 0; }
+.player-ui .ui-icon-carat-1-se { background-position: -48px 0; }
+.player-ui .ui-icon-carat-1-s { background-position: -64px 0; }
+.player-ui .ui-icon-carat-1-sw { background-position: -80px 0; }
+.player-ui .ui-icon-carat-1-w { background-position: -96px 0; }
+.player-ui .ui-icon-carat-1-nw { background-position: -112px 0; }
+.player-ui .ui-icon-carat-2-n-s { background-position: -128px 0; }
+.player-ui .ui-icon-carat-2-e-w { background-position: -144px 0; }
+.player-ui .ui-icon-triangle-1-n { background-position: 0 -16px; }
+.player-ui .ui-icon-triangle-1-ne { background-position: -16px -16px; }
+.player-ui .ui-icon-triangle-1-e { background-position: -32px -16px; }
+.player-ui .ui-icon-triangle-1-se { background-position: -48px -16px; }
+.player-ui .ui-icon-triangle-1-s { background-position: -64px -16px; }
+.player-ui .ui-icon-triangle-1-sw { background-position: -80px -16px; }
+.player-ui .ui-icon-triangle-1-w { background-position: -96px -16px; }
+.player-ui .ui-icon-triangle-1-nw { background-position: -112px -16px; }
+.player-ui .ui-icon-triangle-2-n-s { background-position: -128px -16px; }
+.player-ui .ui-icon-triangle-2-e-w { background-position: -144px -16px; }
+.player-ui .ui-icon-arrow-1-n { background-position: 0 -32px; }
+.player-ui .ui-icon-arrow-1-ne { background-position: -16px -32px; }
+.player-ui .ui-icon-arrow-1-e { background-position: -32px -32px; }
+.player-ui .ui-icon-arrow-1-se { background-position: -48px -32px; }
+.player-ui .ui-icon-arrow-1-s { background-position: -64px -32px; }
+.player-ui .ui-icon-arrow-1-sw { background-position: -80px -32px; }
+.player-ui .ui-icon-arrow-1-w { background-position: -96px -32px; }
+.player-ui .ui-icon-arrow-1-nw { background-position: -112px -32px; }
+.player-ui .ui-icon-arrow-2-n-s { background-position: -128px -32px; }
+.player-ui .ui-icon-arrow-2-ne-sw { background-position: -144px -32px; }
+.player-ui .ui-icon-arrow-2-e-w { background-position: -160px -32px; }
+.player-ui .ui-icon-arrow-2-se-nw { background-position: -176px -32px; }
+.player-ui .ui-icon-arrowstop-1-n { background-position: -192px -32px; }
+.player-ui .ui-icon-arrowstop-1-e { background-position: -208px -32px; }
+.player-ui .ui-icon-arrowstop-1-s { background-position: -224px -32px; }
+.player-ui .ui-icon-arrowstop-1-w { background-position: -240px -32px; }
+.player-ui .ui-icon-arrowthick-1-n { background-position: 0 -48px; }
+.player-ui .ui-icon-arrowthick-1-ne { background-position: -16px -48px; }
+.player-ui .ui-icon-arrowthick-1-e { background-position: -32px -48px; }
+.player-ui .ui-icon-arrowthick-1-se { background-position: -48px -48px; }
+.player-ui .ui-icon-arrowthick-1-s { background-position: -64px -48px; }
+.player-ui .ui-icon-arrowthick-1-sw { background-position: -80px -48px; }
+.player-ui .ui-icon-arrowthick-1-w { background-position: -96px -48px; }
+.player-ui .ui-icon-arrowthick-1-nw { background-position: -112px -48px; }
+.player-ui .ui-icon-arrowthick-2-n-s { background-position: -128px -48px; }
+.player-ui .ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px; }
+.player-ui .ui-icon-arrowthick-2-e-w { background-position: -160px -48px; }
+.player-ui .ui-icon-arrowthick-2-se-nw { background-position: -176px -48px; }
+.player-ui .ui-icon-arrowthickstop-1-n { background-position: -192px -48px; }
+.player-ui .ui-icon-arrowthickstop-1-e { background-position: -208px -48px; }
+.player-ui .ui-icon-arrowthickstop-1-s { background-position: -224px -48px; }
+.player-ui .ui-icon-arrowthickstop-1-w { background-position: -240px -48px; }
+.player-ui .ui-icon-arrowreturnthick-1-w { background-position: 0 -64px; }
+.player-ui .ui-icon-arrowreturnthick-1-n { background-position: -16px -64px; }
+.player-ui .ui-icon-arrowreturnthick-1-e { background-position: -32px -64px; }
+.player-ui .ui-icon-arrowreturnthick-1-s { background-position: -48px -64px; }
+.player-ui .ui-icon-arrowreturn-1-w { background-position: -64px -64px; }
+.player-ui .ui-icon-arrowreturn-1-n { background-position: -80px -64px; }
+.player-ui .ui-icon-arrowreturn-1-e { background-position: -96px -64px; }
+.player-ui .ui-icon-arrowreturn-1-s { background-position: -112px -64px; }
+.player-ui .ui-icon-arrowrefresh-1-w { background-position: -128px -64px; }
+.player-ui .ui-icon-arrowrefresh-1-n { background-position: -144px -64px; }
+.player-ui .ui-icon-arrowrefresh-1-e { background-position: -160px -64px; }
+.player-ui .ui-icon-arrowrefresh-1-s { background-position: -176px -64px; }
+.player-ui .ui-icon-arrow-4 { background-position: 0 -80px; }
+.player-ui .ui-icon-arrow-4-diag { background-position: -16px -80px; }
+.player-ui .ui-icon-extlink { background-position: -32px -80px; }
+.player-ui .ui-icon-newwin { background-position: -48px -80px; }
+.player-ui .ui-icon-refresh { background-position: -64px -80px; }
+.player-ui .ui-icon-shuffle { background-position: -80px -80px; }
+.player-ui .ui-icon-transfer-e-w { background-position: -96px -80px; }
+.player-ui .ui-icon-transferthick-e-w { background-position: -112px -80px; }
+.player-ui .ui-icon-folder-collapsed { background-position: 0 -96px; }
+.player-ui .ui-icon-folder-open { background-position: -16px -96px; }
+.player-ui .ui-icon-document { background-position: -32px -96px; }
+.player-ui .ui-icon-document-b { background-position: -48px -96px; }
+.player-ui .ui-icon-note { background-position: -64px -96px; }
+.player-ui .ui-icon-mail-closed { background-position: -80px -96px; }
+.player-ui .ui-icon-mail-open { background-position: -96px -96px; }
+.player-ui .ui-icon-suitcase { background-position: -112px -96px; }
+.player-ui .ui-icon-comment { background-position: -128px -96px; }
+.player-ui .ui-icon-person { background-position: -144px -96px; }
+.player-ui .ui-icon-print { background-position: -160px -96px; }
+.player-ui .ui-icon-trash { background-position: -176px -96px; }
+.player-ui .ui-icon-locked { background-position: -192px -96px; }
+.player-ui .ui-icon-unlocked { background-position: -208px -96px; }
+.player-ui .ui-icon-bookmark { background-position: -224px -96px; }
+.player-ui .ui-icon-tag { background-position: -240px -96px; }
+.player-ui .ui-icon-home { background-position: 0 -112px; }
+.player-ui .ui-icon-flag { background-position: -16px -112px; }
+.player-ui .ui-icon-calendar { background-position: -32px -112px; }
+.player-ui .ui-icon-cart { background-position: -48px -112px; }
+.player-ui .ui-icon-pencil { background-position: -64px -112px; }
+.player-ui .ui-icon-clock { background-position: -80px -112px; }
+.player-ui .ui-icon-disk { background-position: -96px -112px; }
+.player-ui .ui-icon-calculator { background-position: -112px -112px; }
+.player-ui .ui-icon-zoomin { background-position: -128px -112px; }
+.player-ui .ui-icon-zoomout { background-position: -144px -112px; }
+.player-ui .ui-icon-search { background-position: -160px -112px; }
+.player-ui .ui-icon-wrench { background-position: -176px -112px; }
+.player-ui .ui-icon-gear { background-position: -192px -112px; }
+.player-ui .ui-icon-heart { background-position: -208px -112px; }
+.player-ui .ui-icon-star { background-position: -224px -112px; }
+.player-ui .ui-icon-link { background-position: -240px -112px; }
+.player-ui .ui-icon-cancel { background-position: 0 -128px; }
+.player-ui .ui-icon-plus { background-position: -16px -128px; }
+.player-ui .ui-icon-plusthick { background-position: -32px -128px; }
+.player-ui .ui-icon-minus { background-position: -48px -128px; }
+.player-ui .ui-icon-minusthick { background-position: -64px -128px; }
+.player-ui .ui-icon-close { background-position: -80px -128px; }
+.player-ui .ui-icon-closethick { background-position: -96px -128px; }
+.player-ui .ui-icon-key { background-position: -112px -128px; }
+.player-ui .ui-icon-lightbulb { background-position: -128px -128px; }
+.player-ui .ui-icon-scissors { background-position: -144px -128px; }
+.player-ui .ui-icon-clipboard { background-position: -160px -128px; }
+.player-ui .ui-icon-copy { background-position: -176px -128px; }
+.player-ui .ui-icon-contact { background-position: -192px -128px; }
+.player-ui .ui-icon-image { background-position: -208px -128px; }
+.player-ui .ui-icon-video { background-position: -224px -128px; }
+.player-ui .ui-icon-script { background-position: -240px -128px; }
+.player-ui .ui-icon-alert { background-position: 0 -144px; }
+.player-ui .ui-icon-info { background-position: -16px -144px; }
+.player-ui .ui-icon-notice { background-position: -32px -144px; }
+.player-ui .ui-icon-help { background-position: -48px -144px; }
+.player-ui .ui-icon-check { background-position: -64px -144px; }
+.player-ui .ui-icon-bullet { background-position: -80px -144px; }
+.player-ui .ui-icon-radio-off { background-position: -96px -144px; }
+.player-ui .ui-icon-radio-on { background-position: -112px -144px; }
+.player-ui .ui-icon-pin-w { background-position: -128px -144px; }
+.player-ui .ui-icon-pin-s { background-position: -144px -144px; }
+.player-ui .ui-icon-play { background-position: 0 -160px; }
+.player-ui .ui-icon-pause { background-position: -16px -160px; }
+.player-ui .ui-icon-seek-next { background-position: -32px -160px; }
+.player-ui .ui-icon-seek-prev { background-position: -48px -160px; }
+.player-ui .ui-icon-seek-end { background-position: -64px -160px; }
+.player-ui .ui-icon-seek-start { background-position: -80px -160px; }
+/* ui-icon-seek-first is deprecated, use ui-icon-seek-start instead */
+.player-ui .ui-icon-seek-first { background-position: -80px -160px; }
+.player-ui .ui-icon-stop { background-position: -96px -160px; }
+.player-ui .ui-icon-eject { background-position: -112px -160px; }
+.player-ui .ui-icon-volume-off { background-position: -128px -160px; }
+.player-ui .ui-icon-volume-on { background-position: -144px -160px; }
+.player-ui .ui-icon-power { background-position: 0 -176px; }
+.player-ui .ui-icon-signal-diag { background-position: -16px -176px; }
+.player-ui .ui-icon-signal { background-position: -32px -176px; }
+.player-ui .ui-icon-battery-0 { background-position: -48px -176px; }
+.player-ui .ui-icon-battery-1 { background-position: -64px -176px; }
+.player-ui .ui-icon-battery-2 { background-position: -80px -176px; }
+.player-ui .ui-icon-battery-3 { background-position: -96px -176px; }
+.player-ui .ui-icon-circle-plus { background-position: 0 -192px; }
+.player-ui .ui-icon-circle-minus { background-position: -16px -192px; }
+.player-ui .ui-icon-circle-close { background-position: -32px -192px; }
+.player-ui .ui-icon-circle-triangle-e { background-position: -48px -192px; }
+.player-ui .ui-icon-circle-triangle-s { background-position: -64px -192px; }
+.player-ui .ui-icon-circle-triangle-w { background-position: -80px -192px; }
+.player-ui .ui-icon-circle-triangle-n { background-position: -96px -192px; }
+.player-ui .ui-icon-circle-arrow-e { background-position: -112px -192px; }
+.player-ui .ui-icon-circle-arrow-s { background-position: -128px -192px; }
+.player-ui .ui-icon-circle-arrow-w { background-position: -144px -192px; }
+.player-ui .ui-icon-circle-arrow-n { background-position: -160px -192px; }
+.player-ui .ui-icon-circle-zoomin { background-position: -176px -192px; }
+.player-ui .ui-icon-circle-zoomout { background-position: -192px -192px; }
+.player-ui .ui-icon-circle-check { background-position: -208px -192px; }
+.player-ui .ui-icon-circlesmall-plus { background-position: 0 -208px; }
+.player-ui .ui-icon-circlesmall-minus { background-position: -16px -208px; }
+.player-ui .ui-icon-circlesmall-close { background-position: -32px -208px; }
+.player-ui .ui-icon-squaresmall-plus { background-position: -48px -208px; }
+.player-ui .ui-icon-squaresmall-minus { background-position: -64px -208px; }
+.player-ui .ui-icon-squaresmall-close { background-position: -80px -208px; }
+.player-ui .ui-icon-grip-dotted-vertical { background-position: 0 -224px; }
+.player-ui .ui-icon-grip-dotted-horizontal { background-position: -16px -224px; }
+.player-ui .ui-icon-grip-solid-vertical { background-position: -32px -224px; }
+.player-ui .ui-icon-grip-solid-horizontal { background-position: -48px -224px; }
+.player-ui .ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; }
+.player-ui .ui-icon-grip-diagonal-se { background-position: -80px -224px; }
+
+
+/* Misc visuals
+----------------------------------*/
+
+/* Corner radius */
+.player-ui .ui-corner-all, .player-ui .ui-corner-top, .player-ui .ui-corner-left, .player-ui .ui-corner-tl { -moz-border-radius-topleft: 4px; -webkit-border-top-left-radius: 4px; -khtml-border-top-left-radius: 4px; border-top-left-radius: 4px; }
+.player-ui .ui-corner-all, .player-ui .ui-corner-top, .player-ui .ui-corner-right, .player-ui .ui-corner-tr { -moz-border-radius-topright: 4px; -webkit-border-top-right-radius: 4px; -khtml-border-top-right-radius: 4px; border-top-right-radius: 4px; }
+.player-ui .ui-corner-all, .player-ui .ui-corner-bottom, .player-ui .ui-corner-left, .player-ui .ui-corner-bl { -moz-border-radius-bottomleft: 4px; -webkit-border-bottom-left-radius: 4px; -khtml-border-bottom-left-radius: 4px; border-bottom-left-radius: 4px; }
+.player-ui .ui-corner-all, .player-ui .ui-corner-bottom, .player-ui .ui-corner-right, .player-ui .ui-corner-br { -moz-border-radius-bottomright: 4px; -webkit-border-bottom-right-radius: 4px; -khtml-border-bottom-right-radius: 4px; border-bottom-right-radius: 4px; }
+
+/* Overlays */
+.player-ui .ui-widget-overlay { background: #aaaaaa url(images/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x; opacity: .30;filter:Alpha(Opacity=30); }
+.player-ui .ui-widget-shadow { margin: -8px 0 0 -8px; padding: 8px; background: #aaaaaa url(images/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x; opacity: .30;filter:Alpha(Opacity=30); -moz-border-radius: 8px; -khtml-border-radius: 8px; -webkit-border-radius: 8px; border-radius: 8px; }/*
+ * jQuery UI Resizable 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Resizable#theming
+ */
+.player-ui .ui-resizable { position: relative;}
+.player-ui .ui-resizable-handle { position: absolute;font-size: 0.1px;z-index: 99999; display: block; }
+.player-ui .ui-resizable-disabled .ui-resizable-handle, .player-ui .ui-resizable-autohide .ui-resizable-handle { display: none; }
+.player-ui .ui-resizable-n { cursor: n-resize; height: 7px; width: 100%; top: -5px; left: 0; }
+.player-ui .ui-resizable-s { cursor: s-resize; height: 7px; width: 100%; bottom: -5px; left: 0; }
+.player-ui .ui-resizable-e { cursor: e-resize; width: 7px; right: -5px; top: 0; height: 100%; }
+.player-ui .ui-resizable-w { cursor: w-resize; width: 7px; left: -5px; top: 0; height: 100%; }
+.player-ui .ui-resizable-se { cursor: se-resize; width: 12px; height: 12px; right: 1px; bottom: 1px; }
+.player-ui .ui-resizable-sw { cursor: sw-resize; width: 9px; height: 9px; left: -5px; bottom: -5px; }
+.player-ui .ui-resizable-nw { cursor: nw-resize; width: 9px; height: 9px; left: -5px; top: -5px; }
+.player-ui .ui-resizable-ne { cursor: ne-resize; width: 9px; height: 9px; right: -5px; top: -5px;}/*
+ * jQuery UI Selectable 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Selectable#theming
+ */
+.player-ui .ui-selectable-helper { position: absolute; z-index: 100; border:1px dotted black; }
+/*
+ * jQuery UI Accordion 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Accordion#theming
+ */
+/* IE/Win - Fix animation bug - #4615 */
+.player-ui .ui-accordion { width: 100%; }
+.player-ui .ui-accordion .ui-accordion-header { cursor: pointer; position: relative; margin-top: 1px; zoom: 1; }
+.player-ui .ui-accordion .ui-accordion-li-fix { display: inline; }
+.player-ui .ui-accordion .ui-accordion-header-active { border-bottom: 0 !important; }
+.player-ui .ui-accordion .ui-accordion-header a { display: block; font-size: 1em; padding: .5em .5em .5em .7em; }
+.player-ui .ui-accordion-icons .ui-accordion-header a { padding-left: 2.2em; }
+.player-ui .ui-accordion .ui-accordion-header .ui-icon { position: absolute; left: .5em; top: 50%; margin-top: -8px; }
+.player-ui .ui-accordion .ui-accordion-content { padding: 1em 2.2em; border-top: 0; margin-top: -2px; position: relative; top: 1px; margin-bottom: 2px; overflow: auto; display: none; zoom: 1; }
+.player-ui .ui-accordion .ui-accordion-content-active { display: block; }
+/*
+ * jQuery UI Autocomplete 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Autocomplete#theming
+ */
+.player-ui .ui-autocomplete { position: absolute; cursor: default; }	
+
+/* workarounds */
+* html .ui-autocomplete { width:1px; } /* without this, the menu expands to 100% in IE6 */
+
+/*
+ * jQuery UI Menu 1.8.18
+ *
+ * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Menu#theming
+ */
+.player-ui .ui-menu {
+	list-style:none;
+	padding: 2px;
+	margin: 0;
+	display:block;
+	float: left;
+}
+.player-ui .ui-menu .ui-menu {
+	margin-top: -3px;
+}
+.player-ui .ui-menu .ui-menu-item {
+	margin:0;
+	padding: 0;
+	zoom: 1;
+	float: left;
+	clear: left;
+	width: 100%;
+}
+.player-ui .ui-menu .ui-menu-item a {
+	text-decoration:none;
+	display:block;
+	padding:.2em .4em;
+	line-height:1.5;
+	zoom:1;
+}
+.player-ui .ui-menu .ui-menu-item a.ui-state-hover,
+.player-ui .ui-menu .ui-menu-item a.ui-state-active {
+	font-weight: normal;
+	margin: -1px;
+}
+/*
+ * jQuery UI Button 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Button#theming
+ */
+.player-ui .ui-button { display: inline-block; position: relative; padding: 0; margin-right: .1em; text-decoration: none !important; cursor: pointer; text-align: center; zoom: 1; overflow: hidden; *overflow: visible; } /* the overflow property removes extra width in IE */
+.player-ui .ui-button-icon-only { width: 2.2em; } /* to make room for the icon, a width needs to be set here */
+button.ui-button-icon-only { width: 2.4em; } /* button elements seem to need a little more width */
+.player-ui .ui-button-icons-only { width: 3.4em; } 
+button.ui-button-icons-only { width: 3.7em; } 
+
+/*button text element */
+.player-ui .ui-button .ui-button-text { display: block; line-height: 1.4;  }
+.player-ui .ui-button-text-only .ui-button-text { padding: .4em 1em; }
+.player-ui .ui-button-icon-only .ui-button-text, .player-ui .ui-button-icons-only .ui-button-text { padding: .4em; text-indent: -9999999px; }
+.player-ui .ui-button-text-icon-primary .ui-button-text, .player-ui .ui-button-text-icons .ui-button-text { padding: .4em 1em .4em 2.1em; }
+.player-ui .ui-button-text-icon-secondary .ui-button-text, .player-ui .ui-button-text-icons .ui-button-text { padding: .4em 2.1em .4em 1em; }
+.player-ui .ui-button-text-icons .ui-button-text { padding-left: 2.1em; padding-right: 2.1em; }
+/* no icon support for input elements, provide padding by default */
+input.ui-button { padding: .4em 1em; }
+
+/*button icon element(s) */
+.player-ui .ui-button-icon-only .ui-icon, .player-ui .ui-button-text-icon-primary .ui-icon, .player-ui .ui-button-text-icon-secondary .ui-icon, .player-ui .ui-button-text-icons .ui-icon, .player-ui .ui-button-icons-only .ui-icon { position: absolute; top: 50%; margin-top: -8px; }
+.player-ui .ui-button-icon-only .ui-icon { left: 50%; margin-left: -8px; }
+.player-ui .ui-button-text-icon-primary .ui-button-icon-primary, .player-ui .ui-button-text-icons .ui-button-icon-primary, .player-ui .ui-button-icons-only .ui-button-icon-primary { left: .5em; }
+.player-ui .ui-button-text-icon-secondary .ui-button-icon-secondary, .player-ui .ui-button-text-icons .ui-button-icon-secondary, .player-ui .ui-button-icons-only .ui-button-icon-secondary { right: .5em; }
+.player-ui .ui-button-text-icons .ui-button-icon-secondary, .player-ui .ui-button-icons-only .ui-button-icon-secondary { right: .5em; }
+
+/*button sets*/
+.player-ui .ui-buttonset { margin-right: 7px; }
+.player-ui .ui-buttonset .ui-button { margin-left: 0; margin-right: -.3em; }
+
+/* workarounds */
+button.ui-button::-moz-focus-inner { border: 0; padding: 0; } /* reset extra padding in Firefox */
+/*
+ * jQuery UI Dialog 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Dialog#theming
+ */
+.player-ui .ui-dialog { position: absolute; padding: .2em; width: 300px; overflow: hidden; }
+.player-ui .ui-dialog .ui-dialog-titlebar { padding: .4em 1em; position: relative;  }
+.player-ui .ui-dialog .ui-dialog-title { float: left; margin: .1em 16px .1em 0; } 
+.player-ui .ui-dialog .ui-dialog-titlebar-close { position: absolute; right: .3em; top: 50%; width: 19px; margin: -10px 0 0 0; padding: 1px; height: 18px; }
+.player-ui .ui-dialog .ui-dialog-titlebar-close span { display: block; margin: 1px; }
+.player-ui .ui-dialog .ui-dialog-titlebar-close:hover, .player-ui .ui-dialog .ui-dialog-titlebar-close:focus { padding: 0; }
+.player-ui .ui-dialog .ui-dialog-content { position: relative; border: 0; padding: .5em 1em; background: none; overflow: auto; zoom: 1; }
+.player-ui .ui-dialog .ui-dialog-buttonpane { text-align: left; border-width: 1px 0 0 0; background-image: none; margin: .5em 0 0 0; padding: .3em 1em .5em .4em; }
+.player-ui .ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset { float: right; }
+.player-ui .ui-dialog .ui-dialog-buttonpane button { margin: .5em .4em .5em 0; cursor: pointer; }
+.player-ui .ui-dialog .ui-resizable-se { width: 14px; height: 14px; right: 3px; bottom: 3px; }
+.player-ui .ui-draggable .ui-dialog-titlebar { cursor: move; }
+/*
+ * jQuery UI Slider 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Slider#theming
+ */
+.player-ui .ui-slider { position: relative; text-align: left; }
+.player-ui .ui-slider .ui-slider-handle { position: absolute; z-index: 2; width: 1.2em; height: 1.2em; cursor: default; }
+.player-ui .ui-slider .ui-slider-range { position: absolute; z-index: 1; font-size: .7em; display: block; border: 0; background-position: 0 0; }
+
+.player-ui .ui-slider-horizontal { height: .8em; }
+.player-ui .ui-slider-horizontal .ui-slider-handle { top: -.3em; margin-left: -.6em; }
+.player-ui .ui-slider-horizontal .ui-slider-range { top: 0; height: 100%; }
+.player-ui .ui-slider-horizontal .ui-slider-range-min { left: 0; }
+.player-ui .ui-slider-horizontal .ui-slider-range-max { right: 0; }
+
+.player-ui .ui-slider-vertical { width: .8em; height: 100px; }
+.player-ui .ui-slider-vertical .ui-slider-handle { left: -.3em; margin-left: 0; margin-bottom: -.6em; }
+.player-ui .ui-slider-vertical .ui-slider-range { left: 0; width: 100%; }
+.player-ui .ui-slider-vertical .ui-slider-range-min { bottom: 0; }
+.player-ui .ui-slider-vertical .ui-slider-range-max { top: 0; }/*
+ * jQuery UI Tabs 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Tabs#theming
+ */
+.player-ui .ui-tabs { position: relative; padding: .2em; zoom: 1; } /* position: relative prevents IE scroll bug (element with position: relative inside container with overflow: auto appear as "fixed") */
+.player-ui .ui-tabs .ui-tabs-nav { margin: 0; padding: .2em .2em 0; }
+.player-ui .ui-tabs .ui-tabs-nav li { list-style: none; float: left; position: relative; top: 1px; margin: 0 .2em 1px 0; border-bottom: 0 !important; padding: 0; white-space: nowrap; }
+.player-ui .ui-tabs .ui-tabs-nav li a { float: left; padding: .5em 1em; text-decoration: none; }
+.player-ui .ui-tabs .ui-tabs-nav li.ui-tabs-selected { margin-bottom: 0; padding-bottom: 1px; }
+.player-ui .ui-tabs .ui-tabs-nav li.ui-tabs-selected a, .player-ui .ui-tabs .ui-tabs-nav li.ui-state-disabled a, .player-ui .ui-tabs .ui-tabs-nav li.ui-state-processing a { cursor: text; }
+.player-ui .ui-tabs .ui-tabs-nav li a, .player-ui .ui-tabs.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-selected a { cursor: pointer; } /* first selector in group seems obsolete, but required to overcome bug in Opera applying cursor: text overall if defined elsewhere... */
+.player-ui .ui-tabs .ui-tabs-panel { display: block; border-width: 0; padding: 1em 1.4em; background: none; }
+.player-ui .ui-tabs .ui-tabs-hide { display: none !important; }
+/*
+ * jQuery UI Datepicker 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Datepicker#theming
+ */
+.player-ui .ui-datepicker { width: 17em; padding: .2em .2em 0; display: none; }
+.player-ui .ui-datepicker .ui-datepicker-header { position:relative; padding:.2em 0; }
+.player-ui .ui-datepicker .ui-datepicker-prev, .player-ui .ui-datepicker .ui-datepicker-next { position:absolute; top: 2px; width: 1.8em; height: 1.8em; }
+.player-ui .ui-datepicker .ui-datepicker-prev-hover, .player-ui .ui-datepicker .ui-datepicker-next-hover { top: 1px; }
+.player-ui .ui-datepicker .ui-datepicker-prev { left:2px; }
+.player-ui .ui-datepicker .ui-datepicker-next { right:2px; }
+.player-ui .ui-datepicker .ui-datepicker-prev-hover { left:1px; }
+.player-ui .ui-datepicker .ui-datepicker-next-hover { right:1px; }
+.player-ui .ui-datepicker .ui-datepicker-prev span, .player-ui .ui-datepicker .ui-datepicker-next span { display: block; position: absolute; left: 50%; margin-left: -8px; top: 50%; margin-top: -8px;  }
+.player-ui .ui-datepicker .ui-datepicker-title { margin: 0 2.3em; line-height: 1.8em; text-align: center; }
+.player-ui .ui-datepicker .ui-datepicker-title select { font-size:1em; margin:1px 0; }
+.player-ui .ui-datepicker select.ui-datepicker-month-year {width: 100%;}
+.player-ui .ui-datepicker select.ui-datepicker-month, 
+.player-ui .ui-datepicker select.ui-datepicker-year { width: 49%;}
+.player-ui .ui-datepicker table {width: 100%; font-size: .9em; border-collapse: collapse; margin:0 0 .4em; }
+.player-ui .ui-datepicker th { padding: .7em .3em; text-align: center; font-weight: bold; border: 0;  }
+.player-ui .ui-datepicker td { border: 0; padding: 1px; }
+.player-ui .ui-datepicker td span, .player-ui .ui-datepicker td a { display: block; padding: .2em; text-align: right; text-decoration: none; }
+.player-ui .ui-datepicker .ui-datepicker-buttonpane { background-image: none; margin: .7em 0 0 0; padding:0 .2em; border-left: 0; border-right: 0; border-bottom: 0; }
+.player-ui .ui-datepicker .ui-datepicker-buttonpane button { float: right; margin: .5em .2em .4em; cursor: pointer; padding: .2em .6em .3em .6em; width:auto; overflow:visible; }
+.player-ui .ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current { float:left; }
+
+/* with multiple calendars */
+.player-ui .ui-datepicker.ui-datepicker-multi { width:auto; }
+.player-ui .ui-datepicker-multi .ui-datepicker-group { float:left; }
+.player-ui .ui-datepicker-multi .ui-datepicker-group table { width:95%; margin:0 auto .4em; }
+.player-ui .ui-datepicker-multi-2 .ui-datepicker-group { width:50%; }
+.player-ui .ui-datepicker-multi-3 .ui-datepicker-group { width:33.3%; }
+.player-ui .ui-datepicker-multi-4 .ui-datepicker-group { width:25%; }
+.player-ui .ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header { border-left-width:0; }
+.player-ui .ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header { border-left-width:0; }
+.player-ui .ui-datepicker-multi .ui-datepicker-buttonpane { clear:left; }
+.player-ui .ui-datepicker-row-break { clear:both; width:100%; font-size:0em; }
+
+/* RTL support */
+.player-ui .ui-datepicker-rtl { direction: rtl; }
+.player-ui .ui-datepicker-rtl .ui-datepicker-prev { right: 2px; left: auto; }
+.player-ui .ui-datepicker-rtl .ui-datepicker-next { left: 2px; right: auto; }
+.player-ui .ui-datepicker-rtl .ui-datepicker-prev:hover { right: 1px; left: auto; }
+.player-ui .ui-datepicker-rtl .ui-datepicker-next:hover { left: 1px; right: auto; }
+.player-ui .ui-datepicker-rtl .ui-datepicker-buttonpane { clear:right; }
+.player-ui .ui-datepicker-rtl .ui-datepicker-buttonpane button { float: left; }
+.player-ui .ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current { float:right; }
+.player-ui .ui-datepicker-rtl .ui-datepicker-group { float:right; }
+.player-ui .ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header { border-right-width:0; border-left-width:1px; }
+.player-ui .ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header { border-right-width:0; border-left-width:1px; }
+
+/* IE6 IFRAME FIX (taken from datepicker 1.5.3 */
+.player-ui .ui-datepicker-cover {
+    display: none; /*sorry for IE5*/
+    display/**/: block; /*sorry for IE5*/
+    position: absolute; /*must have*/
+    z-index: -1; /*must have*/
+    filter: mask(); /*must have*/
+    top: -4px; /*must have*/
+    left: -4px; /*must have*/
+    width: 200px; /*must have*/
+    height: 200px; /*must have*/
+}/*
+ * jQuery UI Progressbar 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Progressbar#theming
+ */
+.player-ui .ui-progressbar { height:2em; text-align: left; overflow: hidden; }
+.player-ui .ui-progressbar .ui-progressbar-value {margin: -1px; height:100%; }
\ No newline at end of file
diff --git a/public/admin/js/osmplayer/jquery-ui/south-street/images/ui-bg_glass_55_fcf0ba_1x400.png b/public/admin/js/osmplayer/jquery-ui/south-street/images/ui-bg_glass_55_fcf0ba_1x400.png
new file mode 100644
index 0000000000000000000000000000000000000000..a95fa334ed460cfae0f7be46c622558969a120a9
GIT binary patch
literal 127
zcmeAS@N?(olHy`uVBq!ia0vp^j6gJjgAK^akKnouq})7R978O6-<~(*I$*%#d{O`D
zKlamwPS-`s3%9*%UG!A3*<?oTStAFIhx_lW4p!8W44>P=#+E1{@pF!m*t^JZyLz>j
b4~LkYGkNYge|6CZn#kbk>gTe~DWM4fRyitb

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/south-street/images/ui-bg_gloss-wave_100_ece8da_500x100.png b/public/admin/js/osmplayer/jquery-ui/south-street/images/ui-bg_gloss-wave_100_ece8da_500x100.png
new file mode 100644
index 0000000000000000000000000000000000000000..709b5ab1dc97b439bad3ab7413187aa9378a938f
GIT binary patch
literal 2130
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
HBwYIs4ueI^

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/south-street/images/ui-bg_highlight-hard_100_f5f3e5_1x100.png b/public/admin/js/osmplayer/jquery-ui/south-street/images/ui-bg_highlight-hard_100_f5f3e5_1x100.png
new file mode 100644
index 0000000000000000000000000000000000000000..6045f63e75b755f83f1dce6b9e476c7c1cb3ca5b
GIT binary patch
literal 110
zcmeAS@N?(olHy`uVBq!ia0vp^j6j^i!3HGVb)pi0l&PnSV~E7myZwe-3<?5=o&Nui
zSuWkvTwyP8M73qo(hy$e50X<Fj+jl^k-N>aWZsVL?0R<&G2P>rot)fzMHXlPgQu&X
J%Q~loCIAYFA?*MF

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/south-street/images/ui-bg_highlight-hard_100_fafaf4_1x100.png b/public/admin/js/osmplayer/jquery-ui/south-street/images/ui-bg_highlight-hard_100_fafaf4_1x100.png
new file mode 100644
index 0000000000000000000000000000000000000000..bfc39c676c1a0cd4e53ad9cad0d66f47cadae4af
GIT binary patch
literal 96
zcmeAS@N?(olHy`uVBq!ia0vp^j6j^i!3HGVb)pi0l)9&jV~E7myC*hsGB9u)Iq=}0
v@M-5arOdOHTbAfHOt0{I&#W2yUYA+9gm2w4kyYz}S{OWC{an^LB{Ts5Qmh-C

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/south-street/images/ui-bg_highlight-hard_15_459e00_1x100.png b/public/admin/js/osmplayer/jquery-ui/south-street/images/ui-bg_highlight-hard_15_459e00_1x100.png
new file mode 100644
index 0000000000000000000000000000000000000000..5f609250f7c24c6a961e43bbeb9fa3f8917f94c0
GIT binary patch
literal 114
zcmeAS@N?(olHy`uVBq!ia0vp^j6j^i!3HGVb)pi0l%=POV~E7myZsw^4=6AkUL$ib
zea{X3&Y2Qb4oka^cFj3?CS9Uo_X44b8Rr)*`DWogt-E18^ZyASB+cwsD6h=jaL)y3
O2!p4qpUXO@geCw}uP31Z

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/south-street/images/ui-bg_highlight-hard_95_cccccc_1x100.png b/public/admin/js/osmplayer/jquery-ui/south-street/images/ui-bg_highlight-hard_95_cccccc_1x100.png
new file mode 100644
index 0000000000000000000000000000000000000000..ca80bffc64e4aed87a021b53260373ae22f0f175
GIT binary patch
literal 105
zcmeAS@N?(olHy`uVBq!ia0vp^j6j^i!3HGVb)pi0l!2#<V~E7m<cg1vj@GNOv9Yx!
zdi?qOdwS!`|Ns97T-#s&-ykC64v_7<llgtsEJ22+o*G)_?<H;k^)h(6`njxgN@xNA
DS%D>w

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/south-street/images/ui-bg_highlight-soft_25_67b021_1x100.png b/public/admin/js/osmplayer/jquery-ui/south-street/images/ui-bg_highlight-soft_25_67b021_1x100.png
new file mode 100644
index 0000000000000000000000000000000000000000..b33bd7b6e13f1f7c46ed2ab185efa7dc2a53ffa1
GIT binary patch
literal 165
zcmeAS@N?(olHy`uVBq!ia0vp^j6j^i!3Ja)XlH!`a&kOf9780gE}h`b$7IOkJio?-
z@7PI;s~jP>)c9t1vC3yknE7`-u_&{M_fu^M_u;>CtSu@=@XBnK27fla#npELW=nJR
z|J@xw(NE-EMq2#OL$W)IrXRFFUf(qLHM`pN8KT-NwZmpUT4^2fP(kjkZou3{62cll
Pdl@`k{an^LB{Ts5v8XsL

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/south-street/images/ui-bg_highlight-soft_95_ffedad_1x100.png b/public/admin/js/osmplayer/jquery-ui/south-street/images/ui-bg_highlight-soft_95_ffedad_1x100.png
new file mode 100644
index 0000000000000000000000000000000000000000..b4cb8241c998d7240a5ece7f5073515217bb38af
GIT binary patch
literal 165
zcmeAS@N?(olHy`uVBq!ia0vp^j6j^i!3Ja)XlH!`a&kOf9780gZtXMVJLDj6#OCvV
z`DeV1S^|aD<|dxZj$BSA>&k4??ktmdAbP56rQ~wGh$nAZ8k8GF=Ilzk)id??&->>+
z4)>IPUaDW6a?A3d{^R=&C38g7T3vG|O7c!-593nj)s|J4^{&sbJRmIF>7uyalV1#I
OFN3G6pUXO@geCyAgE#vC

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/south-street/images/ui-bg_inset-soft_15_2b2922_1x100.png b/public/admin/js/osmplayer/jquery-ui/south-street/images/ui-bg_inset-soft_15_2b2922_1x100.png
new file mode 100644
index 0000000000000000000000000000000000000000..8e5c3a3f8ac166a771e94d4c88fdf980864d4f42
GIT binary patch
literal 157
zcmeAS@N?(olHy`uVBq!ia0vp^j6j^i!3Ja)XlH!`aXeidLnNkdov@MjumcZszxvI(
z^%M0@{QInW_V83;3ARfy%3VrFU;nJ&F6er9Y~%YKdaqZutY`BqxXsqLapASEckf>~
z^lsMAUE*u>cy_)i`u@Xr#b?!5YZe?_b?8X4K#R{u`%N_rbLH6!69v6Jf%Y+Yy85}S
Ib4q9e0DnV400000

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/south-street/images/ui-icons_808080_256x240.png b/public/admin/js/osmplayer/jquery-ui/south-street/images/ui-icons_808080_256x240.png
new file mode 100644
index 0000000000000000000000000000000000000000..e669d816ce7dac013c4f0e9625164e1cc1d911dd
GIT binary patch
literal 5355
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
W`?Hm7LpJ~Km-$3pU#(WfA?AP7sXAN$

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/south-street/images/ui-icons_847e71_256x240.png b/public/admin/js/osmplayer/jquery-ui/south-street/images/ui-icons_847e71_256x240.png
new file mode 100644
index 0000000000000000000000000000000000000000..b20c322060f8c59faea3d9396482aae058168d9d
GIT binary patch
literal 4369
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

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/south-street/images/ui-icons_8dc262_256x240.png b/public/admin/js/osmplayer/jquery-ui/south-street/images/ui-icons_8dc262_256x240.png
new file mode 100644
index 0000000000000000000000000000000000000000..004295757fa25c1f7fbe44bb111ba8fa972e8f22
GIT binary patch
literal 4369
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

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/south-street/images/ui-icons_cd0a0a_256x240.png b/public/admin/js/osmplayer/jquery-ui/south-street/images/ui-icons_cd0a0a_256x240.png
new file mode 100644
index 0000000000000000000000000000000000000000..2ab019b73ec11a485fa09378f3a0e155194f6a5d
GIT binary patch
literal 4369
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

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/south-street/images/ui-icons_eeeeee_256x240.png b/public/admin/js/osmplayer/jquery-ui/south-street/images/ui-icons_eeeeee_256x240.png
new file mode 100644
index 0000000000000000000000000000000000000000..01bb36ba7668a4a9e181f4af7ad89dcf1fe3022d
GIT binary patch
literal 4369
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

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/south-street/images/ui-icons_ffffff_256x240.png b/public/admin/js/osmplayer/jquery-ui/south-street/images/ui-icons_ffffff_256x240.png
new file mode 100644
index 0000000000000000000000000000000000000000..42f8f992c727ddaa617da224a522e463df690387
GIT binary patch
literal 4369
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

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/south-street/jquery-ui-1.8.18.custom.css b/public/admin/js/osmplayer/jquery-ui/south-street/jquery-ui-1.8.18.custom.css
new file mode 100644
index 00000000000..a121e30215b
--- /dev/null
+++ b/public/admin/js/osmplayer/jquery-ui/south-street/jquery-ui-1.8.18.custom.css
@@ -0,0 +1,565 @@
+/*
+ * jQuery UI CSS Framework 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Theming/API
+ */
+
+/* Layout helpers
+----------------------------------*/
+.player-ui .ui-helper-hidden { display: none; }
+.player-ui .ui-helper-hidden-accessible { position: absolute !important; clip: rect(1px 1px 1px 1px); clip: rect(1px,1px,1px,1px); }
+.player-ui .ui-helper-reset { margin: 0; padding: 0; border: 0; outline: 0; line-height: 1.3; text-decoration: none; font-size: 100%; list-style: none; }
+.player-ui .ui-helper-clearfix:before, .player-ui .ui-helper-clearfix:after { content: ""; display: table; }
+.player-ui .ui-helper-clearfix:after { clear: both; }
+.player-ui .ui-helper-clearfix { zoom: 1; }
+.player-ui .ui-helper-zfix { width: 100%; height: 100%; top: 0; left: 0; position: absolute; opacity: 0; filter:Alpha(Opacity=0); }
+
+
+/* Interaction Cues
+----------------------------------*/
+.player-ui .ui-state-disabled { cursor: default !important; }
+
+
+/* Icons
+----------------------------------*/
+
+/* states and images */
+.player-ui .ui-icon { display: block; text-indent: -99999px; overflow: hidden; background-repeat: no-repeat; }
+
+
+/* Misc visuals
+----------------------------------*/
+
+/* Overlays */
+.player-ui .ui-widget-overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }
+
+
+/*
+ * jQuery UI CSS Framework 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Theming/API
+ *
+ * To view and modify this theme, visit http://jqueryui.com/themeroller/?ffDefault=segoe%20ui,%20Arial,%20sans-serif&fwDefault=bold&fsDefault=1.1em&cornerRadius=6px&bgColorHeader=ece8da&bgTextureHeader=12_gloss_wave.png&bgImgOpacityHeader=100&borderColorHeader=d4ccb0&fcHeader=433f38&iconColorHeader=847e71&bgColorContent=f5f3e5&bgTextureContent=04_highlight_hard.png&bgImgOpacityContent=100&borderColorContent=dfd9c3&fcContent=312e25&iconColorContent=808080&bgColorDefault=459e00&bgTextureDefault=04_highlight_hard.png&bgImgOpacityDefault=15&borderColorDefault=327E04&fcDefault=ffffff&iconColorDefault=eeeeee&bgColorHover=67b021&bgTextureHover=03_highlight_soft.png&bgImgOpacityHover=25&borderColorHover=327E04&fcHover=ffffff&iconColorHover=ffffff&bgColorActive=fafaf4&bgTextureActive=04_highlight_hard.png&bgImgOpacityActive=100&borderColorActive=d4ccb0&fcActive=459e00&iconColorActive=8DC262&bgColorHighlight=fcf0ba&bgTextureHighlight=02_glass.png&bgImgOpacityHighlight=55&borderColorHighlight=e8e1b5&fcHighlight=363636&iconColorHighlight=8DC262&bgColorError=ffedad&bgTextureError=03_highlight_soft.png&bgImgOpacityError=95&borderColorError=e3a345&fcError=cd5c0a&iconColorError=cd0a0a&bgColorOverlay=2b2922&bgTextureOverlay=05_inset_soft.png&bgImgOpacityOverlay=15&opacityOverlay=90&bgColorShadow=cccccc&bgTextureShadow=04_highlight_hard.png&bgImgOpacityShadow=95&opacityShadow=20&thicknessShadow=12px&offsetTopShadow=-12px&offsetLeftShadow=-12px&cornerRadiusShadow=10px
+ */
+
+
+/* Component containers
+----------------------------------*/
+.player-ui .ui-widget { font-family: segoe ui, Arial, sans-serif; font-size: 1.1em; }
+.player-ui .ui-widget .ui-widget { font-size: 1em; }
+.player-ui .ui-widget input, .player-ui .ui-widget select, .player-ui .ui-widget textarea, .player-ui .ui-widget button { font-family: segoe ui, Arial, sans-serif; font-size: 1em; }
+.player-ui .ui-widget-content { border: 1px solid #dfd9c3; background: #f5f3e5 url(images/ui-bg_highlight-hard_100_f5f3e5_1x100.png) 50% top repeat-x; color: #312e25; }
+.player-ui .ui-widget-content a { color: #312e25; }
+.player-ui .ui-widget-header { border: 1px solid #d4ccb0; background: #ece8da url(images/ui-bg_gloss-wave_100_ece8da_500x100.png) 50% 50% repeat-x; color: #433f38; font-weight: bold; }
+.player-ui .ui-widget-header a { color: #433f38; }
+
+/* Interaction states
+----------------------------------*/
+.player-ui .ui-state-default, .player-ui .ui-widget-content .ui-state-default, .player-ui .ui-widget-header .ui-state-default { border: 1px solid #327e04; background: #459e00 url(images/ui-bg_highlight-hard_15_459e00_1x100.png) 50% 50% repeat-x; font-weight: bold; color: #ffffff; }
+.player-ui .ui-state-default a, .player-ui .ui-state-default a:link, .player-ui .ui-state-default a:visited { color: #ffffff; text-decoration: none; }
+.player-ui .ui-state-hover, .player-ui .ui-widget-content .ui-state-hover, .player-ui .ui-widget-header .ui-state-hover, .player-ui .ui-state-focus, .player-ui .ui-widget-content .ui-state-focus, .player-ui .ui-widget-header .ui-state-focus { border: 1px solid #327e04; background: #67b021 url(images/ui-bg_highlight-soft_25_67b021_1x100.png) 50% 50% repeat-x; font-weight: bold; color: #ffffff; }
+.player-ui .ui-state-hover a, .player-ui .ui-state-hover a:hover { color: #ffffff; text-decoration: none; }
+.player-ui .ui-state-active, .player-ui .ui-widget-content .ui-state-active, .player-ui .ui-widget-header .ui-state-active { border: 1px solid #d4ccb0; background: #fafaf4 url(images/ui-bg_highlight-hard_100_fafaf4_1x100.png) 50% 50% repeat-x; font-weight: bold; color: #459e00; }
+.player-ui .ui-state-active a, .player-ui .ui-state-active a:link, .player-ui .ui-state-active a:visited { color: #459e00; text-decoration: none; }
+.player-ui .ui-widget :active { outline: none; }
+
+/* Interaction Cues
+----------------------------------*/
+.player-ui .ui-state-highlight, .player-ui .ui-widget-content .ui-state-highlight, .player-ui .ui-widget-header .ui-state-highlight  {border: 1px solid #e8e1b5; background: #fcf0ba url(images/ui-bg_glass_55_fcf0ba_1x400.png) 50% 50% repeat-x; color: #363636; }
+.player-ui .ui-state-highlight a, .player-ui .ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a { color: #363636; }
+.player-ui .ui-state-error, .player-ui .ui-widget-content .ui-state-error, .player-ui .ui-widget-header .ui-state-error {border: 1px solid #e3a345; background: #ffedad url(images/ui-bg_highlight-soft_95_ffedad_1x100.png) 50% top repeat-x; color: #cd5c0a; }
+.player-ui .ui-state-error a, .player-ui .ui-widget-content .ui-state-error a, .player-ui .ui-widget-header .ui-state-error a { color: #cd5c0a; }
+.player-ui .ui-state-error-text, .player-ui .ui-widget-content .ui-state-error-text, .player-ui .ui-widget-header .ui-state-error-text { color: #cd5c0a; }
+.player-ui .ui-priority-primary, .player-ui .ui-widget-content .ui-priority-primary, .player-ui .ui-widget-header .ui-priority-primary { font-weight: bold; }
+.player-ui .ui-priority-secondary, .player-ui .ui-widget-content .ui-priority-secondary,  .ui-widget-header .ui-priority-secondary { opacity: .7; filter:Alpha(Opacity=70); font-weight: normal; }
+.player-ui .ui-state-disabled, .player-ui .ui-widget-content .ui-state-disabled, .player-ui .ui-widget-header .ui-state-disabled { opacity: .35; filter:Alpha(Opacity=35); background-image: none; }
+
+/* Icons
+----------------------------------*/
+
+/* states and images */
+.player-ui .ui-icon { width: 16px; height: 16px; background-image: url(images/ui-icons_808080_256x240.png); }
+.player-ui .ui-widget-content .ui-icon {background-image: url(images/ui-icons_808080_256x240.png); }
+.player-ui .ui-widget-header .ui-icon {background-image: url(images/ui-icons_847e71_256x240.png); }
+.player-ui .ui-state-default .ui-icon { background-image: url(images/ui-icons_eeeeee_256x240.png); }
+.player-ui .ui-state-hover .ui-icon, .player-ui .ui-state-focus .ui-icon {background-image: url(images/ui-icons_ffffff_256x240.png); }
+.player-ui .ui-state-active .ui-icon {background-image: url(images/ui-icons_8dc262_256x240.png); }
+.player-ui .ui-state-highlight .ui-icon {background-image: url(images/ui-icons_8dc262_256x240.png); }
+.player-ui .ui-state-error .ui-icon, .player-ui .ui-state-error-text .ui-icon {background-image: url(images/ui-icons_cd0a0a_256x240.png); }
+
+/* positioning */
+.player-ui .ui-icon-carat-1-n { background-position: 0 0; }
+.player-ui .ui-icon-carat-1-ne { background-position: -16px 0; }
+.player-ui .ui-icon-carat-1-e { background-position: -32px 0; }
+.player-ui .ui-icon-carat-1-se { background-position: -48px 0; }
+.player-ui .ui-icon-carat-1-s { background-position: -64px 0; }
+.player-ui .ui-icon-carat-1-sw { background-position: -80px 0; }
+.player-ui .ui-icon-carat-1-w { background-position: -96px 0; }
+.player-ui .ui-icon-carat-1-nw { background-position: -112px 0; }
+.player-ui .ui-icon-carat-2-n-s { background-position: -128px 0; }
+.player-ui .ui-icon-carat-2-e-w { background-position: -144px 0; }
+.player-ui .ui-icon-triangle-1-n { background-position: 0 -16px; }
+.player-ui .ui-icon-triangle-1-ne { background-position: -16px -16px; }
+.player-ui .ui-icon-triangle-1-e { background-position: -32px -16px; }
+.player-ui .ui-icon-triangle-1-se { background-position: -48px -16px; }
+.player-ui .ui-icon-triangle-1-s { background-position: -64px -16px; }
+.player-ui .ui-icon-triangle-1-sw { background-position: -80px -16px; }
+.player-ui .ui-icon-triangle-1-w { background-position: -96px -16px; }
+.player-ui .ui-icon-triangle-1-nw { background-position: -112px -16px; }
+.player-ui .ui-icon-triangle-2-n-s { background-position: -128px -16px; }
+.player-ui .ui-icon-triangle-2-e-w { background-position: -144px -16px; }
+.player-ui .ui-icon-arrow-1-n { background-position: 0 -32px; }
+.player-ui .ui-icon-arrow-1-ne { background-position: -16px -32px; }
+.player-ui .ui-icon-arrow-1-e { background-position: -32px -32px; }
+.player-ui .ui-icon-arrow-1-se { background-position: -48px -32px; }
+.player-ui .ui-icon-arrow-1-s { background-position: -64px -32px; }
+.player-ui .ui-icon-arrow-1-sw { background-position: -80px -32px; }
+.player-ui .ui-icon-arrow-1-w { background-position: -96px -32px; }
+.player-ui .ui-icon-arrow-1-nw { background-position: -112px -32px; }
+.player-ui .ui-icon-arrow-2-n-s { background-position: -128px -32px; }
+.player-ui .ui-icon-arrow-2-ne-sw { background-position: -144px -32px; }
+.player-ui .ui-icon-arrow-2-e-w { background-position: -160px -32px; }
+.player-ui .ui-icon-arrow-2-se-nw { background-position: -176px -32px; }
+.player-ui .ui-icon-arrowstop-1-n { background-position: -192px -32px; }
+.player-ui .ui-icon-arrowstop-1-e { background-position: -208px -32px; }
+.player-ui .ui-icon-arrowstop-1-s { background-position: -224px -32px; }
+.player-ui .ui-icon-arrowstop-1-w { background-position: -240px -32px; }
+.player-ui .ui-icon-arrowthick-1-n { background-position: 0 -48px; }
+.player-ui .ui-icon-arrowthick-1-ne { background-position: -16px -48px; }
+.player-ui .ui-icon-arrowthick-1-e { background-position: -32px -48px; }
+.player-ui .ui-icon-arrowthick-1-se { background-position: -48px -48px; }
+.player-ui .ui-icon-arrowthick-1-s { background-position: -64px -48px; }
+.player-ui .ui-icon-arrowthick-1-sw { background-position: -80px -48px; }
+.player-ui .ui-icon-arrowthick-1-w { background-position: -96px -48px; }
+.player-ui .ui-icon-arrowthick-1-nw { background-position: -112px -48px; }
+.player-ui .ui-icon-arrowthick-2-n-s { background-position: -128px -48px; }
+.player-ui .ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px; }
+.player-ui .ui-icon-arrowthick-2-e-w { background-position: -160px -48px; }
+.player-ui .ui-icon-arrowthick-2-se-nw { background-position: -176px -48px; }
+.player-ui .ui-icon-arrowthickstop-1-n { background-position: -192px -48px; }
+.player-ui .ui-icon-arrowthickstop-1-e { background-position: -208px -48px; }
+.player-ui .ui-icon-arrowthickstop-1-s { background-position: -224px -48px; }
+.player-ui .ui-icon-arrowthickstop-1-w { background-position: -240px -48px; }
+.player-ui .ui-icon-arrowreturnthick-1-w { background-position: 0 -64px; }
+.player-ui .ui-icon-arrowreturnthick-1-n { background-position: -16px -64px; }
+.player-ui .ui-icon-arrowreturnthick-1-e { background-position: -32px -64px; }
+.player-ui .ui-icon-arrowreturnthick-1-s { background-position: -48px -64px; }
+.player-ui .ui-icon-arrowreturn-1-w { background-position: -64px -64px; }
+.player-ui .ui-icon-arrowreturn-1-n { background-position: -80px -64px; }
+.player-ui .ui-icon-arrowreturn-1-e { background-position: -96px -64px; }
+.player-ui .ui-icon-arrowreturn-1-s { background-position: -112px -64px; }
+.player-ui .ui-icon-arrowrefresh-1-w { background-position: -128px -64px; }
+.player-ui .ui-icon-arrowrefresh-1-n { background-position: -144px -64px; }
+.player-ui .ui-icon-arrowrefresh-1-e { background-position: -160px -64px; }
+.player-ui .ui-icon-arrowrefresh-1-s { background-position: -176px -64px; }
+.player-ui .ui-icon-arrow-4 { background-position: 0 -80px; }
+.player-ui .ui-icon-arrow-4-diag { background-position: -16px -80px; }
+.player-ui .ui-icon-extlink { background-position: -32px -80px; }
+.player-ui .ui-icon-newwin { background-position: -48px -80px; }
+.player-ui .ui-icon-refresh { background-position: -64px -80px; }
+.player-ui .ui-icon-shuffle { background-position: -80px -80px; }
+.player-ui .ui-icon-transfer-e-w { background-position: -96px -80px; }
+.player-ui .ui-icon-transferthick-e-w { background-position: -112px -80px; }
+.player-ui .ui-icon-folder-collapsed { background-position: 0 -96px; }
+.player-ui .ui-icon-folder-open { background-position: -16px -96px; }
+.player-ui .ui-icon-document { background-position: -32px -96px; }
+.player-ui .ui-icon-document-b { background-position: -48px -96px; }
+.player-ui .ui-icon-note { background-position: -64px -96px; }
+.player-ui .ui-icon-mail-closed { background-position: -80px -96px; }
+.player-ui .ui-icon-mail-open { background-position: -96px -96px; }
+.player-ui .ui-icon-suitcase { background-position: -112px -96px; }
+.player-ui .ui-icon-comment { background-position: -128px -96px; }
+.player-ui .ui-icon-person { background-position: -144px -96px; }
+.player-ui .ui-icon-print { background-position: -160px -96px; }
+.player-ui .ui-icon-trash { background-position: -176px -96px; }
+.player-ui .ui-icon-locked { background-position: -192px -96px; }
+.player-ui .ui-icon-unlocked { background-position: -208px -96px; }
+.player-ui .ui-icon-bookmark { background-position: -224px -96px; }
+.player-ui .ui-icon-tag { background-position: -240px -96px; }
+.player-ui .ui-icon-home { background-position: 0 -112px; }
+.player-ui .ui-icon-flag { background-position: -16px -112px; }
+.player-ui .ui-icon-calendar { background-position: -32px -112px; }
+.player-ui .ui-icon-cart { background-position: -48px -112px; }
+.player-ui .ui-icon-pencil { background-position: -64px -112px; }
+.player-ui .ui-icon-clock { background-position: -80px -112px; }
+.player-ui .ui-icon-disk { background-position: -96px -112px; }
+.player-ui .ui-icon-calculator { background-position: -112px -112px; }
+.player-ui .ui-icon-zoomin { background-position: -128px -112px; }
+.player-ui .ui-icon-zoomout { background-position: -144px -112px; }
+.player-ui .ui-icon-search { background-position: -160px -112px; }
+.player-ui .ui-icon-wrench { background-position: -176px -112px; }
+.player-ui .ui-icon-gear { background-position: -192px -112px; }
+.player-ui .ui-icon-heart { background-position: -208px -112px; }
+.player-ui .ui-icon-star { background-position: -224px -112px; }
+.player-ui .ui-icon-link { background-position: -240px -112px; }
+.player-ui .ui-icon-cancel { background-position: 0 -128px; }
+.player-ui .ui-icon-plus { background-position: -16px -128px; }
+.player-ui .ui-icon-plusthick { background-position: -32px -128px; }
+.player-ui .ui-icon-minus { background-position: -48px -128px; }
+.player-ui .ui-icon-minusthick { background-position: -64px -128px; }
+.player-ui .ui-icon-close { background-position: -80px -128px; }
+.player-ui .ui-icon-closethick { background-position: -96px -128px; }
+.player-ui .ui-icon-key { background-position: -112px -128px; }
+.player-ui .ui-icon-lightbulb { background-position: -128px -128px; }
+.player-ui .ui-icon-scissors { background-position: -144px -128px; }
+.player-ui .ui-icon-clipboard { background-position: -160px -128px; }
+.player-ui .ui-icon-copy { background-position: -176px -128px; }
+.player-ui .ui-icon-contact { background-position: -192px -128px; }
+.player-ui .ui-icon-image { background-position: -208px -128px; }
+.player-ui .ui-icon-video { background-position: -224px -128px; }
+.player-ui .ui-icon-script { background-position: -240px -128px; }
+.player-ui .ui-icon-alert { background-position: 0 -144px; }
+.player-ui .ui-icon-info { background-position: -16px -144px; }
+.player-ui .ui-icon-notice { background-position: -32px -144px; }
+.player-ui .ui-icon-help { background-position: -48px -144px; }
+.player-ui .ui-icon-check { background-position: -64px -144px; }
+.player-ui .ui-icon-bullet { background-position: -80px -144px; }
+.player-ui .ui-icon-radio-off { background-position: -96px -144px; }
+.player-ui .ui-icon-radio-on { background-position: -112px -144px; }
+.player-ui .ui-icon-pin-w { background-position: -128px -144px; }
+.player-ui .ui-icon-pin-s { background-position: -144px -144px; }
+.player-ui .ui-icon-play { background-position: 0 -160px; }
+.player-ui .ui-icon-pause { background-position: -16px -160px; }
+.player-ui .ui-icon-seek-next { background-position: -32px -160px; }
+.player-ui .ui-icon-seek-prev { background-position: -48px -160px; }
+.player-ui .ui-icon-seek-end { background-position: -64px -160px; }
+.player-ui .ui-icon-seek-start { background-position: -80px -160px; }
+/* ui-icon-seek-first is deprecated, use ui-icon-seek-start instead */
+.player-ui .ui-icon-seek-first { background-position: -80px -160px; }
+.player-ui .ui-icon-stop { background-position: -96px -160px; }
+.player-ui .ui-icon-eject { background-position: -112px -160px; }
+.player-ui .ui-icon-volume-off { background-position: -128px -160px; }
+.player-ui .ui-icon-volume-on { background-position: -144px -160px; }
+.player-ui .ui-icon-power { background-position: 0 -176px; }
+.player-ui .ui-icon-signal-diag { background-position: -16px -176px; }
+.player-ui .ui-icon-signal { background-position: -32px -176px; }
+.player-ui .ui-icon-battery-0 { background-position: -48px -176px; }
+.player-ui .ui-icon-battery-1 { background-position: -64px -176px; }
+.player-ui .ui-icon-battery-2 { background-position: -80px -176px; }
+.player-ui .ui-icon-battery-3 { background-position: -96px -176px; }
+.player-ui .ui-icon-circle-plus { background-position: 0 -192px; }
+.player-ui .ui-icon-circle-minus { background-position: -16px -192px; }
+.player-ui .ui-icon-circle-close { background-position: -32px -192px; }
+.player-ui .ui-icon-circle-triangle-e { background-position: -48px -192px; }
+.player-ui .ui-icon-circle-triangle-s { background-position: -64px -192px; }
+.player-ui .ui-icon-circle-triangle-w { background-position: -80px -192px; }
+.player-ui .ui-icon-circle-triangle-n { background-position: -96px -192px; }
+.player-ui .ui-icon-circle-arrow-e { background-position: -112px -192px; }
+.player-ui .ui-icon-circle-arrow-s { background-position: -128px -192px; }
+.player-ui .ui-icon-circle-arrow-w { background-position: -144px -192px; }
+.player-ui .ui-icon-circle-arrow-n { background-position: -160px -192px; }
+.player-ui .ui-icon-circle-zoomin { background-position: -176px -192px; }
+.player-ui .ui-icon-circle-zoomout { background-position: -192px -192px; }
+.player-ui .ui-icon-circle-check { background-position: -208px -192px; }
+.player-ui .ui-icon-circlesmall-plus { background-position: 0 -208px; }
+.player-ui .ui-icon-circlesmall-minus { background-position: -16px -208px; }
+.player-ui .ui-icon-circlesmall-close { background-position: -32px -208px; }
+.player-ui .ui-icon-squaresmall-plus { background-position: -48px -208px; }
+.player-ui .ui-icon-squaresmall-minus { background-position: -64px -208px; }
+.player-ui .ui-icon-squaresmall-close { background-position: -80px -208px; }
+.player-ui .ui-icon-grip-dotted-vertical { background-position: 0 -224px; }
+.player-ui .ui-icon-grip-dotted-horizontal { background-position: -16px -224px; }
+.player-ui .ui-icon-grip-solid-vertical { background-position: -32px -224px; }
+.player-ui .ui-icon-grip-solid-horizontal { background-position: -48px -224px; }
+.player-ui .ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; }
+.player-ui .ui-icon-grip-diagonal-se { background-position: -80px -224px; }
+
+
+/* Misc visuals
+----------------------------------*/
+
+/* Corner radius */
+.player-ui .ui-corner-all, .player-ui .ui-corner-top, .player-ui .ui-corner-left, .player-ui .ui-corner-tl { -moz-border-radius-topleft: 6px; -webkit-border-top-left-radius: 6px; -khtml-border-top-left-radius: 6px; border-top-left-radius: 6px; }
+.player-ui .ui-corner-all, .player-ui .ui-corner-top, .player-ui .ui-corner-right, .player-ui .ui-corner-tr { -moz-border-radius-topright: 6px; -webkit-border-top-right-radius: 6px; -khtml-border-top-right-radius: 6px; border-top-right-radius: 6px; }
+.player-ui .ui-corner-all, .player-ui .ui-corner-bottom, .player-ui .ui-corner-left, .player-ui .ui-corner-bl { -moz-border-radius-bottomleft: 6px; -webkit-border-bottom-left-radius: 6px; -khtml-border-bottom-left-radius: 6px; border-bottom-left-radius: 6px; }
+.player-ui .ui-corner-all, .player-ui .ui-corner-bottom, .player-ui .ui-corner-right, .player-ui .ui-corner-br { -moz-border-radius-bottomright: 6px; -webkit-border-bottom-right-radius: 6px; -khtml-border-bottom-right-radius: 6px; border-bottom-right-radius: 6px; }
+
+/* Overlays */
+.player-ui .ui-widget-overlay { background: #2b2922 url(images/ui-bg_inset-soft_15_2b2922_1x100.png) 50% bottom repeat-x; opacity: .90;filter:Alpha(Opacity=90); }
+.player-ui .ui-widget-shadow { margin: -12px 0 0 -12px; padding: 12px; background: #cccccc url(images/ui-bg_highlight-hard_95_cccccc_1x100.png) 50% top repeat-x; opacity: .20;filter:Alpha(Opacity=20); -moz-border-radius: 10px; -khtml-border-radius: 10px; -webkit-border-radius: 10px; border-radius: 10px; }/*
+ * jQuery UI Resizable 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Resizable#theming
+ */
+.player-ui .ui-resizable { position: relative;}
+.player-ui .ui-resizable-handle { position: absolute;font-size: 0.1px;z-index: 99999; display: block; }
+.player-ui .ui-resizable-disabled .ui-resizable-handle, .player-ui .ui-resizable-autohide .ui-resizable-handle { display: none; }
+.player-ui .ui-resizable-n { cursor: n-resize; height: 7px; width: 100%; top: -5px; left: 0; }
+.player-ui .ui-resizable-s { cursor: s-resize; height: 7px; width: 100%; bottom: -5px; left: 0; }
+.player-ui .ui-resizable-e { cursor: e-resize; width: 7px; right: -5px; top: 0; height: 100%; }
+.player-ui .ui-resizable-w { cursor: w-resize; width: 7px; left: -5px; top: 0; height: 100%; }
+.player-ui .ui-resizable-se { cursor: se-resize; width: 12px; height: 12px; right: 1px; bottom: 1px; }
+.player-ui .ui-resizable-sw { cursor: sw-resize; width: 9px; height: 9px; left: -5px; bottom: -5px; }
+.player-ui .ui-resizable-nw { cursor: nw-resize; width: 9px; height: 9px; left: -5px; top: -5px; }
+.player-ui .ui-resizable-ne { cursor: ne-resize; width: 9px; height: 9px; right: -5px; top: -5px;}/*
+ * jQuery UI Selectable 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Selectable#theming
+ */
+.player-ui .ui-selectable-helper { position: absolute; z-index: 100; border:1px dotted black; }
+/*
+ * jQuery UI Accordion 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Accordion#theming
+ */
+/* IE/Win - Fix animation bug - #4615 */
+.player-ui .ui-accordion { width: 100%; }
+.player-ui .ui-accordion .ui-accordion-header { cursor: pointer; position: relative; margin-top: 1px; zoom: 1; }
+.player-ui .ui-accordion .ui-accordion-li-fix { display: inline; }
+.player-ui .ui-accordion .ui-accordion-header-active { border-bottom: 0 !important; }
+.player-ui .ui-accordion .ui-accordion-header a { display: block; font-size: 1em; padding: .5em .5em .5em .7em; }
+.player-ui .ui-accordion-icons .ui-accordion-header a { padding-left: 2.2em; }
+.player-ui .ui-accordion .ui-accordion-header .ui-icon { position: absolute; left: .5em; top: 50%; margin-top: -8px; }
+.player-ui .ui-accordion .ui-accordion-content { padding: 1em 2.2em; border-top: 0; margin-top: -2px; position: relative; top: 1px; margin-bottom: 2px; overflow: auto; display: none; zoom: 1; }
+.player-ui .ui-accordion .ui-accordion-content-active { display: block; }
+/*
+ * jQuery UI Autocomplete 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Autocomplete#theming
+ */
+.player-ui .ui-autocomplete { position: absolute; cursor: default; }	
+
+/* workarounds */
+* html .ui-autocomplete { width:1px; } /* without this, the menu expands to 100% in IE6 */
+
+/*
+ * jQuery UI Menu 1.8.18
+ *
+ * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Menu#theming
+ */
+.player-ui .ui-menu {
+	list-style:none;
+	padding: 2px;
+	margin: 0;
+	display:block;
+	float: left;
+}
+.player-ui .ui-menu .ui-menu {
+	margin-top: -3px;
+}
+.player-ui .ui-menu .ui-menu-item {
+	margin:0;
+	padding: 0;
+	zoom: 1;
+	float: left;
+	clear: left;
+	width: 100%;
+}
+.player-ui .ui-menu .ui-menu-item a {
+	text-decoration:none;
+	display:block;
+	padding:.2em .4em;
+	line-height:1.5;
+	zoom:1;
+}
+.player-ui .ui-menu .ui-menu-item a.ui-state-hover,
+.player-ui .ui-menu .ui-menu-item a.ui-state-active {
+	font-weight: normal;
+	margin: -1px;
+}
+/*
+ * jQuery UI Button 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Button#theming
+ */
+.player-ui .ui-button { display: inline-block; position: relative; padding: 0; margin-right: .1em; text-decoration: none !important; cursor: pointer; text-align: center; zoom: 1; overflow: hidden; *overflow: visible; } /* the overflow property removes extra width in IE */
+.player-ui .ui-button-icon-only { width: 2.2em; } /* to make room for the icon, a width needs to be set here */
+button.ui-button-icon-only { width: 2.4em; } /* button elements seem to need a little more width */
+.player-ui .ui-button-icons-only { width: 3.4em; } 
+button.ui-button-icons-only { width: 3.7em; } 
+
+/*button text element */
+.player-ui .ui-button .ui-button-text { display: block; line-height: 1.4;  }
+.player-ui .ui-button-text-only .ui-button-text { padding: .4em 1em; }
+.player-ui .ui-button-icon-only .ui-button-text, .player-ui .ui-button-icons-only .ui-button-text { padding: .4em; text-indent: -9999999px; }
+.player-ui .ui-button-text-icon-primary .ui-button-text, .player-ui .ui-button-text-icons .ui-button-text { padding: .4em 1em .4em 2.1em; }
+.player-ui .ui-button-text-icon-secondary .ui-button-text, .player-ui .ui-button-text-icons .ui-button-text { padding: .4em 2.1em .4em 1em; }
+.player-ui .ui-button-text-icons .ui-button-text { padding-left: 2.1em; padding-right: 2.1em; }
+/* no icon support for input elements, provide padding by default */
+input.ui-button { padding: .4em 1em; }
+
+/*button icon element(s) */
+.player-ui .ui-button-icon-only .ui-icon, .player-ui .ui-button-text-icon-primary .ui-icon, .player-ui .ui-button-text-icon-secondary .ui-icon, .player-ui .ui-button-text-icons .ui-icon, .player-ui .ui-button-icons-only .ui-icon { position: absolute; top: 50%; margin-top: -8px; }
+.player-ui .ui-button-icon-only .ui-icon { left: 50%; margin-left: -8px; }
+.player-ui .ui-button-text-icon-primary .ui-button-icon-primary, .player-ui .ui-button-text-icons .ui-button-icon-primary, .player-ui .ui-button-icons-only .ui-button-icon-primary { left: .5em; }
+.player-ui .ui-button-text-icon-secondary .ui-button-icon-secondary, .player-ui .ui-button-text-icons .ui-button-icon-secondary, .player-ui .ui-button-icons-only .ui-button-icon-secondary { right: .5em; }
+.player-ui .ui-button-text-icons .ui-button-icon-secondary, .player-ui .ui-button-icons-only .ui-button-icon-secondary { right: .5em; }
+
+/*button sets*/
+.player-ui .ui-buttonset { margin-right: 7px; }
+.player-ui .ui-buttonset .ui-button { margin-left: 0; margin-right: -.3em; }
+
+/* workarounds */
+button.ui-button::-moz-focus-inner { border: 0; padding: 0; } /* reset extra padding in Firefox */
+/*
+ * jQuery UI Dialog 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Dialog#theming
+ */
+.player-ui .ui-dialog { position: absolute; padding: .2em; width: 300px; overflow: hidden; }
+.player-ui .ui-dialog .ui-dialog-titlebar { padding: .4em 1em; position: relative;  }
+.player-ui .ui-dialog .ui-dialog-title { float: left; margin: .1em 16px .1em 0; } 
+.player-ui .ui-dialog .ui-dialog-titlebar-close { position: absolute; right: .3em; top: 50%; width: 19px; margin: -10px 0 0 0; padding: 1px; height: 18px; }
+.player-ui .ui-dialog .ui-dialog-titlebar-close span { display: block; margin: 1px; }
+.player-ui .ui-dialog .ui-dialog-titlebar-close:hover, .player-ui .ui-dialog .ui-dialog-titlebar-close:focus { padding: 0; }
+.player-ui .ui-dialog .ui-dialog-content { position: relative; border: 0; padding: .5em 1em; background: none; overflow: auto; zoom: 1; }
+.player-ui .ui-dialog .ui-dialog-buttonpane { text-align: left; border-width: 1px 0 0 0; background-image: none; margin: .5em 0 0 0; padding: .3em 1em .5em .4em; }
+.player-ui .ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset { float: right; }
+.player-ui .ui-dialog .ui-dialog-buttonpane button { margin: .5em .4em .5em 0; cursor: pointer; }
+.player-ui .ui-dialog .ui-resizable-se { width: 14px; height: 14px; right: 3px; bottom: 3px; }
+.player-ui .ui-draggable .ui-dialog-titlebar { cursor: move; }
+/*
+ * jQuery UI Slider 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Slider#theming
+ */
+.player-ui .ui-slider { position: relative; text-align: left; }
+.player-ui .ui-slider .ui-slider-handle { position: absolute; z-index: 2; width: 1.2em; height: 1.2em; cursor: default; }
+.player-ui .ui-slider .ui-slider-range { position: absolute; z-index: 1; font-size: .7em; display: block; border: 0; background-position: 0 0; }
+
+.player-ui .ui-slider-horizontal { height: .8em; }
+.player-ui .ui-slider-horizontal .ui-slider-handle { top: -.3em; margin-left: -.6em; }
+.player-ui .ui-slider-horizontal .ui-slider-range { top: 0; height: 100%; }
+.player-ui .ui-slider-horizontal .ui-slider-range-min { left: 0; }
+.player-ui .ui-slider-horizontal .ui-slider-range-max { right: 0; }
+
+.player-ui .ui-slider-vertical { width: .8em; height: 100px; }
+.player-ui .ui-slider-vertical .ui-slider-handle { left: -.3em; margin-left: 0; margin-bottom: -.6em; }
+.player-ui .ui-slider-vertical .ui-slider-range { left: 0; width: 100%; }
+.player-ui .ui-slider-vertical .ui-slider-range-min { bottom: 0; }
+.player-ui .ui-slider-vertical .ui-slider-range-max { top: 0; }/*
+ * jQuery UI Tabs 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Tabs#theming
+ */
+.player-ui .ui-tabs { position: relative; padding: .2em; zoom: 1; } /* position: relative prevents IE scroll bug (element with position: relative inside container with overflow: auto appear as "fixed") */
+.player-ui .ui-tabs .ui-tabs-nav { margin: 0; padding: .2em .2em 0; }
+.player-ui .ui-tabs .ui-tabs-nav li { list-style: none; float: left; position: relative; top: 1px; margin: 0 .2em 1px 0; border-bottom: 0 !important; padding: 0; white-space: nowrap; }
+.player-ui .ui-tabs .ui-tabs-nav li a { float: left; padding: .5em 1em; text-decoration: none; }
+.player-ui .ui-tabs .ui-tabs-nav li.ui-tabs-selected { margin-bottom: 0; padding-bottom: 1px; }
+.player-ui .ui-tabs .ui-tabs-nav li.ui-tabs-selected a, .player-ui .ui-tabs .ui-tabs-nav li.ui-state-disabled a, .player-ui .ui-tabs .ui-tabs-nav li.ui-state-processing a { cursor: text; }
+.player-ui .ui-tabs .ui-tabs-nav li a, .player-ui .ui-tabs.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-selected a { cursor: pointer; } /* first selector in group seems obsolete, but required to overcome bug in Opera applying cursor: text overall if defined elsewhere... */
+.player-ui .ui-tabs .ui-tabs-panel { display: block; border-width: 0; padding: 1em 1.4em; background: none; }
+.player-ui .ui-tabs .ui-tabs-hide { display: none !important; }
+/*
+ * jQuery UI Datepicker 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Datepicker#theming
+ */
+.player-ui .ui-datepicker { width: 17em; padding: .2em .2em 0; display: none; }
+.player-ui .ui-datepicker .ui-datepicker-header { position:relative; padding:.2em 0; }
+.player-ui .ui-datepicker .ui-datepicker-prev, .player-ui .ui-datepicker .ui-datepicker-next { position:absolute; top: 2px; width: 1.8em; height: 1.8em; }
+.player-ui .ui-datepicker .ui-datepicker-prev-hover, .player-ui .ui-datepicker .ui-datepicker-next-hover { top: 1px; }
+.player-ui .ui-datepicker .ui-datepicker-prev { left:2px; }
+.player-ui .ui-datepicker .ui-datepicker-next { right:2px; }
+.player-ui .ui-datepicker .ui-datepicker-prev-hover { left:1px; }
+.player-ui .ui-datepicker .ui-datepicker-next-hover { right:1px; }
+.player-ui .ui-datepicker .ui-datepicker-prev span, .player-ui .ui-datepicker .ui-datepicker-next span { display: block; position: absolute; left: 50%; margin-left: -8px; top: 50%; margin-top: -8px;  }
+.player-ui .ui-datepicker .ui-datepicker-title { margin: 0 2.3em; line-height: 1.8em; text-align: center; }
+.player-ui .ui-datepicker .ui-datepicker-title select { font-size:1em; margin:1px 0; }
+.player-ui .ui-datepicker select.ui-datepicker-month-year {width: 100%;}
+.player-ui .ui-datepicker select.ui-datepicker-month, 
+.player-ui .ui-datepicker select.ui-datepicker-year { width: 49%;}
+.player-ui .ui-datepicker table {width: 100%; font-size: .9em; border-collapse: collapse; margin:0 0 .4em; }
+.player-ui .ui-datepicker th { padding: .7em .3em; text-align: center; font-weight: bold; border: 0;  }
+.player-ui .ui-datepicker td { border: 0; padding: 1px; }
+.player-ui .ui-datepicker td span, .player-ui .ui-datepicker td a { display: block; padding: .2em; text-align: right; text-decoration: none; }
+.player-ui .ui-datepicker .ui-datepicker-buttonpane { background-image: none; margin: .7em 0 0 0; padding:0 .2em; border-left: 0; border-right: 0; border-bottom: 0; }
+.player-ui .ui-datepicker .ui-datepicker-buttonpane button { float: right; margin: .5em .2em .4em; cursor: pointer; padding: .2em .6em .3em .6em; width:auto; overflow:visible; }
+.player-ui .ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current { float:left; }
+
+/* with multiple calendars */
+.player-ui .ui-datepicker.ui-datepicker-multi { width:auto; }
+.player-ui .ui-datepicker-multi .ui-datepicker-group { float:left; }
+.player-ui .ui-datepicker-multi .ui-datepicker-group table { width:95%; margin:0 auto .4em; }
+.player-ui .ui-datepicker-multi-2 .ui-datepicker-group { width:50%; }
+.player-ui .ui-datepicker-multi-3 .ui-datepicker-group { width:33.3%; }
+.player-ui .ui-datepicker-multi-4 .ui-datepicker-group { width:25%; }
+.player-ui .ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header { border-left-width:0; }
+.player-ui .ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header { border-left-width:0; }
+.player-ui .ui-datepicker-multi .ui-datepicker-buttonpane { clear:left; }
+.player-ui .ui-datepicker-row-break { clear:both; width:100%; font-size:0em; }
+
+/* RTL support */
+.player-ui .ui-datepicker-rtl { direction: rtl; }
+.player-ui .ui-datepicker-rtl .ui-datepicker-prev { right: 2px; left: auto; }
+.player-ui .ui-datepicker-rtl .ui-datepicker-next { left: 2px; right: auto; }
+.player-ui .ui-datepicker-rtl .ui-datepicker-prev:hover { right: 1px; left: auto; }
+.player-ui .ui-datepicker-rtl .ui-datepicker-next:hover { left: 1px; right: auto; }
+.player-ui .ui-datepicker-rtl .ui-datepicker-buttonpane { clear:right; }
+.player-ui .ui-datepicker-rtl .ui-datepicker-buttonpane button { float: left; }
+.player-ui .ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current { float:right; }
+.player-ui .ui-datepicker-rtl .ui-datepicker-group { float:right; }
+.player-ui .ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header { border-right-width:0; border-left-width:1px; }
+.player-ui .ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header { border-right-width:0; border-left-width:1px; }
+
+/* IE6 IFRAME FIX (taken from datepicker 1.5.3 */
+.player-ui .ui-datepicker-cover {
+    display: none; /*sorry for IE5*/
+    display/**/: block; /*sorry for IE5*/
+    position: absolute; /*must have*/
+    z-index: -1; /*must have*/
+    filter: mask(); /*must have*/
+    top: -4px; /*must have*/
+    left: -4px; /*must have*/
+    width: 200px; /*must have*/
+    height: 200px; /*must have*/
+}/*
+ * jQuery UI Progressbar 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Progressbar#theming
+ */
+.player-ui .ui-progressbar { height:2em; text-align: left; overflow: hidden; }
+.player-ui .ui-progressbar .ui-progressbar-value {margin: -1px; height:100%; }
\ No newline at end of file
diff --git a/public/admin/js/osmplayer/jquery-ui/start/images/ui-bg_flat_55_999999_40x100.png b/public/admin/js/osmplayer/jquery-ui/start/images/ui-bg_flat_55_999999_40x100.png
new file mode 100644
index 0000000000000000000000000000000000000000..6b6de7d5af391fdae847bff6a3c0aea46596dc01
GIT binary patch
literal 180
zcmeAS@N?(olHy`uVBq!ia0vp^8bF-F!3HG1q!d*FscKIb$B>N1x91EQ4=4yQ7#`T)
z7#^)sa^eD?IO|R0&uiqZ<Js?tgs_G>h6adImlC&OVxF{e)AU@RGZ;Kw{an^LB{Ts5
DOb#zJ

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/start/images/ui-bg_flat_75_aaaaaa_40x100.png b/public/admin/js/osmplayer/jquery-ui/start/images/ui-bg_flat_75_aaaaaa_40x100.png
new file mode 100644
index 0000000000000000000000000000000000000000..5b5dab2ab7b1c50dea9cfe73dc5a269a92d2d4b4
GIT binary patch
literal 180
zcmeAS@N?(olHy`uVBq!ia0vp^8bF-F!3HG1q!d*FscKIb$B>N1x91EQ4=4yQ7#`R^
z$vje}<irI&an_s0pV!D+$FtuP31JO&3=I&aE+u|=5A)Hv$*VMh&S3C#^>bP0l+XkK
DSH>_4

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/start/images/ui-bg_glass_45_0078ae_1x400.png b/public/admin/js/osmplayer/jquery-ui/start/images/ui-bg_glass_45_0078ae_1x400.png
new file mode 100644
index 0000000000000000000000000000000000000000..3dac65068c84bd0ecfff5188f540c182fd169cad
GIT binary patch
literal 136
zcmeAS@N?(olHy`uVBq!ia0vp^j6gJjgAK^akKnour2IWy978O6-<~%VY%maDy|{O;
z$__{EHiJg4C=rLrLX14cXJ_ZueT>}xS8Rbs*Zrb7;%o`VYKv9Nn5R#(Fe+GLF>CX#
lM%%gFCi@DOX>^&(9ns}DIA!Y189<{MJYD@<);T3K0RS}&EUW+k

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/start/images/ui-bg_glass_55_f8da4e_1x400.png b/public/admin/js/osmplayer/jquery-ui/start/images/ui-bg_glass_55_f8da4e_1x400.png
new file mode 100644
index 0000000000000000000000000000000000000000..b383704a49d8334bf593fe5acacfe39f93776fb6
GIT binary patch
literal 131
zcmeAS@N?(olHy`uVBq!ia0vp^j6gJjgAK^akKnouq`W*`978O6-=1G6*bu<Oa`EgZ
z=i~b$bV3`r*ko7@e9p`^RqrdFuj+8wWdG7WUPS@1BaH?VJb1!&gp`F01?P21d|&f{
fJAKx&%EwIU|GAqTl6X0RrZRZC`njxgN@xNAF6bx&

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/start/images/ui-bg_glass_75_79c9ec_1x400.png b/public/admin/js/osmplayer/jquery-ui/start/images/ui-bg_glass_75_79c9ec_1x400.png
new file mode 100644
index 0000000000000000000000000000000000000000..d384e425e87199e85d1ecbb34631199473357f01
GIT binary patch
literal 132
zcmeAS@N?(olHy`uVBq!ia0vp^j6gJjgAK^akKnouq`W;{978O6-=5#d+h8EVeDSkt
z;(yT_TG>mMHLzK+IlM6Uw<=GY|5{{$M%R6#>y2zVoZA|l3ncEGnHw#<`@xCLrOmbp
g#_<-xB1fggKfmN$(P5D72{e|$)78&qol`;+01;y>g8%>k

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/start/images/ui-bg_gloss-wave_45_e14f1c_500x100.png b/public/admin/js/osmplayer/jquery-ui/start/images/ui-bg_gloss-wave_45_e14f1c_500x100.png
new file mode 100644
index 0000000000000000000000000000000000000000..b9851ba5d6c20c710571dfd6a67637ce376d456c
GIT binary patch
literal 3649
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

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/start/images/ui-bg_gloss-wave_50_6eac2c_500x100.png b/public/admin/js/osmplayer/jquery-ui/start/images/ui-bg_gloss-wave_50_6eac2c_500x100.png
new file mode 100644
index 0000000000000000000000000000000000000000..76dac56d2c5b0c1b6735bcd6117f3d10a95a50d7
GIT binary patch
literal 4256
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

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/start/images/ui-bg_gloss-wave_75_2191c0_500x100.png b/public/admin/js/osmplayer/jquery-ui/start/images/ui-bg_gloss-wave_75_2191c0_500x100.png
new file mode 100644
index 0000000000000000000000000000000000000000..eeacf69c6ce9581ccbb57643baedf296a87739dc
GIT binary patch
literal 3457
zcmcImc~p~U)_<v1zP2K@iVKL0MYO1ZEJ6_zs)B(*hyyi1BEhnVAp{g;39H|<<AM-M
zH6TkuB@o0AB9Mhp5~wIhLWp5WOu{A*VgivhK#=8&wr9@FnRDj9@1OU+_c_n@yU*|5
z-@SXm4`TGW>E{3d7<qen_yd5!g8o0^f41nq*E*hM=*PXhJx+h0QmP^N;Ku#7-|p=v
z?%np|bHSHieX(m`)Ag@5pQ#!7yxF<*O$#Yh5g`h1C+rZ?DNRR|?<-)1g#7I-Iq4Ur
z@6;+*mM+=m!>*E2FkEkesoO^80B{+2{mK9Uw%q*xbG{pRMVXVGj1~HTNr{zXVrG9(
zi3G+bLwfejR;ze#@i8P<?VMz#Z#CLkobvNRN@C3bc7;CR%`C7z8U-KrXg`1J<(?Te
zQ`yXAO*tW;km+yx(<5Y$)^J^JR6hi?UJ{eK;@dDg_bSb{DK?T0x92RwVxSbpdZc&@
zdLT;vSak=NHQlU0<D6yjy9ldAO+}w+bj+~G!<TPZ&WxreI=X7p5wqpaAlG^IRFRXE
z>DBc0nuug`He#!XI#uZy-V(KS5f?x?*09CH<>pm_7YIr^=UkTNGV^$Y$n<iC^s7_>
zLfakF#U)J_3tWX($pCQE;PP2R0N8UATMa>ew^=`scN6+nANWnJx3&SmaUkZSb6f)F
zIdROrXmZ39TE~NPWpHjqDkemjM0u1uxN?8tuj>clzVN9jtj})`45{XDGbeMn9G(T=
zfW$vx_-6M;=ZCQt;YhlDIK#7{e_=_Ce=0lnB7fqR^C5<7m10osXnpH8xgQZoPx4x!
z*8QM+(2dTlH|6M#y-<tx&eEvze0vfeJ?T#oJ!!~&q<bLy3KbY(JR{!htAynhK&{Cv
zckKIz6@&7?s^L{#=qVFDs%y$?o&U+6<*>aUaF6Ub2>`9Y(?^>CU@KtuFHUPSHz?Y=
zN~KBusb5TKuyOYt4)aV$D1Nc<z8{H3b&fw9rRxrrU6ec5?yTxB6K$_!#W-;gf?~hU
zbJ<mjk-qdv(a`m91w6XYh0K`66Wj`}*pVg4+l@e)oN@(uXU2KN*dqpd&2u8aPL|Rq
z`!(0mrh_O%4*L&Iy`JHH4VTYXj!O(_n(c_{T5_e9s^~r`aWkeeW3_NiY35p0*4#rk
z{pAU5e>~v@mxUGWVSi*v88z1v;a+~W9#0SA9^@c{DZ$aV$*c_X+#RTZNoY@{g5Qf#
zh_c_jxVKyoZ>8&V!eaa5Nm6fF#cMsfIJ1uV!>DeY8x>~~+A}RM^T~55u-f>Wd9hvf
zB{M_f`qrVK`8fr{(Jhp*j(gtMUa^4asgfdeg*Q-5^0CLes&V4o1))@%{CRjzj9avI
zB<_4|4ED;`9vIR+q*JYuVl$r(+2wf@7UAz98}}`L%-J1)s7X_!oFNPB{!BX;Sk6@<
zeWk$nxvd-0);_Z#W5BI|Gizc#26EMe1UQ)1?2%%b$?3uCmI>c95rZ@`w~pr5qLU!@
z0)09-)UxAJ{6{kP`lExh4l*N)G3c?iSfOV+ory{BEUOTq(S5WD=p2<H;FIu&X-36a
zUsT)Vb7RL+wTvKm2Ii8NvOF|$pURlZfmx)uE==54^k%CV2g(Ka?4&6PZF3YAee}vi
z?Lx1*Z|Z~vJmx47zlm1M7)n_)RT)x3esQ-Wl3n9#RCnneJy!+Bv=C&5FG);%d8&Jy
zOm$mR=WX1f-qfepwT6GAW@`pdPgEebjGehQ)Tna8H|e&qRg+5shLX8>6bTY!p~DG<
zPt&6{`A%txh~Jp&i>2aqFS!F-E(^9NnO4l_H~OzL(o?i2e5uANR)sWrGTVu0l`Bgr
zoEv4d%^g5R%O?p9VL{>F7Y`#5Rv_3mr&Aat2b8(g9UQmS^HqDoEh2cHPS-lnDwq9n
zH5?DV_l@S1_kLF}D2?Uy@<r-~N!;4|+I72)nPhN<K4}JA8{$6M8*Qy%&zmzl_*m=R
z@oOQaq-W`wjZ@*KWfo)y-}`aP_}i!>2?P6pk=Vx0w6{t)Z?gWeLa3~KFiPX;O<(J9
z3%D#iIOXJI@#Rz8t8wSZ{@}9l+2msKoOkt-%E?5<=}13`HynxpTK%3w-wJ(9T%N&w
zuzv%89bKYib2CQorv$5iDBEm+n-HaJT1xr7F#s!HWpx=>B?s;zqf(Q#V@`O7IQ7gS
zgOQH#bs=<P?Wz&*^mG$uzPU76w|b*^D5Q7Ap`|7J)sU$aNqBf@Ec#Pm-?Lt<wOsgI
zWAa8hv8>X{uiL~~{H#=%x<nd`oW({@=*G|+8d9%*fBqYda~o@{`av?w+^=_G(ByW%
zvCy%VGgIH!gZv3Bfg}F``aX4=s=6pa=wkz!ZaKBn5U?(&Ea*r&km}mKv3eYD_~wTn
zp~i=2JBt>h+jzoH0!_dPp`+yLNdGu#ZSygo+5JEE?EeOA$0+^BbaK{b;J`%m!1&qg
zz|7cOe67MWrRf~!$;^!(PFrzjvx+RvBn5P?xxqS-X~z@zY*=yw|LM7y5L+J`JHd}#
zRjBxlSw6o=`4|_0TitySxM@+;A$fh0t%Pl9MW*z8`X6fBc>ALeBwXa4Nj$=+iR_gq
zzeE=e5hPP5n3>1Sgn3mAY7234*1R8unpr@B^IqZamZ3TpFIihnxkulxHd779l<jkc
zF~L4{%6u5Ds@oK8T&%C9Ci6XGnPyr2KMPL7I*^0KL)zs#jj~2bdze#Hk*lR{p`Gr`
zU91@sF=$aB*CR<=tX<T@kKzbu+KKmfgdk^_dG&hgyO*CfX(Lg0#)U^G`|)?DrKw!Y
zb&_*YQ~tVOu~SrnJxC7JABk+%Wj=q+eITwG_K~M)N$ZO_n`py}S6@yU4LxMuSeyVg
zEoy5HLtebovbht#e5kI#%!Pd)Ojr7M`l8a9wfxh^I5aG{cj<eP5$;G?gFa=q0)+z~
zTN8JLJ}347;6L<a>5qQJ=be7arq(~p^oHD2?+zHJpZQp&*tP>7w6`(YkMZEE!Jaf`
zW;Jf2V=jxzGMDsSzz;)K3UGFNmEUXxw}`*3{mg7K(WAo|*H0^a=u^Z_KkAXNL*r&w
z;38R^p!HjuM~%W0IpNls%%RG;iWmG99Q_65es!941v5(9=g%vpc9AoSf@0Ji%bMUl
zpc0Vgw?*>M<dUUpSjJoFW?S~tr7n&SMxCaPOy6%%vcgR){u9yu?2o{>)_VAtfj^`0
z@#g<T`-gfq%U`*V`ivDk=?LM=;-OI$1NG7ZEECqHExkC=KReYNF31ztUOh!UpIvAk
z=--m2nWsmt9G8iyVvwwPtm|8~fbo6kJquNw;9N;BEM4eFG1CaU_VBtbsa^cD&+~S=
zyA4|gVV=^x!8jsouMx&v2$e%P?A(dNqiypi)<&1I#twZDa)M)_KhFld+r^hvO)0dL
zIl}#LBjWf`m9!wMViCcY=htBPO#9yCG)4#?0&TYJXotKv#g_V%#xm+yPyXu?&L#Q3
zuIQ?KP~Qjl>t$`+<L;+r^)R_ZM0D_EngU^FePuE{EtW#kTH;xBXa5XAtyU_=)Bk#%
zk>XFRaG)5$IWPp;PD?Ear(SBSzaJll!mqsS`8C(BIz+aI)lM~$@a~=1a$?Q@6xFW+
zT4PVB6Ln(~#q&e5FoylfEmqW?ORNQN48O}04GvD=^YRJ}DR$+V9M=Pky4=ba4J&_X
z*cB<OQRUYBFD3>GNfO+B7YEO&6g#Y~CTFevKGddXV-DmkCA2DjD(lhRWq$i9cz6M5
zmiCB~TgQzX*dgiBFuZ#jTnstja=5J&T9}Qs7D(4QR<?EP`%XuIJrgxWC6Ys=!;bH8
zLB_bQi{j~|TpTmaIc8lbB3R58=ITV7Za`PjSL4F>ZSS3XqibOj&w~U)tM@8@d%H?k
zc?;{gmAK6EPFL0AT2R8gEMg&|eQ^8a@A+)rir_U(k+3Eren^@<U;fEIzsgJR=8A4u
zH*j*kWcLN_V8WVnd`)<jK7SdiwBff@A$Wz#Hnh)s#JmM3LaEJF3en+tLS_tY1GE;U
zTWlvLO`-VF`BMxBXrM>${`!OqNAe~@>Lp>R?6;iK{d*xYEG@T)zYOW(bHa}|AyG+b
zVgt-HuS@VU^;cbeH)c#A^3xD1IA6f%waG(A@3pH3`#?t0CI|))-Q6zQStnfnt<V=V
zI(er~DUI00`-T*!E=qvcpfPGulc+xJbsq^_gUuKx$M(BM2Tacn?-%CL?(O(Q4>Fdp
aVL*6y?dQ$#a|iS;;O*(>QG4d{-~SJ&h4LT(

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/start/images/ui-bg_inset-hard_100_fcfdfd_1x100.png b/public/admin/js/osmplayer/jquery-ui/start/images/ui-bg_inset-hard_100_fcfdfd_1x100.png
new file mode 100644
index 0000000000000000000000000000000000000000..38c38335d0919ceb7b0dd09e88a86be90a966ef3
GIT binary patch
literal 88
zcmeAS@N?(olHy`uVBq!ia0vp^j6j^i!3HGVb)pi0l)R^lV~E7m<R72EzpqzgV`FO*
mbT@c3B{fBc=iOpSMuu`pmi>1R+}Z$C%HZkh=d#Wzp$Pz8A{XNT

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/start/images/ui-icons_0078ae_256x240.png b/public/admin/js/osmplayer/jquery-ui/start/images/ui-icons_0078ae_256x240.png
new file mode 100644
index 0000000000000000000000000000000000000000..5b36315f4b4130cd899894ee9f3bf955a34e3b5c
GIT binary patch
literal 4369
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

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/start/images/ui-icons_056b93_256x240.png b/public/admin/js/osmplayer/jquery-ui/start/images/ui-icons_056b93_256x240.png
new file mode 100644
index 0000000000000000000000000000000000000000..a3db109f6c9cda17371924992b53836cc68efc13
GIT binary patch
literal 4369
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

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/start/images/ui-icons_d8e7f3_256x240.png b/public/admin/js/osmplayer/jquery-ui/start/images/ui-icons_d8e7f3_256x240.png
new file mode 100644
index 0000000000000000000000000000000000000000..ad2dc6f9dbeeabbda9ae6917659b6df07817ec35
GIT binary patch
literal 4369
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

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/start/images/ui-icons_e0fdff_256x240.png b/public/admin/js/osmplayer/jquery-ui/start/images/ui-icons_e0fdff_256x240.png
new file mode 100644
index 0000000000000000000000000000000000000000..8648d5104a3572bb223d96c83365dcaafa000033
GIT binary patch
literal 4369
zcmd^?`8O2)_s3^phOrG}UnfiUEn8(9QW1?MNkxXVDEpFin2{xWrLx5kBC;k~Gm<qS
zlCjL7i8RK}U~J#s@6Y%1S9~7lb?$xLU+y{go_o*h`AV=spXY*!!T<mOmxZ~R9RL9Q
zdj+hrf&W^P#f9C!Zpp^V{_L;A{r{aanBZ0Pw{Ucz9r_YL7=D6<&8F>PmYTG^FX}c%
zl<zAi(m>GE{DS1Q;~I7<vD)$Yj(fd>-6ze&TN@+F-xsI6sd%SwK#*O5K|pDRZqEy<
zJg0Nd8F@!OxqElm`~U#piM22@u@8B<<ecI*S<egUH7}csd8!)jLBD2s`p(8v&--KE
z71^q9MglFywkSt_5FCr2F%o&UR(5j7-O>moyKE%ct`B(jysxK+1m?G)UyIFs1t0}L
zemGR&?jGaM1YQblj?v&@0iXS#fi-VbR9zLEnHLP?xQ|=%Ihrc7^yPWR!tW$yH!zrw
z#I2}_!JnT^(qk)VgJr`NGdPtT^dmQIZc%=6nTAyJDXk+^3}wUOilJuwq>s=T_!9V)
zr1)DT6VQ2~rgd@!Jlrte3}}m~j}juCS`J4(d-5+e-3@EzzTJNCE2z)w(kJ90z*QE)
zBtnV@4mM>jTrZZ*$01SnGov0&=A-JrX5Ge%Pce1Vj}=5YQqBD^W@n4KmFxxpFK`uH
zP;(xKV+6VJ2|g+?_Lct7`uElL<&jzGS8Gfva2+=8A@#V+xsAj9|Dkg)vL5yhX@~B=
zN2KZSAUD%QH`x>H+@Ou(D1~Pyv#0nc&$!1kI?IO01yw3jD0@80qvc?T*Nr8?-%rC8
z@5$|WY?Hqp`ixmEkzeJTz_`_<!oE0dsO`po1=$i_1k<Um_}caMZcrpqA*x-}Rw(fX
z3Qyh8;-4^Fe)UICI@ayzmyV?48GbR;1*s>wsSRi1%Zivd`#+T{Aib6-rf$}M8sz6v
zb6ERbr-SniO2wbOv!M4)nb}6UVzoVZEh5kQWh_5x4rYy3<sHrHJLqL+DcLT5`t$L@
z5_J8#H;PWO1GW@oId1Y>c!871NeaM(_p=4(kbS6U#x<*k8Wg^KHs2ttCz<+pBxQ$Z
zQMv;kVm5_fF_vH`Mzrq$Y&6u?j6~f<juy`C^I0O`4mfXK0lrRY*VoeJX&k$9aL;Hl
zlp63sf~-1z_419)A8^j|LeQSmK&T8R7nA=Ki3^H;YaeL&hF6>tIV0Yg)Nw7JysIN_
z-_n*K_v1c&D}-1{NbBwS2h#m1y0a5RiEcYil+58$8IDh49bPnzE7R8In6P%V{2IZU
z7#clr=V4<zT-gP2u}DD>yyrRe@oXNqbqo^^LvlLE?%8XaI&N(Np90-psU}7kqmbWk
zZ;YBwJNnNs<m6GqjV2(cCX2e+#tSOgIGm~J&Djknhy!e`&p)NTq>$~d!mx9oMGyT(
znaBoj0d}gpQ^aRr?6nW)$4god*`@Uh2e+YpS@0(Mw{|z|6ko3NbTvDiCu3YO+)egL
z>uW(^ahKFj>iJ-JF!^KhKQyPTznJa;xyHYwxJgr16&Wid_9)-%*mEwo{B_|M9t@S1
zf@T@q?b2Qgl!~_(Roe;fdK)y|XG0;ls;ZbT)w-aOVttk#daQcY7$cpY496H*`m@+L
zeP#$&yRbBjFWv}B)|5-1v=(66M_;V1SWv6MHnO}}1=vby&9l+gaP?|pXwp0AFDe#L
z&MRJ^*qX6wgxhA_`*o=LGZ>G_NTX%AKHPz4bO^R72ZYK}ale3lffDgM8H!Wrw{B7A
z{?c_|dh2J*y<H{`M3l!HEtOc{;H{lJx}(C|*lvPQ+RAcV`>8b04c37OmqUw;#;G<*
z@nz@dV`;7&^$)e!B}cd5tl<nF(??uM#|`*5pIKe!DEUl5-&9M=s_3Yn@-P(czyPQ~
zTU3I3bk%z<*w;9V(oQvt^2H`kBAW;=2oA<L1<qVIK(Z{Hk@5&E&_2mS+|}+?g@FBu
zK+e=OWg<)e?RO;llNw00>0{g(Q>5_7H^@bEJi7;fQ4B$NGZerH#Ae1#8WDTH`iB&)
zC6Et3BYY#mcJxh&)b2C^{aLq~psFN)Q1SucCaBaBUr%5PYX{~-q{KGEh)*;n;?75k
z=hq%i^I}rd;z-#YyI`8-OfMpWz5kgJE3<X7ptj0dmPk5UrEf%nVD%<Giiw4wVh!K0
zFjy-VAnpOFJIDm=jqqahP0Wam<9qv4UMIazx8J<YJz>I!3ean6=UZi!BxG7i(YBk?
z02HM7wS0)Wni{dWbQMRtd-A)_Az!t>F;IwWf~!*)-Az4}yryNkz&9)w>ElA80Oc`6
zHo#9H!Y3*Qx9n@Jn)!w6G^hb;e_n8zpIyXCN`JFkPc)^Q?2MsLNFhMgrcZI-<#1ne
zjH;KFf?4eAT9<t<iUSC5BsF-<$q+H@@j%Yk>mQZ}ZfHLGA#d%s;SZK4p0FwZT2S^{
zQ2BG1xJsbK6?yrHTjJi|5C0u=!|r!?*4FL%y%3q#(d+e>b_2I9!*iI!30}42Ia0bq
zUf`Z?LGSEvtz8s``Tg5o_CP(FbR0X$FlE0yCnB7su<mcL>DPmI2=yOg^*2#cY9o`X
z;NY-3VBHZjnVcGS){GZ98{e+l<X|f4%S*+x526SE1mJ%6M<Nt*!}czEQf{?H1U0br
z^Y7cXNxH@=Ve^#j3H@BPU>q~O$u6pEcgd0CrnIsWffN1MbCZDH<7c^hv+Z0Ucf0{w
zSzi^qKuUHD9Dgp0EAGg@@$zr32dQx>N=ws`MESEsmzgT2&L;?MSTo&ky&!-JR3g~1
zPGTt515X)wr+Bx(G9lWd;@Y3^Vl}50Wb&6-Tiy;HPS0drF`rC}qYq22K4)G#AoD0X
zYw$E+Bz@Zr^50MAwu@$?%f9$r4WHH?*2|67&FXFhXBrVFGmg)6?h3^-1?t;UzH0*I
zNVf9wQLNLnG2@q>6CGm>&y|lC`iCFfYd}9i%+xkl^5oBJ?<;aneCfcHqJh7Yl5uLS
z9Fx-(kMdcNyZejXh22N{mCw_rX1O!cOE&3>e(ZH81PR95wQC37En4O{w;{3q9n1<A
zPC{;HRD3#A!@Lk)+k!~onQ0|-U%#uGd$&L?ZhNC&R)V(mb`NhUqrYysoMQ;Z)sq!y
zW_WwV!+jO*nGT8-Hx_JVmFK^=>t&;p)D%&Z%Nw$gSPa!nz8Slh7=ko2am)XARwOWw
zpsz0~K!s{(dM$NB=(A=kkp>T(*yU6<_dwIx>cH4+LWl282hXa6-EUq>R3t?G2623<
z*RwTN%-fgBmD{fu*ejNn)1@KG?Sg<bw3hQ~jCP9_dLp#J9Fi#nX3wGv<cLwQ;8x0`
zA<%pA%E0S;<5FJhw8e#?n&IA5g19Fv!v7YC%Gxqd<x1=+hht1t>*8z3hYtkQJQjB6
zQ|x>wA=o$=O)+nLmgTXW3<g>_6diA;b4EY{*i<HxX2Q~PA|R-tJ=V1~4KO3h7H~CG
ztNFL#J=a@4Q5K7Ogvj-+3N_IJUjc}x34}a7@bDE3!)Kj4s7ME<v)`yP${V~G_J@6l
zp{&i)CGxx1)X`lnwc}#g;g<(rA1#7Ez8@J}tuMD3bB{Wifbe~LWT0zYNjgb_qn|+G
z2TCDZw1rV|wPx@~-H8<4^MGxfR0aLq+_k+{JT<mckxWLsw*J%G%YH0>*R%6dO2EMg
z@6g?M3rpbnfB@hOdUeb9<OD{Zt&T^7p>6=~I?OIA3@BWAGmTwiQ{x5Cqq<8c10L!P
zd@Qk^BseTX%$Q7^s}5n%HB|)gKx}H$d8Sb$bBnq9-AglT2dGR2(+I;_fL|R4p$odJ
zllfb0NqI)7=^z~qAm1V{(PkpxXsQ#4*NH9yYZ`Vf@)?#ueGgtCmGGY|9U#v|hRdg-
zQ%0#cGIfXCd{Y)JB~qykO;KPvHu|5Ck&(Hn%DF~cct@}j+87xhs2ew;fLm5#2+mb|
z8{9e*YI(u|gt|{x1G+U=DA3y)9s2w7@cvQ($ZJIA)x$e~5_3L<r=v~@?aZ+642@!3
z&nTpp8p^rR@IEsq`uhzfD&i>KFV~ASci8W}jF&VeJoPDUy(BB>ExJpck;%;!`0AAo
zAcHgcnT8%OX&UW_n|%{2B|<6Wp2MMGvd5`T2KKv;ltt_~H+w00x6+SlAD`{K4!9zx
z*1?EpQ%Lwiik){3n{-+YNrT;fH_niD_Ng9|58@m8RsKFVF!6pk@qxa{BH-&8tsim0
zdAQ(GyC^9ane7_KW*#^vMIoeQdpJqmPp%%px3GIftbwESu#+vPyI*YTuJ6+4`z{s?
zpkv~0x4c_PFH`-tqafw5)>4AuQ78SkZ!$8}INLK;Egr;2tS18hEO5=t;QDmZ-qu?I
zG+=DN`nR72Xto{{bJp||`k}-2G;5#xg8E~xgz22)^_Z;=K|4@(E&5J)SY2of=olcw
z5)@L)_Ntcm!*5nEy0M9v0`S33;pO4T<mv%0Rx6?c2H~TA%zOO^T2$@D<Cut3{ae}|
zAT@Uzc>N;>4(Z+<j5j2DQ*r;U|6a;YfP1jST$I3mSn3aNn!?<=B-XkzG?hQH;@bu%
zmFYDDgbC%Wt{6LBrs%88L}deF9pse}dmIp4lmp@Tir9q)JKESa=h>19p_0>u#e-vE
zXCU(6gAvu~I7Cw(xd%0e59MNLw^U37ZDbsBrj%eDCexw8a3G`nTcXVNL6{B7Hj@i&
zbVB{;ApEtHk76q08DJ48dSxd$C(;$K6=FpU<~l9pVoT9arW^Vu{%Bcn4`eIpkOVC|
z$)AKYG_`ypM{0@BUb3^9lqi_c?ONH|4UJMJWDowMVjacycX7}9g={O7swOB+{;+?;
zjBo!9?+nd)ie#x5IbFW-zBOo0c4q@9wGVt5;pNt`=-~Zgcw#*`m($6ibxtZ`H=e=}
zF#GZ~5$%AUn};8U#tRem0J(JTR}<qii}wxmUzVwVIg2$uE2;GN{hhT&GE1i;_fi(_
z9KKXP)ds1Q)XnUhr?uXO-HbKE%5f%+-C>d4vR(dgK2ML~lZsPhayJ2h1%sD4FVst|
zKF)+@`iNzLRjg4=K8@**0=5cE>%?FDc({I^+g9USk<8$&^qD~@%W0i4b|yMG*p4`N
zh}I!ltTRI8Ex$+@V{02Br%xq#O?UlhO{r8WsaZnZCZq0MK9%AXU%MDLT;3=0A9(BV
z9VxxxJd7jo$hw3q;3o?yBLmA=azBUrd9>-<_ANs0n3?-Ic*6&ytb@H~?0E(*d>T5n
z-HiH2jsDf6uWhID%#n>SzOqrFCPDfUcu5QPd?<(=w6pv1BE#nsxS{n!UnC9qAha1<
z;3cpZ9A-e$+Y)%b;w@!!YRA9p%Kf9IHGGg^{+p`mh;q8i7}&e@V3EQaMsItEMS&=X
plT@$;k0WcB_jb;cn%_Idz4HO$QU*abf4}+wi?e96N>fbq{{dLM#J>Ol

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/start/images/ui-icons_f5e175_256x240.png b/public/admin/js/osmplayer/jquery-ui/start/images/ui-icons_f5e175_256x240.png
new file mode 100644
index 0000000000000000000000000000000000000000..eda3b8a0514d7da24d66891245b17f0d2fca3d1b
GIT binary patch
literal 4369
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

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/start/images/ui-icons_f7a50d_256x240.png b/public/admin/js/osmplayer/jquery-ui/start/images/ui-icons_f7a50d_256x240.png
new file mode 100644
index 0000000000000000000000000000000000000000..401cac8370b0b88b255a352c0320f804f647f9c4
GIT binary patch
literal 4369
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

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/start/images/ui-icons_fcd113_256x240.png b/public/admin/js/osmplayer/jquery-ui/start/images/ui-icons_fcd113_256x240.png
new file mode 100644
index 0000000000000000000000000000000000000000..26ab2933c84cb5fc5925b3327388fe32c05310d2
GIT binary patch
literal 4369
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

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/start/jquery-ui-1.8.18.custom.css b/public/admin/js/osmplayer/jquery-ui/start/jquery-ui-1.8.18.custom.css
new file mode 100644
index 00000000000..99f9a68d274
--- /dev/null
+++ b/public/admin/js/osmplayer/jquery-ui/start/jquery-ui-1.8.18.custom.css
@@ -0,0 +1,565 @@
+/*
+ * jQuery UI CSS Framework 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Theming/API
+ */
+
+/* Layout helpers
+----------------------------------*/
+.player-ui .ui-helper-hidden { display: none; }
+.player-ui .ui-helper-hidden-accessible { position: absolute !important; clip: rect(1px 1px 1px 1px); clip: rect(1px,1px,1px,1px); }
+.player-ui .ui-helper-reset { margin: 0; padding: 0; border: 0; outline: 0; line-height: 1.3; text-decoration: none; font-size: 100%; list-style: none; }
+.player-ui .ui-helper-clearfix:before, .player-ui .ui-helper-clearfix:after { content: ""; display: table; }
+.player-ui .ui-helper-clearfix:after { clear: both; }
+.player-ui .ui-helper-clearfix { zoom: 1; }
+.player-ui .ui-helper-zfix { width: 100%; height: 100%; top: 0; left: 0; position: absolute; opacity: 0; filter:Alpha(Opacity=0); }
+
+
+/* Interaction Cues
+----------------------------------*/
+.player-ui .ui-state-disabled { cursor: default !important; }
+
+
+/* Icons
+----------------------------------*/
+
+/* states and images */
+.player-ui .ui-icon { display: block; text-indent: -99999px; overflow: hidden; background-repeat: no-repeat; }
+
+
+/* Misc visuals
+----------------------------------*/
+
+/* Overlays */
+.player-ui .ui-widget-overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }
+
+
+/*
+ * jQuery UI CSS Framework 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Theming/API
+ *
+ * To view and modify this theme, visit http://jqueryui.com/themeroller/?ffDefault=Verdana,Arial,sans-serif&fwDefault=normal&fsDefault=1.1em&cornerRadius=5px&bgColorHeader=2191c0&bgTextureHeader=12_gloss_wave.png&bgImgOpacityHeader=75&borderColorHeader=4297d7&fcHeader=eaf5f7&iconColorHeader=d8e7f3&bgColorContent=fcfdfd&bgTextureContent=06_inset_hard.png&bgImgOpacityContent=100&borderColorContent=a6c9e2&fcContent=222222&iconColorContent=0078ae&bgColorDefault=0078ae&bgTextureDefault=02_glass.png&bgImgOpacityDefault=45&borderColorDefault=77d5f7&fcDefault=ffffff&iconColorDefault=e0fdff&bgColorHover=79c9ec&bgTextureHover=02_glass.png&bgImgOpacityHover=75&borderColorHover=448dae&fcHover=026890&iconColorHover=056b93&bgColorActive=6eac2c&bgTextureActive=12_gloss_wave.png&bgImgOpacityActive=50&borderColorActive=acdd4a&fcActive=ffffff&iconColorActive=f5e175&bgColorHighlight=f8da4e&bgTextureHighlight=02_glass.png&bgImgOpacityHighlight=55&borderColorHighlight=fcd113&fcHighlight=915608&iconColorHighlight=f7a50d&bgColorError=e14f1c&bgTextureError=12_gloss_wave.png&bgImgOpacityError=45&borderColorError=cd0a0a&fcError=ffffff&iconColorError=fcd113&bgColorOverlay=aaaaaa&bgTextureOverlay=01_flat.png&bgImgOpacityOverlay=75&opacityOverlay=30&bgColorShadow=999999&bgTextureShadow=01_flat.png&bgImgOpacityShadow=55&opacityShadow=45&thicknessShadow=0px&offsetTopShadow=5px&offsetLeftShadow=5px&cornerRadiusShadow=5px
+ */
+
+
+/* Component containers
+----------------------------------*/
+.player-ui .ui-widget { font-family: Verdana,Arial,sans-serif; font-size: 1.1em; }
+.player-ui .ui-widget .ui-widget { font-size: 1em; }
+.player-ui .ui-widget input, .player-ui .ui-widget select, .player-ui .ui-widget textarea, .player-ui .ui-widget button { font-family: Verdana,Arial,sans-serif; font-size: 1em; }
+.player-ui .ui-widget-content { border: 1px solid #a6c9e2; background: #fcfdfd url(images/ui-bg_inset-hard_100_fcfdfd_1x100.png) 50% bottom repeat-x; color: #222222; }
+.player-ui .ui-widget-content a { color: #222222; }
+.player-ui .ui-widget-header { border: 1px solid #4297d7; background: #2191c0 url(images/ui-bg_gloss-wave_75_2191c0_500x100.png) 50% 50% repeat-x; color: #eaf5f7; font-weight: bold; }
+.player-ui .ui-widget-header a { color: #eaf5f7; }
+
+/* Interaction states
+----------------------------------*/
+.player-ui .ui-state-default, .player-ui .ui-widget-content .ui-state-default, .player-ui .ui-widget-header .ui-state-default { border: 1px solid #77d5f7; background: #0078ae url(images/ui-bg_glass_45_0078ae_1x400.png) 50% 50% repeat-x; font-weight: normal; color: #ffffff; }
+.player-ui .ui-state-default a, .player-ui .ui-state-default a:link, .player-ui .ui-state-default a:visited { color: #ffffff; text-decoration: none; }
+.player-ui .ui-state-hover, .player-ui .ui-widget-content .ui-state-hover, .player-ui .ui-widget-header .ui-state-hover, .player-ui .ui-state-focus, .player-ui .ui-widget-content .ui-state-focus, .player-ui .ui-widget-header .ui-state-focus { border: 1px solid #448dae; background: #79c9ec url(images/ui-bg_glass_75_79c9ec_1x400.png) 50% 50% repeat-x; font-weight: normal; color: #026890; }
+.player-ui .ui-state-hover a, .player-ui .ui-state-hover a:hover { color: #026890; text-decoration: none; }
+.player-ui .ui-state-active, .player-ui .ui-widget-content .ui-state-active, .player-ui .ui-widget-header .ui-state-active { border: 1px solid #acdd4a; background: #6eac2c url(images/ui-bg_gloss-wave_50_6eac2c_500x100.png) 50% 50% repeat-x; font-weight: normal; color: #ffffff; }
+.player-ui .ui-state-active a, .player-ui .ui-state-active a:link, .player-ui .ui-state-active a:visited { color: #ffffff; text-decoration: none; }
+.player-ui .ui-widget :active { outline: none; }
+
+/* Interaction Cues
+----------------------------------*/
+.player-ui .ui-state-highlight, .player-ui .ui-widget-content .ui-state-highlight, .player-ui .ui-widget-header .ui-state-highlight  {border: 1px solid #fcd113; background: #f8da4e url(images/ui-bg_glass_55_f8da4e_1x400.png) 50% 50% repeat-x; color: #915608; }
+.player-ui .ui-state-highlight a, .player-ui .ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a { color: #915608; }
+.player-ui .ui-state-error, .player-ui .ui-widget-content .ui-state-error, .player-ui .ui-widget-header .ui-state-error {border: 1px solid #cd0a0a; background: #e14f1c url(images/ui-bg_gloss-wave_45_e14f1c_500x100.png) 50% top repeat-x; color: #ffffff; }
+.player-ui .ui-state-error a, .player-ui .ui-widget-content .ui-state-error a, .player-ui .ui-widget-header .ui-state-error a { color: #ffffff; }
+.player-ui .ui-state-error-text, .player-ui .ui-widget-content .ui-state-error-text, .player-ui .ui-widget-header .ui-state-error-text { color: #ffffff; }
+.player-ui .ui-priority-primary, .player-ui .ui-widget-content .ui-priority-primary, .player-ui .ui-widget-header .ui-priority-primary { font-weight: bold; }
+.player-ui .ui-priority-secondary, .player-ui .ui-widget-content .ui-priority-secondary,  .ui-widget-header .ui-priority-secondary { opacity: .7; filter:Alpha(Opacity=70); font-weight: normal; }
+.player-ui .ui-state-disabled, .player-ui .ui-widget-content .ui-state-disabled, .player-ui .ui-widget-header .ui-state-disabled { opacity: .35; filter:Alpha(Opacity=35); background-image: none; }
+
+/* Icons
+----------------------------------*/
+
+/* states and images */
+.player-ui .ui-icon { width: 16px; height: 16px; background-image: url(images/ui-icons_0078ae_256x240.png); }
+.player-ui .ui-widget-content .ui-icon {background-image: url(images/ui-icons_0078ae_256x240.png); }
+.player-ui .ui-widget-header .ui-icon {background-image: url(images/ui-icons_d8e7f3_256x240.png); }
+.player-ui .ui-state-default .ui-icon { background-image: url(images/ui-icons_e0fdff_256x240.png); }
+.player-ui .ui-state-hover .ui-icon, .player-ui .ui-state-focus .ui-icon {background-image: url(images/ui-icons_056b93_256x240.png); }
+.player-ui .ui-state-active .ui-icon {background-image: url(images/ui-icons_f5e175_256x240.png); }
+.player-ui .ui-state-highlight .ui-icon {background-image: url(images/ui-icons_f7a50d_256x240.png); }
+.player-ui .ui-state-error .ui-icon, .player-ui .ui-state-error-text .ui-icon {background-image: url(images/ui-icons_fcd113_256x240.png); }
+
+/* positioning */
+.player-ui .ui-icon-carat-1-n { background-position: 0 0; }
+.player-ui .ui-icon-carat-1-ne { background-position: -16px 0; }
+.player-ui .ui-icon-carat-1-e { background-position: -32px 0; }
+.player-ui .ui-icon-carat-1-se { background-position: -48px 0; }
+.player-ui .ui-icon-carat-1-s { background-position: -64px 0; }
+.player-ui .ui-icon-carat-1-sw { background-position: -80px 0; }
+.player-ui .ui-icon-carat-1-w { background-position: -96px 0; }
+.player-ui .ui-icon-carat-1-nw { background-position: -112px 0; }
+.player-ui .ui-icon-carat-2-n-s { background-position: -128px 0; }
+.player-ui .ui-icon-carat-2-e-w { background-position: -144px 0; }
+.player-ui .ui-icon-triangle-1-n { background-position: 0 -16px; }
+.player-ui .ui-icon-triangle-1-ne { background-position: -16px -16px; }
+.player-ui .ui-icon-triangle-1-e { background-position: -32px -16px; }
+.player-ui .ui-icon-triangle-1-se { background-position: -48px -16px; }
+.player-ui .ui-icon-triangle-1-s { background-position: -64px -16px; }
+.player-ui .ui-icon-triangle-1-sw { background-position: -80px -16px; }
+.player-ui .ui-icon-triangle-1-w { background-position: -96px -16px; }
+.player-ui .ui-icon-triangle-1-nw { background-position: -112px -16px; }
+.player-ui .ui-icon-triangle-2-n-s { background-position: -128px -16px; }
+.player-ui .ui-icon-triangle-2-e-w { background-position: -144px -16px; }
+.player-ui .ui-icon-arrow-1-n { background-position: 0 -32px; }
+.player-ui .ui-icon-arrow-1-ne { background-position: -16px -32px; }
+.player-ui .ui-icon-arrow-1-e { background-position: -32px -32px; }
+.player-ui .ui-icon-arrow-1-se { background-position: -48px -32px; }
+.player-ui .ui-icon-arrow-1-s { background-position: -64px -32px; }
+.player-ui .ui-icon-arrow-1-sw { background-position: -80px -32px; }
+.player-ui .ui-icon-arrow-1-w { background-position: -96px -32px; }
+.player-ui .ui-icon-arrow-1-nw { background-position: -112px -32px; }
+.player-ui .ui-icon-arrow-2-n-s { background-position: -128px -32px; }
+.player-ui .ui-icon-arrow-2-ne-sw { background-position: -144px -32px; }
+.player-ui .ui-icon-arrow-2-e-w { background-position: -160px -32px; }
+.player-ui .ui-icon-arrow-2-se-nw { background-position: -176px -32px; }
+.player-ui .ui-icon-arrowstop-1-n { background-position: -192px -32px; }
+.player-ui .ui-icon-arrowstop-1-e { background-position: -208px -32px; }
+.player-ui .ui-icon-arrowstop-1-s { background-position: -224px -32px; }
+.player-ui .ui-icon-arrowstop-1-w { background-position: -240px -32px; }
+.player-ui .ui-icon-arrowthick-1-n { background-position: 0 -48px; }
+.player-ui .ui-icon-arrowthick-1-ne { background-position: -16px -48px; }
+.player-ui .ui-icon-arrowthick-1-e { background-position: -32px -48px; }
+.player-ui .ui-icon-arrowthick-1-se { background-position: -48px -48px; }
+.player-ui .ui-icon-arrowthick-1-s { background-position: -64px -48px; }
+.player-ui .ui-icon-arrowthick-1-sw { background-position: -80px -48px; }
+.player-ui .ui-icon-arrowthick-1-w { background-position: -96px -48px; }
+.player-ui .ui-icon-arrowthick-1-nw { background-position: -112px -48px; }
+.player-ui .ui-icon-arrowthick-2-n-s { background-position: -128px -48px; }
+.player-ui .ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px; }
+.player-ui .ui-icon-arrowthick-2-e-w { background-position: -160px -48px; }
+.player-ui .ui-icon-arrowthick-2-se-nw { background-position: -176px -48px; }
+.player-ui .ui-icon-arrowthickstop-1-n { background-position: -192px -48px; }
+.player-ui .ui-icon-arrowthickstop-1-e { background-position: -208px -48px; }
+.player-ui .ui-icon-arrowthickstop-1-s { background-position: -224px -48px; }
+.player-ui .ui-icon-arrowthickstop-1-w { background-position: -240px -48px; }
+.player-ui .ui-icon-arrowreturnthick-1-w { background-position: 0 -64px; }
+.player-ui .ui-icon-arrowreturnthick-1-n { background-position: -16px -64px; }
+.player-ui .ui-icon-arrowreturnthick-1-e { background-position: -32px -64px; }
+.player-ui .ui-icon-arrowreturnthick-1-s { background-position: -48px -64px; }
+.player-ui .ui-icon-arrowreturn-1-w { background-position: -64px -64px; }
+.player-ui .ui-icon-arrowreturn-1-n { background-position: -80px -64px; }
+.player-ui .ui-icon-arrowreturn-1-e { background-position: -96px -64px; }
+.player-ui .ui-icon-arrowreturn-1-s { background-position: -112px -64px; }
+.player-ui .ui-icon-arrowrefresh-1-w { background-position: -128px -64px; }
+.player-ui .ui-icon-arrowrefresh-1-n { background-position: -144px -64px; }
+.player-ui .ui-icon-arrowrefresh-1-e { background-position: -160px -64px; }
+.player-ui .ui-icon-arrowrefresh-1-s { background-position: -176px -64px; }
+.player-ui .ui-icon-arrow-4 { background-position: 0 -80px; }
+.player-ui .ui-icon-arrow-4-diag { background-position: -16px -80px; }
+.player-ui .ui-icon-extlink { background-position: -32px -80px; }
+.player-ui .ui-icon-newwin { background-position: -48px -80px; }
+.player-ui .ui-icon-refresh { background-position: -64px -80px; }
+.player-ui .ui-icon-shuffle { background-position: -80px -80px; }
+.player-ui .ui-icon-transfer-e-w { background-position: -96px -80px; }
+.player-ui .ui-icon-transferthick-e-w { background-position: -112px -80px; }
+.player-ui .ui-icon-folder-collapsed { background-position: 0 -96px; }
+.player-ui .ui-icon-folder-open { background-position: -16px -96px; }
+.player-ui .ui-icon-document { background-position: -32px -96px; }
+.player-ui .ui-icon-document-b { background-position: -48px -96px; }
+.player-ui .ui-icon-note { background-position: -64px -96px; }
+.player-ui .ui-icon-mail-closed { background-position: -80px -96px; }
+.player-ui .ui-icon-mail-open { background-position: -96px -96px; }
+.player-ui .ui-icon-suitcase { background-position: -112px -96px; }
+.player-ui .ui-icon-comment { background-position: -128px -96px; }
+.player-ui .ui-icon-person { background-position: -144px -96px; }
+.player-ui .ui-icon-print { background-position: -160px -96px; }
+.player-ui .ui-icon-trash { background-position: -176px -96px; }
+.player-ui .ui-icon-locked { background-position: -192px -96px; }
+.player-ui .ui-icon-unlocked { background-position: -208px -96px; }
+.player-ui .ui-icon-bookmark { background-position: -224px -96px; }
+.player-ui .ui-icon-tag { background-position: -240px -96px; }
+.player-ui .ui-icon-home { background-position: 0 -112px; }
+.player-ui .ui-icon-flag { background-position: -16px -112px; }
+.player-ui .ui-icon-calendar { background-position: -32px -112px; }
+.player-ui .ui-icon-cart { background-position: -48px -112px; }
+.player-ui .ui-icon-pencil { background-position: -64px -112px; }
+.player-ui .ui-icon-clock { background-position: -80px -112px; }
+.player-ui .ui-icon-disk { background-position: -96px -112px; }
+.player-ui .ui-icon-calculator { background-position: -112px -112px; }
+.player-ui .ui-icon-zoomin { background-position: -128px -112px; }
+.player-ui .ui-icon-zoomout { background-position: -144px -112px; }
+.player-ui .ui-icon-search { background-position: -160px -112px; }
+.player-ui .ui-icon-wrench { background-position: -176px -112px; }
+.player-ui .ui-icon-gear { background-position: -192px -112px; }
+.player-ui .ui-icon-heart { background-position: -208px -112px; }
+.player-ui .ui-icon-star { background-position: -224px -112px; }
+.player-ui .ui-icon-link { background-position: -240px -112px; }
+.player-ui .ui-icon-cancel { background-position: 0 -128px; }
+.player-ui .ui-icon-plus { background-position: -16px -128px; }
+.player-ui .ui-icon-plusthick { background-position: -32px -128px; }
+.player-ui .ui-icon-minus { background-position: -48px -128px; }
+.player-ui .ui-icon-minusthick { background-position: -64px -128px; }
+.player-ui .ui-icon-close { background-position: -80px -128px; }
+.player-ui .ui-icon-closethick { background-position: -96px -128px; }
+.player-ui .ui-icon-key { background-position: -112px -128px; }
+.player-ui .ui-icon-lightbulb { background-position: -128px -128px; }
+.player-ui .ui-icon-scissors { background-position: -144px -128px; }
+.player-ui .ui-icon-clipboard { background-position: -160px -128px; }
+.player-ui .ui-icon-copy { background-position: -176px -128px; }
+.player-ui .ui-icon-contact { background-position: -192px -128px; }
+.player-ui .ui-icon-image { background-position: -208px -128px; }
+.player-ui .ui-icon-video { background-position: -224px -128px; }
+.player-ui .ui-icon-script { background-position: -240px -128px; }
+.player-ui .ui-icon-alert { background-position: 0 -144px; }
+.player-ui .ui-icon-info { background-position: -16px -144px; }
+.player-ui .ui-icon-notice { background-position: -32px -144px; }
+.player-ui .ui-icon-help { background-position: -48px -144px; }
+.player-ui .ui-icon-check { background-position: -64px -144px; }
+.player-ui .ui-icon-bullet { background-position: -80px -144px; }
+.player-ui .ui-icon-radio-off { background-position: -96px -144px; }
+.player-ui .ui-icon-radio-on { background-position: -112px -144px; }
+.player-ui .ui-icon-pin-w { background-position: -128px -144px; }
+.player-ui .ui-icon-pin-s { background-position: -144px -144px; }
+.player-ui .ui-icon-play { background-position: 0 -160px; }
+.player-ui .ui-icon-pause { background-position: -16px -160px; }
+.player-ui .ui-icon-seek-next { background-position: -32px -160px; }
+.player-ui .ui-icon-seek-prev { background-position: -48px -160px; }
+.player-ui .ui-icon-seek-end { background-position: -64px -160px; }
+.player-ui .ui-icon-seek-start { background-position: -80px -160px; }
+/* ui-icon-seek-first is deprecated, use ui-icon-seek-start instead */
+.player-ui .ui-icon-seek-first { background-position: -80px -160px; }
+.player-ui .ui-icon-stop { background-position: -96px -160px; }
+.player-ui .ui-icon-eject { background-position: -112px -160px; }
+.player-ui .ui-icon-volume-off { background-position: -128px -160px; }
+.player-ui .ui-icon-volume-on { background-position: -144px -160px; }
+.player-ui .ui-icon-power { background-position: 0 -176px; }
+.player-ui .ui-icon-signal-diag { background-position: -16px -176px; }
+.player-ui .ui-icon-signal { background-position: -32px -176px; }
+.player-ui .ui-icon-battery-0 { background-position: -48px -176px; }
+.player-ui .ui-icon-battery-1 { background-position: -64px -176px; }
+.player-ui .ui-icon-battery-2 { background-position: -80px -176px; }
+.player-ui .ui-icon-battery-3 { background-position: -96px -176px; }
+.player-ui .ui-icon-circle-plus { background-position: 0 -192px; }
+.player-ui .ui-icon-circle-minus { background-position: -16px -192px; }
+.player-ui .ui-icon-circle-close { background-position: -32px -192px; }
+.player-ui .ui-icon-circle-triangle-e { background-position: -48px -192px; }
+.player-ui .ui-icon-circle-triangle-s { background-position: -64px -192px; }
+.player-ui .ui-icon-circle-triangle-w { background-position: -80px -192px; }
+.player-ui .ui-icon-circle-triangle-n { background-position: -96px -192px; }
+.player-ui .ui-icon-circle-arrow-e { background-position: -112px -192px; }
+.player-ui .ui-icon-circle-arrow-s { background-position: -128px -192px; }
+.player-ui .ui-icon-circle-arrow-w { background-position: -144px -192px; }
+.player-ui .ui-icon-circle-arrow-n { background-position: -160px -192px; }
+.player-ui .ui-icon-circle-zoomin { background-position: -176px -192px; }
+.player-ui .ui-icon-circle-zoomout { background-position: -192px -192px; }
+.player-ui .ui-icon-circle-check { background-position: -208px -192px; }
+.player-ui .ui-icon-circlesmall-plus { background-position: 0 -208px; }
+.player-ui .ui-icon-circlesmall-minus { background-position: -16px -208px; }
+.player-ui .ui-icon-circlesmall-close { background-position: -32px -208px; }
+.player-ui .ui-icon-squaresmall-plus { background-position: -48px -208px; }
+.player-ui .ui-icon-squaresmall-minus { background-position: -64px -208px; }
+.player-ui .ui-icon-squaresmall-close { background-position: -80px -208px; }
+.player-ui .ui-icon-grip-dotted-vertical { background-position: 0 -224px; }
+.player-ui .ui-icon-grip-dotted-horizontal { background-position: -16px -224px; }
+.player-ui .ui-icon-grip-solid-vertical { background-position: -32px -224px; }
+.player-ui .ui-icon-grip-solid-horizontal { background-position: -48px -224px; }
+.player-ui .ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; }
+.player-ui .ui-icon-grip-diagonal-se { background-position: -80px -224px; }
+
+
+/* Misc visuals
+----------------------------------*/
+
+/* Corner radius */
+.player-ui .ui-corner-all, .player-ui .ui-corner-top, .player-ui .ui-corner-left, .player-ui .ui-corner-tl { -moz-border-radius-topleft: 5px; -webkit-border-top-left-radius: 5px; -khtml-border-top-left-radius: 5px; border-top-left-radius: 5px; }
+.player-ui .ui-corner-all, .player-ui .ui-corner-top, .player-ui .ui-corner-right, .player-ui .ui-corner-tr { -moz-border-radius-topright: 5px; -webkit-border-top-right-radius: 5px; -khtml-border-top-right-radius: 5px; border-top-right-radius: 5px; }
+.player-ui .ui-corner-all, .player-ui .ui-corner-bottom, .player-ui .ui-corner-left, .player-ui .ui-corner-bl { -moz-border-radius-bottomleft: 5px; -webkit-border-bottom-left-radius: 5px; -khtml-border-bottom-left-radius: 5px; border-bottom-left-radius: 5px; }
+.player-ui .ui-corner-all, .player-ui .ui-corner-bottom, .player-ui .ui-corner-right, .player-ui .ui-corner-br { -moz-border-radius-bottomright: 5px; -webkit-border-bottom-right-radius: 5px; -khtml-border-bottom-right-radius: 5px; border-bottom-right-radius: 5px; }
+
+/* Overlays */
+.player-ui .ui-widget-overlay { background: #aaaaaa url(images/ui-bg_flat_75_aaaaaa_40x100.png) 50% 50% repeat-x; opacity: .30;filter:Alpha(Opacity=30); }
+.player-ui .ui-widget-shadow { margin: 5px 0 0 5px; padding: 0px; background: #999999 url(images/ui-bg_flat_55_999999_40x100.png) 50% 50% repeat-x; opacity: .45;filter:Alpha(Opacity=45); -moz-border-radius: 5px; -khtml-border-radius: 5px; -webkit-border-radius: 5px; border-radius: 5px; }/*
+ * jQuery UI Resizable 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Resizable#theming
+ */
+.player-ui .ui-resizable { position: relative;}
+.player-ui .ui-resizable-handle { position: absolute;font-size: 0.1px;z-index: 99999; display: block; }
+.player-ui .ui-resizable-disabled .ui-resizable-handle, .player-ui .ui-resizable-autohide .ui-resizable-handle { display: none; }
+.player-ui .ui-resizable-n { cursor: n-resize; height: 7px; width: 100%; top: -5px; left: 0; }
+.player-ui .ui-resizable-s { cursor: s-resize; height: 7px; width: 100%; bottom: -5px; left: 0; }
+.player-ui .ui-resizable-e { cursor: e-resize; width: 7px; right: -5px; top: 0; height: 100%; }
+.player-ui .ui-resizable-w { cursor: w-resize; width: 7px; left: -5px; top: 0; height: 100%; }
+.player-ui .ui-resizable-se { cursor: se-resize; width: 12px; height: 12px; right: 1px; bottom: 1px; }
+.player-ui .ui-resizable-sw { cursor: sw-resize; width: 9px; height: 9px; left: -5px; bottom: -5px; }
+.player-ui .ui-resizable-nw { cursor: nw-resize; width: 9px; height: 9px; left: -5px; top: -5px; }
+.player-ui .ui-resizable-ne { cursor: ne-resize; width: 9px; height: 9px; right: -5px; top: -5px;}/*
+ * jQuery UI Selectable 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Selectable#theming
+ */
+.player-ui .ui-selectable-helper { position: absolute; z-index: 100; border:1px dotted black; }
+/*
+ * jQuery UI Accordion 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Accordion#theming
+ */
+/* IE/Win - Fix animation bug - #4615 */
+.player-ui .ui-accordion { width: 100%; }
+.player-ui .ui-accordion .ui-accordion-header { cursor: pointer; position: relative; margin-top: 1px; zoom: 1; }
+.player-ui .ui-accordion .ui-accordion-li-fix { display: inline; }
+.player-ui .ui-accordion .ui-accordion-header-active { border-bottom: 0 !important; }
+.player-ui .ui-accordion .ui-accordion-header a { display: block; font-size: 1em; padding: .5em .5em .5em .7em; }
+.player-ui .ui-accordion-icons .ui-accordion-header a { padding-left: 2.2em; }
+.player-ui .ui-accordion .ui-accordion-header .ui-icon { position: absolute; left: .5em; top: 50%; margin-top: -8px; }
+.player-ui .ui-accordion .ui-accordion-content { padding: 1em 2.2em; border-top: 0; margin-top: -2px; position: relative; top: 1px; margin-bottom: 2px; overflow: auto; display: none; zoom: 1; }
+.player-ui .ui-accordion .ui-accordion-content-active { display: block; }
+/*
+ * jQuery UI Autocomplete 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Autocomplete#theming
+ */
+.player-ui .ui-autocomplete { position: absolute; cursor: default; }	
+
+/* workarounds */
+* html .ui-autocomplete { width:1px; } /* without this, the menu expands to 100% in IE6 */
+
+/*
+ * jQuery UI Menu 1.8.18
+ *
+ * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Menu#theming
+ */
+.player-ui .ui-menu {
+	list-style:none;
+	padding: 2px;
+	margin: 0;
+	display:block;
+	float: left;
+}
+.player-ui .ui-menu .ui-menu {
+	margin-top: -3px;
+}
+.player-ui .ui-menu .ui-menu-item {
+	margin:0;
+	padding: 0;
+	zoom: 1;
+	float: left;
+	clear: left;
+	width: 100%;
+}
+.player-ui .ui-menu .ui-menu-item a {
+	text-decoration:none;
+	display:block;
+	padding:.2em .4em;
+	line-height:1.5;
+	zoom:1;
+}
+.player-ui .ui-menu .ui-menu-item a.ui-state-hover,
+.player-ui .ui-menu .ui-menu-item a.ui-state-active {
+	font-weight: normal;
+	margin: -1px;
+}
+/*
+ * jQuery UI Button 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Button#theming
+ */
+.player-ui .ui-button { display: inline-block; position: relative; padding: 0; margin-right: .1em; text-decoration: none !important; cursor: pointer; text-align: center; zoom: 1; overflow: hidden; *overflow: visible; } /* the overflow property removes extra width in IE */
+.player-ui .ui-button-icon-only { width: 2.2em; } /* to make room for the icon, a width needs to be set here */
+button.ui-button-icon-only { width: 2.4em; } /* button elements seem to need a little more width */
+.player-ui .ui-button-icons-only { width: 3.4em; } 
+button.ui-button-icons-only { width: 3.7em; } 
+
+/*button text element */
+.player-ui .ui-button .ui-button-text { display: block; line-height: 1.4;  }
+.player-ui .ui-button-text-only .ui-button-text { padding: .4em 1em; }
+.player-ui .ui-button-icon-only .ui-button-text, .player-ui .ui-button-icons-only .ui-button-text { padding: .4em; text-indent: -9999999px; }
+.player-ui .ui-button-text-icon-primary .ui-button-text, .player-ui .ui-button-text-icons .ui-button-text { padding: .4em 1em .4em 2.1em; }
+.player-ui .ui-button-text-icon-secondary .ui-button-text, .player-ui .ui-button-text-icons .ui-button-text { padding: .4em 2.1em .4em 1em; }
+.player-ui .ui-button-text-icons .ui-button-text { padding-left: 2.1em; padding-right: 2.1em; }
+/* no icon support for input elements, provide padding by default */
+input.ui-button { padding: .4em 1em; }
+
+/*button icon element(s) */
+.player-ui .ui-button-icon-only .ui-icon, .player-ui .ui-button-text-icon-primary .ui-icon, .player-ui .ui-button-text-icon-secondary .ui-icon, .player-ui .ui-button-text-icons .ui-icon, .player-ui .ui-button-icons-only .ui-icon { position: absolute; top: 50%; margin-top: -8px; }
+.player-ui .ui-button-icon-only .ui-icon { left: 50%; margin-left: -8px; }
+.player-ui .ui-button-text-icon-primary .ui-button-icon-primary, .player-ui .ui-button-text-icons .ui-button-icon-primary, .player-ui .ui-button-icons-only .ui-button-icon-primary { left: .5em; }
+.player-ui .ui-button-text-icon-secondary .ui-button-icon-secondary, .player-ui .ui-button-text-icons .ui-button-icon-secondary, .player-ui .ui-button-icons-only .ui-button-icon-secondary { right: .5em; }
+.player-ui .ui-button-text-icons .ui-button-icon-secondary, .player-ui .ui-button-icons-only .ui-button-icon-secondary { right: .5em; }
+
+/*button sets*/
+.player-ui .ui-buttonset { margin-right: 7px; }
+.player-ui .ui-buttonset .ui-button { margin-left: 0; margin-right: -.3em; }
+
+/* workarounds */
+button.ui-button::-moz-focus-inner { border: 0; padding: 0; } /* reset extra padding in Firefox */
+/*
+ * jQuery UI Dialog 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Dialog#theming
+ */
+.player-ui .ui-dialog { position: absolute; padding: .2em; width: 300px; overflow: hidden; }
+.player-ui .ui-dialog .ui-dialog-titlebar { padding: .4em 1em; position: relative;  }
+.player-ui .ui-dialog .ui-dialog-title { float: left; margin: .1em 16px .1em 0; } 
+.player-ui .ui-dialog .ui-dialog-titlebar-close { position: absolute; right: .3em; top: 50%; width: 19px; margin: -10px 0 0 0; padding: 1px; height: 18px; }
+.player-ui .ui-dialog .ui-dialog-titlebar-close span { display: block; margin: 1px; }
+.player-ui .ui-dialog .ui-dialog-titlebar-close:hover, .player-ui .ui-dialog .ui-dialog-titlebar-close:focus { padding: 0; }
+.player-ui .ui-dialog .ui-dialog-content { position: relative; border: 0; padding: .5em 1em; background: none; overflow: auto; zoom: 1; }
+.player-ui .ui-dialog .ui-dialog-buttonpane { text-align: left; border-width: 1px 0 0 0; background-image: none; margin: .5em 0 0 0; padding: .3em 1em .5em .4em; }
+.player-ui .ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset { float: right; }
+.player-ui .ui-dialog .ui-dialog-buttonpane button { margin: .5em .4em .5em 0; cursor: pointer; }
+.player-ui .ui-dialog .ui-resizable-se { width: 14px; height: 14px; right: 3px; bottom: 3px; }
+.player-ui .ui-draggable .ui-dialog-titlebar { cursor: move; }
+/*
+ * jQuery UI Slider 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Slider#theming
+ */
+.player-ui .ui-slider { position: relative; text-align: left; }
+.player-ui .ui-slider .ui-slider-handle { position: absolute; z-index: 2; width: 1.2em; height: 1.2em; cursor: default; }
+.player-ui .ui-slider .ui-slider-range { position: absolute; z-index: 1; font-size: .7em; display: block; border: 0; background-position: 0 0; }
+
+.player-ui .ui-slider-horizontal { height: .8em; }
+.player-ui .ui-slider-horizontal .ui-slider-handle { top: -.3em; margin-left: -.6em; }
+.player-ui .ui-slider-horizontal .ui-slider-range { top: 0; height: 100%; }
+.player-ui .ui-slider-horizontal .ui-slider-range-min { left: 0; }
+.player-ui .ui-slider-horizontal .ui-slider-range-max { right: 0; }
+
+.player-ui .ui-slider-vertical { width: .8em; height: 100px; }
+.player-ui .ui-slider-vertical .ui-slider-handle { left: -.3em; margin-left: 0; margin-bottom: -.6em; }
+.player-ui .ui-slider-vertical .ui-slider-range { left: 0; width: 100%; }
+.player-ui .ui-slider-vertical .ui-slider-range-min { bottom: 0; }
+.player-ui .ui-slider-vertical .ui-slider-range-max { top: 0; }/*
+ * jQuery UI Tabs 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Tabs#theming
+ */
+.player-ui .ui-tabs { position: relative; padding: .2em; zoom: 1; } /* position: relative prevents IE scroll bug (element with position: relative inside container with overflow: auto appear as "fixed") */
+.player-ui .ui-tabs .ui-tabs-nav { margin: 0; padding: .2em .2em 0; }
+.player-ui .ui-tabs .ui-tabs-nav li { list-style: none; float: left; position: relative; top: 1px; margin: 0 .2em 1px 0; border-bottom: 0 !important; padding: 0; white-space: nowrap; }
+.player-ui .ui-tabs .ui-tabs-nav li a { float: left; padding: .5em 1em; text-decoration: none; }
+.player-ui .ui-tabs .ui-tabs-nav li.ui-tabs-selected { margin-bottom: 0; padding-bottom: 1px; }
+.player-ui .ui-tabs .ui-tabs-nav li.ui-tabs-selected a, .player-ui .ui-tabs .ui-tabs-nav li.ui-state-disabled a, .player-ui .ui-tabs .ui-tabs-nav li.ui-state-processing a { cursor: text; }
+.player-ui .ui-tabs .ui-tabs-nav li a, .player-ui .ui-tabs.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-selected a { cursor: pointer; } /* first selector in group seems obsolete, but required to overcome bug in Opera applying cursor: text overall if defined elsewhere... */
+.player-ui .ui-tabs .ui-tabs-panel { display: block; border-width: 0; padding: 1em 1.4em; background: none; }
+.player-ui .ui-tabs .ui-tabs-hide { display: none !important; }
+/*
+ * jQuery UI Datepicker 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Datepicker#theming
+ */
+.player-ui .ui-datepicker { width: 17em; padding: .2em .2em 0; display: none; }
+.player-ui .ui-datepicker .ui-datepicker-header { position:relative; padding:.2em 0; }
+.player-ui .ui-datepicker .ui-datepicker-prev, .player-ui .ui-datepicker .ui-datepicker-next { position:absolute; top: 2px; width: 1.8em; height: 1.8em; }
+.player-ui .ui-datepicker .ui-datepicker-prev-hover, .player-ui .ui-datepicker .ui-datepicker-next-hover { top: 1px; }
+.player-ui .ui-datepicker .ui-datepicker-prev { left:2px; }
+.player-ui .ui-datepicker .ui-datepicker-next { right:2px; }
+.player-ui .ui-datepicker .ui-datepicker-prev-hover { left:1px; }
+.player-ui .ui-datepicker .ui-datepicker-next-hover { right:1px; }
+.player-ui .ui-datepicker .ui-datepicker-prev span, .player-ui .ui-datepicker .ui-datepicker-next span { display: block; position: absolute; left: 50%; margin-left: -8px; top: 50%; margin-top: -8px;  }
+.player-ui .ui-datepicker .ui-datepicker-title { margin: 0 2.3em; line-height: 1.8em; text-align: center; }
+.player-ui .ui-datepicker .ui-datepicker-title select { font-size:1em; margin:1px 0; }
+.player-ui .ui-datepicker select.ui-datepicker-month-year {width: 100%;}
+.player-ui .ui-datepicker select.ui-datepicker-month, 
+.player-ui .ui-datepicker select.ui-datepicker-year { width: 49%;}
+.player-ui .ui-datepicker table {width: 100%; font-size: .9em; border-collapse: collapse; margin:0 0 .4em; }
+.player-ui .ui-datepicker th { padding: .7em .3em; text-align: center; font-weight: bold; border: 0;  }
+.player-ui .ui-datepicker td { border: 0; padding: 1px; }
+.player-ui .ui-datepicker td span, .player-ui .ui-datepicker td a { display: block; padding: .2em; text-align: right; text-decoration: none; }
+.player-ui .ui-datepicker .ui-datepicker-buttonpane { background-image: none; margin: .7em 0 0 0; padding:0 .2em; border-left: 0; border-right: 0; border-bottom: 0; }
+.player-ui .ui-datepicker .ui-datepicker-buttonpane button { float: right; margin: .5em .2em .4em; cursor: pointer; padding: .2em .6em .3em .6em; width:auto; overflow:visible; }
+.player-ui .ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current { float:left; }
+
+/* with multiple calendars */
+.player-ui .ui-datepicker.ui-datepicker-multi { width:auto; }
+.player-ui .ui-datepicker-multi .ui-datepicker-group { float:left; }
+.player-ui .ui-datepicker-multi .ui-datepicker-group table { width:95%; margin:0 auto .4em; }
+.player-ui .ui-datepicker-multi-2 .ui-datepicker-group { width:50%; }
+.player-ui .ui-datepicker-multi-3 .ui-datepicker-group { width:33.3%; }
+.player-ui .ui-datepicker-multi-4 .ui-datepicker-group { width:25%; }
+.player-ui .ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header { border-left-width:0; }
+.player-ui .ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header { border-left-width:0; }
+.player-ui .ui-datepicker-multi .ui-datepicker-buttonpane { clear:left; }
+.player-ui .ui-datepicker-row-break { clear:both; width:100%; font-size:0em; }
+
+/* RTL support */
+.player-ui .ui-datepicker-rtl { direction: rtl; }
+.player-ui .ui-datepicker-rtl .ui-datepicker-prev { right: 2px; left: auto; }
+.player-ui .ui-datepicker-rtl .ui-datepicker-next { left: 2px; right: auto; }
+.player-ui .ui-datepicker-rtl .ui-datepicker-prev:hover { right: 1px; left: auto; }
+.player-ui .ui-datepicker-rtl .ui-datepicker-next:hover { left: 1px; right: auto; }
+.player-ui .ui-datepicker-rtl .ui-datepicker-buttonpane { clear:right; }
+.player-ui .ui-datepicker-rtl .ui-datepicker-buttonpane button { float: left; }
+.player-ui .ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current { float:right; }
+.player-ui .ui-datepicker-rtl .ui-datepicker-group { float:right; }
+.player-ui .ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header { border-right-width:0; border-left-width:1px; }
+.player-ui .ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header { border-right-width:0; border-left-width:1px; }
+
+/* IE6 IFRAME FIX (taken from datepicker 1.5.3 */
+.player-ui .ui-datepicker-cover {
+    display: none; /*sorry for IE5*/
+    display/**/: block; /*sorry for IE5*/
+    position: absolute; /*must have*/
+    z-index: -1; /*must have*/
+    filter: mask(); /*must have*/
+    top: -4px; /*must have*/
+    left: -4px; /*must have*/
+    width: 200px; /*must have*/
+    height: 200px; /*must have*/
+}/*
+ * jQuery UI Progressbar 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Progressbar#theming
+ */
+.player-ui .ui-progressbar { height:2em; text-align: left; overflow: hidden; }
+.player-ui .ui-progressbar .ui-progressbar-value {margin: -1px; height:100%; }
\ No newline at end of file
diff --git a/public/admin/js/osmplayer/jquery-ui/sunny/images/ui-bg_diagonals-medium_20_d34d17_40x40.png b/public/admin/js/osmplayer/jquery-ui/sunny/images/ui-bg_diagonals-medium_20_d34d17_40x40.png
new file mode 100644
index 0000000000000000000000000000000000000000..8083fb400bf9702e8c5720595ad56bc9bc8a0642
GIT binary patch
literal 247
zcmeAS@N?(olHy`uVBq!ia0vp^8X(NU#=yY%`)9{*AZMSai(^Pc>)WXZd7BM*T<dl8
zCj@Uxn7r=5C0he#buot~=j_!^p`9)*%3pssy|Fmg{aN^u37<5d+Hr^GgetpJwcMF{
z5z{62?~6|l*Dv-@nsqGE`u2%kXC};2Im;R}`AFCDlXXT63wAOvtoxBQb-kETJn!@t
z6&{tGy5J?Lh7bPAY`?Q<i_Wu_H;UCK<TkaxdH8z%CrN|NE}K^rz7;+5H}2q{6V<Gr
sKjs}=;h1G0)g!fpZ841bN1XTFCGQRL-zUGm4fF|vr>mdKI;Vst0FAC_iU0rr

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/sunny/images/ui-bg_flat_30_cccccc_40x100.png b/public/admin/js/osmplayer/jquery-ui/sunny/images/ui-bg_flat_30_cccccc_40x100.png
new file mode 100644
index 0000000000000000000000000000000000000000..5473afffbc2662173f5af5c27d966c072de8039b
GIT binary patch
literal 180
zcmeAS@N?(olHy`uVBq!ia0vp^8bF-F!3HG1q!d*FscKIb$B>N1x91EQ4=4yQ7#`Ta
z<$H)q$%zYm;;c7~Kd+Iuj%U9o62cnl7#bi-T}u42J&U%yNJ})(84RATelF{r5}E*|
CoG&2&

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/sunny/images/ui-bg_flat_50_5c5c5c_40x100.png b/public/admin/js/osmplayer/jquery-ui/sunny/images/ui-bg_flat_50_5c5c5c_40x100.png
new file mode 100644
index 0000000000000000000000000000000000000000..5950a8db9e64e8d00bb28726cb869947abfdc7fc
GIT binary patch
literal 180
zcmeAS@N?(olHy`uVBq!ia0vp^8bF-F!3HG1q!d*FscKIb$B>N1x91EQ4=4yQ7&<)v
zy**H+<irI&an_s0pV!D+$FtuP31JO&3=I&aE+y`Ik?D37+g%o*GZ;Kw{an^LB{Ts5
Dj7=}j

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/sunny/images/ui-bg_gloss-wave_45_817865_500x100.png b/public/admin/js/osmplayer/jquery-ui/sunny/images/ui-bg_gloss-wave_45_817865_500x100.png
new file mode 100644
index 0000000000000000000000000000000000000000..7662917a5dc5b2e54b324b49119bd4cccb72578b
GIT binary patch
literal 3971
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
Nbn1+M(|70p`QN(B1D5~*

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/sunny/images/ui-bg_gloss-wave_60_fece2f_500x100.png b/public/admin/js/osmplayer/jquery-ui/sunny/images/ui-bg_gloss-wave_60_fece2f_500x100.png
new file mode 100644
index 0000000000000000000000000000000000000000..01ccab3977818f447d019f64e4c01b121a8d6a9e
GIT binary patch
literal 3512
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

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/sunny/images/ui-bg_gloss-wave_70_ffdd57_500x100.png b/public/admin/js/osmplayer/jquery-ui/sunny/images/ui-bg_gloss-wave_70_ffdd57_500x100.png
new file mode 100644
index 0000000000000000000000000000000000000000..f8bd10482a61c46fea7a785d0f375a6aa79e147e
GIT binary patch
literal 3830
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
B(Ifx>

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/sunny/images/ui-bg_gloss-wave_90_fff9e5_500x100.png b/public/admin/js/osmplayer/jquery-ui/sunny/images/ui-bg_gloss-wave_90_fff9e5_500x100.png
new file mode 100644
index 0000000000000000000000000000000000000000..6e3ad2df76e3669cb737cdc3b36bca9c41fb353a
GIT binary patch
literal 2257
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

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/sunny/images/ui-bg_highlight-soft_100_feeebd_1x100.png b/public/admin/js/osmplayer/jquery-ui/sunny/images/ui-bg_highlight-soft_100_feeebd_1x100.png
new file mode 100644
index 0000000000000000000000000000000000000000..8c5c35cea2b397d97b332900a02139ed4ea749fa
GIT binary patch
literal 108
zcmeAS@N?(olHy`uVBq!ia0vp^j6j^i!3HGVb)pi0l(DCaV~E7m<R9N3pR8A7V`FPu
z=<?_P@dHN=e2{lj*dcJu{?MBJGprPZ{s%^KBptBzHDzMp%2v%cwT|xrYG?3t^>bP0
Hl+XkKFN`4*

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/sunny/images/ui-bg_inset-soft_30_ffffff_1x100.png b/public/admin/js/osmplayer/jquery-ui/sunny/images/ui-bg_inset-soft_30_ffffff_1x100.png
new file mode 100644
index 0000000000000000000000000000000000000000..820b0175460be4874d69ab6191a2134dd2012353
GIT binary patch
literal 100
zcmeAS@N?(olHy`uVBq!ia0vp^j6j^i!3HGVb)pi0l(wgfV~E7m<RAb4|F2hLV`FPe
ybpG@Izx>S8Cr)_mnFJJd-gzV9#uq+ECWa##Vh7@HOq~wY#^CAd=d#Wzp$Pzv)*`V0

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/sunny/images/ui-icons_3d3d3d_256x240.png b/public/admin/js/osmplayer/jquery-ui/sunny/images/ui-icons_3d3d3d_256x240.png
new file mode 100644
index 0000000000000000000000000000000000000000..c216ba1d591ed0381cf681ad70bd0f0c59574bb3
GIT binary patch
literal 5355
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
W`?Hm7LpJ~Km-$3pU#(WfA?AP8dH7-g

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/sunny/images/ui-icons_bd7b00_256x240.png b/public/admin/js/osmplayer/jquery-ui/sunny/images/ui-icons_bd7b00_256x240.png
new file mode 100644
index 0000000000000000000000000000000000000000..e81995d57fea6327c3280d21e6df369b1f8239a2
GIT binary patch
literal 4369
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

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/sunny/images/ui-icons_d19405_256x240.png b/public/admin/js/osmplayer/jquery-ui/sunny/images/ui-icons_d19405_256x240.png
new file mode 100644
index 0000000000000000000000000000000000000000..d168087627fec4186905ec350231e6edd0fc21f7
GIT binary patch
literal 4369
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

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/sunny/images/ui-icons_eb990f_256x240.png b/public/admin/js/osmplayer/jquery-ui/sunny/images/ui-icons_eb990f_256x240.png
new file mode 100644
index 0000000000000000000000000000000000000000..fd0b00a6df15807a2d80ea417b654beb43a5c42e
GIT binary patch
literal 4369
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

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/sunny/images/ui-icons_ed9f26_256x240.png b/public/admin/js/osmplayer/jquery-ui/sunny/images/ui-icons_ed9f26_256x240.png
new file mode 100644
index 0000000000000000000000000000000000000000..668e030c5e02e9b9851fb92c76610ecccdb6164b
GIT binary patch
literal 4369
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

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/sunny/images/ui-icons_fadc7a_256x240.png b/public/admin/js/osmplayer/jquery-ui/sunny/images/ui-icons_fadc7a_256x240.png
new file mode 100644
index 0000000000000000000000000000000000000000..711a99d5fb4eaa3369028a81f32da49ea201f798
GIT binary patch
literal 4369
zcmd^?`8O2)_s3^p#%>t<I$5%B*(%$RifAlJDl()+*_W)tj4atJl`V!4ku}Mhk*o=k
zjAh1XB8{;#7~8k^`}6($6`#j>oqJ#RmwV2==ic*rz7lOw=eaq=H~;_ux21)-Jpcgw
zdj+hrf&W^f<%Qk9Zpqf#;p{#+@_*+%?nQ<EEgThOkGcd9ft_Gsvu%HvtuEu>hrEpz
z<NwNqFcdPgxFB`yxTd{ooK6C+^IqRj&q;HMwx-C6_a&)sD&Hv{;N@00AfWUj_veMx
zUNd>;jD4b>+`T(uaR31D##x%1I)uJla!GZcYT$$PS(MMkK2?kGq+hc-eP`pT*Zpyy
z${e*fqd}JATjV2u2$sd)1c5kPCpWd@VPy=GTQ-*JFaSJz-rw6x1Pj>Guf^rP0uTcs
zKOC#EcaI5V0WXEM#A@=gfX{x=#8@;bsjUi8=7oYd?_-yIkEYA5{CJ<S2slgI4-OR|
zuq*1~u;*u!_1OyBIdWi1nOw?_22q=~x5z)a%|dJVmDk~_MsnftB~Wt#;zwvKYzh2I
zO5!bo3Fx{|+cvcV9%-Ct0kp?9L<<v7Ek_`pJ^7c~p2jr`zaD?s73Al2nG*^S;3^A#
z3NFnH1Di1yu9wIaU=c_M%9v-f#hAvgS@(&OQ%t>#V};R9R11H!`Pt$gW&1(E3v4Af
z)PmRX7+!v2lAj8Udu1@Z{(ZG$d309h)f$ruT<4hZlz!ap($4Ae|Im3BSr7Y$b;9=F
z!_#$n5u52^o9v19?$9O)q~f!aInx4DXFL)ZUFE~1!fMrNqyrA=*?KU{=gyKC;IHY1
z^Wt$jwkgm6ea5VjEU5NNWZY_2WnY{z(s38Kf@qB>=FqLF{M!BYZg3PqF}g#{PB`fX
z5=Y(87ML_ze)UI4CeHonm#&o483A$R1?eYwX^m$R%8Qv;hd)&-ApO>8re5}c8szU<
zdsz2fx0CA)QZ<0RtFZ4)x%ozgQjG(6Ei&KcWt;$Vj>86}#y6JTf6&LyQo3F8^ylM)
zCFuHfA0(Y<4{R;WcG?uM^adxBk`;l8?`I3oA^MTeOlnt+G|Bu0Y<|JkPqGZ|NXd=N
zBJ~D8#BK_6#9D!&XtDkSu<>wv3j%o;F;+CU&u;~XIbwbI1o^vU++NF6q;u}d!@Od|
zk?Oz)iE<ja)yp?Ff55oT3qyNP1EI3$JaoZR1U5M4twWI28$Jng6h)#dx${~9X;)Xm
zp|w3x{>Od#Rw$tgpWfH|55)V^bQfocGTm;1AeGClI+BpgI<jaMU#_FWIcei$^)-?;
zDJ*92&cmh-n2Ia>VzHtSc+YG2<Jo*3n^-1}1Ht7ex96Z`=Crj1d<t}brIr+Ff<%13
zy)kAs;}k$)$SWX6noL2?&6f4EO&3%#@mMpno3k6v5J!%+{(#hu(jvCIiX$#Tmc8^F
z<)RyWg_!A{E>YjX@z=gwA1`S?WS2208rp{TXTzH5-#Xke)BJfdGd1im-pmQ52zR+B
zZLfuZCEe0LspmsrA*7Ef|Im`U{$i#V<d*P~>@GuIRbs4+Iw1XW;?B9=3ebaHcraX6
z2AXB?bjWxwkSpI_RO`Td=x@;Uo(+d$tE*$b)aZdmOAJ_g>2Vs><BSY?3Jh&*6~JQa
z{FxzC<I2)Fv3MgmMN2+o%0`gs5OcAvazVWo)5P*(6<{Z=J<mp4!#1dkqloXIzo-~M
z1)oHrQd{P#F?O4E@7JN)&k!6sGo6;{_HYN5*(ubn5*Q{&#r^{J2T3OEWGYRg-nvJh
z`%CwM*{z?k_jZ}Q5HVgKlyp*|qmNF?*p4b+Q->*Bc`Ms#?Wgi!4_Fr>QUNVCo}k($
zCzPL`kE6M9Hayg3mm1rGu|_a_%^q<lA2$@(d}e)}v-C3=byGb#yRx%k+S5p+6AhpO
z?U0EcG1c$6IljhQmUXFHRxCDq5!gieKrk@cIf!!I5W%u=M%pu|Q0F8sVOOV54FV1z
z0J+lARR}Btx8D)zPii4CW{<IF%n%}@-yjz)aO|D}#j$vi%`gBL5R(-@WlZS%8W38%
zmPk7I4EKu+-!U*FP<zq^4QAbIgR7GRKq&|Ko1ii)Tmzmdq7zgAkrv+!Cp^)Tj6WYG
zQBZd{!-q~wk0<7I?t*Dnls<SQ`@l0}R%Y8&VO_P29D#VWO5cbAaWt6vDkT+xN;Lh#
z!#Ub800~b>{XrIBZ<G&hU}{cin%LW)_CD!zy5r_;o=H=FWT1X?2mdOo6h6yZnzr4X
z4j>~Wt`$Hu)YS<sWvf`)-IL#a5BX~XOn}1NliXb*s2=L6lr?R$1^yB7C|_418K{6J
zumOGo;l9za*kwN(wX84Pr$LQShx0<q0_>vJ(gvG7`eLa)Bo{P&QW_4bF?)*rE|2|^
zYh1Ie9KzyI-?r>`Q38N}Bc;h}L4t^5jt6nQUjMK>cth*a4+R_ljR3F$;e>6)*TVAG
zLMorbB~*hfuP7))-jeY7e)#X08}+=qv$k$O;0@2Zj#_WHv>UW-6_LvvN%XEG%@H#k
z^Mm&E3j1b9>g=P@%<td!at0ev#N(JLh8g?iIZ=^p#q|KgP5)k;V_3j2Yk;Y;ayyAw
z4FiYY0qc#L%jVXyvu3`?-S~FZHWyt*UtTJieGoJBClLF4APTOS7ruAVi+rm+GPsd#
zKw#glUCJ#^8I!N#fFIzl17n#P&GymVyGu@-H)T|m@m#3KUYmH-o&d|;o9*X<coGaz
zDh6tp1!9U*(8O~&Y)NOqjhBCOJxGgBRbHBjA}E|CxKgT_x}PAl5v>gW^};|ZP#JH}
zI)x_N3_fM#pW@pB%ZBQVN$7mSiPxT5kS$nZZGAg*I77+4VlkB-Palz5ea^ggK;l($
z(d2DJOZjye7QCOy>k!L9m4ETQ8Zo0YqMsL|m)+9@&N3!UWge$=?FuI_1smE^ziR>I
ziFOJK(X2DHag&!`lbz#@&sB~W1w<U&YeYSPQ|el(cnjur_LaCMzjUI@P{7~GDOmM3
z&Z(KoM+Gd1-TlR$qMoDus^{s`vpks@rJHmmfA;zlLU@zyy0rtJR&5Kc`>^=H4tfOx
zBO<mlD?c5oqhE-uZ9yb)%=A*apZ`^@y;~qx_r0+%E5Y0PyN9<_P+zxP&oPAK8%T;Y
zbDRVG;l3&lrIT#Ug8^Gx=LhWVdfVzIH%Hdy@r5oVl|Z#pZpQ5;g(A#N-3$Jm6-o3X
z=<AD$P~lpderx?O>a6)nl;Hzsc6rs!J<v>!1~4uM-|4s0$-63P|C^5-9R<<2L715C
z^J<F|_wl20=MCrw^@*qFc5909xWXZgZ54c)V?AO;UT_^Sr&KDQ*}LcpIbswpxR>#2
z3ie&RGWh!5gtYfMZE<0^cBC&2FX6=z8E^|kWo@0Oawqjxz|dxD^$E44!v})uo(sG4
zsrJ6)P)s}rO(}n3mgTX$EE-xg9Ft(Ldqz+a*jz4}ZpzYnA~3kIBhIZY9Y7Id3%nYp
z-SXS$p4%<oXv;-?eAN0@rMg(5pCH7`6hfLAeE5n3&2N)8q(ld1u-~XQ&L6rM{)c^-
zp`ydmE&999%*jJNt@C2|;g<(rA1#7Ez8@W0ZK$vv_lQ232={w?WT<CSMLbD_p`Jit
z2g;#aw1qJV^%n3)y~$L)^MGxvbS3@V+_k+n95t>>i9~|Gw)xZ7$9}9}*Q@JNYT&^r
z-|*dc3rpbnz(61cwYueZauTh;R?n-+&@cpdALbMn1s1KmnZc~Fsq=y7kv(Nofe-Zu
zKbG1|;T@MD=1eBmO&34pmL>{#AU?h6LTM7s+G4JL_twhZ0jiL|H2jD*;8*8C*n-~b
zRKXToa=tNgCRkS!$iK)(u$>G%n(hMPbYqIaT1MTA{6?ivzk^o@W!xt#N62&0k&5Y<
z)G;cSMBO2^+>}E}i&p7CQx%y`O#vrlWo2)wajnr7-r=o<H%2E0>nDuK;MSE`yi4`o
z29NHfdcH^?zW&qIz#gp?GW51)r@_7gY@kdK@*19X_3+N0q})#t8OT$@I~4Yv;W4z^
z8O5|RBYAfk&X;mxV8BSSGM?=7a=ln<hyC8m1SvE8Q{S?-OL9U!V!Kp|Y+jz=SMLk}
z37jRsH1d2&)9irX?4MjI6;37f9uAL?JWq8oFyDQpE#oG5*vm+}RsK|mgdCT3z!iD*
zPDTQoV&WHK+`LQpl=Et6I>+sI6AT#_-<olSVE*A>74P$clI}+k9vGM|0=}Nn{t+LN
zj}0lakCt|o-L7?N;e~OL6+=t6N0K%C<s0Dq3%ggu8#&7kyV!Dj2E?cD`YnCF?`p{a
zIwkG)D7csQF*R;G36T%$tRxwp^)i3^CM!#gw>x9q>PdLSdLro00yl+%?bl6z+h7gQ
z<X{6fy!|Xlv-2cdux6Yv2pe&r+4$ZUG8lg)Lg$)jKyP&l*@JTGP<JB2>%&?>#{ijD
zpwK$DS9N?JezSVhO-#iVfe&_yE{{Z|)C_vFS`!q}a9@pMKI=!&;u>#WrzEV}-_rH~
zX?feg>mNC>2#=l+oDso?iv4%}_fmHPJwhbsq6PQE(|-8S6zA5ZFg8_TX#!D|-!{0Y
zOm7O1LpXPJ#l-0{*+7*Nodbw-R8WEMaYC@sj`-s%;ujk2Y2(*iW=kuDOHUV-42_4M
zfhd3vM%8BG;m!G^UgR7ujGLj;S~(fKk$K3KT8eg@%7BKzfQ*W7NwV7q;kHP-EN+zX
z35}zJh}X`(N@<K|fJLC#m7SE_C^wvTs5K#k`?RpD9oZm-ZseErqjkX}h^@3!3bgF3
za1zqk-1><Wr7bag$=-HKvT#zbdu3}kELsJhGxU#&brRp-#XcJlwyRXGo+LL1aQqu)
ze*15DXL#02G+U$C`SOkTZNYPLI~zdhec;PTZ}-kcN1qoXlj|XQT+WVdbJCH!31o(#
z`IoOrC`Z)XJnS$mL4=?W$fNVTnw+34-ZwOOS+4QrEXL%ll=9#Ach&~MESrhiOI^5g
z_)_CkJETfVFROo^)^?lYW}G=jo-1km4vXBD-SUU?`T7jsG^`Snrx^e&9J<VPp+S1}
zaTYYoS3Dc6YJ+6*YtDQWv{PJKC;Sq?!3^@<x0>FHW`%5JP==r^r*+5KnW&Tyd&1ly
zN|$K4&InVm`XXt9scV9qK9%S_)BU3@wMx0Pb_sc#guHk8RH}DE-D3PmMZf5O;H$@V
zruIefGLFEb>ymPSpDe`8Oblbm;~e(q(WYPfw@CS8<{sx@jUSA&5B6Fx=NZ_D8R+zO
z3-TW|`d5#>wwunkKs0gimyZcI3(=3jOWGXIhlANcJG&n*GJHRQ8{0ngN6~-}!dfte
z-hz7};f6&0Ey3q2KGL?Qb^^Mu+&@}c!vz}^ys55<tf0G&gMHc#7RjvP^!9fcB#3-C
oMFm^(I<a>9Z0A0y{k>z-Hy<b=Z5V9(_p1-EJc}}~GDFAwAAoh5d;kCd

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/sunny/images/ui-icons_ffe180_256x240.png b/public/admin/js/osmplayer/jquery-ui/sunny/images/ui-icons_ffe180_256x240.png
new file mode 100644
index 0000000000000000000000000000000000000000..048e8e14f42abb800cb09efd6328fdd538c6927c
GIT binary patch
literal 4369
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

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/sunny/jquery-ui-1.8.18.custom.css b/public/admin/js/osmplayer/jquery-ui/sunny/jquery-ui-1.8.18.custom.css
new file mode 100644
index 00000000000..c9a61c30ead
--- /dev/null
+++ b/public/admin/js/osmplayer/jquery-ui/sunny/jquery-ui-1.8.18.custom.css
@@ -0,0 +1,565 @@
+/*
+ * jQuery UI CSS Framework 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Theming/API
+ */
+
+/* Layout helpers
+----------------------------------*/
+.player-ui .ui-helper-hidden { display: none; }
+.player-ui .ui-helper-hidden-accessible { position: absolute !important; clip: rect(1px 1px 1px 1px); clip: rect(1px,1px,1px,1px); }
+.player-ui .ui-helper-reset { margin: 0; padding: 0; border: 0; outline: 0; line-height: 1.3; text-decoration: none; font-size: 100%; list-style: none; }
+.player-ui .ui-helper-clearfix:before, .player-ui .ui-helper-clearfix:after { content: ""; display: table; }
+.player-ui .ui-helper-clearfix:after { clear: both; }
+.player-ui .ui-helper-clearfix { zoom: 1; }
+.player-ui .ui-helper-zfix { width: 100%; height: 100%; top: 0; left: 0; position: absolute; opacity: 0; filter:Alpha(Opacity=0); }
+
+
+/* Interaction Cues
+----------------------------------*/
+.player-ui .ui-state-disabled { cursor: default !important; }
+
+
+/* Icons
+----------------------------------*/
+
+/* states and images */
+.player-ui .ui-icon { display: block; text-indent: -99999px; overflow: hidden; background-repeat: no-repeat; }
+
+
+/* Misc visuals
+----------------------------------*/
+
+/* Overlays */
+.player-ui .ui-widget-overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }
+
+
+/*
+ * jQuery UI CSS Framework 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Theming/API
+ *
+ * To view and modify this theme, visit http://jqueryui.com/themeroller/?ffDefault=Segoe%20UI,%20Arial,%20sans-serif&fwDefault=bold&fsDefault=1.1em&cornerRadius=8px&bgColorHeader=817865&bgTextureHeader=12_gloss_wave.png&bgImgOpacityHeader=45&borderColorHeader=494437&fcHeader=ffffff&iconColorHeader=fadc7a&bgColorContent=feeebd&bgTextureContent=03_highlight_soft.png&bgImgOpacityContent=100&borderColorContent=8e846b&fcContent=383838&iconColorContent=d19405&bgColorDefault=fece2f&bgTextureDefault=12_gloss_wave.png&bgImgOpacityDefault=60&borderColorDefault=d19405&fcDefault=4c3000&iconColorDefault=3d3d3d&bgColorHover=ffdd57&bgTextureHover=12_gloss_wave.png&bgImgOpacityHover=70&borderColorHover=a45b13&fcHover=381f00&iconColorHover=bd7b00&bgColorActive=ffffff&bgTextureActive=05_inset_soft.png&bgImgOpacityActive=30&borderColorActive=655e4e&fcActive=0074c7&iconColorActive=eb990f&bgColorHighlight=fff9e5&bgTextureHighlight=12_gloss_wave.png&bgImgOpacityHighlight=90&borderColorHighlight=eeb420&fcHighlight=1f1f1f&iconColorHighlight=ed9f26&bgColorError=d34d17&bgTextureError=07_diagonals_medium.png&bgImgOpacityError=20&borderColorError=ffb73d&fcError=ffffff&iconColorError=ffe180&bgColorOverlay=5c5c5c&bgTextureOverlay=01_flat.png&bgImgOpacityOverlay=50&opacityOverlay=80&bgColorShadow=cccccc&bgTextureShadow=01_flat.png&bgImgOpacityShadow=30&opacityShadow=60&thicknessShadow=7px&offsetTopShadow=-7px&offsetLeftShadow=-7px&cornerRadiusShadow=8px
+ */
+
+
+/* Component containers
+----------------------------------*/
+.player-ui .ui-widget { font-family: Segoe UI, Arial, sans-serif; font-size: 1.1em; }
+.player-ui .ui-widget .ui-widget { font-size: 1em; }
+.player-ui .ui-widget input, .player-ui .ui-widget select, .player-ui .ui-widget textarea, .player-ui .ui-widget button { font-family: Segoe UI, Arial, sans-serif; font-size: 1em; }
+.player-ui .ui-widget-content { border: 1px solid #8e846b; background: #feeebd url(images/ui-bg_highlight-soft_100_feeebd_1x100.png) 50% top repeat-x; color: #383838; }
+.player-ui .ui-widget-content a { color: #383838; }
+.player-ui .ui-widget-header { border: 1px solid #494437; background: #817865 url(images/ui-bg_gloss-wave_45_817865_500x100.png) 50% 50% repeat-x; color: #ffffff; font-weight: bold; }
+.player-ui .ui-widget-header a { color: #ffffff; }
+
+/* Interaction states
+----------------------------------*/
+.player-ui .ui-state-default, .player-ui .ui-widget-content .ui-state-default, .player-ui .ui-widget-header .ui-state-default { border: 1px solid #d19405; background: #fece2f url(images/ui-bg_gloss-wave_60_fece2f_500x100.png) 50% 50% repeat-x; font-weight: bold; color: #4c3000; }
+.player-ui .ui-state-default a, .player-ui .ui-state-default a:link, .player-ui .ui-state-default a:visited { color: #4c3000; text-decoration: none; }
+.player-ui .ui-state-hover, .player-ui .ui-widget-content .ui-state-hover, .player-ui .ui-widget-header .ui-state-hover, .player-ui .ui-state-focus, .player-ui .ui-widget-content .ui-state-focus, .player-ui .ui-widget-header .ui-state-focus { border: 1px solid #a45b13; background: #ffdd57 url(images/ui-bg_gloss-wave_70_ffdd57_500x100.png) 50% 50% repeat-x; font-weight: bold; color: #381f00; }
+.player-ui .ui-state-hover a, .player-ui .ui-state-hover a:hover { color: #381f00; text-decoration: none; }
+.player-ui .ui-state-active, .player-ui .ui-widget-content .ui-state-active, .player-ui .ui-widget-header .ui-state-active { border: 1px solid #655e4e; background: #ffffff url(images/ui-bg_inset-soft_30_ffffff_1x100.png) 50% 50% repeat-x; font-weight: bold; color: #0074c7; }
+.player-ui .ui-state-active a, .player-ui .ui-state-active a:link, .player-ui .ui-state-active a:visited { color: #0074c7; text-decoration: none; }
+.player-ui .ui-widget :active { outline: none; }
+
+/* Interaction Cues
+----------------------------------*/
+.player-ui .ui-state-highlight, .player-ui .ui-widget-content .ui-state-highlight, .player-ui .ui-widget-header .ui-state-highlight  {border: 1px solid #eeb420; background: #fff9e5 url(images/ui-bg_gloss-wave_90_fff9e5_500x100.png) 50% top repeat-x; color: #1f1f1f; }
+.player-ui .ui-state-highlight a, .player-ui .ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a { color: #1f1f1f; }
+.player-ui .ui-state-error, .player-ui .ui-widget-content .ui-state-error, .player-ui .ui-widget-header .ui-state-error {border: 1px solid #ffb73d; background: #d34d17 url(images/ui-bg_diagonals-medium_20_d34d17_40x40.png) 50% 50% repeat; color: #ffffff; }
+.player-ui .ui-state-error a, .player-ui .ui-widget-content .ui-state-error a, .player-ui .ui-widget-header .ui-state-error a { color: #ffffff; }
+.player-ui .ui-state-error-text, .player-ui .ui-widget-content .ui-state-error-text, .player-ui .ui-widget-header .ui-state-error-text { color: #ffffff; }
+.player-ui .ui-priority-primary, .player-ui .ui-widget-content .ui-priority-primary, .player-ui .ui-widget-header .ui-priority-primary { font-weight: bold; }
+.player-ui .ui-priority-secondary, .player-ui .ui-widget-content .ui-priority-secondary,  .ui-widget-header .ui-priority-secondary { opacity: .7; filter:Alpha(Opacity=70); font-weight: normal; }
+.player-ui .ui-state-disabled, .player-ui .ui-widget-content .ui-state-disabled, .player-ui .ui-widget-header .ui-state-disabled { opacity: .35; filter:Alpha(Opacity=35); background-image: none; }
+
+/* Icons
+----------------------------------*/
+
+/* states and images */
+.player-ui .ui-icon { width: 16px; height: 16px; background-image: url(images/ui-icons_d19405_256x240.png); }
+.player-ui .ui-widget-content .ui-icon {background-image: url(images/ui-icons_d19405_256x240.png); }
+.player-ui .ui-widget-header .ui-icon {background-image: url(images/ui-icons_fadc7a_256x240.png); }
+.player-ui .ui-state-default .ui-icon { background-image: url(images/ui-icons_3d3d3d_256x240.png); }
+.player-ui .ui-state-hover .ui-icon, .player-ui .ui-state-focus .ui-icon {background-image: url(images/ui-icons_bd7b00_256x240.png); }
+.player-ui .ui-state-active .ui-icon {background-image: url(images/ui-icons_eb990f_256x240.png); }
+.player-ui .ui-state-highlight .ui-icon {background-image: url(images/ui-icons_ed9f26_256x240.png); }
+.player-ui .ui-state-error .ui-icon, .player-ui .ui-state-error-text .ui-icon {background-image: url(images/ui-icons_ffe180_256x240.png); }
+
+/* positioning */
+.player-ui .ui-icon-carat-1-n { background-position: 0 0; }
+.player-ui .ui-icon-carat-1-ne { background-position: -16px 0; }
+.player-ui .ui-icon-carat-1-e { background-position: -32px 0; }
+.player-ui .ui-icon-carat-1-se { background-position: -48px 0; }
+.player-ui .ui-icon-carat-1-s { background-position: -64px 0; }
+.player-ui .ui-icon-carat-1-sw { background-position: -80px 0; }
+.player-ui .ui-icon-carat-1-w { background-position: -96px 0; }
+.player-ui .ui-icon-carat-1-nw { background-position: -112px 0; }
+.player-ui .ui-icon-carat-2-n-s { background-position: -128px 0; }
+.player-ui .ui-icon-carat-2-e-w { background-position: -144px 0; }
+.player-ui .ui-icon-triangle-1-n { background-position: 0 -16px; }
+.player-ui .ui-icon-triangle-1-ne { background-position: -16px -16px; }
+.player-ui .ui-icon-triangle-1-e { background-position: -32px -16px; }
+.player-ui .ui-icon-triangle-1-se { background-position: -48px -16px; }
+.player-ui .ui-icon-triangle-1-s { background-position: -64px -16px; }
+.player-ui .ui-icon-triangle-1-sw { background-position: -80px -16px; }
+.player-ui .ui-icon-triangle-1-w { background-position: -96px -16px; }
+.player-ui .ui-icon-triangle-1-nw { background-position: -112px -16px; }
+.player-ui .ui-icon-triangle-2-n-s { background-position: -128px -16px; }
+.player-ui .ui-icon-triangle-2-e-w { background-position: -144px -16px; }
+.player-ui .ui-icon-arrow-1-n { background-position: 0 -32px; }
+.player-ui .ui-icon-arrow-1-ne { background-position: -16px -32px; }
+.player-ui .ui-icon-arrow-1-e { background-position: -32px -32px; }
+.player-ui .ui-icon-arrow-1-se { background-position: -48px -32px; }
+.player-ui .ui-icon-arrow-1-s { background-position: -64px -32px; }
+.player-ui .ui-icon-arrow-1-sw { background-position: -80px -32px; }
+.player-ui .ui-icon-arrow-1-w { background-position: -96px -32px; }
+.player-ui .ui-icon-arrow-1-nw { background-position: -112px -32px; }
+.player-ui .ui-icon-arrow-2-n-s { background-position: -128px -32px; }
+.player-ui .ui-icon-arrow-2-ne-sw { background-position: -144px -32px; }
+.player-ui .ui-icon-arrow-2-e-w { background-position: -160px -32px; }
+.player-ui .ui-icon-arrow-2-se-nw { background-position: -176px -32px; }
+.player-ui .ui-icon-arrowstop-1-n { background-position: -192px -32px; }
+.player-ui .ui-icon-arrowstop-1-e { background-position: -208px -32px; }
+.player-ui .ui-icon-arrowstop-1-s { background-position: -224px -32px; }
+.player-ui .ui-icon-arrowstop-1-w { background-position: -240px -32px; }
+.player-ui .ui-icon-arrowthick-1-n { background-position: 0 -48px; }
+.player-ui .ui-icon-arrowthick-1-ne { background-position: -16px -48px; }
+.player-ui .ui-icon-arrowthick-1-e { background-position: -32px -48px; }
+.player-ui .ui-icon-arrowthick-1-se { background-position: -48px -48px; }
+.player-ui .ui-icon-arrowthick-1-s { background-position: -64px -48px; }
+.player-ui .ui-icon-arrowthick-1-sw { background-position: -80px -48px; }
+.player-ui .ui-icon-arrowthick-1-w { background-position: -96px -48px; }
+.player-ui .ui-icon-arrowthick-1-nw { background-position: -112px -48px; }
+.player-ui .ui-icon-arrowthick-2-n-s { background-position: -128px -48px; }
+.player-ui .ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px; }
+.player-ui .ui-icon-arrowthick-2-e-w { background-position: -160px -48px; }
+.player-ui .ui-icon-arrowthick-2-se-nw { background-position: -176px -48px; }
+.player-ui .ui-icon-arrowthickstop-1-n { background-position: -192px -48px; }
+.player-ui .ui-icon-arrowthickstop-1-e { background-position: -208px -48px; }
+.player-ui .ui-icon-arrowthickstop-1-s { background-position: -224px -48px; }
+.player-ui .ui-icon-arrowthickstop-1-w { background-position: -240px -48px; }
+.player-ui .ui-icon-arrowreturnthick-1-w { background-position: 0 -64px; }
+.player-ui .ui-icon-arrowreturnthick-1-n { background-position: -16px -64px; }
+.player-ui .ui-icon-arrowreturnthick-1-e { background-position: -32px -64px; }
+.player-ui .ui-icon-arrowreturnthick-1-s { background-position: -48px -64px; }
+.player-ui .ui-icon-arrowreturn-1-w { background-position: -64px -64px; }
+.player-ui .ui-icon-arrowreturn-1-n { background-position: -80px -64px; }
+.player-ui .ui-icon-arrowreturn-1-e { background-position: -96px -64px; }
+.player-ui .ui-icon-arrowreturn-1-s { background-position: -112px -64px; }
+.player-ui .ui-icon-arrowrefresh-1-w { background-position: -128px -64px; }
+.player-ui .ui-icon-arrowrefresh-1-n { background-position: -144px -64px; }
+.player-ui .ui-icon-arrowrefresh-1-e { background-position: -160px -64px; }
+.player-ui .ui-icon-arrowrefresh-1-s { background-position: -176px -64px; }
+.player-ui .ui-icon-arrow-4 { background-position: 0 -80px; }
+.player-ui .ui-icon-arrow-4-diag { background-position: -16px -80px; }
+.player-ui .ui-icon-extlink { background-position: -32px -80px; }
+.player-ui .ui-icon-newwin { background-position: -48px -80px; }
+.player-ui .ui-icon-refresh { background-position: -64px -80px; }
+.player-ui .ui-icon-shuffle { background-position: -80px -80px; }
+.player-ui .ui-icon-transfer-e-w { background-position: -96px -80px; }
+.player-ui .ui-icon-transferthick-e-w { background-position: -112px -80px; }
+.player-ui .ui-icon-folder-collapsed { background-position: 0 -96px; }
+.player-ui .ui-icon-folder-open { background-position: -16px -96px; }
+.player-ui .ui-icon-document { background-position: -32px -96px; }
+.player-ui .ui-icon-document-b { background-position: -48px -96px; }
+.player-ui .ui-icon-note { background-position: -64px -96px; }
+.player-ui .ui-icon-mail-closed { background-position: -80px -96px; }
+.player-ui .ui-icon-mail-open { background-position: -96px -96px; }
+.player-ui .ui-icon-suitcase { background-position: -112px -96px; }
+.player-ui .ui-icon-comment { background-position: -128px -96px; }
+.player-ui .ui-icon-person { background-position: -144px -96px; }
+.player-ui .ui-icon-print { background-position: -160px -96px; }
+.player-ui .ui-icon-trash { background-position: -176px -96px; }
+.player-ui .ui-icon-locked { background-position: -192px -96px; }
+.player-ui .ui-icon-unlocked { background-position: -208px -96px; }
+.player-ui .ui-icon-bookmark { background-position: -224px -96px; }
+.player-ui .ui-icon-tag { background-position: -240px -96px; }
+.player-ui .ui-icon-home { background-position: 0 -112px; }
+.player-ui .ui-icon-flag { background-position: -16px -112px; }
+.player-ui .ui-icon-calendar { background-position: -32px -112px; }
+.player-ui .ui-icon-cart { background-position: -48px -112px; }
+.player-ui .ui-icon-pencil { background-position: -64px -112px; }
+.player-ui .ui-icon-clock { background-position: -80px -112px; }
+.player-ui .ui-icon-disk { background-position: -96px -112px; }
+.player-ui .ui-icon-calculator { background-position: -112px -112px; }
+.player-ui .ui-icon-zoomin { background-position: -128px -112px; }
+.player-ui .ui-icon-zoomout { background-position: -144px -112px; }
+.player-ui .ui-icon-search { background-position: -160px -112px; }
+.player-ui .ui-icon-wrench { background-position: -176px -112px; }
+.player-ui .ui-icon-gear { background-position: -192px -112px; }
+.player-ui .ui-icon-heart { background-position: -208px -112px; }
+.player-ui .ui-icon-star { background-position: -224px -112px; }
+.player-ui .ui-icon-link { background-position: -240px -112px; }
+.player-ui .ui-icon-cancel { background-position: 0 -128px; }
+.player-ui .ui-icon-plus { background-position: -16px -128px; }
+.player-ui .ui-icon-plusthick { background-position: -32px -128px; }
+.player-ui .ui-icon-minus { background-position: -48px -128px; }
+.player-ui .ui-icon-minusthick { background-position: -64px -128px; }
+.player-ui .ui-icon-close { background-position: -80px -128px; }
+.player-ui .ui-icon-closethick { background-position: -96px -128px; }
+.player-ui .ui-icon-key { background-position: -112px -128px; }
+.player-ui .ui-icon-lightbulb { background-position: -128px -128px; }
+.player-ui .ui-icon-scissors { background-position: -144px -128px; }
+.player-ui .ui-icon-clipboard { background-position: -160px -128px; }
+.player-ui .ui-icon-copy { background-position: -176px -128px; }
+.player-ui .ui-icon-contact { background-position: -192px -128px; }
+.player-ui .ui-icon-image { background-position: -208px -128px; }
+.player-ui .ui-icon-video { background-position: -224px -128px; }
+.player-ui .ui-icon-script { background-position: -240px -128px; }
+.player-ui .ui-icon-alert { background-position: 0 -144px; }
+.player-ui .ui-icon-info { background-position: -16px -144px; }
+.player-ui .ui-icon-notice { background-position: -32px -144px; }
+.player-ui .ui-icon-help { background-position: -48px -144px; }
+.player-ui .ui-icon-check { background-position: -64px -144px; }
+.player-ui .ui-icon-bullet { background-position: -80px -144px; }
+.player-ui .ui-icon-radio-off { background-position: -96px -144px; }
+.player-ui .ui-icon-radio-on { background-position: -112px -144px; }
+.player-ui .ui-icon-pin-w { background-position: -128px -144px; }
+.player-ui .ui-icon-pin-s { background-position: -144px -144px; }
+.player-ui .ui-icon-play { background-position: 0 -160px; }
+.player-ui .ui-icon-pause { background-position: -16px -160px; }
+.player-ui .ui-icon-seek-next { background-position: -32px -160px; }
+.player-ui .ui-icon-seek-prev { background-position: -48px -160px; }
+.player-ui .ui-icon-seek-end { background-position: -64px -160px; }
+.player-ui .ui-icon-seek-start { background-position: -80px -160px; }
+/* ui-icon-seek-first is deprecated, use ui-icon-seek-start instead */
+.player-ui .ui-icon-seek-first { background-position: -80px -160px; }
+.player-ui .ui-icon-stop { background-position: -96px -160px; }
+.player-ui .ui-icon-eject { background-position: -112px -160px; }
+.player-ui .ui-icon-volume-off { background-position: -128px -160px; }
+.player-ui .ui-icon-volume-on { background-position: -144px -160px; }
+.player-ui .ui-icon-power { background-position: 0 -176px; }
+.player-ui .ui-icon-signal-diag { background-position: -16px -176px; }
+.player-ui .ui-icon-signal { background-position: -32px -176px; }
+.player-ui .ui-icon-battery-0 { background-position: -48px -176px; }
+.player-ui .ui-icon-battery-1 { background-position: -64px -176px; }
+.player-ui .ui-icon-battery-2 { background-position: -80px -176px; }
+.player-ui .ui-icon-battery-3 { background-position: -96px -176px; }
+.player-ui .ui-icon-circle-plus { background-position: 0 -192px; }
+.player-ui .ui-icon-circle-minus { background-position: -16px -192px; }
+.player-ui .ui-icon-circle-close { background-position: -32px -192px; }
+.player-ui .ui-icon-circle-triangle-e { background-position: -48px -192px; }
+.player-ui .ui-icon-circle-triangle-s { background-position: -64px -192px; }
+.player-ui .ui-icon-circle-triangle-w { background-position: -80px -192px; }
+.player-ui .ui-icon-circle-triangle-n { background-position: -96px -192px; }
+.player-ui .ui-icon-circle-arrow-e { background-position: -112px -192px; }
+.player-ui .ui-icon-circle-arrow-s { background-position: -128px -192px; }
+.player-ui .ui-icon-circle-arrow-w { background-position: -144px -192px; }
+.player-ui .ui-icon-circle-arrow-n { background-position: -160px -192px; }
+.player-ui .ui-icon-circle-zoomin { background-position: -176px -192px; }
+.player-ui .ui-icon-circle-zoomout { background-position: -192px -192px; }
+.player-ui .ui-icon-circle-check { background-position: -208px -192px; }
+.player-ui .ui-icon-circlesmall-plus { background-position: 0 -208px; }
+.player-ui .ui-icon-circlesmall-minus { background-position: -16px -208px; }
+.player-ui .ui-icon-circlesmall-close { background-position: -32px -208px; }
+.player-ui .ui-icon-squaresmall-plus { background-position: -48px -208px; }
+.player-ui .ui-icon-squaresmall-minus { background-position: -64px -208px; }
+.player-ui .ui-icon-squaresmall-close { background-position: -80px -208px; }
+.player-ui .ui-icon-grip-dotted-vertical { background-position: 0 -224px; }
+.player-ui .ui-icon-grip-dotted-horizontal { background-position: -16px -224px; }
+.player-ui .ui-icon-grip-solid-vertical { background-position: -32px -224px; }
+.player-ui .ui-icon-grip-solid-horizontal { background-position: -48px -224px; }
+.player-ui .ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; }
+.player-ui .ui-icon-grip-diagonal-se { background-position: -80px -224px; }
+
+
+/* Misc visuals
+----------------------------------*/
+
+/* Corner radius */
+.player-ui .ui-corner-all, .player-ui .ui-corner-top, .player-ui .ui-corner-left, .player-ui .ui-corner-tl { -moz-border-radius-topleft: 8px; -webkit-border-top-left-radius: 8px; -khtml-border-top-left-radius: 8px; border-top-left-radius: 8px; }
+.player-ui .ui-corner-all, .player-ui .ui-corner-top, .player-ui .ui-corner-right, .player-ui .ui-corner-tr { -moz-border-radius-topright: 8px; -webkit-border-top-right-radius: 8px; -khtml-border-top-right-radius: 8px; border-top-right-radius: 8px; }
+.player-ui .ui-corner-all, .player-ui .ui-corner-bottom, .player-ui .ui-corner-left, .player-ui .ui-corner-bl { -moz-border-radius-bottomleft: 8px; -webkit-border-bottom-left-radius: 8px; -khtml-border-bottom-left-radius: 8px; border-bottom-left-radius: 8px; }
+.player-ui .ui-corner-all, .player-ui .ui-corner-bottom, .player-ui .ui-corner-right, .player-ui .ui-corner-br { -moz-border-radius-bottomright: 8px; -webkit-border-bottom-right-radius: 8px; -khtml-border-bottom-right-radius: 8px; border-bottom-right-radius: 8px; }
+
+/* Overlays */
+.player-ui .ui-widget-overlay { background: #5c5c5c url(images/ui-bg_flat_50_5c5c5c_40x100.png) 50% 50% repeat-x; opacity: .80;filter:Alpha(Opacity=80); }
+.player-ui .ui-widget-shadow { margin: -7px 0 0 -7px; padding: 7px; background: #cccccc url(images/ui-bg_flat_30_cccccc_40x100.png) 50% 50% repeat-x; opacity: .60;filter:Alpha(Opacity=60); -moz-border-radius: 8px; -khtml-border-radius: 8px; -webkit-border-radius: 8px; border-radius: 8px; }/*
+ * jQuery UI Resizable 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Resizable#theming
+ */
+.player-ui .ui-resizable { position: relative;}
+.player-ui .ui-resizable-handle { position: absolute;font-size: 0.1px;z-index: 99999; display: block; }
+.player-ui .ui-resizable-disabled .ui-resizable-handle, .player-ui .ui-resizable-autohide .ui-resizable-handle { display: none; }
+.player-ui .ui-resizable-n { cursor: n-resize; height: 7px; width: 100%; top: -5px; left: 0; }
+.player-ui .ui-resizable-s { cursor: s-resize; height: 7px; width: 100%; bottom: -5px; left: 0; }
+.player-ui .ui-resizable-e { cursor: e-resize; width: 7px; right: -5px; top: 0; height: 100%; }
+.player-ui .ui-resizable-w { cursor: w-resize; width: 7px; left: -5px; top: 0; height: 100%; }
+.player-ui .ui-resizable-se { cursor: se-resize; width: 12px; height: 12px; right: 1px; bottom: 1px; }
+.player-ui .ui-resizable-sw { cursor: sw-resize; width: 9px; height: 9px; left: -5px; bottom: -5px; }
+.player-ui .ui-resizable-nw { cursor: nw-resize; width: 9px; height: 9px; left: -5px; top: -5px; }
+.player-ui .ui-resizable-ne { cursor: ne-resize; width: 9px; height: 9px; right: -5px; top: -5px;}/*
+ * jQuery UI Selectable 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Selectable#theming
+ */
+.player-ui .ui-selectable-helper { position: absolute; z-index: 100; border:1px dotted black; }
+/*
+ * jQuery UI Accordion 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Accordion#theming
+ */
+/* IE/Win - Fix animation bug - #4615 */
+.player-ui .ui-accordion { width: 100%; }
+.player-ui .ui-accordion .ui-accordion-header { cursor: pointer; position: relative; margin-top: 1px; zoom: 1; }
+.player-ui .ui-accordion .ui-accordion-li-fix { display: inline; }
+.player-ui .ui-accordion .ui-accordion-header-active { border-bottom: 0 !important; }
+.player-ui .ui-accordion .ui-accordion-header a { display: block; font-size: 1em; padding: .5em .5em .5em .7em; }
+.player-ui .ui-accordion-icons .ui-accordion-header a { padding-left: 2.2em; }
+.player-ui .ui-accordion .ui-accordion-header .ui-icon { position: absolute; left: .5em; top: 50%; margin-top: -8px; }
+.player-ui .ui-accordion .ui-accordion-content { padding: 1em 2.2em; border-top: 0; margin-top: -2px; position: relative; top: 1px; margin-bottom: 2px; overflow: auto; display: none; zoom: 1; }
+.player-ui .ui-accordion .ui-accordion-content-active { display: block; }
+/*
+ * jQuery UI Autocomplete 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Autocomplete#theming
+ */
+.player-ui .ui-autocomplete { position: absolute; cursor: default; }	
+
+/* workarounds */
+* html .ui-autocomplete { width:1px; } /* without this, the menu expands to 100% in IE6 */
+
+/*
+ * jQuery UI Menu 1.8.18
+ *
+ * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Menu#theming
+ */
+.player-ui .ui-menu {
+	list-style:none;
+	padding: 2px;
+	margin: 0;
+	display:block;
+	float: left;
+}
+.player-ui .ui-menu .ui-menu {
+	margin-top: -3px;
+}
+.player-ui .ui-menu .ui-menu-item {
+	margin:0;
+	padding: 0;
+	zoom: 1;
+	float: left;
+	clear: left;
+	width: 100%;
+}
+.player-ui .ui-menu .ui-menu-item a {
+	text-decoration:none;
+	display:block;
+	padding:.2em .4em;
+	line-height:1.5;
+	zoom:1;
+}
+.player-ui .ui-menu .ui-menu-item a.ui-state-hover,
+.player-ui .ui-menu .ui-menu-item a.ui-state-active {
+	font-weight: normal;
+	margin: -1px;
+}
+/*
+ * jQuery UI Button 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Button#theming
+ */
+.player-ui .ui-button { display: inline-block; position: relative; padding: 0; margin-right: .1em; text-decoration: none !important; cursor: pointer; text-align: center; zoom: 1; overflow: hidden; *overflow: visible; } /* the overflow property removes extra width in IE */
+.player-ui .ui-button-icon-only { width: 2.2em; } /* to make room for the icon, a width needs to be set here */
+button.ui-button-icon-only { width: 2.4em; } /* button elements seem to need a little more width */
+.player-ui .ui-button-icons-only { width: 3.4em; } 
+button.ui-button-icons-only { width: 3.7em; } 
+
+/*button text element */
+.player-ui .ui-button .ui-button-text { display: block; line-height: 1.4;  }
+.player-ui .ui-button-text-only .ui-button-text { padding: .4em 1em; }
+.player-ui .ui-button-icon-only .ui-button-text, .player-ui .ui-button-icons-only .ui-button-text { padding: .4em; text-indent: -9999999px; }
+.player-ui .ui-button-text-icon-primary .ui-button-text, .player-ui .ui-button-text-icons .ui-button-text { padding: .4em 1em .4em 2.1em; }
+.player-ui .ui-button-text-icon-secondary .ui-button-text, .player-ui .ui-button-text-icons .ui-button-text { padding: .4em 2.1em .4em 1em; }
+.player-ui .ui-button-text-icons .ui-button-text { padding-left: 2.1em; padding-right: 2.1em; }
+/* no icon support for input elements, provide padding by default */
+input.ui-button { padding: .4em 1em; }
+
+/*button icon element(s) */
+.player-ui .ui-button-icon-only .ui-icon, .player-ui .ui-button-text-icon-primary .ui-icon, .player-ui .ui-button-text-icon-secondary .ui-icon, .player-ui .ui-button-text-icons .ui-icon, .player-ui .ui-button-icons-only .ui-icon { position: absolute; top: 50%; margin-top: -8px; }
+.player-ui .ui-button-icon-only .ui-icon { left: 50%; margin-left: -8px; }
+.player-ui .ui-button-text-icon-primary .ui-button-icon-primary, .player-ui .ui-button-text-icons .ui-button-icon-primary, .player-ui .ui-button-icons-only .ui-button-icon-primary { left: .5em; }
+.player-ui .ui-button-text-icon-secondary .ui-button-icon-secondary, .player-ui .ui-button-text-icons .ui-button-icon-secondary, .player-ui .ui-button-icons-only .ui-button-icon-secondary { right: .5em; }
+.player-ui .ui-button-text-icons .ui-button-icon-secondary, .player-ui .ui-button-icons-only .ui-button-icon-secondary { right: .5em; }
+
+/*button sets*/
+.player-ui .ui-buttonset { margin-right: 7px; }
+.player-ui .ui-buttonset .ui-button { margin-left: 0; margin-right: -.3em; }
+
+/* workarounds */
+button.ui-button::-moz-focus-inner { border: 0; padding: 0; } /* reset extra padding in Firefox */
+/*
+ * jQuery UI Dialog 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Dialog#theming
+ */
+.player-ui .ui-dialog { position: absolute; padding: .2em; width: 300px; overflow: hidden; }
+.player-ui .ui-dialog .ui-dialog-titlebar { padding: .4em 1em; position: relative;  }
+.player-ui .ui-dialog .ui-dialog-title { float: left; margin: .1em 16px .1em 0; } 
+.player-ui .ui-dialog .ui-dialog-titlebar-close { position: absolute; right: .3em; top: 50%; width: 19px; margin: -10px 0 0 0; padding: 1px; height: 18px; }
+.player-ui .ui-dialog .ui-dialog-titlebar-close span { display: block; margin: 1px; }
+.player-ui .ui-dialog .ui-dialog-titlebar-close:hover, .player-ui .ui-dialog .ui-dialog-titlebar-close:focus { padding: 0; }
+.player-ui .ui-dialog .ui-dialog-content { position: relative; border: 0; padding: .5em 1em; background: none; overflow: auto; zoom: 1; }
+.player-ui .ui-dialog .ui-dialog-buttonpane { text-align: left; border-width: 1px 0 0 0; background-image: none; margin: .5em 0 0 0; padding: .3em 1em .5em .4em; }
+.player-ui .ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset { float: right; }
+.player-ui .ui-dialog .ui-dialog-buttonpane button { margin: .5em .4em .5em 0; cursor: pointer; }
+.player-ui .ui-dialog .ui-resizable-se { width: 14px; height: 14px; right: 3px; bottom: 3px; }
+.player-ui .ui-draggable .ui-dialog-titlebar { cursor: move; }
+/*
+ * jQuery UI Slider 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Slider#theming
+ */
+.player-ui .ui-slider { position: relative; text-align: left; }
+.player-ui .ui-slider .ui-slider-handle { position: absolute; z-index: 2; width: 1.2em; height: 1.2em; cursor: default; }
+.player-ui .ui-slider .ui-slider-range { position: absolute; z-index: 1; font-size: .7em; display: block; border: 0; background-position: 0 0; }
+
+.player-ui .ui-slider-horizontal { height: .8em; }
+.player-ui .ui-slider-horizontal .ui-slider-handle { top: -.3em; margin-left: -.6em; }
+.player-ui .ui-slider-horizontal .ui-slider-range { top: 0; height: 100%; }
+.player-ui .ui-slider-horizontal .ui-slider-range-min { left: 0; }
+.player-ui .ui-slider-horizontal .ui-slider-range-max { right: 0; }
+
+.player-ui .ui-slider-vertical { width: .8em; height: 100px; }
+.player-ui .ui-slider-vertical .ui-slider-handle { left: -.3em; margin-left: 0; margin-bottom: -.6em; }
+.player-ui .ui-slider-vertical .ui-slider-range { left: 0; width: 100%; }
+.player-ui .ui-slider-vertical .ui-slider-range-min { bottom: 0; }
+.player-ui .ui-slider-vertical .ui-slider-range-max { top: 0; }/*
+ * jQuery UI Tabs 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Tabs#theming
+ */
+.player-ui .ui-tabs { position: relative; padding: .2em; zoom: 1; } /* position: relative prevents IE scroll bug (element with position: relative inside container with overflow: auto appear as "fixed") */
+.player-ui .ui-tabs .ui-tabs-nav { margin: 0; padding: .2em .2em 0; }
+.player-ui .ui-tabs .ui-tabs-nav li { list-style: none; float: left; position: relative; top: 1px; margin: 0 .2em 1px 0; border-bottom: 0 !important; padding: 0; white-space: nowrap; }
+.player-ui .ui-tabs .ui-tabs-nav li a { float: left; padding: .5em 1em; text-decoration: none; }
+.player-ui .ui-tabs .ui-tabs-nav li.ui-tabs-selected { margin-bottom: 0; padding-bottom: 1px; }
+.player-ui .ui-tabs .ui-tabs-nav li.ui-tabs-selected a, .player-ui .ui-tabs .ui-tabs-nav li.ui-state-disabled a, .player-ui .ui-tabs .ui-tabs-nav li.ui-state-processing a { cursor: text; }
+.player-ui .ui-tabs .ui-tabs-nav li a, .player-ui .ui-tabs.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-selected a { cursor: pointer; } /* first selector in group seems obsolete, but required to overcome bug in Opera applying cursor: text overall if defined elsewhere... */
+.player-ui .ui-tabs .ui-tabs-panel { display: block; border-width: 0; padding: 1em 1.4em; background: none; }
+.player-ui .ui-tabs .ui-tabs-hide { display: none !important; }
+/*
+ * jQuery UI Datepicker 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Datepicker#theming
+ */
+.player-ui .ui-datepicker { width: 17em; padding: .2em .2em 0; display: none; }
+.player-ui .ui-datepicker .ui-datepicker-header { position:relative; padding:.2em 0; }
+.player-ui .ui-datepicker .ui-datepicker-prev, .player-ui .ui-datepicker .ui-datepicker-next { position:absolute; top: 2px; width: 1.8em; height: 1.8em; }
+.player-ui .ui-datepicker .ui-datepicker-prev-hover, .player-ui .ui-datepicker .ui-datepicker-next-hover { top: 1px; }
+.player-ui .ui-datepicker .ui-datepicker-prev { left:2px; }
+.player-ui .ui-datepicker .ui-datepicker-next { right:2px; }
+.player-ui .ui-datepicker .ui-datepicker-prev-hover { left:1px; }
+.player-ui .ui-datepicker .ui-datepicker-next-hover { right:1px; }
+.player-ui .ui-datepicker .ui-datepicker-prev span, .player-ui .ui-datepicker .ui-datepicker-next span { display: block; position: absolute; left: 50%; margin-left: -8px; top: 50%; margin-top: -8px;  }
+.player-ui .ui-datepicker .ui-datepicker-title { margin: 0 2.3em; line-height: 1.8em; text-align: center; }
+.player-ui .ui-datepicker .ui-datepicker-title select { font-size:1em; margin:1px 0; }
+.player-ui .ui-datepicker select.ui-datepicker-month-year {width: 100%;}
+.player-ui .ui-datepicker select.ui-datepicker-month, 
+.player-ui .ui-datepicker select.ui-datepicker-year { width: 49%;}
+.player-ui .ui-datepicker table {width: 100%; font-size: .9em; border-collapse: collapse; margin:0 0 .4em; }
+.player-ui .ui-datepicker th { padding: .7em .3em; text-align: center; font-weight: bold; border: 0;  }
+.player-ui .ui-datepicker td { border: 0; padding: 1px; }
+.player-ui .ui-datepicker td span, .player-ui .ui-datepicker td a { display: block; padding: .2em; text-align: right; text-decoration: none; }
+.player-ui .ui-datepicker .ui-datepicker-buttonpane { background-image: none; margin: .7em 0 0 0; padding:0 .2em; border-left: 0; border-right: 0; border-bottom: 0; }
+.player-ui .ui-datepicker .ui-datepicker-buttonpane button { float: right; margin: .5em .2em .4em; cursor: pointer; padding: .2em .6em .3em .6em; width:auto; overflow:visible; }
+.player-ui .ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current { float:left; }
+
+/* with multiple calendars */
+.player-ui .ui-datepicker.ui-datepicker-multi { width:auto; }
+.player-ui .ui-datepicker-multi .ui-datepicker-group { float:left; }
+.player-ui .ui-datepicker-multi .ui-datepicker-group table { width:95%; margin:0 auto .4em; }
+.player-ui .ui-datepicker-multi-2 .ui-datepicker-group { width:50%; }
+.player-ui .ui-datepicker-multi-3 .ui-datepicker-group { width:33.3%; }
+.player-ui .ui-datepicker-multi-4 .ui-datepicker-group { width:25%; }
+.player-ui .ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header { border-left-width:0; }
+.player-ui .ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header { border-left-width:0; }
+.player-ui .ui-datepicker-multi .ui-datepicker-buttonpane { clear:left; }
+.player-ui .ui-datepicker-row-break { clear:both; width:100%; font-size:0em; }
+
+/* RTL support */
+.player-ui .ui-datepicker-rtl { direction: rtl; }
+.player-ui .ui-datepicker-rtl .ui-datepicker-prev { right: 2px; left: auto; }
+.player-ui .ui-datepicker-rtl .ui-datepicker-next { left: 2px; right: auto; }
+.player-ui .ui-datepicker-rtl .ui-datepicker-prev:hover { right: 1px; left: auto; }
+.player-ui .ui-datepicker-rtl .ui-datepicker-next:hover { left: 1px; right: auto; }
+.player-ui .ui-datepicker-rtl .ui-datepicker-buttonpane { clear:right; }
+.player-ui .ui-datepicker-rtl .ui-datepicker-buttonpane button { float: left; }
+.player-ui .ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current { float:right; }
+.player-ui .ui-datepicker-rtl .ui-datepicker-group { float:right; }
+.player-ui .ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header { border-right-width:0; border-left-width:1px; }
+.player-ui .ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header { border-right-width:0; border-left-width:1px; }
+
+/* IE6 IFRAME FIX (taken from datepicker 1.5.3 */
+.player-ui .ui-datepicker-cover {
+    display: none; /*sorry for IE5*/
+    display/**/: block; /*sorry for IE5*/
+    position: absolute; /*must have*/
+    z-index: -1; /*must have*/
+    filter: mask(); /*must have*/
+    top: -4px; /*must have*/
+    left: -4px; /*must have*/
+    width: 200px; /*must have*/
+    height: 200px; /*must have*/
+}/*
+ * jQuery UI Progressbar 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Progressbar#theming
+ */
+.player-ui .ui-progressbar { height:2em; text-align: left; overflow: hidden; }
+.player-ui .ui-progressbar .ui-progressbar-value {margin: -1px; height:100%; }
\ No newline at end of file
diff --git a/public/admin/js/osmplayer/jquery-ui/swanky-purse/images/ui-bg_diamond_10_4f4221_10x8.png b/public/admin/js/osmplayer/jquery-ui/swanky-purse/images/ui-bg_diamond_10_4f4221_10x8.png
new file mode 100644
index 0000000000000000000000000000000000000000..fc3262efb5c206a1c920d950fcccea647949f384
GIT binary patch
literal 136
zcmeAS@N?(olHy`uVBq!ia0vp^AT|dF8<0HkD{mW+^7nLc43U_c%=7iipYsf?`|JKC
zII!isktr|}-lgQHC&vcFJiR_Ix)K;-4Ta5IZ-{I@!1Dj!-{yq^k_L&z{AT6GVDfNn
e?;45OyBXb{>$rU=dTanRn!(f6&t;ucLK6U3G%OSV

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/swanky-purse/images/ui-bg_diamond_20_372806_10x8.png b/public/admin/js/osmplayer/jquery-ui/swanky-purse/images/ui-bg_diamond_20_372806_10x8.png
new file mode 100644
index 0000000000000000000000000000000000000000..aba2c180878a040209ab8a2ab1ed606af73fe5dc
GIT binary patch
literal 194
zcmV;z06qVSP)<h;3K|Lk000e1NJLTq000UA000OG1^@s7xBXrq0001qNkl<Z7?o{~
zF%H8Z5CjK=ketGn+(5wt_yI5Q|35(i4H6V_Nvexclr3*(w5P7*CjcqhsZz9aKTbw(
zs4Mw7dP4*3$N5~G4*=AX(cAU{;J)9~l5svfq^JN|RObUy8c~HDy`fh^EG4f>v3{}c
ws1)s7f!~N=oDbBJsU?4H$+}|x%}Lgk5AWDWmvGh#3jhEB07*qoM6N<$f)Za#<^TWy

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/swanky-purse/images/ui-bg_diamond_25_675423_10x8.png b/public/admin/js/osmplayer/jquery-ui/swanky-purse/images/ui-bg_diamond_25_675423_10x8.png
new file mode 100644
index 0000000000000000000000000000000000000000..753b82cf31d5617b53d0bc9fa98c565a74535499
GIT binary patch
literal 198
zcmeAS@N?(olHy`uVBq!ia0vp^AT|dF8v_I5_P=ooKu)ixi(`ny)Z9Kpt|JN}F7uN%
za!UuX96YB~e!{b;S!Ab!UXFT4>y8b#cV6{Zc{8Q{*;)D09B<}?_~*;MmF69`2=sQ7
zy?rU`WJW{coORu$at$KPzdqJ5e)zk`(=cJ~{z*+t8IEf|cVx0mP0^LStKJf16xvhg
y`v3SH=0(;CYd$ZL@GzXSWre=s{}<KT2l&&fe3xB~&-(^+7=x#)pUXO@geCyM22K(H

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/swanky-purse/images/ui-bg_diamond_25_d5ac5d_10x8.png b/public/admin/js/osmplayer/jquery-ui/swanky-purse/images/ui-bg_diamond_25_d5ac5d_10x8.png
new file mode 100644
index 0000000000000000000000000000000000000000..939b6d4936af9b97d731dde4c0b0d37a6c608ae9
GIT binary patch
literal 137
zcmeAS@N?(olHy`uVBq!ia0vp^AT|dF8<0HkD{mW+3h;Ds43U_cyl123Z+m8uKYxFA
zGD;e3{(SJJ&x@{zokt~s*wDmip>`8v$x)vhB8kCgn1ug)e{S98lyacutnH0EXTc=z
gchgNtIq%pQp2zC0`SX085zuS~Pgg&ebxsLQ0AZswng9R*

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/swanky-purse/images/ui-bg_diamond_8_261803_10x8.png b/public/admin/js/osmplayer/jquery-ui/swanky-purse/images/ui-bg_diamond_8_261803_10x8.png
new file mode 100644
index 0000000000000000000000000000000000000000..27d918c39e99f65852c9ed995217595bf3d3458a
GIT binary patch
literal 136
zcmeAS@N?(olHy`uVBq!ia0vp^AT|dF8<0HkD{mW+^7nLc43U_cd}ZR}U*{QE_t*VR
zabU~Ic~f8}yi3VXFOLm~d3t?bbR{sv8VZ}a-VoV*faU+cpUn#eBn=Xa`OV6W!Q|oE
e-Zc`lcQfu<q<zmPL8}C4G=rzBpUXO@geCyK%q<T9

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/swanky-purse/images/ui-bg_diamond_8_443113_10x8.png b/public/admin/js/osmplayer/jquery-ui/swanky-purse/images/ui-bg_diamond_8_443113_10x8.png
new file mode 100644
index 0000000000000000000000000000000000000000..77c1d2b60597baa1612909388937083038cb2dc8
GIT binary patch
literal 136
zcmeAS@N?(olHy`uVBq!ia0vp^AT|dF8<0HkD{mW+^7nLc43U_c{KaJYpYsf?`|JNE
zIk2tC$tf@s-lfFnr^g1wJiR_Ix)K;-4Ta5IZ-{I@!1Dj!-{yq^k_L&z{AT6GVDfNn
e?;45OyBT?=>qyM}8!rbmn!(f6&t;ucLK6Tw=_=L$

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/swanky-purse/images/ui-bg_flat_75_ddd4b0_40x100.png b/public/admin/js/osmplayer/jquery-ui/swanky-purse/images/ui-bg_flat_75_ddd4b0_40x100.png
new file mode 100644
index 0000000000000000000000000000000000000000..f5cc553102318ddd02c890bc351d8bc20257f0b6
GIT binary patch
literal 183
zcmeAS@N?(olHy`uVBq!ia0vp^8bF-F!3HG1q!d*FsX9*=$B>N1x91EQ8x$BA9GBEf
z9NIC<RmtGag2VAmyXRH!eSG}c^~T9fs}^Xj;95mpDvMd{7>h=cE^98(B@CXfelF{r
G5}E*}w?_8>

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/swanky-purse/images/ui-bg_highlight-hard_65_fee4bd_1x100.png b/public/admin/js/osmplayer/jquery-ui/swanky-purse/images/ui-bg_highlight-hard_65_fee4bd_1x100.png
new file mode 100644
index 0000000000000000000000000000000000000000..52d3a341825ea6d2f42a6eca315447b90f7de390
GIT binary patch
literal 114
zcmeAS@N?(olHy`uVBq!ia0vp^j6j^i!3HGVb)pi0l%=POV~E7myXQA@GAIZ*U(EkD
z|GeRy2YTTg;WxOGK69w}o-oyIxNmT%vp`+w;fqHK6TY9zuqk*b#9E#tlln9L({-RB
N44$rjF6*2UngH;tCDQ-^

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/swanky-purse/images/ui-icons_070603_256x240.png b/public/admin/js/osmplayer/jquery-ui/swanky-purse/images/ui-icons_070603_256x240.png
new file mode 100644
index 0000000000000000000000000000000000000000..fb0bf7287fd9a38d09a54c8079a74d7ce156d530
GIT binary patch
literal 4369
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

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/swanky-purse/images/ui-icons_e8e2b5_256x240.png b/public/admin/js/osmplayer/jquery-ui/swanky-purse/images/ui-icons_e8e2b5_256x240.png
new file mode 100644
index 0000000000000000000000000000000000000000..e349b59b4f15abf066513fdaecb6829d74f1c2c7
GIT binary patch
literal 5355
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
X_Gc^EhHU=dFY}4IzFMt{L(KmGnoNg(

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/swanky-purse/images/ui-icons_e9cd86_256x240.png b/public/admin/js/osmplayer/jquery-ui/swanky-purse/images/ui-icons_e9cd86_256x240.png
new file mode 100644
index 0000000000000000000000000000000000000000..8cb9c894a2a470cab054e605a41421d8ffec6ef2
GIT binary patch
literal 4369
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

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/swanky-purse/images/ui-icons_efec9f_256x240.png b/public/admin/js/osmplayer/jquery-ui/swanky-purse/images/ui-icons_efec9f_256x240.png
new file mode 100644
index 0000000000000000000000000000000000000000..232e4b99ad5b56d10f5434ea847b9a145c3b7b14
GIT binary patch
literal 5355
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
W`?Hm7LpJ~Km-$3pU#(WfA?AN_D}yiq

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/swanky-purse/images/ui-icons_f2ec64_256x240.png b/public/admin/js/osmplayer/jquery-ui/swanky-purse/images/ui-icons_f2ec64_256x240.png
new file mode 100644
index 0000000000000000000000000000000000000000..734740c1e5b0f89f0e2b294a340912ea01453591
GIT binary patch
literal 4369
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

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/swanky-purse/images/ui-icons_f9f2bd_256x240.png b/public/admin/js/osmplayer/jquery-ui/swanky-purse/images/ui-icons_f9f2bd_256x240.png
new file mode 100644
index 0000000000000000000000000000000000000000..2350769f5858bc15b41a922ea7e63ae483e2b21c
GIT binary patch
literal 5355
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
W`?Hm7LpJ~Km-$3pU#(WfA?AM@^pb`E

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/swanky-purse/images/ui-icons_ff7519_256x240.png b/public/admin/js/osmplayer/jquery-ui/swanky-purse/images/ui-icons_ff7519_256x240.png
new file mode 100644
index 0000000000000000000000000000000000000000..544517142205f1adfc22b44eda10028e10abd42c
GIT binary patch
literal 4369
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

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/swanky-purse/jquery-ui-1.8.18.custom.css b/public/admin/js/osmplayer/jquery-ui/swanky-purse/jquery-ui-1.8.18.custom.css
new file mode 100644
index 00000000000..17f1d774fcd
--- /dev/null
+++ b/public/admin/js/osmplayer/jquery-ui/swanky-purse/jquery-ui-1.8.18.custom.css
@@ -0,0 +1,565 @@
+/*
+ * jQuery UI CSS Framework 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Theming/API
+ */
+
+/* Layout helpers
+----------------------------------*/
+.player-ui .ui-helper-hidden { display: none; }
+.player-ui .ui-helper-hidden-accessible { position: absolute !important; clip: rect(1px 1px 1px 1px); clip: rect(1px,1px,1px,1px); }
+.player-ui .ui-helper-reset { margin: 0; padding: 0; border: 0; outline: 0; line-height: 1.3; text-decoration: none; font-size: 100%; list-style: none; }
+.player-ui .ui-helper-clearfix:before, .player-ui .ui-helper-clearfix:after { content: ""; display: table; }
+.player-ui .ui-helper-clearfix:after { clear: both; }
+.player-ui .ui-helper-clearfix { zoom: 1; }
+.player-ui .ui-helper-zfix { width: 100%; height: 100%; top: 0; left: 0; position: absolute; opacity: 0; filter:Alpha(Opacity=0); }
+
+
+/* Interaction Cues
+----------------------------------*/
+.player-ui .ui-state-disabled { cursor: default !important; }
+
+
+/* Icons
+----------------------------------*/
+
+/* states and images */
+.player-ui .ui-icon { display: block; text-indent: -99999px; overflow: hidden; background-repeat: no-repeat; }
+
+
+/* Misc visuals
+----------------------------------*/
+
+/* Overlays */
+.player-ui .ui-widget-overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }
+
+
+/*
+ * jQuery UI CSS Framework 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Theming/API
+ *
+ * To view and modify this theme, visit http://jqueryui.com/themeroller/?ffDefault=Georgia,%20Verdana,Arial,sans-serif&fwDefault=bold&fsDefault=1.2em&cornerRadius=5px&bgColorHeader=261803&bgTextureHeader=13_diamond.png&bgImgOpacityHeader=8&borderColorHeader=baaa5a&fcHeader=eacd86&iconColorHeader=e9cd86&bgColorContent=443113&bgTextureContent=13_diamond.png&bgImgOpacityContent=8&borderColorContent=efec9f&fcContent=efec9f&iconColorContent=efec9f&bgColorDefault=4f4221&bgTextureDefault=13_diamond.png&bgImgOpacityDefault=10&borderColorDefault=362917&fcDefault=f8eec9&iconColorDefault=e8e2b5&bgColorHover=675423&bgTextureHover=13_diamond.png&bgImgOpacityHover=25&borderColorHover=362917&fcHover=f8eec9&iconColorHover=f2ec64&bgColorActive=443113&bgTextureActive=13_diamond.png&bgImgOpacityActive=8&borderColorActive=efec9f&fcActive=f9f2bd&iconColorActive=f9f2bd&bgColorHighlight=d5ac5d&bgTextureHighlight=13_diamond.png&bgImgOpacityHighlight=25&borderColorHighlight=362917&fcHighlight=060200&iconColorHighlight=070603&bgColorError=fee4bd&bgTextureError=04_highlight_hard.png&bgImgOpacityError=65&borderColorError=c26629&fcError=803f1e&iconColorError=ff7519&bgColorOverlay=372806&bgTextureOverlay=13_diamond.png&bgImgOpacityOverlay=20&opacityOverlay=80&bgColorShadow=ddd4b0&bgTextureShadow=01_flat.png&bgImgOpacityShadow=75&opacityShadow=30&thicknessShadow=8px&offsetTopShadow=-8px&offsetLeftShadow=-8px&cornerRadiusShadow=12px
+ */
+
+
+/* Component containers
+----------------------------------*/
+.player-ui .ui-widget { font-family: Georgia, Verdana,Arial,sans-serif; font-size: 1.2em; }
+.player-ui .ui-widget .ui-widget { font-size: 1em; }
+.player-ui .ui-widget input, .player-ui .ui-widget select, .player-ui .ui-widget textarea, .player-ui .ui-widget button { font-family: Georgia, Verdana,Arial,sans-serif; font-size: 1em; }
+.player-ui .ui-widget-content { border: 1px solid #efec9f; background: #443113 url(images/ui-bg_diamond_8_443113_10x8.png) 50% 50% repeat; color: #efec9f; }
+.player-ui .ui-widget-content a { color: #efec9f; }
+.player-ui .ui-widget-header { border: 1px solid #baaa5a; background: #261803 url(images/ui-bg_diamond_8_261803_10x8.png) 50% 50% repeat; color: #eacd86; font-weight: bold; }
+.player-ui .ui-widget-header a { color: #eacd86; }
+
+/* Interaction states
+----------------------------------*/
+.player-ui .ui-state-default, .player-ui .ui-widget-content .ui-state-default, .player-ui .ui-widget-header .ui-state-default { border: 1px solid #362917; background: #4f4221 url(images/ui-bg_diamond_10_4f4221_10x8.png) 50% 50% repeat; font-weight: bold; color: #f8eec9; }
+.player-ui .ui-state-default a, .player-ui .ui-state-default a:link, .player-ui .ui-state-default a:visited { color: #f8eec9; text-decoration: none; }
+.player-ui .ui-state-hover, .player-ui .ui-widget-content .ui-state-hover, .player-ui .ui-widget-header .ui-state-hover, .player-ui .ui-state-focus, .player-ui .ui-widget-content .ui-state-focus, .player-ui .ui-widget-header .ui-state-focus { border: 1px solid #362917; background: #675423 url(images/ui-bg_diamond_25_675423_10x8.png) 50% 50% repeat; font-weight: bold; color: #f8eec9; }
+.player-ui .ui-state-hover a, .player-ui .ui-state-hover a:hover { color: #f8eec9; text-decoration: none; }
+.player-ui .ui-state-active, .player-ui .ui-widget-content .ui-state-active, .player-ui .ui-widget-header .ui-state-active { border: 1px solid #efec9f; background: #443113 url(images/ui-bg_diamond_8_443113_10x8.png) 50% 50% repeat; font-weight: bold; color: #f9f2bd; }
+.player-ui .ui-state-active a, .player-ui .ui-state-active a:link, .player-ui .ui-state-active a:visited { color: #f9f2bd; text-decoration: none; }
+.player-ui .ui-widget :active { outline: none; }
+
+/* Interaction Cues
+----------------------------------*/
+.player-ui .ui-state-highlight, .player-ui .ui-widget-content .ui-state-highlight, .player-ui .ui-widget-header .ui-state-highlight  {border: 1px solid #362917; background: #d5ac5d url(images/ui-bg_diamond_25_d5ac5d_10x8.png) 50% 50% repeat; color: #060200; }
+.player-ui .ui-state-highlight a, .player-ui .ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a { color: #060200; }
+.player-ui .ui-state-error, .player-ui .ui-widget-content .ui-state-error, .player-ui .ui-widget-header .ui-state-error {border: 1px solid #c26629; background: #fee4bd url(images/ui-bg_highlight-hard_65_fee4bd_1x100.png) 50% top repeat-x; color: #803f1e; }
+.player-ui .ui-state-error a, .player-ui .ui-widget-content .ui-state-error a, .player-ui .ui-widget-header .ui-state-error a { color: #803f1e; }
+.player-ui .ui-state-error-text, .player-ui .ui-widget-content .ui-state-error-text, .player-ui .ui-widget-header .ui-state-error-text { color: #803f1e; }
+.player-ui .ui-priority-primary, .player-ui .ui-widget-content .ui-priority-primary, .player-ui .ui-widget-header .ui-priority-primary { font-weight: bold; }
+.player-ui .ui-priority-secondary, .player-ui .ui-widget-content .ui-priority-secondary,  .ui-widget-header .ui-priority-secondary { opacity: .7; filter:Alpha(Opacity=70); font-weight: normal; }
+.player-ui .ui-state-disabled, .player-ui .ui-widget-content .ui-state-disabled, .player-ui .ui-widget-header .ui-state-disabled { opacity: .35; filter:Alpha(Opacity=35); background-image: none; }
+
+/* Icons
+----------------------------------*/
+
+/* states and images */
+.player-ui .ui-icon { width: 16px; height: 16px; background-image: url(images/ui-icons_efec9f_256x240.png); }
+.player-ui .ui-widget-content .ui-icon {background-image: url(images/ui-icons_efec9f_256x240.png); }
+.player-ui .ui-widget-header .ui-icon {background-image: url(images/ui-icons_e9cd86_256x240.png); }
+.player-ui .ui-state-default .ui-icon { background-image: url(images/ui-icons_e8e2b5_256x240.png); }
+.player-ui .ui-state-hover .ui-icon, .player-ui .ui-state-focus .ui-icon {background-image: url(images/ui-icons_f2ec64_256x240.png); }
+.player-ui .ui-state-active .ui-icon {background-image: url(images/ui-icons_f9f2bd_256x240.png); }
+.player-ui .ui-state-highlight .ui-icon {background-image: url(images/ui-icons_070603_256x240.png); }
+.player-ui .ui-state-error .ui-icon, .player-ui .ui-state-error-text .ui-icon {background-image: url(images/ui-icons_ff7519_256x240.png); }
+
+/* positioning */
+.player-ui .ui-icon-carat-1-n { background-position: 0 0; }
+.player-ui .ui-icon-carat-1-ne { background-position: -16px 0; }
+.player-ui .ui-icon-carat-1-e { background-position: -32px 0; }
+.player-ui .ui-icon-carat-1-se { background-position: -48px 0; }
+.player-ui .ui-icon-carat-1-s { background-position: -64px 0; }
+.player-ui .ui-icon-carat-1-sw { background-position: -80px 0; }
+.player-ui .ui-icon-carat-1-w { background-position: -96px 0; }
+.player-ui .ui-icon-carat-1-nw { background-position: -112px 0; }
+.player-ui .ui-icon-carat-2-n-s { background-position: -128px 0; }
+.player-ui .ui-icon-carat-2-e-w { background-position: -144px 0; }
+.player-ui .ui-icon-triangle-1-n { background-position: 0 -16px; }
+.player-ui .ui-icon-triangle-1-ne { background-position: -16px -16px; }
+.player-ui .ui-icon-triangle-1-e { background-position: -32px -16px; }
+.player-ui .ui-icon-triangle-1-se { background-position: -48px -16px; }
+.player-ui .ui-icon-triangle-1-s { background-position: -64px -16px; }
+.player-ui .ui-icon-triangle-1-sw { background-position: -80px -16px; }
+.player-ui .ui-icon-triangle-1-w { background-position: -96px -16px; }
+.player-ui .ui-icon-triangle-1-nw { background-position: -112px -16px; }
+.player-ui .ui-icon-triangle-2-n-s { background-position: -128px -16px; }
+.player-ui .ui-icon-triangle-2-e-w { background-position: -144px -16px; }
+.player-ui .ui-icon-arrow-1-n { background-position: 0 -32px; }
+.player-ui .ui-icon-arrow-1-ne { background-position: -16px -32px; }
+.player-ui .ui-icon-arrow-1-e { background-position: -32px -32px; }
+.player-ui .ui-icon-arrow-1-se { background-position: -48px -32px; }
+.player-ui .ui-icon-arrow-1-s { background-position: -64px -32px; }
+.player-ui .ui-icon-arrow-1-sw { background-position: -80px -32px; }
+.player-ui .ui-icon-arrow-1-w { background-position: -96px -32px; }
+.player-ui .ui-icon-arrow-1-nw { background-position: -112px -32px; }
+.player-ui .ui-icon-arrow-2-n-s { background-position: -128px -32px; }
+.player-ui .ui-icon-arrow-2-ne-sw { background-position: -144px -32px; }
+.player-ui .ui-icon-arrow-2-e-w { background-position: -160px -32px; }
+.player-ui .ui-icon-arrow-2-se-nw { background-position: -176px -32px; }
+.player-ui .ui-icon-arrowstop-1-n { background-position: -192px -32px; }
+.player-ui .ui-icon-arrowstop-1-e { background-position: -208px -32px; }
+.player-ui .ui-icon-arrowstop-1-s { background-position: -224px -32px; }
+.player-ui .ui-icon-arrowstop-1-w { background-position: -240px -32px; }
+.player-ui .ui-icon-arrowthick-1-n { background-position: 0 -48px; }
+.player-ui .ui-icon-arrowthick-1-ne { background-position: -16px -48px; }
+.player-ui .ui-icon-arrowthick-1-e { background-position: -32px -48px; }
+.player-ui .ui-icon-arrowthick-1-se { background-position: -48px -48px; }
+.player-ui .ui-icon-arrowthick-1-s { background-position: -64px -48px; }
+.player-ui .ui-icon-arrowthick-1-sw { background-position: -80px -48px; }
+.player-ui .ui-icon-arrowthick-1-w { background-position: -96px -48px; }
+.player-ui .ui-icon-arrowthick-1-nw { background-position: -112px -48px; }
+.player-ui .ui-icon-arrowthick-2-n-s { background-position: -128px -48px; }
+.player-ui .ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px; }
+.player-ui .ui-icon-arrowthick-2-e-w { background-position: -160px -48px; }
+.player-ui .ui-icon-arrowthick-2-se-nw { background-position: -176px -48px; }
+.player-ui .ui-icon-arrowthickstop-1-n { background-position: -192px -48px; }
+.player-ui .ui-icon-arrowthickstop-1-e { background-position: -208px -48px; }
+.player-ui .ui-icon-arrowthickstop-1-s { background-position: -224px -48px; }
+.player-ui .ui-icon-arrowthickstop-1-w { background-position: -240px -48px; }
+.player-ui .ui-icon-arrowreturnthick-1-w { background-position: 0 -64px; }
+.player-ui .ui-icon-arrowreturnthick-1-n { background-position: -16px -64px; }
+.player-ui .ui-icon-arrowreturnthick-1-e { background-position: -32px -64px; }
+.player-ui .ui-icon-arrowreturnthick-1-s { background-position: -48px -64px; }
+.player-ui .ui-icon-arrowreturn-1-w { background-position: -64px -64px; }
+.player-ui .ui-icon-arrowreturn-1-n { background-position: -80px -64px; }
+.player-ui .ui-icon-arrowreturn-1-e { background-position: -96px -64px; }
+.player-ui .ui-icon-arrowreturn-1-s { background-position: -112px -64px; }
+.player-ui .ui-icon-arrowrefresh-1-w { background-position: -128px -64px; }
+.player-ui .ui-icon-arrowrefresh-1-n { background-position: -144px -64px; }
+.player-ui .ui-icon-arrowrefresh-1-e { background-position: -160px -64px; }
+.player-ui .ui-icon-arrowrefresh-1-s { background-position: -176px -64px; }
+.player-ui .ui-icon-arrow-4 { background-position: 0 -80px; }
+.player-ui .ui-icon-arrow-4-diag { background-position: -16px -80px; }
+.player-ui .ui-icon-extlink { background-position: -32px -80px; }
+.player-ui .ui-icon-newwin { background-position: -48px -80px; }
+.player-ui .ui-icon-refresh { background-position: -64px -80px; }
+.player-ui .ui-icon-shuffle { background-position: -80px -80px; }
+.player-ui .ui-icon-transfer-e-w { background-position: -96px -80px; }
+.player-ui .ui-icon-transferthick-e-w { background-position: -112px -80px; }
+.player-ui .ui-icon-folder-collapsed { background-position: 0 -96px; }
+.player-ui .ui-icon-folder-open { background-position: -16px -96px; }
+.player-ui .ui-icon-document { background-position: -32px -96px; }
+.player-ui .ui-icon-document-b { background-position: -48px -96px; }
+.player-ui .ui-icon-note { background-position: -64px -96px; }
+.player-ui .ui-icon-mail-closed { background-position: -80px -96px; }
+.player-ui .ui-icon-mail-open { background-position: -96px -96px; }
+.player-ui .ui-icon-suitcase { background-position: -112px -96px; }
+.player-ui .ui-icon-comment { background-position: -128px -96px; }
+.player-ui .ui-icon-person { background-position: -144px -96px; }
+.player-ui .ui-icon-print { background-position: -160px -96px; }
+.player-ui .ui-icon-trash { background-position: -176px -96px; }
+.player-ui .ui-icon-locked { background-position: -192px -96px; }
+.player-ui .ui-icon-unlocked { background-position: -208px -96px; }
+.player-ui .ui-icon-bookmark { background-position: -224px -96px; }
+.player-ui .ui-icon-tag { background-position: -240px -96px; }
+.player-ui .ui-icon-home { background-position: 0 -112px; }
+.player-ui .ui-icon-flag { background-position: -16px -112px; }
+.player-ui .ui-icon-calendar { background-position: -32px -112px; }
+.player-ui .ui-icon-cart { background-position: -48px -112px; }
+.player-ui .ui-icon-pencil { background-position: -64px -112px; }
+.player-ui .ui-icon-clock { background-position: -80px -112px; }
+.player-ui .ui-icon-disk { background-position: -96px -112px; }
+.player-ui .ui-icon-calculator { background-position: -112px -112px; }
+.player-ui .ui-icon-zoomin { background-position: -128px -112px; }
+.player-ui .ui-icon-zoomout { background-position: -144px -112px; }
+.player-ui .ui-icon-search { background-position: -160px -112px; }
+.player-ui .ui-icon-wrench { background-position: -176px -112px; }
+.player-ui .ui-icon-gear { background-position: -192px -112px; }
+.player-ui .ui-icon-heart { background-position: -208px -112px; }
+.player-ui .ui-icon-star { background-position: -224px -112px; }
+.player-ui .ui-icon-link { background-position: -240px -112px; }
+.player-ui .ui-icon-cancel { background-position: 0 -128px; }
+.player-ui .ui-icon-plus { background-position: -16px -128px; }
+.player-ui .ui-icon-plusthick { background-position: -32px -128px; }
+.player-ui .ui-icon-minus { background-position: -48px -128px; }
+.player-ui .ui-icon-minusthick { background-position: -64px -128px; }
+.player-ui .ui-icon-close { background-position: -80px -128px; }
+.player-ui .ui-icon-closethick { background-position: -96px -128px; }
+.player-ui .ui-icon-key { background-position: -112px -128px; }
+.player-ui .ui-icon-lightbulb { background-position: -128px -128px; }
+.player-ui .ui-icon-scissors { background-position: -144px -128px; }
+.player-ui .ui-icon-clipboard { background-position: -160px -128px; }
+.player-ui .ui-icon-copy { background-position: -176px -128px; }
+.player-ui .ui-icon-contact { background-position: -192px -128px; }
+.player-ui .ui-icon-image { background-position: -208px -128px; }
+.player-ui .ui-icon-video { background-position: -224px -128px; }
+.player-ui .ui-icon-script { background-position: -240px -128px; }
+.player-ui .ui-icon-alert { background-position: 0 -144px; }
+.player-ui .ui-icon-info { background-position: -16px -144px; }
+.player-ui .ui-icon-notice { background-position: -32px -144px; }
+.player-ui .ui-icon-help { background-position: -48px -144px; }
+.player-ui .ui-icon-check { background-position: -64px -144px; }
+.player-ui .ui-icon-bullet { background-position: -80px -144px; }
+.player-ui .ui-icon-radio-off { background-position: -96px -144px; }
+.player-ui .ui-icon-radio-on { background-position: -112px -144px; }
+.player-ui .ui-icon-pin-w { background-position: -128px -144px; }
+.player-ui .ui-icon-pin-s { background-position: -144px -144px; }
+.player-ui .ui-icon-play { background-position: 0 -160px; }
+.player-ui .ui-icon-pause { background-position: -16px -160px; }
+.player-ui .ui-icon-seek-next { background-position: -32px -160px; }
+.player-ui .ui-icon-seek-prev { background-position: -48px -160px; }
+.player-ui .ui-icon-seek-end { background-position: -64px -160px; }
+.player-ui .ui-icon-seek-start { background-position: -80px -160px; }
+/* ui-icon-seek-first is deprecated, use ui-icon-seek-start instead */
+.player-ui .ui-icon-seek-first { background-position: -80px -160px; }
+.player-ui .ui-icon-stop { background-position: -96px -160px; }
+.player-ui .ui-icon-eject { background-position: -112px -160px; }
+.player-ui .ui-icon-volume-off { background-position: -128px -160px; }
+.player-ui .ui-icon-volume-on { background-position: -144px -160px; }
+.player-ui .ui-icon-power { background-position: 0 -176px; }
+.player-ui .ui-icon-signal-diag { background-position: -16px -176px; }
+.player-ui .ui-icon-signal { background-position: -32px -176px; }
+.player-ui .ui-icon-battery-0 { background-position: -48px -176px; }
+.player-ui .ui-icon-battery-1 { background-position: -64px -176px; }
+.player-ui .ui-icon-battery-2 { background-position: -80px -176px; }
+.player-ui .ui-icon-battery-3 { background-position: -96px -176px; }
+.player-ui .ui-icon-circle-plus { background-position: 0 -192px; }
+.player-ui .ui-icon-circle-minus { background-position: -16px -192px; }
+.player-ui .ui-icon-circle-close { background-position: -32px -192px; }
+.player-ui .ui-icon-circle-triangle-e { background-position: -48px -192px; }
+.player-ui .ui-icon-circle-triangle-s { background-position: -64px -192px; }
+.player-ui .ui-icon-circle-triangle-w { background-position: -80px -192px; }
+.player-ui .ui-icon-circle-triangle-n { background-position: -96px -192px; }
+.player-ui .ui-icon-circle-arrow-e { background-position: -112px -192px; }
+.player-ui .ui-icon-circle-arrow-s { background-position: -128px -192px; }
+.player-ui .ui-icon-circle-arrow-w { background-position: -144px -192px; }
+.player-ui .ui-icon-circle-arrow-n { background-position: -160px -192px; }
+.player-ui .ui-icon-circle-zoomin { background-position: -176px -192px; }
+.player-ui .ui-icon-circle-zoomout { background-position: -192px -192px; }
+.player-ui .ui-icon-circle-check { background-position: -208px -192px; }
+.player-ui .ui-icon-circlesmall-plus { background-position: 0 -208px; }
+.player-ui .ui-icon-circlesmall-minus { background-position: -16px -208px; }
+.player-ui .ui-icon-circlesmall-close { background-position: -32px -208px; }
+.player-ui .ui-icon-squaresmall-plus { background-position: -48px -208px; }
+.player-ui .ui-icon-squaresmall-minus { background-position: -64px -208px; }
+.player-ui .ui-icon-squaresmall-close { background-position: -80px -208px; }
+.player-ui .ui-icon-grip-dotted-vertical { background-position: 0 -224px; }
+.player-ui .ui-icon-grip-dotted-horizontal { background-position: -16px -224px; }
+.player-ui .ui-icon-grip-solid-vertical { background-position: -32px -224px; }
+.player-ui .ui-icon-grip-solid-horizontal { background-position: -48px -224px; }
+.player-ui .ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; }
+.player-ui .ui-icon-grip-diagonal-se { background-position: -80px -224px; }
+
+
+/* Misc visuals
+----------------------------------*/
+
+/* Corner radius */
+.player-ui .ui-corner-all, .player-ui .ui-corner-top, .player-ui .ui-corner-left, .player-ui .ui-corner-tl { -moz-border-radius-topleft: 5px; -webkit-border-top-left-radius: 5px; -khtml-border-top-left-radius: 5px; border-top-left-radius: 5px; }
+.player-ui .ui-corner-all, .player-ui .ui-corner-top, .player-ui .ui-corner-right, .player-ui .ui-corner-tr { -moz-border-radius-topright: 5px; -webkit-border-top-right-radius: 5px; -khtml-border-top-right-radius: 5px; border-top-right-radius: 5px; }
+.player-ui .ui-corner-all, .player-ui .ui-corner-bottom, .player-ui .ui-corner-left, .player-ui .ui-corner-bl { -moz-border-radius-bottomleft: 5px; -webkit-border-bottom-left-radius: 5px; -khtml-border-bottom-left-radius: 5px; border-bottom-left-radius: 5px; }
+.player-ui .ui-corner-all, .player-ui .ui-corner-bottom, .player-ui .ui-corner-right, .player-ui .ui-corner-br { -moz-border-radius-bottomright: 5px; -webkit-border-bottom-right-radius: 5px; -khtml-border-bottom-right-radius: 5px; border-bottom-right-radius: 5px; }
+
+/* Overlays */
+.player-ui .ui-widget-overlay { background: #372806 url(images/ui-bg_diamond_20_372806_10x8.png) 50% 50% repeat; opacity: .80;filter:Alpha(Opacity=80); }
+.player-ui .ui-widget-shadow { margin: -8px 0 0 -8px; padding: 8px; background: #ddd4b0 url(images/ui-bg_flat_75_ddd4b0_40x100.png) 50% 50% repeat-x; opacity: .30;filter:Alpha(Opacity=30); -moz-border-radius: 12px; -khtml-border-radius: 12px; -webkit-border-radius: 12px; border-radius: 12px; }/*
+ * jQuery UI Resizable 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Resizable#theming
+ */
+.player-ui .ui-resizable { position: relative;}
+.player-ui .ui-resizable-handle { position: absolute;font-size: 0.1px;z-index: 99999; display: block; }
+.player-ui .ui-resizable-disabled .ui-resizable-handle, .player-ui .ui-resizable-autohide .ui-resizable-handle { display: none; }
+.player-ui .ui-resizable-n { cursor: n-resize; height: 7px; width: 100%; top: -5px; left: 0; }
+.player-ui .ui-resizable-s { cursor: s-resize; height: 7px; width: 100%; bottom: -5px; left: 0; }
+.player-ui .ui-resizable-e { cursor: e-resize; width: 7px; right: -5px; top: 0; height: 100%; }
+.player-ui .ui-resizable-w { cursor: w-resize; width: 7px; left: -5px; top: 0; height: 100%; }
+.player-ui .ui-resizable-se { cursor: se-resize; width: 12px; height: 12px; right: 1px; bottom: 1px; }
+.player-ui .ui-resizable-sw { cursor: sw-resize; width: 9px; height: 9px; left: -5px; bottom: -5px; }
+.player-ui .ui-resizable-nw { cursor: nw-resize; width: 9px; height: 9px; left: -5px; top: -5px; }
+.player-ui .ui-resizable-ne { cursor: ne-resize; width: 9px; height: 9px; right: -5px; top: -5px;}/*
+ * jQuery UI Selectable 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Selectable#theming
+ */
+.player-ui .ui-selectable-helper { position: absolute; z-index: 100; border:1px dotted black; }
+/*
+ * jQuery UI Accordion 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Accordion#theming
+ */
+/* IE/Win - Fix animation bug - #4615 */
+.player-ui .ui-accordion { width: 100%; }
+.player-ui .ui-accordion .ui-accordion-header { cursor: pointer; position: relative; margin-top: 1px; zoom: 1; }
+.player-ui .ui-accordion .ui-accordion-li-fix { display: inline; }
+.player-ui .ui-accordion .ui-accordion-header-active { border-bottom: 0 !important; }
+.player-ui .ui-accordion .ui-accordion-header a { display: block; font-size: 1em; padding: .5em .5em .5em .7em; }
+.player-ui .ui-accordion-icons .ui-accordion-header a { padding-left: 2.2em; }
+.player-ui .ui-accordion .ui-accordion-header .ui-icon { position: absolute; left: .5em; top: 50%; margin-top: -8px; }
+.player-ui .ui-accordion .ui-accordion-content { padding: 1em 2.2em; border-top: 0; margin-top: -2px; position: relative; top: 1px; margin-bottom: 2px; overflow: auto; display: none; zoom: 1; }
+.player-ui .ui-accordion .ui-accordion-content-active { display: block; }
+/*
+ * jQuery UI Autocomplete 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Autocomplete#theming
+ */
+.player-ui .ui-autocomplete { position: absolute; cursor: default; }	
+
+/* workarounds */
+* html .ui-autocomplete { width:1px; } /* without this, the menu expands to 100% in IE6 */
+
+/*
+ * jQuery UI Menu 1.8.18
+ *
+ * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Menu#theming
+ */
+.player-ui .ui-menu {
+	list-style:none;
+	padding: 2px;
+	margin: 0;
+	display:block;
+	float: left;
+}
+.player-ui .ui-menu .ui-menu {
+	margin-top: -3px;
+}
+.player-ui .ui-menu .ui-menu-item {
+	margin:0;
+	padding: 0;
+	zoom: 1;
+	float: left;
+	clear: left;
+	width: 100%;
+}
+.player-ui .ui-menu .ui-menu-item a {
+	text-decoration:none;
+	display:block;
+	padding:.2em .4em;
+	line-height:1.5;
+	zoom:1;
+}
+.player-ui .ui-menu .ui-menu-item a.ui-state-hover,
+.player-ui .ui-menu .ui-menu-item a.ui-state-active {
+	font-weight: normal;
+	margin: -1px;
+}
+/*
+ * jQuery UI Button 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Button#theming
+ */
+.player-ui .ui-button { display: inline-block; position: relative; padding: 0; margin-right: .1em; text-decoration: none !important; cursor: pointer; text-align: center; zoom: 1; overflow: hidden; *overflow: visible; } /* the overflow property removes extra width in IE */
+.player-ui .ui-button-icon-only { width: 2.2em; } /* to make room for the icon, a width needs to be set here */
+button.ui-button-icon-only { width: 2.4em; } /* button elements seem to need a little more width */
+.player-ui .ui-button-icons-only { width: 3.4em; } 
+button.ui-button-icons-only { width: 3.7em; } 
+
+/*button text element */
+.player-ui .ui-button .ui-button-text { display: block; line-height: 1.4;  }
+.player-ui .ui-button-text-only .ui-button-text { padding: .4em 1em; }
+.player-ui .ui-button-icon-only .ui-button-text, .player-ui .ui-button-icons-only .ui-button-text { padding: .4em; text-indent: -9999999px; }
+.player-ui .ui-button-text-icon-primary .ui-button-text, .player-ui .ui-button-text-icons .ui-button-text { padding: .4em 1em .4em 2.1em; }
+.player-ui .ui-button-text-icon-secondary .ui-button-text, .player-ui .ui-button-text-icons .ui-button-text { padding: .4em 2.1em .4em 1em; }
+.player-ui .ui-button-text-icons .ui-button-text { padding-left: 2.1em; padding-right: 2.1em; }
+/* no icon support for input elements, provide padding by default */
+input.ui-button { padding: .4em 1em; }
+
+/*button icon element(s) */
+.player-ui .ui-button-icon-only .ui-icon, .player-ui .ui-button-text-icon-primary .ui-icon, .player-ui .ui-button-text-icon-secondary .ui-icon, .player-ui .ui-button-text-icons .ui-icon, .player-ui .ui-button-icons-only .ui-icon { position: absolute; top: 50%; margin-top: -8px; }
+.player-ui .ui-button-icon-only .ui-icon { left: 50%; margin-left: -8px; }
+.player-ui .ui-button-text-icon-primary .ui-button-icon-primary, .player-ui .ui-button-text-icons .ui-button-icon-primary, .player-ui .ui-button-icons-only .ui-button-icon-primary { left: .5em; }
+.player-ui .ui-button-text-icon-secondary .ui-button-icon-secondary, .player-ui .ui-button-text-icons .ui-button-icon-secondary, .player-ui .ui-button-icons-only .ui-button-icon-secondary { right: .5em; }
+.player-ui .ui-button-text-icons .ui-button-icon-secondary, .player-ui .ui-button-icons-only .ui-button-icon-secondary { right: .5em; }
+
+/*button sets*/
+.player-ui .ui-buttonset { margin-right: 7px; }
+.player-ui .ui-buttonset .ui-button { margin-left: 0; margin-right: -.3em; }
+
+/* workarounds */
+button.ui-button::-moz-focus-inner { border: 0; padding: 0; } /* reset extra padding in Firefox */
+/*
+ * jQuery UI Dialog 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Dialog#theming
+ */
+.player-ui .ui-dialog { position: absolute; padding: .2em; width: 300px; overflow: hidden; }
+.player-ui .ui-dialog .ui-dialog-titlebar { padding: .4em 1em; position: relative;  }
+.player-ui .ui-dialog .ui-dialog-title { float: left; margin: .1em 16px .1em 0; } 
+.player-ui .ui-dialog .ui-dialog-titlebar-close { position: absolute; right: .3em; top: 50%; width: 19px; margin: -10px 0 0 0; padding: 1px; height: 18px; }
+.player-ui .ui-dialog .ui-dialog-titlebar-close span { display: block; margin: 1px; }
+.player-ui .ui-dialog .ui-dialog-titlebar-close:hover, .player-ui .ui-dialog .ui-dialog-titlebar-close:focus { padding: 0; }
+.player-ui .ui-dialog .ui-dialog-content { position: relative; border: 0; padding: .5em 1em; background: none; overflow: auto; zoom: 1; }
+.player-ui .ui-dialog .ui-dialog-buttonpane { text-align: left; border-width: 1px 0 0 0; background-image: none; margin: .5em 0 0 0; padding: .3em 1em .5em .4em; }
+.player-ui .ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset { float: right; }
+.player-ui .ui-dialog .ui-dialog-buttonpane button { margin: .5em .4em .5em 0; cursor: pointer; }
+.player-ui .ui-dialog .ui-resizable-se { width: 14px; height: 14px; right: 3px; bottom: 3px; }
+.player-ui .ui-draggable .ui-dialog-titlebar { cursor: move; }
+/*
+ * jQuery UI Slider 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Slider#theming
+ */
+.player-ui .ui-slider { position: relative; text-align: left; }
+.player-ui .ui-slider .ui-slider-handle { position: absolute; z-index: 2; width: 1.2em; height: 1.2em; cursor: default; }
+.player-ui .ui-slider .ui-slider-range { position: absolute; z-index: 1; font-size: .7em; display: block; border: 0; background-position: 0 0; }
+
+.player-ui .ui-slider-horizontal { height: .8em; }
+.player-ui .ui-slider-horizontal .ui-slider-handle { top: -.3em; margin-left: -.6em; }
+.player-ui .ui-slider-horizontal .ui-slider-range { top: 0; height: 100%; }
+.player-ui .ui-slider-horizontal .ui-slider-range-min { left: 0; }
+.player-ui .ui-slider-horizontal .ui-slider-range-max { right: 0; }
+
+.player-ui .ui-slider-vertical { width: .8em; height: 100px; }
+.player-ui .ui-slider-vertical .ui-slider-handle { left: -.3em; margin-left: 0; margin-bottom: -.6em; }
+.player-ui .ui-slider-vertical .ui-slider-range { left: 0; width: 100%; }
+.player-ui .ui-slider-vertical .ui-slider-range-min { bottom: 0; }
+.player-ui .ui-slider-vertical .ui-slider-range-max { top: 0; }/*
+ * jQuery UI Tabs 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Tabs#theming
+ */
+.player-ui .ui-tabs { position: relative; padding: .2em; zoom: 1; } /* position: relative prevents IE scroll bug (element with position: relative inside container with overflow: auto appear as "fixed") */
+.player-ui .ui-tabs .ui-tabs-nav { margin: 0; padding: .2em .2em 0; }
+.player-ui .ui-tabs .ui-tabs-nav li { list-style: none; float: left; position: relative; top: 1px; margin: 0 .2em 1px 0; border-bottom: 0 !important; padding: 0; white-space: nowrap; }
+.player-ui .ui-tabs .ui-tabs-nav li a { float: left; padding: .5em 1em; text-decoration: none; }
+.player-ui .ui-tabs .ui-tabs-nav li.ui-tabs-selected { margin-bottom: 0; padding-bottom: 1px; }
+.player-ui .ui-tabs .ui-tabs-nav li.ui-tabs-selected a, .player-ui .ui-tabs .ui-tabs-nav li.ui-state-disabled a, .player-ui .ui-tabs .ui-tabs-nav li.ui-state-processing a { cursor: text; }
+.player-ui .ui-tabs .ui-tabs-nav li a, .player-ui .ui-tabs.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-selected a { cursor: pointer; } /* first selector in group seems obsolete, but required to overcome bug in Opera applying cursor: text overall if defined elsewhere... */
+.player-ui .ui-tabs .ui-tabs-panel { display: block; border-width: 0; padding: 1em 1.4em; background: none; }
+.player-ui .ui-tabs .ui-tabs-hide { display: none !important; }
+/*
+ * jQuery UI Datepicker 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Datepicker#theming
+ */
+.player-ui .ui-datepicker { width: 17em; padding: .2em .2em 0; display: none; }
+.player-ui .ui-datepicker .ui-datepicker-header { position:relative; padding:.2em 0; }
+.player-ui .ui-datepicker .ui-datepicker-prev, .player-ui .ui-datepicker .ui-datepicker-next { position:absolute; top: 2px; width: 1.8em; height: 1.8em; }
+.player-ui .ui-datepicker .ui-datepicker-prev-hover, .player-ui .ui-datepicker .ui-datepicker-next-hover { top: 1px; }
+.player-ui .ui-datepicker .ui-datepicker-prev { left:2px; }
+.player-ui .ui-datepicker .ui-datepicker-next { right:2px; }
+.player-ui .ui-datepicker .ui-datepicker-prev-hover { left:1px; }
+.player-ui .ui-datepicker .ui-datepicker-next-hover { right:1px; }
+.player-ui .ui-datepicker .ui-datepicker-prev span, .player-ui .ui-datepicker .ui-datepicker-next span { display: block; position: absolute; left: 50%; margin-left: -8px; top: 50%; margin-top: -8px;  }
+.player-ui .ui-datepicker .ui-datepicker-title { margin: 0 2.3em; line-height: 1.8em; text-align: center; }
+.player-ui .ui-datepicker .ui-datepicker-title select { font-size:1em; margin:1px 0; }
+.player-ui .ui-datepicker select.ui-datepicker-month-year {width: 100%;}
+.player-ui .ui-datepicker select.ui-datepicker-month, 
+.player-ui .ui-datepicker select.ui-datepicker-year { width: 49%;}
+.player-ui .ui-datepicker table {width: 100%; font-size: .9em; border-collapse: collapse; margin:0 0 .4em; }
+.player-ui .ui-datepicker th { padding: .7em .3em; text-align: center; font-weight: bold; border: 0;  }
+.player-ui .ui-datepicker td { border: 0; padding: 1px; }
+.player-ui .ui-datepicker td span, .player-ui .ui-datepicker td a { display: block; padding: .2em; text-align: right; text-decoration: none; }
+.player-ui .ui-datepicker .ui-datepicker-buttonpane { background-image: none; margin: .7em 0 0 0; padding:0 .2em; border-left: 0; border-right: 0; border-bottom: 0; }
+.player-ui .ui-datepicker .ui-datepicker-buttonpane button { float: right; margin: .5em .2em .4em; cursor: pointer; padding: .2em .6em .3em .6em; width:auto; overflow:visible; }
+.player-ui .ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current { float:left; }
+
+/* with multiple calendars */
+.player-ui .ui-datepicker.ui-datepicker-multi { width:auto; }
+.player-ui .ui-datepicker-multi .ui-datepicker-group { float:left; }
+.player-ui .ui-datepicker-multi .ui-datepicker-group table { width:95%; margin:0 auto .4em; }
+.player-ui .ui-datepicker-multi-2 .ui-datepicker-group { width:50%; }
+.player-ui .ui-datepicker-multi-3 .ui-datepicker-group { width:33.3%; }
+.player-ui .ui-datepicker-multi-4 .ui-datepicker-group { width:25%; }
+.player-ui .ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header { border-left-width:0; }
+.player-ui .ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header { border-left-width:0; }
+.player-ui .ui-datepicker-multi .ui-datepicker-buttonpane { clear:left; }
+.player-ui .ui-datepicker-row-break { clear:both; width:100%; font-size:0em; }
+
+/* RTL support */
+.player-ui .ui-datepicker-rtl { direction: rtl; }
+.player-ui .ui-datepicker-rtl .ui-datepicker-prev { right: 2px; left: auto; }
+.player-ui .ui-datepicker-rtl .ui-datepicker-next { left: 2px; right: auto; }
+.player-ui .ui-datepicker-rtl .ui-datepicker-prev:hover { right: 1px; left: auto; }
+.player-ui .ui-datepicker-rtl .ui-datepicker-next:hover { left: 1px; right: auto; }
+.player-ui .ui-datepicker-rtl .ui-datepicker-buttonpane { clear:right; }
+.player-ui .ui-datepicker-rtl .ui-datepicker-buttonpane button { float: left; }
+.player-ui .ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current { float:right; }
+.player-ui .ui-datepicker-rtl .ui-datepicker-group { float:right; }
+.player-ui .ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header { border-right-width:0; border-left-width:1px; }
+.player-ui .ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header { border-right-width:0; border-left-width:1px; }
+
+/* IE6 IFRAME FIX (taken from datepicker 1.5.3 */
+.player-ui .ui-datepicker-cover {
+    display: none; /*sorry for IE5*/
+    display/**/: block; /*sorry for IE5*/
+    position: absolute; /*must have*/
+    z-index: -1; /*must have*/
+    filter: mask(); /*must have*/
+    top: -4px; /*must have*/
+    left: -4px; /*must have*/
+    width: 200px; /*must have*/
+    height: 200px; /*must have*/
+}/*
+ * jQuery UI Progressbar 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Progressbar#theming
+ */
+.player-ui .ui-progressbar { height:2em; text-align: left; overflow: hidden; }
+.player-ui .ui-progressbar .ui-progressbar-value {margin: -1px; height:100%; }
\ No newline at end of file
diff --git a/public/admin/js/osmplayer/jquery-ui/ui-darkness/images/ui-bg_flat_30_cccccc_40x100.png b/public/admin/js/osmplayer/jquery-ui/ui-darkness/images/ui-bg_flat_30_cccccc_40x100.png
new file mode 100644
index 0000000000000000000000000000000000000000..5473afffbc2662173f5af5c27d966c072de8039b
GIT binary patch
literal 180
zcmeAS@N?(olHy`uVBq!ia0vp^8bF-F!3HG1q!d*FscKIb$B>N1x91EQ4=4yQ7#`Ta
z<$H)q$%zYm;;c7~Kd+Iuj%U9o62cnl7#bi-T}u42J&U%yNJ})(84RATelF{r5}E*|
CoG&2&

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/ui-darkness/images/ui-bg_flat_50_5c5c5c_40x100.png b/public/admin/js/osmplayer/jquery-ui/ui-darkness/images/ui-bg_flat_50_5c5c5c_40x100.png
new file mode 100644
index 0000000000000000000000000000000000000000..5950a8db9e64e8d00bb28726cb869947abfdc7fc
GIT binary patch
literal 180
zcmeAS@N?(olHy`uVBq!ia0vp^8bF-F!3HG1q!d*FscKIb$B>N1x91EQ4=4yQ7&<)v
zy**H+<irI&an_s0pV!D+$FtuP31JO&3=I&aE+y`Ik?D37+g%o*GZ;Kw{an^LB{Ts5
Dj7=}j

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/ui-darkness/images/ui-bg_glass_20_555555_1x400.png b/public/admin/js/osmplayer/jquery-ui/ui-darkness/images/ui-bg_glass_20_555555_1x400.png
new file mode 100644
index 0000000000000000000000000000000000000000..1ad224ad36890adab7d2cd16ad402566edc67567
GIT binary patch
literal 115
zcmeAS@N?(olHy`uVBq!ia0vp^j6gJjgAK^akKnouq^vw$978O6-<~(*V^H963gj|>
z`**vX!*n&P7dc50adyfl&Nwm{9INpTEp=t_C|dt|%9X7Z^~WTNlbGI|=7<a^It4O}
N!PC{xWt~$(69BlZBWC~r

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/ui-darkness/images/ui-bg_glass_40_0078a3_1x400.png b/public/admin/js/osmplayer/jquery-ui/ui-darkness/images/ui-bg_glass_40_0078a3_1x400.png
new file mode 100644
index 0000000000000000000000000000000000000000..1cf1cac1c217656eec6ee2479c6af40f119fae88
GIT binary patch
literal 135
zcmeAS@N?(olHy`uVBq!ia0vp^j6gJjgAK^akKnour2ITx978O6-=1G6*x(@Ge6hYh
zf4$hOr4qXqvdi!`ST-IoKD?$<t&`*Qu2?1!*N@TP9v@+oFneQmMj*KG%YiKqIp#aI
kZN5{Qx8FWk<fyc{;yjKuFOAbC15IY|boFyt=akR{0Kq3N>;M1&

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/ui-darkness/images/ui-bg_glass_40_ffc73d_1x400.png b/public/admin/js/osmplayer/jquery-ui/ui-darkness/images/ui-bg_glass_40_ffc73d_1x400.png
new file mode 100644
index 0000000000000000000000000000000000000000..35ec0d9d290646cc4e487ad973dde7e979829d00
GIT binary patch
literal 131
zcmeAS@N?(olHy`uVBq!ia0vp^j6gJjgAK^akKnouq`W*`978O6-=5zn*kB-V#9{8A
z5YLNW97J7a98qL7IHPXurDyRjc|Mbg@8{^ExfYyF9&D2iMXXNan#^1HV2J>C;u_aS
d;^%;}$C#b3amU=xZ39`u;OXk;vd$@?2>__OD+K@m

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/ui-darkness/images/ui-bg_gloss-wave_25_333333_500x100.png b/public/admin/js/osmplayer/jquery-ui/ui-darkness/images/ui-bg_gloss-wave_25_333333_500x100.png
new file mode 100644
index 0000000000000000000000000000000000000000..b1b03b677165b6628a426bd69f5677f125ecc43c
GIT binary patch
literal 1874
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
CqOPR?

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/ui-darkness/images/ui-bg_highlight-soft_80_eeeeee_1x100.png b/public/admin/js/osmplayer/jquery-ui/ui-darkness/images/ui-bg_highlight-soft_80_eeeeee_1x100.png
new file mode 100644
index 0000000000000000000000000000000000000000..e56eefd612ae74339bd45ae91ddfc2ae2eb7092b
GIT binary patch
literal 95
zcmeAS@N?(olHy`uVBq!ia0vp^j6j^i!3HGVb)pi0l$xiDV~E7m<R9PO-mX_;V`FPm
t^!)SxzkGA+{NMlo*YiaFapSdSVvypOnZSD^;yq9YgQu&X%Q~loCID>Q98UlM

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/ui-darkness/images/ui-bg_inset-soft_25_000000_1x100.png b/public/admin/js/osmplayer/jquery-ui/ui-darkness/images/ui-bg_inset-soft_25_000000_1x100.png
new file mode 100644
index 0000000000000000000000000000000000000000..3525eb9ff4c26d2c74003e7e2fdf09cccf7c9d54
GIT binary patch
literal 98
zcmeAS@N?(olHy`uVBq!ia0vp^j6j^i!3HGVb)pi0l%}VPV~E7m<b;HTALox8IB>vV
v4~LtZ8=D#sywNe@G+8Wgr}4YKCJTdvGLyysE7#8hH8FU)`njxgN@xNASlk-&

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/ui-darkness/images/ui-bg_inset-soft_30_f58400_1x100.png b/public/admin/js/osmplayer/jquery-ui/ui-darkness/images/ui-bg_inset-soft_30_f58400_1x100.png
new file mode 100644
index 0000000000000000000000000000000000000000..2b6a9f92408ede5e967497f0c917d99e06a2e7f8
GIT binary patch
literal 117
zcmeAS@N?(olHy`uVBq!ia0vp^j6j^i!3HGVb)pi0l#Qp0V~E7myZwe-3<^BV`X67{
z-Q39+s_r<4W%}b;6Bcgql6WBPGHXN18AjIAtjA9+sZ48Zd&-pi=Idqi7tQ7DO<7N;
RDFDr3@O1TaS?83{1OO`oCW`<7

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/ui-darkness/images/ui-icons_222222_256x240.png b/public/admin/js/osmplayer/jquery-ui/ui-darkness/images/ui-icons_222222_256x240.png
new file mode 100644
index 0000000000000000000000000000000000000000..b273ff111d219c9b9a8b96d57683d0075fb7871a
GIT binary patch
literal 4369
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

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/ui-darkness/images/ui-icons_4b8e0b_256x240.png b/public/admin/js/osmplayer/jquery-ui/ui-darkness/images/ui-icons_4b8e0b_256x240.png
new file mode 100644
index 0000000000000000000000000000000000000000..3bdb67be8f85c00d44940330a9a8cb07a73e83a4
GIT binary patch
literal 4369
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

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/ui-darkness/images/ui-icons_a83300_256x240.png b/public/admin/js/osmplayer/jquery-ui/ui-darkness/images/ui-icons_a83300_256x240.png
new file mode 100644
index 0000000000000000000000000000000000000000..95993eab7625fb91819ce8d3d72fd6f71a520eda
GIT binary patch
literal 4369
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

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/ui-darkness/images/ui-icons_cccccc_256x240.png b/public/admin/js/osmplayer/jquery-ui/ui-darkness/images/ui-icons_cccccc_256x240.png
new file mode 100644
index 0000000000000000000000000000000000000000..9254e05cfb964be56241b5bb4d0a0eb51c02df80
GIT binary patch
literal 4369
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

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/ui-darkness/images/ui-icons_ffffff_256x240.png b/public/admin/js/osmplayer/jquery-ui/ui-darkness/images/ui-icons_ffffff_256x240.png
new file mode 100644
index 0000000000000000000000000000000000000000..42f8f992c727ddaa617da224a522e463df690387
GIT binary patch
literal 4369
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

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/ui-darkness/jquery-ui-1.8.18.custom.css b/public/admin/js/osmplayer/jquery-ui/ui-darkness/jquery-ui-1.8.18.custom.css
new file mode 100644
index 00000000000..d1292e343be
--- /dev/null
+++ b/public/admin/js/osmplayer/jquery-ui/ui-darkness/jquery-ui-1.8.18.custom.css
@@ -0,0 +1,565 @@
+/*
+ * jQuery UI CSS Framework 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Theming/API
+ */
+
+/* Layout helpers
+----------------------------------*/
+.player-ui .ui-helper-hidden { display: none; }
+.player-ui .ui-helper-hidden-accessible { position: absolute !important; clip: rect(1px 1px 1px 1px); clip: rect(1px,1px,1px,1px); }
+.player-ui .ui-helper-reset { margin: 0; padding: 0; border: 0; outline: 0; line-height: 1.3; text-decoration: none; font-size: 100%; list-style: none; }
+.player-ui .ui-helper-clearfix:before, .player-ui .ui-helper-clearfix:after { content: ""; display: table; }
+.player-ui .ui-helper-clearfix:after { clear: both; }
+.player-ui .ui-helper-clearfix { zoom: 1; }
+.player-ui .ui-helper-zfix { width: 100%; height: 100%; top: 0; left: 0; position: absolute; opacity: 0; filter:Alpha(Opacity=0); }
+
+
+/* Interaction Cues
+----------------------------------*/
+.player-ui .ui-state-disabled { cursor: default !important; }
+
+
+/* Icons
+----------------------------------*/
+
+/* states and images */
+.player-ui .ui-icon { display: block; text-indent: -99999px; overflow: hidden; background-repeat: no-repeat; }
+
+
+/* Misc visuals
+----------------------------------*/
+
+/* Overlays */
+.player-ui .ui-widget-overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }
+
+
+/*
+ * jQuery UI CSS Framework 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Theming/API
+ *
+ * To view and modify this theme, visit http://jqueryui.com/themeroller/?ffDefault=Segoe%20UI,%20Arial,%20sans-serif&fwDefault=bold&fsDefault=1.1em&cornerRadius=6px&bgColorHeader=333333&bgTextureHeader=12_gloss_wave.png&bgImgOpacityHeader=25&borderColorHeader=333333&fcHeader=ffffff&iconColorHeader=ffffff&bgColorContent=000000&bgTextureContent=05_inset_soft.png&bgImgOpacityContent=25&borderColorContent=666666&fcContent=ffffff&iconColorContent=cccccc&bgColorDefault=555555&bgTextureDefault=02_glass.png&bgImgOpacityDefault=20&borderColorDefault=666666&fcDefault=eeeeee&iconColorDefault=cccccc&bgColorHover=0078a3&bgTextureHover=02_glass.png&bgImgOpacityHover=40&borderColorHover=59b4d4&fcHover=ffffff&iconColorHover=ffffff&bgColorActive=f58400&bgTextureActive=05_inset_soft.png&bgImgOpacityActive=30&borderColorActive=ffaf0f&fcActive=ffffff&iconColorActive=222222&bgColorHighlight=eeeeee&bgTextureHighlight=03_highlight_soft.png&bgImgOpacityHighlight=80&borderColorHighlight=cccccc&fcHighlight=2e7db2&iconColorHighlight=4b8e0b&bgColorError=ffc73d&bgTextureError=02_glass.png&bgImgOpacityError=40&borderColorError=ffb73d&fcError=111111&iconColorError=a83300&bgColorOverlay=5c5c5c&bgTextureOverlay=01_flat.png&bgImgOpacityOverlay=50&opacityOverlay=80&bgColorShadow=cccccc&bgTextureShadow=01_flat.png&bgImgOpacityShadow=30&opacityShadow=60&thicknessShadow=7px&offsetTopShadow=-7px&offsetLeftShadow=-7px&cornerRadiusShadow=8px
+ */
+
+
+/* Component containers
+----------------------------------*/
+.player-ui .ui-widget { font-family: Segoe UI, Arial, sans-serif; font-size: 1.1em; }
+.player-ui .ui-widget .ui-widget { font-size: 1em; }
+.player-ui .ui-widget input, .player-ui .ui-widget select, .player-ui .ui-widget textarea, .player-ui .ui-widget button { font-family: Segoe UI, Arial, sans-serif; font-size: 1em; }
+.player-ui .ui-widget-content { border: 1px solid #666666; background: #000000 url(images/ui-bg_inset-soft_25_000000_1x100.png) 50% bottom repeat-x; color: #ffffff; }
+.player-ui .ui-widget-content a { color: #ffffff; }
+.player-ui .ui-widget-header { border: 1px solid #333333; background: #333333 url(images/ui-bg_gloss-wave_25_333333_500x100.png) 50% 50% repeat-x; color: #ffffff; font-weight: bold; }
+.player-ui .ui-widget-header a { color: #ffffff; }
+
+/* Interaction states
+----------------------------------*/
+.player-ui .ui-state-default, .player-ui .ui-widget-content .ui-state-default, .player-ui .ui-widget-header .ui-state-default { border: 1px solid #666666; background: #555555 url(images/ui-bg_glass_20_555555_1x400.png) 50% 50% repeat-x; font-weight: bold; color: #eeeeee; }
+.player-ui .ui-state-default a, .player-ui .ui-state-default a:link, .player-ui .ui-state-default a:visited { color: #eeeeee; text-decoration: none; }
+.player-ui .ui-state-hover, .player-ui .ui-widget-content .ui-state-hover, .player-ui .ui-widget-header .ui-state-hover, .player-ui .ui-state-focus, .player-ui .ui-widget-content .ui-state-focus, .player-ui .ui-widget-header .ui-state-focus { border: 1px solid #59b4d4; background: #0078a3 url(images/ui-bg_glass_40_0078a3_1x400.png) 50% 50% repeat-x; font-weight: bold; color: #ffffff; }
+.player-ui .ui-state-hover a, .player-ui .ui-state-hover a:hover { color: #ffffff; text-decoration: none; }
+.player-ui .ui-state-active, .player-ui .ui-widget-content .ui-state-active, .player-ui .ui-widget-header .ui-state-active { border: 1px solid #ffaf0f; background: #f58400 url(images/ui-bg_inset-soft_30_f58400_1x100.png) 50% 50% repeat-x; font-weight: bold; color: #ffffff; }
+.player-ui .ui-state-active a, .player-ui .ui-state-active a:link, .player-ui .ui-state-active a:visited { color: #ffffff; text-decoration: none; }
+.player-ui .ui-widget :active { outline: none; }
+
+/* Interaction Cues
+----------------------------------*/
+.player-ui .ui-state-highlight, .player-ui .ui-widget-content .ui-state-highlight, .player-ui .ui-widget-header .ui-state-highlight  {border: 1px solid #cccccc; background: #eeeeee url(images/ui-bg_highlight-soft_80_eeeeee_1x100.png) 50% top repeat-x; color: #2e7db2; }
+.player-ui .ui-state-highlight a, .player-ui .ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a { color: #2e7db2; }
+.player-ui .ui-state-error, .player-ui .ui-widget-content .ui-state-error, .player-ui .ui-widget-header .ui-state-error {border: 1px solid #ffb73d; background: #ffc73d url(images/ui-bg_glass_40_ffc73d_1x400.png) 50% 50% repeat-x; color: #111111; }
+.player-ui .ui-state-error a, .player-ui .ui-widget-content .ui-state-error a, .player-ui .ui-widget-header .ui-state-error a { color: #111111; }
+.player-ui .ui-state-error-text, .player-ui .ui-widget-content .ui-state-error-text, .player-ui .ui-widget-header .ui-state-error-text { color: #111111; }
+.player-ui .ui-priority-primary, .player-ui .ui-widget-content .ui-priority-primary, .player-ui .ui-widget-header .ui-priority-primary { font-weight: bold; }
+.player-ui .ui-priority-secondary, .player-ui .ui-widget-content .ui-priority-secondary,  .ui-widget-header .ui-priority-secondary { opacity: .7; filter:Alpha(Opacity=70); font-weight: normal; }
+.player-ui .ui-state-disabled, .player-ui .ui-widget-content .ui-state-disabled, .player-ui .ui-widget-header .ui-state-disabled { opacity: .35; filter:Alpha(Opacity=35); background-image: none; }
+
+/* Icons
+----------------------------------*/
+
+/* states and images */
+.player-ui .ui-icon { width: 16px; height: 16px; background-image: url(images/ui-icons_cccccc_256x240.png); }
+.player-ui .ui-widget-content .ui-icon {background-image: url(images/ui-icons_cccccc_256x240.png); }
+.player-ui .ui-widget-header .ui-icon {background-image: url(images/ui-icons_ffffff_256x240.png); }
+.player-ui .ui-state-default .ui-icon { background-image: url(images/ui-icons_cccccc_256x240.png); }
+.player-ui .ui-state-hover .ui-icon, .player-ui .ui-state-focus .ui-icon {background-image: url(images/ui-icons_ffffff_256x240.png); }
+.player-ui .ui-state-active .ui-icon {background-image: url(images/ui-icons_222222_256x240.png); }
+.player-ui .ui-state-highlight .ui-icon {background-image: url(images/ui-icons_4b8e0b_256x240.png); }
+.player-ui .ui-state-error .ui-icon, .player-ui .ui-state-error-text .ui-icon {background-image: url(images/ui-icons_a83300_256x240.png); }
+
+/* positioning */
+.player-ui .ui-icon-carat-1-n { background-position: 0 0; }
+.player-ui .ui-icon-carat-1-ne { background-position: -16px 0; }
+.player-ui .ui-icon-carat-1-e { background-position: -32px 0; }
+.player-ui .ui-icon-carat-1-se { background-position: -48px 0; }
+.player-ui .ui-icon-carat-1-s { background-position: -64px 0; }
+.player-ui .ui-icon-carat-1-sw { background-position: -80px 0; }
+.player-ui .ui-icon-carat-1-w { background-position: -96px 0; }
+.player-ui .ui-icon-carat-1-nw { background-position: -112px 0; }
+.player-ui .ui-icon-carat-2-n-s { background-position: -128px 0; }
+.player-ui .ui-icon-carat-2-e-w { background-position: -144px 0; }
+.player-ui .ui-icon-triangle-1-n { background-position: 0 -16px; }
+.player-ui .ui-icon-triangle-1-ne { background-position: -16px -16px; }
+.player-ui .ui-icon-triangle-1-e { background-position: -32px -16px; }
+.player-ui .ui-icon-triangle-1-se { background-position: -48px -16px; }
+.player-ui .ui-icon-triangle-1-s { background-position: -64px -16px; }
+.player-ui .ui-icon-triangle-1-sw { background-position: -80px -16px; }
+.player-ui .ui-icon-triangle-1-w { background-position: -96px -16px; }
+.player-ui .ui-icon-triangle-1-nw { background-position: -112px -16px; }
+.player-ui .ui-icon-triangle-2-n-s { background-position: -128px -16px; }
+.player-ui .ui-icon-triangle-2-e-w { background-position: -144px -16px; }
+.player-ui .ui-icon-arrow-1-n { background-position: 0 -32px; }
+.player-ui .ui-icon-arrow-1-ne { background-position: -16px -32px; }
+.player-ui .ui-icon-arrow-1-e { background-position: -32px -32px; }
+.player-ui .ui-icon-arrow-1-se { background-position: -48px -32px; }
+.player-ui .ui-icon-arrow-1-s { background-position: -64px -32px; }
+.player-ui .ui-icon-arrow-1-sw { background-position: -80px -32px; }
+.player-ui .ui-icon-arrow-1-w { background-position: -96px -32px; }
+.player-ui .ui-icon-arrow-1-nw { background-position: -112px -32px; }
+.player-ui .ui-icon-arrow-2-n-s { background-position: -128px -32px; }
+.player-ui .ui-icon-arrow-2-ne-sw { background-position: -144px -32px; }
+.player-ui .ui-icon-arrow-2-e-w { background-position: -160px -32px; }
+.player-ui .ui-icon-arrow-2-se-nw { background-position: -176px -32px; }
+.player-ui .ui-icon-arrowstop-1-n { background-position: -192px -32px; }
+.player-ui .ui-icon-arrowstop-1-e { background-position: -208px -32px; }
+.player-ui .ui-icon-arrowstop-1-s { background-position: -224px -32px; }
+.player-ui .ui-icon-arrowstop-1-w { background-position: -240px -32px; }
+.player-ui .ui-icon-arrowthick-1-n { background-position: 0 -48px; }
+.player-ui .ui-icon-arrowthick-1-ne { background-position: -16px -48px; }
+.player-ui .ui-icon-arrowthick-1-e { background-position: -32px -48px; }
+.player-ui .ui-icon-arrowthick-1-se { background-position: -48px -48px; }
+.player-ui .ui-icon-arrowthick-1-s { background-position: -64px -48px; }
+.player-ui .ui-icon-arrowthick-1-sw { background-position: -80px -48px; }
+.player-ui .ui-icon-arrowthick-1-w { background-position: -96px -48px; }
+.player-ui .ui-icon-arrowthick-1-nw { background-position: -112px -48px; }
+.player-ui .ui-icon-arrowthick-2-n-s { background-position: -128px -48px; }
+.player-ui .ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px; }
+.player-ui .ui-icon-arrowthick-2-e-w { background-position: -160px -48px; }
+.player-ui .ui-icon-arrowthick-2-se-nw { background-position: -176px -48px; }
+.player-ui .ui-icon-arrowthickstop-1-n { background-position: -192px -48px; }
+.player-ui .ui-icon-arrowthickstop-1-e { background-position: -208px -48px; }
+.player-ui .ui-icon-arrowthickstop-1-s { background-position: -224px -48px; }
+.player-ui .ui-icon-arrowthickstop-1-w { background-position: -240px -48px; }
+.player-ui .ui-icon-arrowreturnthick-1-w { background-position: 0 -64px; }
+.player-ui .ui-icon-arrowreturnthick-1-n { background-position: -16px -64px; }
+.player-ui .ui-icon-arrowreturnthick-1-e { background-position: -32px -64px; }
+.player-ui .ui-icon-arrowreturnthick-1-s { background-position: -48px -64px; }
+.player-ui .ui-icon-arrowreturn-1-w { background-position: -64px -64px; }
+.player-ui .ui-icon-arrowreturn-1-n { background-position: -80px -64px; }
+.player-ui .ui-icon-arrowreturn-1-e { background-position: -96px -64px; }
+.player-ui .ui-icon-arrowreturn-1-s { background-position: -112px -64px; }
+.player-ui .ui-icon-arrowrefresh-1-w { background-position: -128px -64px; }
+.player-ui .ui-icon-arrowrefresh-1-n { background-position: -144px -64px; }
+.player-ui .ui-icon-arrowrefresh-1-e { background-position: -160px -64px; }
+.player-ui .ui-icon-arrowrefresh-1-s { background-position: -176px -64px; }
+.player-ui .ui-icon-arrow-4 { background-position: 0 -80px; }
+.player-ui .ui-icon-arrow-4-diag { background-position: -16px -80px; }
+.player-ui .ui-icon-extlink { background-position: -32px -80px; }
+.player-ui .ui-icon-newwin { background-position: -48px -80px; }
+.player-ui .ui-icon-refresh { background-position: -64px -80px; }
+.player-ui .ui-icon-shuffle { background-position: -80px -80px; }
+.player-ui .ui-icon-transfer-e-w { background-position: -96px -80px; }
+.player-ui .ui-icon-transferthick-e-w { background-position: -112px -80px; }
+.player-ui .ui-icon-folder-collapsed { background-position: 0 -96px; }
+.player-ui .ui-icon-folder-open { background-position: -16px -96px; }
+.player-ui .ui-icon-document { background-position: -32px -96px; }
+.player-ui .ui-icon-document-b { background-position: -48px -96px; }
+.player-ui .ui-icon-note { background-position: -64px -96px; }
+.player-ui .ui-icon-mail-closed { background-position: -80px -96px; }
+.player-ui .ui-icon-mail-open { background-position: -96px -96px; }
+.player-ui .ui-icon-suitcase { background-position: -112px -96px; }
+.player-ui .ui-icon-comment { background-position: -128px -96px; }
+.player-ui .ui-icon-person { background-position: -144px -96px; }
+.player-ui .ui-icon-print { background-position: -160px -96px; }
+.player-ui .ui-icon-trash { background-position: -176px -96px; }
+.player-ui .ui-icon-locked { background-position: -192px -96px; }
+.player-ui .ui-icon-unlocked { background-position: -208px -96px; }
+.player-ui .ui-icon-bookmark { background-position: -224px -96px; }
+.player-ui .ui-icon-tag { background-position: -240px -96px; }
+.player-ui .ui-icon-home { background-position: 0 -112px; }
+.player-ui .ui-icon-flag { background-position: -16px -112px; }
+.player-ui .ui-icon-calendar { background-position: -32px -112px; }
+.player-ui .ui-icon-cart { background-position: -48px -112px; }
+.player-ui .ui-icon-pencil { background-position: -64px -112px; }
+.player-ui .ui-icon-clock { background-position: -80px -112px; }
+.player-ui .ui-icon-disk { background-position: -96px -112px; }
+.player-ui .ui-icon-calculator { background-position: -112px -112px; }
+.player-ui .ui-icon-zoomin { background-position: -128px -112px; }
+.player-ui .ui-icon-zoomout { background-position: -144px -112px; }
+.player-ui .ui-icon-search { background-position: -160px -112px; }
+.player-ui .ui-icon-wrench { background-position: -176px -112px; }
+.player-ui .ui-icon-gear { background-position: -192px -112px; }
+.player-ui .ui-icon-heart { background-position: -208px -112px; }
+.player-ui .ui-icon-star { background-position: -224px -112px; }
+.player-ui .ui-icon-link { background-position: -240px -112px; }
+.player-ui .ui-icon-cancel { background-position: 0 -128px; }
+.player-ui .ui-icon-plus { background-position: -16px -128px; }
+.player-ui .ui-icon-plusthick { background-position: -32px -128px; }
+.player-ui .ui-icon-minus { background-position: -48px -128px; }
+.player-ui .ui-icon-minusthick { background-position: -64px -128px; }
+.player-ui .ui-icon-close { background-position: -80px -128px; }
+.player-ui .ui-icon-closethick { background-position: -96px -128px; }
+.player-ui .ui-icon-key { background-position: -112px -128px; }
+.player-ui .ui-icon-lightbulb { background-position: -128px -128px; }
+.player-ui .ui-icon-scissors { background-position: -144px -128px; }
+.player-ui .ui-icon-clipboard { background-position: -160px -128px; }
+.player-ui .ui-icon-copy { background-position: -176px -128px; }
+.player-ui .ui-icon-contact { background-position: -192px -128px; }
+.player-ui .ui-icon-image { background-position: -208px -128px; }
+.player-ui .ui-icon-video { background-position: -224px -128px; }
+.player-ui .ui-icon-script { background-position: -240px -128px; }
+.player-ui .ui-icon-alert { background-position: 0 -144px; }
+.player-ui .ui-icon-info { background-position: -16px -144px; }
+.player-ui .ui-icon-notice { background-position: -32px -144px; }
+.player-ui .ui-icon-help { background-position: -48px -144px; }
+.player-ui .ui-icon-check { background-position: -64px -144px; }
+.player-ui .ui-icon-bullet { background-position: -80px -144px; }
+.player-ui .ui-icon-radio-off { background-position: -96px -144px; }
+.player-ui .ui-icon-radio-on { background-position: -112px -144px; }
+.player-ui .ui-icon-pin-w { background-position: -128px -144px; }
+.player-ui .ui-icon-pin-s { background-position: -144px -144px; }
+.player-ui .ui-icon-play { background-position: 0 -160px; }
+.player-ui .ui-icon-pause { background-position: -16px -160px; }
+.player-ui .ui-icon-seek-next { background-position: -32px -160px; }
+.player-ui .ui-icon-seek-prev { background-position: -48px -160px; }
+.player-ui .ui-icon-seek-end { background-position: -64px -160px; }
+.player-ui .ui-icon-seek-start { background-position: -80px -160px; }
+/* ui-icon-seek-first is deprecated, use ui-icon-seek-start instead */
+.player-ui .ui-icon-seek-first { background-position: -80px -160px; }
+.player-ui .ui-icon-stop { background-position: -96px -160px; }
+.player-ui .ui-icon-eject { background-position: -112px -160px; }
+.player-ui .ui-icon-volume-off { background-position: -128px -160px; }
+.player-ui .ui-icon-volume-on { background-position: -144px -160px; }
+.player-ui .ui-icon-power { background-position: 0 -176px; }
+.player-ui .ui-icon-signal-diag { background-position: -16px -176px; }
+.player-ui .ui-icon-signal { background-position: -32px -176px; }
+.player-ui .ui-icon-battery-0 { background-position: -48px -176px; }
+.player-ui .ui-icon-battery-1 { background-position: -64px -176px; }
+.player-ui .ui-icon-battery-2 { background-position: -80px -176px; }
+.player-ui .ui-icon-battery-3 { background-position: -96px -176px; }
+.player-ui .ui-icon-circle-plus { background-position: 0 -192px; }
+.player-ui .ui-icon-circle-minus { background-position: -16px -192px; }
+.player-ui .ui-icon-circle-close { background-position: -32px -192px; }
+.player-ui .ui-icon-circle-triangle-e { background-position: -48px -192px; }
+.player-ui .ui-icon-circle-triangle-s { background-position: -64px -192px; }
+.player-ui .ui-icon-circle-triangle-w { background-position: -80px -192px; }
+.player-ui .ui-icon-circle-triangle-n { background-position: -96px -192px; }
+.player-ui .ui-icon-circle-arrow-e { background-position: -112px -192px; }
+.player-ui .ui-icon-circle-arrow-s { background-position: -128px -192px; }
+.player-ui .ui-icon-circle-arrow-w { background-position: -144px -192px; }
+.player-ui .ui-icon-circle-arrow-n { background-position: -160px -192px; }
+.player-ui .ui-icon-circle-zoomin { background-position: -176px -192px; }
+.player-ui .ui-icon-circle-zoomout { background-position: -192px -192px; }
+.player-ui .ui-icon-circle-check { background-position: -208px -192px; }
+.player-ui .ui-icon-circlesmall-plus { background-position: 0 -208px; }
+.player-ui .ui-icon-circlesmall-minus { background-position: -16px -208px; }
+.player-ui .ui-icon-circlesmall-close { background-position: -32px -208px; }
+.player-ui .ui-icon-squaresmall-plus { background-position: -48px -208px; }
+.player-ui .ui-icon-squaresmall-minus { background-position: -64px -208px; }
+.player-ui .ui-icon-squaresmall-close { background-position: -80px -208px; }
+.player-ui .ui-icon-grip-dotted-vertical { background-position: 0 -224px; }
+.player-ui .ui-icon-grip-dotted-horizontal { background-position: -16px -224px; }
+.player-ui .ui-icon-grip-solid-vertical { background-position: -32px -224px; }
+.player-ui .ui-icon-grip-solid-horizontal { background-position: -48px -224px; }
+.player-ui .ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; }
+.player-ui .ui-icon-grip-diagonal-se { background-position: -80px -224px; }
+
+
+/* Misc visuals
+----------------------------------*/
+
+/* Corner radius */
+.player-ui .ui-corner-all, .player-ui .ui-corner-top, .player-ui .ui-corner-left, .player-ui .ui-corner-tl { -moz-border-radius-topleft: 6px; -webkit-border-top-left-radius: 6px; -khtml-border-top-left-radius: 6px; border-top-left-radius: 6px; }
+.player-ui .ui-corner-all, .player-ui .ui-corner-top, .player-ui .ui-corner-right, .player-ui .ui-corner-tr { -moz-border-radius-topright: 6px; -webkit-border-top-right-radius: 6px; -khtml-border-top-right-radius: 6px; border-top-right-radius: 6px; }
+.player-ui .ui-corner-all, .player-ui .ui-corner-bottom, .player-ui .ui-corner-left, .player-ui .ui-corner-bl { -moz-border-radius-bottomleft: 6px; -webkit-border-bottom-left-radius: 6px; -khtml-border-bottom-left-radius: 6px; border-bottom-left-radius: 6px; }
+.player-ui .ui-corner-all, .player-ui .ui-corner-bottom, .player-ui .ui-corner-right, .player-ui .ui-corner-br { -moz-border-radius-bottomright: 6px; -webkit-border-bottom-right-radius: 6px; -khtml-border-bottom-right-radius: 6px; border-bottom-right-radius: 6px; }
+
+/* Overlays */
+.player-ui .ui-widget-overlay { background: #5c5c5c url(images/ui-bg_flat_50_5c5c5c_40x100.png) 50% 50% repeat-x; opacity: .80;filter:Alpha(Opacity=80); }
+.player-ui .ui-widget-shadow { margin: -7px 0 0 -7px; padding: 7px; background: #cccccc url(images/ui-bg_flat_30_cccccc_40x100.png) 50% 50% repeat-x; opacity: .60;filter:Alpha(Opacity=60); -moz-border-radius: 8px; -khtml-border-radius: 8px; -webkit-border-radius: 8px; border-radius: 8px; }/*
+ * jQuery UI Resizable 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Resizable#theming
+ */
+.player-ui .ui-resizable { position: relative;}
+.player-ui .ui-resizable-handle { position: absolute;font-size: 0.1px;z-index: 99999; display: block; }
+.player-ui .ui-resizable-disabled .ui-resizable-handle, .player-ui .ui-resizable-autohide .ui-resizable-handle { display: none; }
+.player-ui .ui-resizable-n { cursor: n-resize; height: 7px; width: 100%; top: -5px; left: 0; }
+.player-ui .ui-resizable-s { cursor: s-resize; height: 7px; width: 100%; bottom: -5px; left: 0; }
+.player-ui .ui-resizable-e { cursor: e-resize; width: 7px; right: -5px; top: 0; height: 100%; }
+.player-ui .ui-resizable-w { cursor: w-resize; width: 7px; left: -5px; top: 0; height: 100%; }
+.player-ui .ui-resizable-se { cursor: se-resize; width: 12px; height: 12px; right: 1px; bottom: 1px; }
+.player-ui .ui-resizable-sw { cursor: sw-resize; width: 9px; height: 9px; left: -5px; bottom: -5px; }
+.player-ui .ui-resizable-nw { cursor: nw-resize; width: 9px; height: 9px; left: -5px; top: -5px; }
+.player-ui .ui-resizable-ne { cursor: ne-resize; width: 9px; height: 9px; right: -5px; top: -5px;}/*
+ * jQuery UI Selectable 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Selectable#theming
+ */
+.player-ui .ui-selectable-helper { position: absolute; z-index: 100; border:1px dotted black; }
+/*
+ * jQuery UI Accordion 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Accordion#theming
+ */
+/* IE/Win - Fix animation bug - #4615 */
+.player-ui .ui-accordion { width: 100%; }
+.player-ui .ui-accordion .ui-accordion-header { cursor: pointer; position: relative; margin-top: 1px; zoom: 1; }
+.player-ui .ui-accordion .ui-accordion-li-fix { display: inline; }
+.player-ui .ui-accordion .ui-accordion-header-active { border-bottom: 0 !important; }
+.player-ui .ui-accordion .ui-accordion-header a { display: block; font-size: 1em; padding: .5em .5em .5em .7em; }
+.player-ui .ui-accordion-icons .ui-accordion-header a { padding-left: 2.2em; }
+.player-ui .ui-accordion .ui-accordion-header .ui-icon { position: absolute; left: .5em; top: 50%; margin-top: -8px; }
+.player-ui .ui-accordion .ui-accordion-content { padding: 1em 2.2em; border-top: 0; margin-top: -2px; position: relative; top: 1px; margin-bottom: 2px; overflow: auto; display: none; zoom: 1; }
+.player-ui .ui-accordion .ui-accordion-content-active { display: block; }
+/*
+ * jQuery UI Autocomplete 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Autocomplete#theming
+ */
+.player-ui .ui-autocomplete { position: absolute; cursor: default; }	
+
+/* workarounds */
+* html .ui-autocomplete { width:1px; } /* without this, the menu expands to 100% in IE6 */
+
+/*
+ * jQuery UI Menu 1.8.18
+ *
+ * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Menu#theming
+ */
+.player-ui .ui-menu {
+	list-style:none;
+	padding: 2px;
+	margin: 0;
+	display:block;
+	float: left;
+}
+.player-ui .ui-menu .ui-menu {
+	margin-top: -3px;
+}
+.player-ui .ui-menu .ui-menu-item {
+	margin:0;
+	padding: 0;
+	zoom: 1;
+	float: left;
+	clear: left;
+	width: 100%;
+}
+.player-ui .ui-menu .ui-menu-item a {
+	text-decoration:none;
+	display:block;
+	padding:.2em .4em;
+	line-height:1.5;
+	zoom:1;
+}
+.player-ui .ui-menu .ui-menu-item a.ui-state-hover,
+.player-ui .ui-menu .ui-menu-item a.ui-state-active {
+	font-weight: normal;
+	margin: -1px;
+}
+/*
+ * jQuery UI Button 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Button#theming
+ */
+.player-ui .ui-button { display: inline-block; position: relative; padding: 0; margin-right: .1em; text-decoration: none !important; cursor: pointer; text-align: center; zoom: 1; overflow: hidden; *overflow: visible; } /* the overflow property removes extra width in IE */
+.player-ui .ui-button-icon-only { width: 2.2em; } /* to make room for the icon, a width needs to be set here */
+button.ui-button-icon-only { width: 2.4em; } /* button elements seem to need a little more width */
+.player-ui .ui-button-icons-only { width: 3.4em; } 
+button.ui-button-icons-only { width: 3.7em; } 
+
+/*button text element */
+.player-ui .ui-button .ui-button-text { display: block; line-height: 1.4;  }
+.player-ui .ui-button-text-only .ui-button-text { padding: .4em 1em; }
+.player-ui .ui-button-icon-only .ui-button-text, .player-ui .ui-button-icons-only .ui-button-text { padding: .4em; text-indent: -9999999px; }
+.player-ui .ui-button-text-icon-primary .ui-button-text, .player-ui .ui-button-text-icons .ui-button-text { padding: .4em 1em .4em 2.1em; }
+.player-ui .ui-button-text-icon-secondary .ui-button-text, .player-ui .ui-button-text-icons .ui-button-text { padding: .4em 2.1em .4em 1em; }
+.player-ui .ui-button-text-icons .ui-button-text { padding-left: 2.1em; padding-right: 2.1em; }
+/* no icon support for input elements, provide padding by default */
+input.ui-button { padding: .4em 1em; }
+
+/*button icon element(s) */
+.player-ui .ui-button-icon-only .ui-icon, .player-ui .ui-button-text-icon-primary .ui-icon, .player-ui .ui-button-text-icon-secondary .ui-icon, .player-ui .ui-button-text-icons .ui-icon, .player-ui .ui-button-icons-only .ui-icon { position: absolute; top: 50%; margin-top: -8px; }
+.player-ui .ui-button-icon-only .ui-icon { left: 50%; margin-left: -8px; }
+.player-ui .ui-button-text-icon-primary .ui-button-icon-primary, .player-ui .ui-button-text-icons .ui-button-icon-primary, .player-ui .ui-button-icons-only .ui-button-icon-primary { left: .5em; }
+.player-ui .ui-button-text-icon-secondary .ui-button-icon-secondary, .player-ui .ui-button-text-icons .ui-button-icon-secondary, .player-ui .ui-button-icons-only .ui-button-icon-secondary { right: .5em; }
+.player-ui .ui-button-text-icons .ui-button-icon-secondary, .player-ui .ui-button-icons-only .ui-button-icon-secondary { right: .5em; }
+
+/*button sets*/
+.player-ui .ui-buttonset { margin-right: 7px; }
+.player-ui .ui-buttonset .ui-button { margin-left: 0; margin-right: -.3em; }
+
+/* workarounds */
+button.ui-button::-moz-focus-inner { border: 0; padding: 0; } /* reset extra padding in Firefox */
+/*
+ * jQuery UI Dialog 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Dialog#theming
+ */
+.player-ui .ui-dialog { position: absolute; padding: .2em; width: 300px; overflow: hidden; }
+.player-ui .ui-dialog .ui-dialog-titlebar { padding: .4em 1em; position: relative;  }
+.player-ui .ui-dialog .ui-dialog-title { float: left; margin: .1em 16px .1em 0; } 
+.player-ui .ui-dialog .ui-dialog-titlebar-close { position: absolute; right: .3em; top: 50%; width: 19px; margin: -10px 0 0 0; padding: 1px; height: 18px; }
+.player-ui .ui-dialog .ui-dialog-titlebar-close span { display: block; margin: 1px; }
+.player-ui .ui-dialog .ui-dialog-titlebar-close:hover, .player-ui .ui-dialog .ui-dialog-titlebar-close:focus { padding: 0; }
+.player-ui .ui-dialog .ui-dialog-content { position: relative; border: 0; padding: .5em 1em; background: none; overflow: auto; zoom: 1; }
+.player-ui .ui-dialog .ui-dialog-buttonpane { text-align: left; border-width: 1px 0 0 0; background-image: none; margin: .5em 0 0 0; padding: .3em 1em .5em .4em; }
+.player-ui .ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset { float: right; }
+.player-ui .ui-dialog .ui-dialog-buttonpane button { margin: .5em .4em .5em 0; cursor: pointer; }
+.player-ui .ui-dialog .ui-resizable-se { width: 14px; height: 14px; right: 3px; bottom: 3px; }
+.player-ui .ui-draggable .ui-dialog-titlebar { cursor: move; }
+/*
+ * jQuery UI Slider 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Slider#theming
+ */
+.player-ui .ui-slider { position: relative; text-align: left; }
+.player-ui .ui-slider .ui-slider-handle { position: absolute; z-index: 2; width: 1.2em; height: 1.2em; cursor: default; }
+.player-ui .ui-slider .ui-slider-range { position: absolute; z-index: 1; font-size: .7em; display: block; border: 0; background-position: 0 0; }
+
+.player-ui .ui-slider-horizontal { height: .8em; }
+.player-ui .ui-slider-horizontal .ui-slider-handle { top: -.3em; margin-left: -.6em; }
+.player-ui .ui-slider-horizontal .ui-slider-range { top: 0; height: 100%; }
+.player-ui .ui-slider-horizontal .ui-slider-range-min { left: 0; }
+.player-ui .ui-slider-horizontal .ui-slider-range-max { right: 0; }
+
+.player-ui .ui-slider-vertical { width: .8em; height: 100px; }
+.player-ui .ui-slider-vertical .ui-slider-handle { left: -.3em; margin-left: 0; margin-bottom: -.6em; }
+.player-ui .ui-slider-vertical .ui-slider-range { left: 0; width: 100%; }
+.player-ui .ui-slider-vertical .ui-slider-range-min { bottom: 0; }
+.player-ui .ui-slider-vertical .ui-slider-range-max { top: 0; }/*
+ * jQuery UI Tabs 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Tabs#theming
+ */
+.player-ui .ui-tabs { position: relative; padding: .2em; zoom: 1; } /* position: relative prevents IE scroll bug (element with position: relative inside container with overflow: auto appear as "fixed") */
+.player-ui .ui-tabs .ui-tabs-nav { margin: 0; padding: .2em .2em 0; }
+.player-ui .ui-tabs .ui-tabs-nav li { list-style: none; float: left; position: relative; top: 1px; margin: 0 .2em 1px 0; border-bottom: 0 !important; padding: 0; white-space: nowrap; }
+.player-ui .ui-tabs .ui-tabs-nav li a { float: left; padding: .5em 1em; text-decoration: none; }
+.player-ui .ui-tabs .ui-tabs-nav li.ui-tabs-selected { margin-bottom: 0; padding-bottom: 1px; }
+.player-ui .ui-tabs .ui-tabs-nav li.ui-tabs-selected a, .player-ui .ui-tabs .ui-tabs-nav li.ui-state-disabled a, .player-ui .ui-tabs .ui-tabs-nav li.ui-state-processing a { cursor: text; }
+.player-ui .ui-tabs .ui-tabs-nav li a, .player-ui .ui-tabs.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-selected a { cursor: pointer; } /* first selector in group seems obsolete, but required to overcome bug in Opera applying cursor: text overall if defined elsewhere... */
+.player-ui .ui-tabs .ui-tabs-panel { display: block; border-width: 0; padding: 1em 1.4em; background: none; }
+.player-ui .ui-tabs .ui-tabs-hide { display: none !important; }
+/*
+ * jQuery UI Datepicker 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Datepicker#theming
+ */
+.player-ui .ui-datepicker { width: 17em; padding: .2em .2em 0; display: none; }
+.player-ui .ui-datepicker .ui-datepicker-header { position:relative; padding:.2em 0; }
+.player-ui .ui-datepicker .ui-datepicker-prev, .player-ui .ui-datepicker .ui-datepicker-next { position:absolute; top: 2px; width: 1.8em; height: 1.8em; }
+.player-ui .ui-datepicker .ui-datepicker-prev-hover, .player-ui .ui-datepicker .ui-datepicker-next-hover { top: 1px; }
+.player-ui .ui-datepicker .ui-datepicker-prev { left:2px; }
+.player-ui .ui-datepicker .ui-datepicker-next { right:2px; }
+.player-ui .ui-datepicker .ui-datepicker-prev-hover { left:1px; }
+.player-ui .ui-datepicker .ui-datepicker-next-hover { right:1px; }
+.player-ui .ui-datepicker .ui-datepicker-prev span, .player-ui .ui-datepicker .ui-datepicker-next span { display: block; position: absolute; left: 50%; margin-left: -8px; top: 50%; margin-top: -8px;  }
+.player-ui .ui-datepicker .ui-datepicker-title { margin: 0 2.3em; line-height: 1.8em; text-align: center; }
+.player-ui .ui-datepicker .ui-datepicker-title select { font-size:1em; margin:1px 0; }
+.player-ui .ui-datepicker select.ui-datepicker-month-year {width: 100%;}
+.player-ui .ui-datepicker select.ui-datepicker-month, 
+.player-ui .ui-datepicker select.ui-datepicker-year { width: 49%;}
+.player-ui .ui-datepicker table {width: 100%; font-size: .9em; border-collapse: collapse; margin:0 0 .4em; }
+.player-ui .ui-datepicker th { padding: .7em .3em; text-align: center; font-weight: bold; border: 0;  }
+.player-ui .ui-datepicker td { border: 0; padding: 1px; }
+.player-ui .ui-datepicker td span, .player-ui .ui-datepicker td a { display: block; padding: .2em; text-align: right; text-decoration: none; }
+.player-ui .ui-datepicker .ui-datepicker-buttonpane { background-image: none; margin: .7em 0 0 0; padding:0 .2em; border-left: 0; border-right: 0; border-bottom: 0; }
+.player-ui .ui-datepicker .ui-datepicker-buttonpane button { float: right; margin: .5em .2em .4em; cursor: pointer; padding: .2em .6em .3em .6em; width:auto; overflow:visible; }
+.player-ui .ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current { float:left; }
+
+/* with multiple calendars */
+.player-ui .ui-datepicker.ui-datepicker-multi { width:auto; }
+.player-ui .ui-datepicker-multi .ui-datepicker-group { float:left; }
+.player-ui .ui-datepicker-multi .ui-datepicker-group table { width:95%; margin:0 auto .4em; }
+.player-ui .ui-datepicker-multi-2 .ui-datepicker-group { width:50%; }
+.player-ui .ui-datepicker-multi-3 .ui-datepicker-group { width:33.3%; }
+.player-ui .ui-datepicker-multi-4 .ui-datepicker-group { width:25%; }
+.player-ui .ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header { border-left-width:0; }
+.player-ui .ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header { border-left-width:0; }
+.player-ui .ui-datepicker-multi .ui-datepicker-buttonpane { clear:left; }
+.player-ui .ui-datepicker-row-break { clear:both; width:100%; font-size:0em; }
+
+/* RTL support */
+.player-ui .ui-datepicker-rtl { direction: rtl; }
+.player-ui .ui-datepicker-rtl .ui-datepicker-prev { right: 2px; left: auto; }
+.player-ui .ui-datepicker-rtl .ui-datepicker-next { left: 2px; right: auto; }
+.player-ui .ui-datepicker-rtl .ui-datepicker-prev:hover { right: 1px; left: auto; }
+.player-ui .ui-datepicker-rtl .ui-datepicker-next:hover { left: 1px; right: auto; }
+.player-ui .ui-datepicker-rtl .ui-datepicker-buttonpane { clear:right; }
+.player-ui .ui-datepicker-rtl .ui-datepicker-buttonpane button { float: left; }
+.player-ui .ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current { float:right; }
+.player-ui .ui-datepicker-rtl .ui-datepicker-group { float:right; }
+.player-ui .ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header { border-right-width:0; border-left-width:1px; }
+.player-ui .ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header { border-right-width:0; border-left-width:1px; }
+
+/* IE6 IFRAME FIX (taken from datepicker 1.5.3 */
+.player-ui .ui-datepicker-cover {
+    display: none; /*sorry for IE5*/
+    display/**/: block; /*sorry for IE5*/
+    position: absolute; /*must have*/
+    z-index: -1; /*must have*/
+    filter: mask(); /*must have*/
+    top: -4px; /*must have*/
+    left: -4px; /*must have*/
+    width: 200px; /*must have*/
+    height: 200px; /*must have*/
+}/*
+ * jQuery UI Progressbar 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Progressbar#theming
+ */
+.player-ui .ui-progressbar { height:2em; text-align: left; overflow: hidden; }
+.player-ui .ui-progressbar .ui-progressbar-value {margin: -1px; height:100%; }
\ No newline at end of file
diff --git a/public/admin/js/osmplayer/jquery-ui/ui-lightness/images/ui-bg_diagonals-thick_18_b81900_40x40.png b/public/admin/js/osmplayer/jquery-ui/ui-lightness/images/ui-bg_diagonals-thick_18_b81900_40x40.png
new file mode 100644
index 0000000000000000000000000000000000000000..954e22dbd99e8c6dd7091335599abf2d10bf8003
GIT binary patch
literal 260
zcmeAS@N?(olHy`uVBq!ia0vp^8X(NU1|)m_?Z^dEr#)R9Ln2z=UU%d=WFXS=@V?HT
z#xG*`>Yvsgk=}99w^d^D^d*@m74oMo<%#FcopJf?u00-~YVKV2wzrI*_R6;UORMea
zBFVSEnN~eiVA6V&z`E)YLz5Aok^D)In}Yn=OzDpgR5Wv0XfT8pOkmV{sKAJ-PO9#T
zZK}IXj&Q-V!U)!LcB_3K<j6=ku*!%uXjy#leKdQ?`ZvP&RiaPVOzxQ$`O)`M(6sLS
yN%J;Y?DO0<r7?ff#!c6LsA*2U`f2*?C%gsKpMo6zvorv`#o+1c=d#Wzp$Py>0&C*{

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/ui-lightness/images/ui-bg_diagonals-thick_20_666666_40x40.png b/public/admin/js/osmplayer/jquery-ui/ui-lightness/images/ui-bg_diagonals-thick_20_666666_40x40.png
new file mode 100644
index 0000000000000000000000000000000000000000..64ece5707d91a6edf9fad4bfcce0c4dbcafcf58d
GIT binary patch
literal 251
zcmV<X00jSuP)<h;3K|Lk000e1NJLTq001Ze001Zm1^@s6jQ+T70002ONkl<ZScUD^
zT?&IR7(~(AY#^)6!n1<<Vj)fQYm^M-n@5r1C}@~h2;ohZ7-N3vC*J$+J$LlEJIhL0
z?fU|%;UEDj;@||T;sBg74hkR1O4$<++XU{$LE{Z7;GhCj!9fA2go6yIhJysCh=UWT
ziUV-UI2ia*&y+p!utUI|$6*(^`>bvPcjKS|RKP(6sDcCAB(_QB%0978a<$Ah$!b|E
zwn;|HO0i8cQ<lay$(1s&O|n)t8rvkbvR?jjlN@>j@~)s!ajF0S002ovPDHLkV1oEp
BYH0uf

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/ui-lightness/images/ui-bg_flat_10_000000_40x100.png b/public/admin/js/osmplayer/jquery-ui/ui-lightness/images/ui-bg_flat_10_000000_40x100.png
new file mode 100644
index 0000000000000000000000000000000000000000..abdc01082bf3534eafecc5819d28c9574d44ea89
GIT binary patch
literal 178
zcmeAS@N?(olHy`uVBq!ia0vp^8bF-F!3HG1q!d*FsY*{5$B>N1x91EQ4=4yQY-ImG
zFPf9b{J;c_6SHRK%WcbN_hZpM=(Ry;4Rxv2@@2Y=$K57eF$X$=!PC{xWt~$(69B)$
BI)4BF

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/ui-lightness/images/ui-bg_glass_100_f6f6f6_1x400.png b/public/admin/js/osmplayer/jquery-ui/ui-lightness/images/ui-bg_glass_100_f6f6f6_1x400.png
new file mode 100644
index 0000000000000000000000000000000000000000..9b383f4d2eab09c0f2a739d6b232c32934bc620b
GIT binary patch
literal 104
zcmeAS@N?(olHy`uVBq!ia0vp^j6gJjgAK^akKnour1U*q978O6-yYw{%b*}|_(02F
z@qbE9)0CJMo;*v*PWv`Vh2h6EmG8IS-Cm{3U~`<YvxSSFU3)<QP%DF{tDnm{r-UW|
Dvd<uf

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/ui-lightness/images/ui-bg_glass_100_fdf5ce_1x400.png b/public/admin/js/osmplayer/jquery-ui/ui-lightness/images/ui-bg_glass_100_fdf5ce_1x400.png
new file mode 100644
index 0000000000000000000000000000000000000000..a23baad25b1d1ff36e17361eab24271f2e9b7326
GIT binary patch
literal 125
zcmeAS@N?(olHy`uVBq!ia0vp^j6gJjgAK^akKnouq+C2*978O6lYjjF{IFh)jg74>
zFlmZ}YMcJY=eo?o%*@I?2`NblNeMudl#t?<YIry`QK*OGr~otD9plAEGz`5G6d9zp
Wa55e{GUW=;JO)o!KbLh*2~7a@&m@!p

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/ui-lightness/images/ui-bg_glass_65_ffffff_1x400.png b/public/admin/js/osmplayer/jquery-ui/ui-lightness/images/ui-bg_glass_65_ffffff_1x400.png
new file mode 100644
index 0000000000000000000000000000000000000000..42ccba269b6e91bef12ad0fa18be651b5ef0ee68
GIT binary patch
literal 105
zcmeAS@N?(olHy`uVBq!ia0vp^j6gJjgAK^akKnouqzpV=978O6-=0?FV^9z|eBtf=
z|7WztIJ;WT>{+tN>ySr~=F{k$>;_x^_y?afmf9pRKH0)6?eSP?3s5hEr>mdKI;Vst
E0O<Z9>;M1&

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/ui-lightness/images/ui-bg_gloss-wave_35_f6a828_500x100.png b/public/admin/js/osmplayer/jquery-ui/ui-lightness/images/ui-bg_gloss-wave_35_f6a828_500x100.png
new file mode 100644
index 0000000000000000000000000000000000000000..39d5824d6af5456f1e89fc7847ea3599ea5fd815
GIT binary patch
literal 3762
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

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/ui-lightness/images/ui-bg_highlight-soft_100_eeeeee_1x100.png b/public/admin/js/osmplayer/jquery-ui/ui-lightness/images/ui-bg_highlight-soft_100_eeeeee_1x100.png
new file mode 100644
index 0000000000000000000000000000000000000000..f1273672d253263b7564e9e21d69d7d9d0b337d9
GIT binary patch
literal 90
zcmeAS@N?(olHy`uVBq!ia0vp^j6j^i!3HGVb)pi0l%l7LV~E7m<R2d&AFo$qV`FPm
oboulDzr6KyA+fs7hb{~ZQx+&qVC9&67pR!Q)78&qol`;+0H8b=ng9R*

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/ui-lightness/images/ui-bg_highlight-soft_75_ffe45c_1x100.png b/public/admin/js/osmplayer/jquery-ui/ui-lightness/images/ui-bg_highlight-soft_75_ffe45c_1x100.png
new file mode 100644
index 0000000000000000000000000000000000000000..359397acffdd84bd102f0e8a951c9d744f278db5
GIT binary patch
literal 129
zcmeAS@N?(olHy`uVBq!ia0vp^j6j^i!3HGVb)pi0l!vE_V~E7mtNjN#8yp0f)nD%C
z{k^&2ZZH4W#qke67#j$%IepV*`yn{#P|600IVRJjChwXe(ssyZ>xPQ=F85a&M@g_{
d|GeK{$Y5lo%PMu^>wln`44$rjF6*2UngE4^EGqy2

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/ui-lightness/images/ui-icons_222222_256x240.png b/public/admin/js/osmplayer/jquery-ui/ui-lightness/images/ui-icons_222222_256x240.png
new file mode 100644
index 0000000000000000000000000000000000000000..b273ff111d219c9b9a8b96d57683d0075fb7871a
GIT binary patch
literal 4369
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

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/ui-lightness/images/ui-icons_228ef1_256x240.png b/public/admin/js/osmplayer/jquery-ui/ui-lightness/images/ui-icons_228ef1_256x240.png
new file mode 100644
index 0000000000000000000000000000000000000000..a641a371afa0fbb08ba599dc7ddf14b9bfc3c84f
GIT binary patch
literal 4369
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

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/ui-lightness/images/ui-icons_ef8c08_256x240.png b/public/admin/js/osmplayer/jquery-ui/ui-lightness/images/ui-icons_ef8c08_256x240.png
new file mode 100644
index 0000000000000000000000000000000000000000..85e63e9f604ce042d59eb06a8428eeb7cb7896c9
GIT binary patch
literal 4369
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

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/ui-lightness/images/ui-icons_ffd27a_256x240.png b/public/admin/js/osmplayer/jquery-ui/ui-lightness/images/ui-icons_ffd27a_256x240.png
new file mode 100644
index 0000000000000000000000000000000000000000..e117effa3dca24e7978cfc5f8b967f661e81044f
GIT binary patch
literal 4369
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

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/ui-lightness/images/ui-icons_ffffff_256x240.png b/public/admin/js/osmplayer/jquery-ui/ui-lightness/images/ui-icons_ffffff_256x240.png
new file mode 100644
index 0000000000000000000000000000000000000000..42f8f992c727ddaa617da224a522e463df690387
GIT binary patch
literal 4369
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

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/ui-lightness/jquery-ui-1.8.18.custom.css b/public/admin/js/osmplayer/jquery-ui/ui-lightness/jquery-ui-1.8.18.custom.css
new file mode 100644
index 00000000000..6cde85b6e11
--- /dev/null
+++ b/public/admin/js/osmplayer/jquery-ui/ui-lightness/jquery-ui-1.8.18.custom.css
@@ -0,0 +1,565 @@
+/*
+ * jQuery UI CSS Framework 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Theming/API
+ */
+
+/* Layout helpers
+----------------------------------*/
+.player-ui .ui-helper-hidden { display: none; }
+.player-ui .ui-helper-hidden-accessible { position: absolute !important; clip: rect(1px 1px 1px 1px); clip: rect(1px,1px,1px,1px); }
+.player-ui .ui-helper-reset { margin: 0; padding: 0; border: 0; outline: 0; line-height: 1.3; text-decoration: none; font-size: 100%; list-style: none; }
+.player-ui .ui-helper-clearfix:before, .player-ui .ui-helper-clearfix:after { content: ""; display: table; }
+.player-ui .ui-helper-clearfix:after { clear: both; }
+.player-ui .ui-helper-clearfix { zoom: 1; }
+.player-ui .ui-helper-zfix { width: 100%; height: 100%; top: 0; left: 0; position: absolute; opacity: 0; filter:Alpha(Opacity=0); }
+
+
+/* Interaction Cues
+----------------------------------*/
+.player-ui .ui-state-disabled { cursor: default !important; }
+
+
+/* Icons
+----------------------------------*/
+
+/* states and images */
+.player-ui .ui-icon { display: block; text-indent: -99999px; overflow: hidden; background-repeat: no-repeat; }
+
+
+/* Misc visuals
+----------------------------------*/
+
+/* Overlays */
+.player-ui .ui-widget-overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }
+
+
+/*
+ * jQuery UI CSS Framework 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Theming/API
+ *
+ * To view and modify this theme, visit http://jqueryui.com/themeroller/?ffDefault=Trebuchet%20MS,%20Tahoma,%20Verdana,%20Arial,%20sans-serif&fwDefault=bold&fsDefault=1.1em&cornerRadius=4px&bgColorHeader=f6a828&bgTextureHeader=12_gloss_wave.png&bgImgOpacityHeader=35&borderColorHeader=e78f08&fcHeader=ffffff&iconColorHeader=ffffff&bgColorContent=eeeeee&bgTextureContent=03_highlight_soft.png&bgImgOpacityContent=100&borderColorContent=dddddd&fcContent=333333&iconColorContent=222222&bgColorDefault=f6f6f6&bgTextureDefault=02_glass.png&bgImgOpacityDefault=100&borderColorDefault=cccccc&fcDefault=1c94c4&iconColorDefault=ef8c08&bgColorHover=fdf5ce&bgTextureHover=02_glass.png&bgImgOpacityHover=100&borderColorHover=fbcb09&fcHover=c77405&iconColorHover=ef8c08&bgColorActive=ffffff&bgTextureActive=02_glass.png&bgImgOpacityActive=65&borderColorActive=fbd850&fcActive=eb8f00&iconColorActive=ef8c08&bgColorHighlight=ffe45c&bgTextureHighlight=03_highlight_soft.png&bgImgOpacityHighlight=75&borderColorHighlight=fed22f&fcHighlight=363636&iconColorHighlight=228ef1&bgColorError=b81900&bgTextureError=08_diagonals_thick.png&bgImgOpacityError=18&borderColorError=cd0a0a&fcError=ffffff&iconColorError=ffd27a&bgColorOverlay=666666&bgTextureOverlay=08_diagonals_thick.png&bgImgOpacityOverlay=20&opacityOverlay=50&bgColorShadow=000000&bgTextureShadow=01_flat.png&bgImgOpacityShadow=10&opacityShadow=20&thicknessShadow=5px&offsetTopShadow=-5px&offsetLeftShadow=-5px&cornerRadiusShadow=5px
+ */
+
+
+/* Component containers
+----------------------------------*/
+.player-ui .ui-widget { font-family: Trebuchet MS, Tahoma, Verdana, Arial, sans-serif; font-size: 1.1em; }
+.player-ui .ui-widget .ui-widget { font-size: 1em; }
+.player-ui .ui-widget input, .player-ui .ui-widget select, .player-ui .ui-widget textarea, .player-ui .ui-widget button { font-family: Trebuchet MS, Tahoma, Verdana, Arial, sans-serif; font-size: 1em; }
+.player-ui .ui-widget-content { border: 1px solid #dddddd; background: #eeeeee url(images/ui-bg_highlight-soft_100_eeeeee_1x100.png) 50% top repeat-x; color: #333333; }
+.player-ui .ui-widget-content a { color: #333333; }
+.player-ui .ui-widget-header { border: 1px solid #e78f08; background: #f6a828 url(images/ui-bg_gloss-wave_35_f6a828_500x100.png) 50% 50% repeat-x; color: #ffffff; font-weight: bold; }
+.player-ui .ui-widget-header a { color: #ffffff; }
+
+/* Interaction states
+----------------------------------*/
+.player-ui .ui-state-default, .player-ui .ui-widget-content .ui-state-default, .player-ui .ui-widget-header .ui-state-default { border: 1px solid #cccccc; background: #f6f6f6 url(images/ui-bg_glass_100_f6f6f6_1x400.png) 50% 50% repeat-x; font-weight: bold; color: #1c94c4; }
+.player-ui .ui-state-default a, .player-ui .ui-state-default a:link, .player-ui .ui-state-default a:visited { color: #1c94c4; text-decoration: none; }
+.player-ui .ui-state-hover, .player-ui .ui-widget-content .ui-state-hover, .player-ui .ui-widget-header .ui-state-hover, .player-ui .ui-state-focus, .player-ui .ui-widget-content .ui-state-focus, .player-ui .ui-widget-header .ui-state-focus { border: 1px solid #fbcb09; background: #fdf5ce url(images/ui-bg_glass_100_fdf5ce_1x400.png) 50% 50% repeat-x; font-weight: bold; color: #c77405; }
+.player-ui .ui-state-hover a, .player-ui .ui-state-hover a:hover { color: #c77405; text-decoration: none; }
+.player-ui .ui-state-active, .player-ui .ui-widget-content .ui-state-active, .player-ui .ui-widget-header .ui-state-active { border: 1px solid #fbd850; background: #ffffff url(images/ui-bg_glass_65_ffffff_1x400.png) 50% 50% repeat-x; font-weight: bold; color: #eb8f00; }
+.player-ui .ui-state-active a, .player-ui .ui-state-active a:link, .player-ui .ui-state-active a:visited { color: #eb8f00; text-decoration: none; }
+.player-ui .ui-widget :active { outline: none; }
+
+/* Interaction Cues
+----------------------------------*/
+.player-ui .ui-state-highlight, .player-ui .ui-widget-content .ui-state-highlight, .player-ui .ui-widget-header .ui-state-highlight  {border: 1px solid #fed22f; background: #ffe45c url(images/ui-bg_highlight-soft_75_ffe45c_1x100.png) 50% top repeat-x; color: #363636; }
+.player-ui .ui-state-highlight a, .player-ui .ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a { color: #363636; }
+.player-ui .ui-state-error, .player-ui .ui-widget-content .ui-state-error, .player-ui .ui-widget-header .ui-state-error {border: 1px solid #cd0a0a; background: #b81900 url(images/ui-bg_diagonals-thick_18_b81900_40x40.png) 50% 50% repeat; color: #ffffff; }
+.player-ui .ui-state-error a, .player-ui .ui-widget-content .ui-state-error a, .player-ui .ui-widget-header .ui-state-error a { color: #ffffff; }
+.player-ui .ui-state-error-text, .player-ui .ui-widget-content .ui-state-error-text, .player-ui .ui-widget-header .ui-state-error-text { color: #ffffff; }
+.player-ui .ui-priority-primary, .player-ui .ui-widget-content .ui-priority-primary, .player-ui .ui-widget-header .ui-priority-primary { font-weight: bold; }
+.player-ui .ui-priority-secondary, .player-ui .ui-widget-content .ui-priority-secondary,  .ui-widget-header .ui-priority-secondary { opacity: .7; filter:Alpha(Opacity=70); font-weight: normal; }
+.player-ui .ui-state-disabled, .player-ui .ui-widget-content .ui-state-disabled, .player-ui .ui-widget-header .ui-state-disabled { opacity: .35; filter:Alpha(Opacity=35); background-image: none; }
+
+/* Icons
+----------------------------------*/
+
+/* states and images */
+.player-ui .ui-icon { width: 16px; height: 16px; background-image: url(images/ui-icons_222222_256x240.png); }
+.player-ui .ui-widget-content .ui-icon {background-image: url(images/ui-icons_222222_256x240.png); }
+.player-ui .ui-widget-header .ui-icon {background-image: url(images/ui-icons_ffffff_256x240.png); }
+.player-ui .ui-state-default .ui-icon { background-image: url(images/ui-icons_ef8c08_256x240.png); }
+.player-ui .ui-state-hover .ui-icon, .player-ui .ui-state-focus .ui-icon {background-image: url(images/ui-icons_ef8c08_256x240.png); }
+.player-ui .ui-state-active .ui-icon {background-image: url(images/ui-icons_ef8c08_256x240.png); }
+.player-ui .ui-state-highlight .ui-icon {background-image: url(images/ui-icons_228ef1_256x240.png); }
+.player-ui .ui-state-error .ui-icon, .player-ui .ui-state-error-text .ui-icon {background-image: url(images/ui-icons_ffd27a_256x240.png); }
+
+/* positioning */
+.player-ui .ui-icon-carat-1-n { background-position: 0 0; }
+.player-ui .ui-icon-carat-1-ne { background-position: -16px 0; }
+.player-ui .ui-icon-carat-1-e { background-position: -32px 0; }
+.player-ui .ui-icon-carat-1-se { background-position: -48px 0; }
+.player-ui .ui-icon-carat-1-s { background-position: -64px 0; }
+.player-ui .ui-icon-carat-1-sw { background-position: -80px 0; }
+.player-ui .ui-icon-carat-1-w { background-position: -96px 0; }
+.player-ui .ui-icon-carat-1-nw { background-position: -112px 0; }
+.player-ui .ui-icon-carat-2-n-s { background-position: -128px 0; }
+.player-ui .ui-icon-carat-2-e-w { background-position: -144px 0; }
+.player-ui .ui-icon-triangle-1-n { background-position: 0 -16px; }
+.player-ui .ui-icon-triangle-1-ne { background-position: -16px -16px; }
+.player-ui .ui-icon-triangle-1-e { background-position: -32px -16px; }
+.player-ui .ui-icon-triangle-1-se { background-position: -48px -16px; }
+.player-ui .ui-icon-triangle-1-s { background-position: -64px -16px; }
+.player-ui .ui-icon-triangle-1-sw { background-position: -80px -16px; }
+.player-ui .ui-icon-triangle-1-w { background-position: -96px -16px; }
+.player-ui .ui-icon-triangle-1-nw { background-position: -112px -16px; }
+.player-ui .ui-icon-triangle-2-n-s { background-position: -128px -16px; }
+.player-ui .ui-icon-triangle-2-e-w { background-position: -144px -16px; }
+.player-ui .ui-icon-arrow-1-n { background-position: 0 -32px; }
+.player-ui .ui-icon-arrow-1-ne { background-position: -16px -32px; }
+.player-ui .ui-icon-arrow-1-e { background-position: -32px -32px; }
+.player-ui .ui-icon-arrow-1-se { background-position: -48px -32px; }
+.player-ui .ui-icon-arrow-1-s { background-position: -64px -32px; }
+.player-ui .ui-icon-arrow-1-sw { background-position: -80px -32px; }
+.player-ui .ui-icon-arrow-1-w { background-position: -96px -32px; }
+.player-ui .ui-icon-arrow-1-nw { background-position: -112px -32px; }
+.player-ui .ui-icon-arrow-2-n-s { background-position: -128px -32px; }
+.player-ui .ui-icon-arrow-2-ne-sw { background-position: -144px -32px; }
+.player-ui .ui-icon-arrow-2-e-w { background-position: -160px -32px; }
+.player-ui .ui-icon-arrow-2-se-nw { background-position: -176px -32px; }
+.player-ui .ui-icon-arrowstop-1-n { background-position: -192px -32px; }
+.player-ui .ui-icon-arrowstop-1-e { background-position: -208px -32px; }
+.player-ui .ui-icon-arrowstop-1-s { background-position: -224px -32px; }
+.player-ui .ui-icon-arrowstop-1-w { background-position: -240px -32px; }
+.player-ui .ui-icon-arrowthick-1-n { background-position: 0 -48px; }
+.player-ui .ui-icon-arrowthick-1-ne { background-position: -16px -48px; }
+.player-ui .ui-icon-arrowthick-1-e { background-position: -32px -48px; }
+.player-ui .ui-icon-arrowthick-1-se { background-position: -48px -48px; }
+.player-ui .ui-icon-arrowthick-1-s { background-position: -64px -48px; }
+.player-ui .ui-icon-arrowthick-1-sw { background-position: -80px -48px; }
+.player-ui .ui-icon-arrowthick-1-w { background-position: -96px -48px; }
+.player-ui .ui-icon-arrowthick-1-nw { background-position: -112px -48px; }
+.player-ui .ui-icon-arrowthick-2-n-s { background-position: -128px -48px; }
+.player-ui .ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px; }
+.player-ui .ui-icon-arrowthick-2-e-w { background-position: -160px -48px; }
+.player-ui .ui-icon-arrowthick-2-se-nw { background-position: -176px -48px; }
+.player-ui .ui-icon-arrowthickstop-1-n { background-position: -192px -48px; }
+.player-ui .ui-icon-arrowthickstop-1-e { background-position: -208px -48px; }
+.player-ui .ui-icon-arrowthickstop-1-s { background-position: -224px -48px; }
+.player-ui .ui-icon-arrowthickstop-1-w { background-position: -240px -48px; }
+.player-ui .ui-icon-arrowreturnthick-1-w { background-position: 0 -64px; }
+.player-ui .ui-icon-arrowreturnthick-1-n { background-position: -16px -64px; }
+.player-ui .ui-icon-arrowreturnthick-1-e { background-position: -32px -64px; }
+.player-ui .ui-icon-arrowreturnthick-1-s { background-position: -48px -64px; }
+.player-ui .ui-icon-arrowreturn-1-w { background-position: -64px -64px; }
+.player-ui .ui-icon-arrowreturn-1-n { background-position: -80px -64px; }
+.player-ui .ui-icon-arrowreturn-1-e { background-position: -96px -64px; }
+.player-ui .ui-icon-arrowreturn-1-s { background-position: -112px -64px; }
+.player-ui .ui-icon-arrowrefresh-1-w { background-position: -128px -64px; }
+.player-ui .ui-icon-arrowrefresh-1-n { background-position: -144px -64px; }
+.player-ui .ui-icon-arrowrefresh-1-e { background-position: -160px -64px; }
+.player-ui .ui-icon-arrowrefresh-1-s { background-position: -176px -64px; }
+.player-ui .ui-icon-arrow-4 { background-position: 0 -80px; }
+.player-ui .ui-icon-arrow-4-diag { background-position: -16px -80px; }
+.player-ui .ui-icon-extlink { background-position: -32px -80px; }
+.player-ui .ui-icon-newwin { background-position: -48px -80px; }
+.player-ui .ui-icon-refresh { background-position: -64px -80px; }
+.player-ui .ui-icon-shuffle { background-position: -80px -80px; }
+.player-ui .ui-icon-transfer-e-w { background-position: -96px -80px; }
+.player-ui .ui-icon-transferthick-e-w { background-position: -112px -80px; }
+.player-ui .ui-icon-folder-collapsed { background-position: 0 -96px; }
+.player-ui .ui-icon-folder-open { background-position: -16px -96px; }
+.player-ui .ui-icon-document { background-position: -32px -96px; }
+.player-ui .ui-icon-document-b { background-position: -48px -96px; }
+.player-ui .ui-icon-note { background-position: -64px -96px; }
+.player-ui .ui-icon-mail-closed { background-position: -80px -96px; }
+.player-ui .ui-icon-mail-open { background-position: -96px -96px; }
+.player-ui .ui-icon-suitcase { background-position: -112px -96px; }
+.player-ui .ui-icon-comment { background-position: -128px -96px; }
+.player-ui .ui-icon-person { background-position: -144px -96px; }
+.player-ui .ui-icon-print { background-position: -160px -96px; }
+.player-ui .ui-icon-trash { background-position: -176px -96px; }
+.player-ui .ui-icon-locked { background-position: -192px -96px; }
+.player-ui .ui-icon-unlocked { background-position: -208px -96px; }
+.player-ui .ui-icon-bookmark { background-position: -224px -96px; }
+.player-ui .ui-icon-tag { background-position: -240px -96px; }
+.player-ui .ui-icon-home { background-position: 0 -112px; }
+.player-ui .ui-icon-flag { background-position: -16px -112px; }
+.player-ui .ui-icon-calendar { background-position: -32px -112px; }
+.player-ui .ui-icon-cart { background-position: -48px -112px; }
+.player-ui .ui-icon-pencil { background-position: -64px -112px; }
+.player-ui .ui-icon-clock { background-position: -80px -112px; }
+.player-ui .ui-icon-disk { background-position: -96px -112px; }
+.player-ui .ui-icon-calculator { background-position: -112px -112px; }
+.player-ui .ui-icon-zoomin { background-position: -128px -112px; }
+.player-ui .ui-icon-zoomout { background-position: -144px -112px; }
+.player-ui .ui-icon-search { background-position: -160px -112px; }
+.player-ui .ui-icon-wrench { background-position: -176px -112px; }
+.player-ui .ui-icon-gear { background-position: -192px -112px; }
+.player-ui .ui-icon-heart { background-position: -208px -112px; }
+.player-ui .ui-icon-star { background-position: -224px -112px; }
+.player-ui .ui-icon-link { background-position: -240px -112px; }
+.player-ui .ui-icon-cancel { background-position: 0 -128px; }
+.player-ui .ui-icon-plus { background-position: -16px -128px; }
+.player-ui .ui-icon-plusthick { background-position: -32px -128px; }
+.player-ui .ui-icon-minus { background-position: -48px -128px; }
+.player-ui .ui-icon-minusthick { background-position: -64px -128px; }
+.player-ui .ui-icon-close { background-position: -80px -128px; }
+.player-ui .ui-icon-closethick { background-position: -96px -128px; }
+.player-ui .ui-icon-key { background-position: -112px -128px; }
+.player-ui .ui-icon-lightbulb { background-position: -128px -128px; }
+.player-ui .ui-icon-scissors { background-position: -144px -128px; }
+.player-ui .ui-icon-clipboard { background-position: -160px -128px; }
+.player-ui .ui-icon-copy { background-position: -176px -128px; }
+.player-ui .ui-icon-contact { background-position: -192px -128px; }
+.player-ui .ui-icon-image { background-position: -208px -128px; }
+.player-ui .ui-icon-video { background-position: -224px -128px; }
+.player-ui .ui-icon-script { background-position: -240px -128px; }
+.player-ui .ui-icon-alert { background-position: 0 -144px; }
+.player-ui .ui-icon-info { background-position: -16px -144px; }
+.player-ui .ui-icon-notice { background-position: -32px -144px; }
+.player-ui .ui-icon-help { background-position: -48px -144px; }
+.player-ui .ui-icon-check { background-position: -64px -144px; }
+.player-ui .ui-icon-bullet { background-position: -80px -144px; }
+.player-ui .ui-icon-radio-off { background-position: -96px -144px; }
+.player-ui .ui-icon-radio-on { background-position: -112px -144px; }
+.player-ui .ui-icon-pin-w { background-position: -128px -144px; }
+.player-ui .ui-icon-pin-s { background-position: -144px -144px; }
+.player-ui .ui-icon-play { background-position: 0 -160px; }
+.player-ui .ui-icon-pause { background-position: -16px -160px; }
+.player-ui .ui-icon-seek-next { background-position: -32px -160px; }
+.player-ui .ui-icon-seek-prev { background-position: -48px -160px; }
+.player-ui .ui-icon-seek-end { background-position: -64px -160px; }
+.player-ui .ui-icon-seek-start { background-position: -80px -160px; }
+/* ui-icon-seek-first is deprecated, use ui-icon-seek-start instead */
+.player-ui .ui-icon-seek-first { background-position: -80px -160px; }
+.player-ui .ui-icon-stop { background-position: -96px -160px; }
+.player-ui .ui-icon-eject { background-position: -112px -160px; }
+.player-ui .ui-icon-volume-off { background-position: -128px -160px; }
+.player-ui .ui-icon-volume-on { background-position: -144px -160px; }
+.player-ui .ui-icon-power { background-position: 0 -176px; }
+.player-ui .ui-icon-signal-diag { background-position: -16px -176px; }
+.player-ui .ui-icon-signal { background-position: -32px -176px; }
+.player-ui .ui-icon-battery-0 { background-position: -48px -176px; }
+.player-ui .ui-icon-battery-1 { background-position: -64px -176px; }
+.player-ui .ui-icon-battery-2 { background-position: -80px -176px; }
+.player-ui .ui-icon-battery-3 { background-position: -96px -176px; }
+.player-ui .ui-icon-circle-plus { background-position: 0 -192px; }
+.player-ui .ui-icon-circle-minus { background-position: -16px -192px; }
+.player-ui .ui-icon-circle-close { background-position: -32px -192px; }
+.player-ui .ui-icon-circle-triangle-e { background-position: -48px -192px; }
+.player-ui .ui-icon-circle-triangle-s { background-position: -64px -192px; }
+.player-ui .ui-icon-circle-triangle-w { background-position: -80px -192px; }
+.player-ui .ui-icon-circle-triangle-n { background-position: -96px -192px; }
+.player-ui .ui-icon-circle-arrow-e { background-position: -112px -192px; }
+.player-ui .ui-icon-circle-arrow-s { background-position: -128px -192px; }
+.player-ui .ui-icon-circle-arrow-w { background-position: -144px -192px; }
+.player-ui .ui-icon-circle-arrow-n { background-position: -160px -192px; }
+.player-ui .ui-icon-circle-zoomin { background-position: -176px -192px; }
+.player-ui .ui-icon-circle-zoomout { background-position: -192px -192px; }
+.player-ui .ui-icon-circle-check { background-position: -208px -192px; }
+.player-ui .ui-icon-circlesmall-plus { background-position: 0 -208px; }
+.player-ui .ui-icon-circlesmall-minus { background-position: -16px -208px; }
+.player-ui .ui-icon-circlesmall-close { background-position: -32px -208px; }
+.player-ui .ui-icon-squaresmall-plus { background-position: -48px -208px; }
+.player-ui .ui-icon-squaresmall-minus { background-position: -64px -208px; }
+.player-ui .ui-icon-squaresmall-close { background-position: -80px -208px; }
+.player-ui .ui-icon-grip-dotted-vertical { background-position: 0 -224px; }
+.player-ui .ui-icon-grip-dotted-horizontal { background-position: -16px -224px; }
+.player-ui .ui-icon-grip-solid-vertical { background-position: -32px -224px; }
+.player-ui .ui-icon-grip-solid-horizontal { background-position: -48px -224px; }
+.player-ui .ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; }
+.player-ui .ui-icon-grip-diagonal-se { background-position: -80px -224px; }
+
+
+/* Misc visuals
+----------------------------------*/
+
+/* Corner radius */
+.player-ui .ui-corner-all, .player-ui .ui-corner-top, .player-ui .ui-corner-left, .player-ui .ui-corner-tl { -moz-border-radius-topleft: 4px; -webkit-border-top-left-radius: 4px; -khtml-border-top-left-radius: 4px; border-top-left-radius: 4px; }
+.player-ui .ui-corner-all, .player-ui .ui-corner-top, .player-ui .ui-corner-right, .player-ui .ui-corner-tr { -moz-border-radius-topright: 4px; -webkit-border-top-right-radius: 4px; -khtml-border-top-right-radius: 4px; border-top-right-radius: 4px; }
+.player-ui .ui-corner-all, .player-ui .ui-corner-bottom, .player-ui .ui-corner-left, .player-ui .ui-corner-bl { -moz-border-radius-bottomleft: 4px; -webkit-border-bottom-left-radius: 4px; -khtml-border-bottom-left-radius: 4px; border-bottom-left-radius: 4px; }
+.player-ui .ui-corner-all, .player-ui .ui-corner-bottom, .player-ui .ui-corner-right, .player-ui .ui-corner-br { -moz-border-radius-bottomright: 4px; -webkit-border-bottom-right-radius: 4px; -khtml-border-bottom-right-radius: 4px; border-bottom-right-radius: 4px; }
+
+/* Overlays */
+.player-ui .ui-widget-overlay { background: #666666 url(images/ui-bg_diagonals-thick_20_666666_40x40.png) 50% 50% repeat; opacity: .50;filter:Alpha(Opacity=50); }
+.player-ui .ui-widget-shadow { margin: -5px 0 0 -5px; padding: 5px; background: #000000 url(images/ui-bg_flat_10_000000_40x100.png) 50% 50% repeat-x; opacity: .20;filter:Alpha(Opacity=20); -moz-border-radius: 5px; -khtml-border-radius: 5px; -webkit-border-radius: 5px; border-radius: 5px; }/*
+ * jQuery UI Resizable 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Resizable#theming
+ */
+.player-ui .ui-resizable { position: relative;}
+.player-ui .ui-resizable-handle { position: absolute;font-size: 0.1px;z-index: 99999; display: block; }
+.player-ui .ui-resizable-disabled .ui-resizable-handle, .player-ui .ui-resizable-autohide .ui-resizable-handle { display: none; }
+.player-ui .ui-resizable-n { cursor: n-resize; height: 7px; width: 100%; top: -5px; left: 0; }
+.player-ui .ui-resizable-s { cursor: s-resize; height: 7px; width: 100%; bottom: -5px; left: 0; }
+.player-ui .ui-resizable-e { cursor: e-resize; width: 7px; right: -5px; top: 0; height: 100%; }
+.player-ui .ui-resizable-w { cursor: w-resize; width: 7px; left: -5px; top: 0; height: 100%; }
+.player-ui .ui-resizable-se { cursor: se-resize; width: 12px; height: 12px; right: 1px; bottom: 1px; }
+.player-ui .ui-resizable-sw { cursor: sw-resize; width: 9px; height: 9px; left: -5px; bottom: -5px; }
+.player-ui .ui-resizable-nw { cursor: nw-resize; width: 9px; height: 9px; left: -5px; top: -5px; }
+.player-ui .ui-resizable-ne { cursor: ne-resize; width: 9px; height: 9px; right: -5px; top: -5px;}/*
+ * jQuery UI Selectable 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Selectable#theming
+ */
+.player-ui .ui-selectable-helper { position: absolute; z-index: 100; border:1px dotted black; }
+/*
+ * jQuery UI Accordion 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Accordion#theming
+ */
+/* IE/Win - Fix animation bug - #4615 */
+.player-ui .ui-accordion { width: 100%; }
+.player-ui .ui-accordion .ui-accordion-header { cursor: pointer; position: relative; margin-top: 1px; zoom: 1; }
+.player-ui .ui-accordion .ui-accordion-li-fix { display: inline; }
+.player-ui .ui-accordion .ui-accordion-header-active { border-bottom: 0 !important; }
+.player-ui .ui-accordion .ui-accordion-header a { display: block; font-size: 1em; padding: .5em .5em .5em .7em; }
+.player-ui .ui-accordion-icons .ui-accordion-header a { padding-left: 2.2em; }
+.player-ui .ui-accordion .ui-accordion-header .ui-icon { position: absolute; left: .5em; top: 50%; margin-top: -8px; }
+.player-ui .ui-accordion .ui-accordion-content { padding: 1em 2.2em; border-top: 0; margin-top: -2px; position: relative; top: 1px; margin-bottom: 2px; overflow: auto; display: none; zoom: 1; }
+.player-ui .ui-accordion .ui-accordion-content-active { display: block; }
+/*
+ * jQuery UI Autocomplete 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Autocomplete#theming
+ */
+.player-ui .ui-autocomplete { position: absolute; cursor: default; }	
+
+/* workarounds */
+* html .ui-autocomplete { width:1px; } /* without this, the menu expands to 100% in IE6 */
+
+/*
+ * jQuery UI Menu 1.8.18
+ *
+ * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Menu#theming
+ */
+.player-ui .ui-menu {
+	list-style:none;
+	padding: 2px;
+	margin: 0;
+	display:block;
+	float: left;
+}
+.player-ui .ui-menu .ui-menu {
+	margin-top: -3px;
+}
+.player-ui .ui-menu .ui-menu-item {
+	margin:0;
+	padding: 0;
+	zoom: 1;
+	float: left;
+	clear: left;
+	width: 100%;
+}
+.player-ui .ui-menu .ui-menu-item a {
+	text-decoration:none;
+	display:block;
+	padding:.2em .4em;
+	line-height:1.5;
+	zoom:1;
+}
+.player-ui .ui-menu .ui-menu-item a.ui-state-hover,
+.player-ui .ui-menu .ui-menu-item a.ui-state-active {
+	font-weight: normal;
+	margin: -1px;
+}
+/*
+ * jQuery UI Button 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Button#theming
+ */
+.player-ui .ui-button { display: inline-block; position: relative; padding: 0; margin-right: .1em; text-decoration: none !important; cursor: pointer; text-align: center; zoom: 1; overflow: hidden; *overflow: visible; } /* the overflow property removes extra width in IE */
+.player-ui .ui-button-icon-only { width: 2.2em; } /* to make room for the icon, a width needs to be set here */
+button.ui-button-icon-only { width: 2.4em; } /* button elements seem to need a little more width */
+.player-ui .ui-button-icons-only { width: 3.4em; } 
+button.ui-button-icons-only { width: 3.7em; } 
+
+/*button text element */
+.player-ui .ui-button .ui-button-text { display: block; line-height: 1.4;  }
+.player-ui .ui-button-text-only .ui-button-text { padding: .4em 1em; }
+.player-ui .ui-button-icon-only .ui-button-text, .player-ui .ui-button-icons-only .ui-button-text { padding: .4em; text-indent: -9999999px; }
+.player-ui .ui-button-text-icon-primary .ui-button-text, .player-ui .ui-button-text-icons .ui-button-text { padding: .4em 1em .4em 2.1em; }
+.player-ui .ui-button-text-icon-secondary .ui-button-text, .player-ui .ui-button-text-icons .ui-button-text { padding: .4em 2.1em .4em 1em; }
+.player-ui .ui-button-text-icons .ui-button-text { padding-left: 2.1em; padding-right: 2.1em; }
+/* no icon support for input elements, provide padding by default */
+input.ui-button { padding: .4em 1em; }
+
+/*button icon element(s) */
+.player-ui .ui-button-icon-only .ui-icon, .player-ui .ui-button-text-icon-primary .ui-icon, .player-ui .ui-button-text-icon-secondary .ui-icon, .player-ui .ui-button-text-icons .ui-icon, .player-ui .ui-button-icons-only .ui-icon { position: absolute; top: 50%; margin-top: -8px; }
+.player-ui .ui-button-icon-only .ui-icon { left: 50%; margin-left: -8px; }
+.player-ui .ui-button-text-icon-primary .ui-button-icon-primary, .player-ui .ui-button-text-icons .ui-button-icon-primary, .player-ui .ui-button-icons-only .ui-button-icon-primary { left: .5em; }
+.player-ui .ui-button-text-icon-secondary .ui-button-icon-secondary, .player-ui .ui-button-text-icons .ui-button-icon-secondary, .player-ui .ui-button-icons-only .ui-button-icon-secondary { right: .5em; }
+.player-ui .ui-button-text-icons .ui-button-icon-secondary, .player-ui .ui-button-icons-only .ui-button-icon-secondary { right: .5em; }
+
+/*button sets*/
+.player-ui .ui-buttonset { margin-right: 7px; }
+.player-ui .ui-buttonset .ui-button { margin-left: 0; margin-right: -.3em; }
+
+/* workarounds */
+button.ui-button::-moz-focus-inner { border: 0; padding: 0; } /* reset extra padding in Firefox */
+/*
+ * jQuery UI Dialog 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Dialog#theming
+ */
+.player-ui .ui-dialog { position: absolute; padding: .2em; width: 300px; overflow: hidden; }
+.player-ui .ui-dialog .ui-dialog-titlebar { padding: .4em 1em; position: relative;  }
+.player-ui .ui-dialog .ui-dialog-title { float: left; margin: .1em 16px .1em 0; } 
+.player-ui .ui-dialog .ui-dialog-titlebar-close { position: absolute; right: .3em; top: 50%; width: 19px; margin: -10px 0 0 0; padding: 1px; height: 18px; }
+.player-ui .ui-dialog .ui-dialog-titlebar-close span { display: block; margin: 1px; }
+.player-ui .ui-dialog .ui-dialog-titlebar-close:hover, .player-ui .ui-dialog .ui-dialog-titlebar-close:focus { padding: 0; }
+.player-ui .ui-dialog .ui-dialog-content { position: relative; border: 0; padding: .5em 1em; background: none; overflow: auto; zoom: 1; }
+.player-ui .ui-dialog .ui-dialog-buttonpane { text-align: left; border-width: 1px 0 0 0; background-image: none; margin: .5em 0 0 0; padding: .3em 1em .5em .4em; }
+.player-ui .ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset { float: right; }
+.player-ui .ui-dialog .ui-dialog-buttonpane button { margin: .5em .4em .5em 0; cursor: pointer; }
+.player-ui .ui-dialog .ui-resizable-se { width: 14px; height: 14px; right: 3px; bottom: 3px; }
+.player-ui .ui-draggable .ui-dialog-titlebar { cursor: move; }
+/*
+ * jQuery UI Slider 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Slider#theming
+ */
+.player-ui .ui-slider { position: relative; text-align: left; }
+.player-ui .ui-slider .ui-slider-handle { position: absolute; z-index: 2; width: 1.2em; height: 1.2em; cursor: default; }
+.player-ui .ui-slider .ui-slider-range { position: absolute; z-index: 1; font-size: .7em; display: block; border: 0; background-position: 0 0; }
+
+.player-ui .ui-slider-horizontal { height: .8em; }
+.player-ui .ui-slider-horizontal .ui-slider-handle { top: -.3em; margin-left: -.6em; }
+.player-ui .ui-slider-horizontal .ui-slider-range { top: 0; height: 100%; }
+.player-ui .ui-slider-horizontal .ui-slider-range-min { left: 0; }
+.player-ui .ui-slider-horizontal .ui-slider-range-max { right: 0; }
+
+.player-ui .ui-slider-vertical { width: .8em; height: 100px; }
+.player-ui .ui-slider-vertical .ui-slider-handle { left: -.3em; margin-left: 0; margin-bottom: -.6em; }
+.player-ui .ui-slider-vertical .ui-slider-range { left: 0; width: 100%; }
+.player-ui .ui-slider-vertical .ui-slider-range-min { bottom: 0; }
+.player-ui .ui-slider-vertical .ui-slider-range-max { top: 0; }/*
+ * jQuery UI Tabs 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Tabs#theming
+ */
+.player-ui .ui-tabs { position: relative; padding: .2em; zoom: 1; } /* position: relative prevents IE scroll bug (element with position: relative inside container with overflow: auto appear as "fixed") */
+.player-ui .ui-tabs .ui-tabs-nav { margin: 0; padding: .2em .2em 0; }
+.player-ui .ui-tabs .ui-tabs-nav li { list-style: none; float: left; position: relative; top: 1px; margin: 0 .2em 1px 0; border-bottom: 0 !important; padding: 0; white-space: nowrap; }
+.player-ui .ui-tabs .ui-tabs-nav li a { float: left; padding: .5em 1em; text-decoration: none; }
+.player-ui .ui-tabs .ui-tabs-nav li.ui-tabs-selected { margin-bottom: 0; padding-bottom: 1px; }
+.player-ui .ui-tabs .ui-tabs-nav li.ui-tabs-selected a, .player-ui .ui-tabs .ui-tabs-nav li.ui-state-disabled a, .player-ui .ui-tabs .ui-tabs-nav li.ui-state-processing a { cursor: text; }
+.player-ui .ui-tabs .ui-tabs-nav li a, .player-ui .ui-tabs.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-selected a { cursor: pointer; } /* first selector in group seems obsolete, but required to overcome bug in Opera applying cursor: text overall if defined elsewhere... */
+.player-ui .ui-tabs .ui-tabs-panel { display: block; border-width: 0; padding: 1em 1.4em; background: none; }
+.player-ui .ui-tabs .ui-tabs-hide { display: none !important; }
+/*
+ * jQuery UI Datepicker 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Datepicker#theming
+ */
+.player-ui .ui-datepicker { width: 17em; padding: .2em .2em 0; display: none; }
+.player-ui .ui-datepicker .ui-datepicker-header { position:relative; padding:.2em 0; }
+.player-ui .ui-datepicker .ui-datepicker-prev, .player-ui .ui-datepicker .ui-datepicker-next { position:absolute; top: 2px; width: 1.8em; height: 1.8em; }
+.player-ui .ui-datepicker .ui-datepicker-prev-hover, .player-ui .ui-datepicker .ui-datepicker-next-hover { top: 1px; }
+.player-ui .ui-datepicker .ui-datepicker-prev { left:2px; }
+.player-ui .ui-datepicker .ui-datepicker-next { right:2px; }
+.player-ui .ui-datepicker .ui-datepicker-prev-hover { left:1px; }
+.player-ui .ui-datepicker .ui-datepicker-next-hover { right:1px; }
+.player-ui .ui-datepicker .ui-datepicker-prev span, .player-ui .ui-datepicker .ui-datepicker-next span { display: block; position: absolute; left: 50%; margin-left: -8px; top: 50%; margin-top: -8px;  }
+.player-ui .ui-datepicker .ui-datepicker-title { margin: 0 2.3em; line-height: 1.8em; text-align: center; }
+.player-ui .ui-datepicker .ui-datepicker-title select { font-size:1em; margin:1px 0; }
+.player-ui .ui-datepicker select.ui-datepicker-month-year {width: 100%;}
+.player-ui .ui-datepicker select.ui-datepicker-month, 
+.player-ui .ui-datepicker select.ui-datepicker-year { width: 49%;}
+.player-ui .ui-datepicker table {width: 100%; font-size: .9em; border-collapse: collapse; margin:0 0 .4em; }
+.player-ui .ui-datepicker th { padding: .7em .3em; text-align: center; font-weight: bold; border: 0;  }
+.player-ui .ui-datepicker td { border: 0; padding: 1px; }
+.player-ui .ui-datepicker td span, .player-ui .ui-datepicker td a { display: block; padding: .2em; text-align: right; text-decoration: none; }
+.player-ui .ui-datepicker .ui-datepicker-buttonpane { background-image: none; margin: .7em 0 0 0; padding:0 .2em; border-left: 0; border-right: 0; border-bottom: 0; }
+.player-ui .ui-datepicker .ui-datepicker-buttonpane button { float: right; margin: .5em .2em .4em; cursor: pointer; padding: .2em .6em .3em .6em; width:auto; overflow:visible; }
+.player-ui .ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current { float:left; }
+
+/* with multiple calendars */
+.player-ui .ui-datepicker.ui-datepicker-multi { width:auto; }
+.player-ui .ui-datepicker-multi .ui-datepicker-group { float:left; }
+.player-ui .ui-datepicker-multi .ui-datepicker-group table { width:95%; margin:0 auto .4em; }
+.player-ui .ui-datepicker-multi-2 .ui-datepicker-group { width:50%; }
+.player-ui .ui-datepicker-multi-3 .ui-datepicker-group { width:33.3%; }
+.player-ui .ui-datepicker-multi-4 .ui-datepicker-group { width:25%; }
+.player-ui .ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header { border-left-width:0; }
+.player-ui .ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header { border-left-width:0; }
+.player-ui .ui-datepicker-multi .ui-datepicker-buttonpane { clear:left; }
+.player-ui .ui-datepicker-row-break { clear:both; width:100%; font-size:0em; }
+
+/* RTL support */
+.player-ui .ui-datepicker-rtl { direction: rtl; }
+.player-ui .ui-datepicker-rtl .ui-datepicker-prev { right: 2px; left: auto; }
+.player-ui .ui-datepicker-rtl .ui-datepicker-next { left: 2px; right: auto; }
+.player-ui .ui-datepicker-rtl .ui-datepicker-prev:hover { right: 1px; left: auto; }
+.player-ui .ui-datepicker-rtl .ui-datepicker-next:hover { left: 1px; right: auto; }
+.player-ui .ui-datepicker-rtl .ui-datepicker-buttonpane { clear:right; }
+.player-ui .ui-datepicker-rtl .ui-datepicker-buttonpane button { float: left; }
+.player-ui .ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current { float:right; }
+.player-ui .ui-datepicker-rtl .ui-datepicker-group { float:right; }
+.player-ui .ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header { border-right-width:0; border-left-width:1px; }
+.player-ui .ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header { border-right-width:0; border-left-width:1px; }
+
+/* IE6 IFRAME FIX (taken from datepicker 1.5.3 */
+.player-ui .ui-datepicker-cover {
+    display: none; /*sorry for IE5*/
+    display/**/: block; /*sorry for IE5*/
+    position: absolute; /*must have*/
+    z-index: -1; /*must have*/
+    filter: mask(); /*must have*/
+    top: -4px; /*must have*/
+    left: -4px; /*must have*/
+    width: 200px; /*must have*/
+    height: 200px; /*must have*/
+}/*
+ * jQuery UI Progressbar 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Progressbar#theming
+ */
+.player-ui .ui-progressbar { height:2em; text-align: left; overflow: hidden; }
+.player-ui .ui-progressbar .ui-progressbar-value {margin: -1px; height:100%; }
\ No newline at end of file
diff --git a/public/admin/js/osmplayer/jquery-ui/vader/images/ui-bg_flat_0_aaaaaa_40x100.png b/public/admin/js/osmplayer/jquery-ui/vader/images/ui-bg_flat_0_aaaaaa_40x100.png
new file mode 100644
index 0000000000000000000000000000000000000000..5b5dab2ab7b1c50dea9cfe73dc5a269a92d2d4b4
GIT binary patch
literal 180
zcmeAS@N?(olHy`uVBq!ia0vp^8bF-F!3HG1q!d*FscKIb$B>N1x91EQ4=4yQ7#`R^
z$vje}<irI&an_s0pV!D+$FtuP31JO&3=I&aE+u|=5A)Hv$*VMh&S3C#^>bP0l+XkK
DSH>_4

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/vader/images/ui-bg_glass_95_fef1ec_1x400.png b/public/admin/js/osmplayer/jquery-ui/vader/images/ui-bg_glass_95_fef1ec_1x400.png
new file mode 100644
index 0000000000000000000000000000000000000000..4443fdc1a156babad4336f004eaf5ca5dfa0f9ab
GIT binary patch
literal 119
zcmeAS@N?(olHy`uVBq!ia0vp^j6gJjgAK^akKnour0hIh978O6-<~(*YA|4MzBvER
z|7}eQtdCVXoUc2b{PaWeaIKu7gJx>{vDV26o)#~38&#8k_!`W=^oo1w6ixmPC4R1b
Tyd6G3lNdZ*{an^LB{Ts5`idse

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/vader/images/ui-bg_gloss-wave_16_121212_500x100.png b/public/admin/js/osmplayer/jquery-ui/vader/images/ui-bg_gloss-wave_16_121212_500x100.png
new file mode 100644
index 0000000000000000000000000000000000000000..c7a2ee1b7389fd947c358c79c41ffcb51e9daace
GIT binary patch
literal 2399
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

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/vader/images/ui-bg_highlight-hard_15_888888_1x100.png b/public/admin/js/osmplayer/jquery-ui/vader/images/ui-bg_highlight-hard_15_888888_1x100.png
new file mode 100644
index 0000000000000000000000000000000000000000..66e53e16c5eb8a113fd0fabc472de38e4765bccc
GIT binary patch
literal 95
zcmeAS@N?(olHy`uVBq!ia0vp^j6j^i!3HGVb)pi0l$xiDV~E7m<QXQJm+IBn*x1@0
uy8ik9U*4L#_s945@@;Pp?4Gxcg<<(txwy#ZpL2ma7(8A5T-G@yGywo(HXYai

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/vader/images/ui-bg_highlight-hard_55_555555_1x100.png b/public/admin/js/osmplayer/jquery-ui/vader/images/ui-bg_highlight-hard_55_555555_1x100.png
new file mode 100644
index 0000000000000000000000000000000000000000..1453bc188431e21db26ecb9355fe9730473988ab
GIT binary patch
literal 115
zcmeAS@N?(olHy`uVBq!ia0vp^j6j^i!3HGVb)pi0l$EE8V~E7myZwe-3<ey`&F{Y-
zmGYhL^w(iwiKS2<Pvh>>3=i~6%-5_+P)VF=8SHYVO6R2Q<S&Q%r6Xe0bdFwTk%$DE
O!r<xZ=d#Wzp$Pz;+#=%u

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/vader/images/ui-bg_highlight-soft_35_adadad_1x100.png b/public/admin/js/osmplayer/jquery-ui/vader/images/ui-bg_highlight-soft_35_adadad_1x100.png
new file mode 100644
index 0000000000000000000000000000000000000000..fbbdf8a6615a895210bc2bd5145f731bf980bd3e
GIT binary patch
literal 103
zcmeAS@N?(olHy`uVBq!ia0vp^j6j^i!3HGVb)pi0l%A)HV~E7m<Qv=b@7Jrbv9Yx&
zy8QY7U*2m$;l(2oKrrLq-{0--oOOFSt`#UT+;BBMTheez1*nt3)78&qol`;+08Dlt
A&j0`b

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/vader/images/ui-bg_highlight-soft_60_dddddd_1x100.png b/public/admin/js/osmplayer/jquery-ui/vader/images/ui-bg_highlight-soft_60_dddddd_1x100.png
new file mode 100644
index 0000000000000000000000000000000000000000..747e1fa63052ac5b24d82af4c22d7d2f1f4aae27
GIT binary patch
literal 106
zcmeAS@N?(olHy`uVBq!ia0vp^j6j^i!3HGVb)pi0l%c1KV~E7m<cgo4p4O|ev9Yx&
zy8QY7U*7ul|NsAae0q9%PQ<V@rZLQ7F;iuJ9~vdVz+<i*YgBw`Hc&Hzr>mdKI;Vst
E0J7X4ivR!s

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/vader/images/ui-bg_inset-soft_15_121212_1x100.png b/public/admin/js/osmplayer/jquery-ui/vader/images/ui-bg_inset-soft_15_121212_1x100.png
new file mode 100644
index 0000000000000000000000000000000000000000..e7692acdf89d7ee44c69148ae54e69ad92c716d4
GIT binary patch
literal 140
zcmeAS@N?(olHy`uVBq!ia0vp^j6j^i!3Ja)XlH!`a)Lcw9780gZk=Grb-;j!IhC_D
z<?R3exAfZhO1(Hrb{>pSPd;O*&*Z>)`+)>=&f2Nk5nM`4Z}u*4cvAOGdXmsK;Ypi{
pE*C}BaZEB**_(F$|Gyni*^C_6S~+ihmj@cp;OXk;vd$@?2>>DXFQ)(i

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/vader/images/ui-icons_666666_256x240.png b/public/admin/js/osmplayer/jquery-ui/vader/images/ui-icons_666666_256x240.png
new file mode 100644
index 0000000000000000000000000000000000000000..f87de1ca1dc2eeefd7c2a4bed06c3f8bbfe2d483
GIT binary patch
literal 4369
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

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/vader/images/ui-icons_aaaaaa_256x240.png b/public/admin/js/osmplayer/jquery-ui/vader/images/ui-icons_aaaaaa_256x240.png
new file mode 100644
index 0000000000000000000000000000000000000000..64af7f11cfef61daf0fdbd80f6f0b7b5448e795a
GIT binary patch
literal 4369
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

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/vader/images/ui-icons_bbbbbb_256x240.png b/public/admin/js/osmplayer/jquery-ui/vader/images/ui-icons_bbbbbb_256x240.png
new file mode 100644
index 0000000000000000000000000000000000000000..146dbd10b99cc7529a1f055e4ac7d4b2284247e2
GIT binary patch
literal 4369
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

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/vader/images/ui-icons_c98000_256x240.png b/public/admin/js/osmplayer/jquery-ui/vader/images/ui-icons_c98000_256x240.png
new file mode 100644
index 0000000000000000000000000000000000000000..ba8dafc04c3a7130f91fc03b5d82a427fa30c36a
GIT binary patch
literal 4369
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

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/vader/images/ui-icons_cccccc_256x240.png b/public/admin/js/osmplayer/jquery-ui/vader/images/ui-icons_cccccc_256x240.png
new file mode 100644
index 0000000000000000000000000000000000000000..9254e05cfb964be56241b5bb4d0a0eb51c02df80
GIT binary patch
literal 4369
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

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/vader/images/ui-icons_cd0a0a_256x240.png b/public/admin/js/osmplayer/jquery-ui/vader/images/ui-icons_cd0a0a_256x240.png
new file mode 100644
index 0000000000000000000000000000000000000000..2ab019b73ec11a485fa09378f3a0e155194f6a5d
GIT binary patch
literal 4369
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

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/vader/images/ui-icons_f29a00_256x240.png b/public/admin/js/osmplayer/jquery-ui/vader/images/ui-icons_f29a00_256x240.png
new file mode 100644
index 0000000000000000000000000000000000000000..1d27bd9473047e7a881fe5e2b3301cb2f957d2b3
GIT binary patch
literal 5355
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
W`?Hm7LpJ~Km-$3pU#(WfA?AOzTs+zU

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/jquery-ui/vader/jquery-ui-1.8.18.custom.css b/public/admin/js/osmplayer/jquery-ui/vader/jquery-ui-1.8.18.custom.css
new file mode 100644
index 00000000000..a1b34b57437
--- /dev/null
+++ b/public/admin/js/osmplayer/jquery-ui/vader/jquery-ui-1.8.18.custom.css
@@ -0,0 +1,565 @@
+/*
+ * jQuery UI CSS Framework 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Theming/API
+ */
+
+/* Layout helpers
+----------------------------------*/
+.player-ui .ui-helper-hidden { display: none; }
+.player-ui .ui-helper-hidden-accessible { position: absolute !important; clip: rect(1px 1px 1px 1px); clip: rect(1px,1px,1px,1px); }
+.player-ui .ui-helper-reset { margin: 0; padding: 0; border: 0; outline: 0; line-height: 1.3; text-decoration: none; font-size: 100%; list-style: none; }
+.player-ui .ui-helper-clearfix:before, .player-ui .ui-helper-clearfix:after { content: ""; display: table; }
+.player-ui .ui-helper-clearfix:after { clear: both; }
+.player-ui .ui-helper-clearfix { zoom: 1; }
+.player-ui .ui-helper-zfix { width: 100%; height: 100%; top: 0; left: 0; position: absolute; opacity: 0; filter:Alpha(Opacity=0); }
+
+
+/* Interaction Cues
+----------------------------------*/
+.player-ui .ui-state-disabled { cursor: default !important; }
+
+
+/* Icons
+----------------------------------*/
+
+/* states and images */
+.player-ui .ui-icon { display: block; text-indent: -99999px; overflow: hidden; background-repeat: no-repeat; }
+
+
+/* Misc visuals
+----------------------------------*/
+
+/* Overlays */
+.player-ui .ui-widget-overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }
+
+
+/*
+ * jQuery UI CSS Framework 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Theming/API
+ *
+ * To view and modify this theme, visit http://jqueryui.com/themeroller/?tr&ffDefault=Helvetica,%20Arial,%20sans-serif&fwDefault=normal&fsDefault=1.1&fsDefaultUnit=em&cornerRadius=5&cornerRadiusUnit=px&bgColorHeader=888888&bgTextureHeader=04_highlight_hard.png&bgImgOpacityHeader=15&borderColorHeader=404040&fcHeader=ffffff&iconColorHeader=cccccc&bgColorContent=121212&bgTextureContent=12_gloss_wave.png&bgImgOpacityContent=16&borderColorContent=404040&fcContent=eeeeee&iconColorContent=bbbbbb&bgColorDefault=adadad&bgTextureDefault=03_highlight_soft.png&bgImgOpacityDefault=35&borderColorDefault=cccccc&fcDefault=333333&iconColorDefault=666666&bgColorHover=dddddd&bgTextureHover=03_highlight_soft.png&bgImgOpacityHover=60&borderColorHover=dddddd&fcHover=000000&iconColorHover=c98000&bgColorActive=121212&bgTextureActive=05_inset_soft.png&bgImgOpacityActive=15&borderColorActive=000000&fcActive=ffffff&iconColorActive=f29a00&bgColorHighlight=555555&bgTextureHighlight=04_highlight_hard.png&bgImgOpacityHighlight=55&borderColorHighlight=404040&fcHighlight=cccccc&iconColorHighlight=aaaaaa&bgColorError=fef1ec&bgTextureError=02_glass.png&bgImgOpacityError=95&borderColorError=cd0a0a&fcError=cd0a0a&iconColorError=cd0a0a
+ */
+
+
+/* Component containers
+----------------------------------*/
+.player-ui .ui-widget { font-family: Helvetica, Arial, sans-serif; font-size: 1.1em; }
+.player-ui .ui-widget .ui-widget { font-size: 1em; }
+.player-ui .ui-widget input, .player-ui .ui-widget select, .player-ui .ui-widget textarea, .player-ui .ui-widget button { font-family: Helvetica, Arial, sans-serif; font-size: 1em; }
+.player-ui .ui-widget-content { border: 1px solid #404040; background: #121212 url(images/ui-bg_gloss-wave_16_121212_500x100.png) 50% top repeat-x; color: #eeeeee; }
+.player-ui .ui-widget-content a { color: #eeeeee; }
+.player-ui .ui-widget-header { border: 1px solid #404040; background: #888888 url(images/ui-bg_highlight-hard_15_888888_1x100.png) 50% 50% repeat-x; color: #ffffff; font-weight: bold; }
+.player-ui .ui-widget-header a { color: #ffffff; }
+
+/* Interaction states
+----------------------------------*/
+.player-ui .ui-state-default, .player-ui .ui-widget-content .ui-state-default, .player-ui .ui-widget-header .ui-state-default { border: 1px solid #cccccc; background: #adadad url(images/ui-bg_highlight-soft_35_adadad_1x100.png) 50% 50% repeat-x; font-weight: normal; color: #333333; }
+.player-ui .ui-state-default a, .player-ui .ui-state-default a:link, .player-ui .ui-state-default a:visited { color: #333333; text-decoration: none; }
+.player-ui .ui-state-hover, .player-ui .ui-widget-content .ui-state-hover, .player-ui .ui-widget-header .ui-state-hover, .player-ui .ui-state-focus, .player-ui .ui-widget-content .ui-state-focus, .player-ui .ui-widget-header .ui-state-focus { border: 1px solid #dddddd; background: #dddddd url(images/ui-bg_highlight-soft_60_dddddd_1x100.png) 50% 50% repeat-x; font-weight: normal; color: #000000; }
+.player-ui .ui-state-hover a, .player-ui .ui-state-hover a:hover { color: #000000; text-decoration: none; }
+.player-ui .ui-state-active, .player-ui .ui-widget-content .ui-state-active, .player-ui .ui-widget-header .ui-state-active { border: 1px solid #000000; background: #121212 url(images/ui-bg_inset-soft_15_121212_1x100.png) 50% 50% repeat-x; font-weight: normal; color: #ffffff; }
+.player-ui .ui-state-active a, .player-ui .ui-state-active a:link, .player-ui .ui-state-active a:visited { color: #ffffff; text-decoration: none; }
+.player-ui .ui-widget :active { outline: none; }
+
+/* Interaction Cues
+----------------------------------*/
+.player-ui .ui-state-highlight, .player-ui .ui-widget-content .ui-state-highlight, .player-ui .ui-widget-header .ui-state-highlight  {border: 1px solid #404040; background: #555555 url(images/ui-bg_highlight-hard_55_555555_1x100.png) 50% top repeat-x; color: #cccccc; }
+.player-ui .ui-state-highlight a, .player-ui .ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a { color: #cccccc; }
+.player-ui .ui-state-error, .player-ui .ui-widget-content .ui-state-error, .player-ui .ui-widget-header .ui-state-error {border: 1px solid #cd0a0a; background: #fef1ec url(images/ui-bg_glass_95_fef1ec_1x400.png) 50% 50% repeat-x; color: #cd0a0a; }
+.player-ui .ui-state-error a, .player-ui .ui-widget-content .ui-state-error a, .player-ui .ui-widget-header .ui-state-error a { color: #cd0a0a; }
+.player-ui .ui-state-error-text, .player-ui .ui-widget-content .ui-state-error-text, .player-ui .ui-widget-header .ui-state-error-text { color: #cd0a0a; }
+.player-ui .ui-priority-primary, .player-ui .ui-widget-content .ui-priority-primary, .player-ui .ui-widget-header .ui-priority-primary { font-weight: bold; }
+.player-ui .ui-priority-secondary, .player-ui .ui-widget-content .ui-priority-secondary,  .ui-widget-header .ui-priority-secondary { opacity: .7; filter:Alpha(Opacity=70); font-weight: normal; }
+.player-ui .ui-state-disabled, .player-ui .ui-widget-content .ui-state-disabled, .player-ui .ui-widget-header .ui-state-disabled { opacity: .35; filter:Alpha(Opacity=35); background-image: none; }
+
+/* Icons
+----------------------------------*/
+
+/* states and images */
+.player-ui .ui-icon { width: 16px; height: 16px; background-image: url(images/ui-icons_bbbbbb_256x240.png); }
+.player-ui .ui-widget-content .ui-icon {background-image: url(images/ui-icons_bbbbbb_256x240.png); }
+.player-ui .ui-widget-header .ui-icon {background-image: url(images/ui-icons_cccccc_256x240.png); }
+.player-ui .ui-state-default .ui-icon { background-image: url(images/ui-icons_666666_256x240.png); }
+.player-ui .ui-state-hover .ui-icon, .player-ui .ui-state-focus .ui-icon {background-image: url(images/ui-icons_c98000_256x240.png); }
+.player-ui .ui-state-active .ui-icon {background-image: url(images/ui-icons_f29a00_256x240.png); }
+.player-ui .ui-state-highlight .ui-icon {background-image: url(images/ui-icons_aaaaaa_256x240.png); }
+.player-ui .ui-state-error .ui-icon, .player-ui .ui-state-error-text .ui-icon {background-image: url(images/ui-icons_cd0a0a_256x240.png); }
+
+/* positioning */
+.player-ui .ui-icon-carat-1-n { background-position: 0 0; }
+.player-ui .ui-icon-carat-1-ne { background-position: -16px 0; }
+.player-ui .ui-icon-carat-1-e { background-position: -32px 0; }
+.player-ui .ui-icon-carat-1-se { background-position: -48px 0; }
+.player-ui .ui-icon-carat-1-s { background-position: -64px 0; }
+.player-ui .ui-icon-carat-1-sw { background-position: -80px 0; }
+.player-ui .ui-icon-carat-1-w { background-position: -96px 0; }
+.player-ui .ui-icon-carat-1-nw { background-position: -112px 0; }
+.player-ui .ui-icon-carat-2-n-s { background-position: -128px 0; }
+.player-ui .ui-icon-carat-2-e-w { background-position: -144px 0; }
+.player-ui .ui-icon-triangle-1-n { background-position: 0 -16px; }
+.player-ui .ui-icon-triangle-1-ne { background-position: -16px -16px; }
+.player-ui .ui-icon-triangle-1-e { background-position: -32px -16px; }
+.player-ui .ui-icon-triangle-1-se { background-position: -48px -16px; }
+.player-ui .ui-icon-triangle-1-s { background-position: -64px -16px; }
+.player-ui .ui-icon-triangle-1-sw { background-position: -80px -16px; }
+.player-ui .ui-icon-triangle-1-w { background-position: -96px -16px; }
+.player-ui .ui-icon-triangle-1-nw { background-position: -112px -16px; }
+.player-ui .ui-icon-triangle-2-n-s { background-position: -128px -16px; }
+.player-ui .ui-icon-triangle-2-e-w { background-position: -144px -16px; }
+.player-ui .ui-icon-arrow-1-n { background-position: 0 -32px; }
+.player-ui .ui-icon-arrow-1-ne { background-position: -16px -32px; }
+.player-ui .ui-icon-arrow-1-e { background-position: -32px -32px; }
+.player-ui .ui-icon-arrow-1-se { background-position: -48px -32px; }
+.player-ui .ui-icon-arrow-1-s { background-position: -64px -32px; }
+.player-ui .ui-icon-arrow-1-sw { background-position: -80px -32px; }
+.player-ui .ui-icon-arrow-1-w { background-position: -96px -32px; }
+.player-ui .ui-icon-arrow-1-nw { background-position: -112px -32px; }
+.player-ui .ui-icon-arrow-2-n-s { background-position: -128px -32px; }
+.player-ui .ui-icon-arrow-2-ne-sw { background-position: -144px -32px; }
+.player-ui .ui-icon-arrow-2-e-w { background-position: -160px -32px; }
+.player-ui .ui-icon-arrow-2-se-nw { background-position: -176px -32px; }
+.player-ui .ui-icon-arrowstop-1-n { background-position: -192px -32px; }
+.player-ui .ui-icon-arrowstop-1-e { background-position: -208px -32px; }
+.player-ui .ui-icon-arrowstop-1-s { background-position: -224px -32px; }
+.player-ui .ui-icon-arrowstop-1-w { background-position: -240px -32px; }
+.player-ui .ui-icon-arrowthick-1-n { background-position: 0 -48px; }
+.player-ui .ui-icon-arrowthick-1-ne { background-position: -16px -48px; }
+.player-ui .ui-icon-arrowthick-1-e { background-position: -32px -48px; }
+.player-ui .ui-icon-arrowthick-1-se { background-position: -48px -48px; }
+.player-ui .ui-icon-arrowthick-1-s { background-position: -64px -48px; }
+.player-ui .ui-icon-arrowthick-1-sw { background-position: -80px -48px; }
+.player-ui .ui-icon-arrowthick-1-w { background-position: -96px -48px; }
+.player-ui .ui-icon-arrowthick-1-nw { background-position: -112px -48px; }
+.player-ui .ui-icon-arrowthick-2-n-s { background-position: -128px -48px; }
+.player-ui .ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px; }
+.player-ui .ui-icon-arrowthick-2-e-w { background-position: -160px -48px; }
+.player-ui .ui-icon-arrowthick-2-se-nw { background-position: -176px -48px; }
+.player-ui .ui-icon-arrowthickstop-1-n { background-position: -192px -48px; }
+.player-ui .ui-icon-arrowthickstop-1-e { background-position: -208px -48px; }
+.player-ui .ui-icon-arrowthickstop-1-s { background-position: -224px -48px; }
+.player-ui .ui-icon-arrowthickstop-1-w { background-position: -240px -48px; }
+.player-ui .ui-icon-arrowreturnthick-1-w { background-position: 0 -64px; }
+.player-ui .ui-icon-arrowreturnthick-1-n { background-position: -16px -64px; }
+.player-ui .ui-icon-arrowreturnthick-1-e { background-position: -32px -64px; }
+.player-ui .ui-icon-arrowreturnthick-1-s { background-position: -48px -64px; }
+.player-ui .ui-icon-arrowreturn-1-w { background-position: -64px -64px; }
+.player-ui .ui-icon-arrowreturn-1-n { background-position: -80px -64px; }
+.player-ui .ui-icon-arrowreturn-1-e { background-position: -96px -64px; }
+.player-ui .ui-icon-arrowreturn-1-s { background-position: -112px -64px; }
+.player-ui .ui-icon-arrowrefresh-1-w { background-position: -128px -64px; }
+.player-ui .ui-icon-arrowrefresh-1-n { background-position: -144px -64px; }
+.player-ui .ui-icon-arrowrefresh-1-e { background-position: -160px -64px; }
+.player-ui .ui-icon-arrowrefresh-1-s { background-position: -176px -64px; }
+.player-ui .ui-icon-arrow-4 { background-position: 0 -80px; }
+.player-ui .ui-icon-arrow-4-diag { background-position: -16px -80px; }
+.player-ui .ui-icon-extlink { background-position: -32px -80px; }
+.player-ui .ui-icon-newwin { background-position: -48px -80px; }
+.player-ui .ui-icon-refresh { background-position: -64px -80px; }
+.player-ui .ui-icon-shuffle { background-position: -80px -80px; }
+.player-ui .ui-icon-transfer-e-w { background-position: -96px -80px; }
+.player-ui .ui-icon-transferthick-e-w { background-position: -112px -80px; }
+.player-ui .ui-icon-folder-collapsed { background-position: 0 -96px; }
+.player-ui .ui-icon-folder-open { background-position: -16px -96px; }
+.player-ui .ui-icon-document { background-position: -32px -96px; }
+.player-ui .ui-icon-document-b { background-position: -48px -96px; }
+.player-ui .ui-icon-note { background-position: -64px -96px; }
+.player-ui .ui-icon-mail-closed { background-position: -80px -96px; }
+.player-ui .ui-icon-mail-open { background-position: -96px -96px; }
+.player-ui .ui-icon-suitcase { background-position: -112px -96px; }
+.player-ui .ui-icon-comment { background-position: -128px -96px; }
+.player-ui .ui-icon-person { background-position: -144px -96px; }
+.player-ui .ui-icon-print { background-position: -160px -96px; }
+.player-ui .ui-icon-trash { background-position: -176px -96px; }
+.player-ui .ui-icon-locked { background-position: -192px -96px; }
+.player-ui .ui-icon-unlocked { background-position: -208px -96px; }
+.player-ui .ui-icon-bookmark { background-position: -224px -96px; }
+.player-ui .ui-icon-tag { background-position: -240px -96px; }
+.player-ui .ui-icon-home { background-position: 0 -112px; }
+.player-ui .ui-icon-flag { background-position: -16px -112px; }
+.player-ui .ui-icon-calendar { background-position: -32px -112px; }
+.player-ui .ui-icon-cart { background-position: -48px -112px; }
+.player-ui .ui-icon-pencil { background-position: -64px -112px; }
+.player-ui .ui-icon-clock { background-position: -80px -112px; }
+.player-ui .ui-icon-disk { background-position: -96px -112px; }
+.player-ui .ui-icon-calculator { background-position: -112px -112px; }
+.player-ui .ui-icon-zoomin { background-position: -128px -112px; }
+.player-ui .ui-icon-zoomout { background-position: -144px -112px; }
+.player-ui .ui-icon-search { background-position: -160px -112px; }
+.player-ui .ui-icon-wrench { background-position: -176px -112px; }
+.player-ui .ui-icon-gear { background-position: -192px -112px; }
+.player-ui .ui-icon-heart { background-position: -208px -112px; }
+.player-ui .ui-icon-star { background-position: -224px -112px; }
+.player-ui .ui-icon-link { background-position: -240px -112px; }
+.player-ui .ui-icon-cancel { background-position: 0 -128px; }
+.player-ui .ui-icon-plus { background-position: -16px -128px; }
+.player-ui .ui-icon-plusthick { background-position: -32px -128px; }
+.player-ui .ui-icon-minus { background-position: -48px -128px; }
+.player-ui .ui-icon-minusthick { background-position: -64px -128px; }
+.player-ui .ui-icon-close { background-position: -80px -128px; }
+.player-ui .ui-icon-closethick { background-position: -96px -128px; }
+.player-ui .ui-icon-key { background-position: -112px -128px; }
+.player-ui .ui-icon-lightbulb { background-position: -128px -128px; }
+.player-ui .ui-icon-scissors { background-position: -144px -128px; }
+.player-ui .ui-icon-clipboard { background-position: -160px -128px; }
+.player-ui .ui-icon-copy { background-position: -176px -128px; }
+.player-ui .ui-icon-contact { background-position: -192px -128px; }
+.player-ui .ui-icon-image { background-position: -208px -128px; }
+.player-ui .ui-icon-video { background-position: -224px -128px; }
+.player-ui .ui-icon-script { background-position: -240px -128px; }
+.player-ui .ui-icon-alert { background-position: 0 -144px; }
+.player-ui .ui-icon-info { background-position: -16px -144px; }
+.player-ui .ui-icon-notice { background-position: -32px -144px; }
+.player-ui .ui-icon-help { background-position: -48px -144px; }
+.player-ui .ui-icon-check { background-position: -64px -144px; }
+.player-ui .ui-icon-bullet { background-position: -80px -144px; }
+.player-ui .ui-icon-radio-off { background-position: -96px -144px; }
+.player-ui .ui-icon-radio-on { background-position: -112px -144px; }
+.player-ui .ui-icon-pin-w { background-position: -128px -144px; }
+.player-ui .ui-icon-pin-s { background-position: -144px -144px; }
+.player-ui .ui-icon-play { background-position: 0 -160px; }
+.player-ui .ui-icon-pause { background-position: -16px -160px; }
+.player-ui .ui-icon-seek-next { background-position: -32px -160px; }
+.player-ui .ui-icon-seek-prev { background-position: -48px -160px; }
+.player-ui .ui-icon-seek-end { background-position: -64px -160px; }
+.player-ui .ui-icon-seek-start { background-position: -80px -160px; }
+/* ui-icon-seek-first is deprecated, use ui-icon-seek-start instead */
+.player-ui .ui-icon-seek-first { background-position: -80px -160px; }
+.player-ui .ui-icon-stop { background-position: -96px -160px; }
+.player-ui .ui-icon-eject { background-position: -112px -160px; }
+.player-ui .ui-icon-volume-off { background-position: -128px -160px; }
+.player-ui .ui-icon-volume-on { background-position: -144px -160px; }
+.player-ui .ui-icon-power { background-position: 0 -176px; }
+.player-ui .ui-icon-signal-diag { background-position: -16px -176px; }
+.player-ui .ui-icon-signal { background-position: -32px -176px; }
+.player-ui .ui-icon-battery-0 { background-position: -48px -176px; }
+.player-ui .ui-icon-battery-1 { background-position: -64px -176px; }
+.player-ui .ui-icon-battery-2 { background-position: -80px -176px; }
+.player-ui .ui-icon-battery-3 { background-position: -96px -176px; }
+.player-ui .ui-icon-circle-plus { background-position: 0 -192px; }
+.player-ui .ui-icon-circle-minus { background-position: -16px -192px; }
+.player-ui .ui-icon-circle-close { background-position: -32px -192px; }
+.player-ui .ui-icon-circle-triangle-e { background-position: -48px -192px; }
+.player-ui .ui-icon-circle-triangle-s { background-position: -64px -192px; }
+.player-ui .ui-icon-circle-triangle-w { background-position: -80px -192px; }
+.player-ui .ui-icon-circle-triangle-n { background-position: -96px -192px; }
+.player-ui .ui-icon-circle-arrow-e { background-position: -112px -192px; }
+.player-ui .ui-icon-circle-arrow-s { background-position: -128px -192px; }
+.player-ui .ui-icon-circle-arrow-w { background-position: -144px -192px; }
+.player-ui .ui-icon-circle-arrow-n { background-position: -160px -192px; }
+.player-ui .ui-icon-circle-zoomin { background-position: -176px -192px; }
+.player-ui .ui-icon-circle-zoomout { background-position: -192px -192px; }
+.player-ui .ui-icon-circle-check { background-position: -208px -192px; }
+.player-ui .ui-icon-circlesmall-plus { background-position: 0 -208px; }
+.player-ui .ui-icon-circlesmall-minus { background-position: -16px -208px; }
+.player-ui .ui-icon-circlesmall-close { background-position: -32px -208px; }
+.player-ui .ui-icon-squaresmall-plus { background-position: -48px -208px; }
+.player-ui .ui-icon-squaresmall-minus { background-position: -64px -208px; }
+.player-ui .ui-icon-squaresmall-close { background-position: -80px -208px; }
+.player-ui .ui-icon-grip-dotted-vertical { background-position: 0 -224px; }
+.player-ui .ui-icon-grip-dotted-horizontal { background-position: -16px -224px; }
+.player-ui .ui-icon-grip-solid-vertical { background-position: -32px -224px; }
+.player-ui .ui-icon-grip-solid-horizontal { background-position: -48px -224px; }
+.player-ui .ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; }
+.player-ui .ui-icon-grip-diagonal-se { background-position: -80px -224px; }
+
+
+/* Misc visuals
+----------------------------------*/
+
+/* Corner radius */
+.player-ui .ui-corner-all, .player-ui .ui-corner-top, .player-ui .ui-corner-left, .player-ui .ui-corner-tl { -moz-border-radius-topleft: 5px; -webkit-border-top-left-radius: 5px; -khtml-border-top-left-radius: 5px; border-top-left-radius: 5px; }
+.player-ui .ui-corner-all, .player-ui .ui-corner-top, .player-ui .ui-corner-right, .player-ui .ui-corner-tr { -moz-border-radius-topright: 5px; -webkit-border-top-right-radius: 5px; -khtml-border-top-right-radius: 5px; border-top-right-radius: 5px; }
+.player-ui .ui-corner-all, .player-ui .ui-corner-bottom, .player-ui .ui-corner-left, .player-ui .ui-corner-bl { -moz-border-radius-bottomleft: 5px; -webkit-border-bottom-left-radius: 5px; -khtml-border-bottom-left-radius: 5px; border-bottom-left-radius: 5px; }
+.player-ui .ui-corner-all, .player-ui .ui-corner-bottom, .player-ui .ui-corner-right, .player-ui .ui-corner-br { -moz-border-radius-bottomright: 5px; -webkit-border-bottom-right-radius: 5px; -khtml-border-bottom-right-radius: 5px; border-bottom-right-radius: 5px; }
+
+/* Overlays */
+.player-ui .ui-widget-overlay { background: #aaaaaa url(images/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x; opacity: .30;filter:Alpha(Opacity=30); }
+.player-ui .ui-widget-shadow { margin: -8px 0 0 -8px; padding: 8px; background: #aaaaaa url(images/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x; opacity: .30;filter:Alpha(Opacity=30); -moz-border-radius: 8px; -khtml-border-radius: 8px; -webkit-border-radius: 8px; border-radius: 8px; }/*
+ * jQuery UI Resizable 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Resizable#theming
+ */
+.player-ui .ui-resizable { position: relative;}
+.player-ui .ui-resizable-handle { position: absolute;font-size: 0.1px;z-index: 99999; display: block; }
+.player-ui .ui-resizable-disabled .ui-resizable-handle, .player-ui .ui-resizable-autohide .ui-resizable-handle { display: none; }
+.player-ui .ui-resizable-n { cursor: n-resize; height: 7px; width: 100%; top: -5px; left: 0; }
+.player-ui .ui-resizable-s { cursor: s-resize; height: 7px; width: 100%; bottom: -5px; left: 0; }
+.player-ui .ui-resizable-e { cursor: e-resize; width: 7px; right: -5px; top: 0; height: 100%; }
+.player-ui .ui-resizable-w { cursor: w-resize; width: 7px; left: -5px; top: 0; height: 100%; }
+.player-ui .ui-resizable-se { cursor: se-resize; width: 12px; height: 12px; right: 1px; bottom: 1px; }
+.player-ui .ui-resizable-sw { cursor: sw-resize; width: 9px; height: 9px; left: -5px; bottom: -5px; }
+.player-ui .ui-resizable-nw { cursor: nw-resize; width: 9px; height: 9px; left: -5px; top: -5px; }
+.player-ui .ui-resizable-ne { cursor: ne-resize; width: 9px; height: 9px; right: -5px; top: -5px;}/*
+ * jQuery UI Selectable 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Selectable#theming
+ */
+.player-ui .ui-selectable-helper { position: absolute; z-index: 100; border:1px dotted black; }
+/*
+ * jQuery UI Accordion 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Accordion#theming
+ */
+/* IE/Win - Fix animation bug - #4615 */
+.player-ui .ui-accordion { width: 100%; }
+.player-ui .ui-accordion .ui-accordion-header { cursor: pointer; position: relative; margin-top: 1px; zoom: 1; }
+.player-ui .ui-accordion .ui-accordion-li-fix { display: inline; }
+.player-ui .ui-accordion .ui-accordion-header-active { border-bottom: 0 !important; }
+.player-ui .ui-accordion .ui-accordion-header a { display: block; font-size: 1em; padding: .5em .5em .5em .7em; }
+.player-ui .ui-accordion-icons .ui-accordion-header a { padding-left: 2.2em; }
+.player-ui .ui-accordion .ui-accordion-header .ui-icon { position: absolute; left: .5em; top: 50%; margin-top: -8px; }
+.player-ui .ui-accordion .ui-accordion-content { padding: 1em 2.2em; border-top: 0; margin-top: -2px; position: relative; top: 1px; margin-bottom: 2px; overflow: auto; display: none; zoom: 1; }
+.player-ui .ui-accordion .ui-accordion-content-active { display: block; }
+/*
+ * jQuery UI Autocomplete 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Autocomplete#theming
+ */
+.player-ui .ui-autocomplete { position: absolute; cursor: default; }	
+
+/* workarounds */
+* html .ui-autocomplete { width:1px; } /* without this, the menu expands to 100% in IE6 */
+
+/*
+ * jQuery UI Menu 1.8.18
+ *
+ * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Menu#theming
+ */
+.player-ui .ui-menu {
+	list-style:none;
+	padding: 2px;
+	margin: 0;
+	display:block;
+	float: left;
+}
+.player-ui .ui-menu .ui-menu {
+	margin-top: -3px;
+}
+.player-ui .ui-menu .ui-menu-item {
+	margin:0;
+	padding: 0;
+	zoom: 1;
+	float: left;
+	clear: left;
+	width: 100%;
+}
+.player-ui .ui-menu .ui-menu-item a {
+	text-decoration:none;
+	display:block;
+	padding:.2em .4em;
+	line-height:1.5;
+	zoom:1;
+}
+.player-ui .ui-menu .ui-menu-item a.ui-state-hover,
+.player-ui .ui-menu .ui-menu-item a.ui-state-active {
+	font-weight: normal;
+	margin: -1px;
+}
+/*
+ * jQuery UI Button 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Button#theming
+ */
+.player-ui .ui-button { display: inline-block; position: relative; padding: 0; margin-right: .1em; text-decoration: none !important; cursor: pointer; text-align: center; zoom: 1; overflow: hidden; *overflow: visible; } /* the overflow property removes extra width in IE */
+.player-ui .ui-button-icon-only { width: 2.2em; } /* to make room for the icon, a width needs to be set here */
+button.ui-button-icon-only { width: 2.4em; } /* button elements seem to need a little more width */
+.player-ui .ui-button-icons-only { width: 3.4em; } 
+button.ui-button-icons-only { width: 3.7em; } 
+
+/*button text element */
+.player-ui .ui-button .ui-button-text { display: block; line-height: 1.4;  }
+.player-ui .ui-button-text-only .ui-button-text { padding: .4em 1em; }
+.player-ui .ui-button-icon-only .ui-button-text, .player-ui .ui-button-icons-only .ui-button-text { padding: .4em; text-indent: -9999999px; }
+.player-ui .ui-button-text-icon-primary .ui-button-text, .player-ui .ui-button-text-icons .ui-button-text { padding: .4em 1em .4em 2.1em; }
+.player-ui .ui-button-text-icon-secondary .ui-button-text, .player-ui .ui-button-text-icons .ui-button-text { padding: .4em 2.1em .4em 1em; }
+.player-ui .ui-button-text-icons .ui-button-text { padding-left: 2.1em; padding-right: 2.1em; }
+/* no icon support for input elements, provide padding by default */
+input.ui-button { padding: .4em 1em; }
+
+/*button icon element(s) */
+.player-ui .ui-button-icon-only .ui-icon, .player-ui .ui-button-text-icon-primary .ui-icon, .player-ui .ui-button-text-icon-secondary .ui-icon, .player-ui .ui-button-text-icons .ui-icon, .player-ui .ui-button-icons-only .ui-icon { position: absolute; top: 50%; margin-top: -8px; }
+.player-ui .ui-button-icon-only .ui-icon { left: 50%; margin-left: -8px; }
+.player-ui .ui-button-text-icon-primary .ui-button-icon-primary, .player-ui .ui-button-text-icons .ui-button-icon-primary, .player-ui .ui-button-icons-only .ui-button-icon-primary { left: .5em; }
+.player-ui .ui-button-text-icon-secondary .ui-button-icon-secondary, .player-ui .ui-button-text-icons .ui-button-icon-secondary, .player-ui .ui-button-icons-only .ui-button-icon-secondary { right: .5em; }
+.player-ui .ui-button-text-icons .ui-button-icon-secondary, .player-ui .ui-button-icons-only .ui-button-icon-secondary { right: .5em; }
+
+/*button sets*/
+.player-ui .ui-buttonset { margin-right: 7px; }
+.player-ui .ui-buttonset .ui-button { margin-left: 0; margin-right: -.3em; }
+
+/* workarounds */
+button.ui-button::-moz-focus-inner { border: 0; padding: 0; } /* reset extra padding in Firefox */
+/*
+ * jQuery UI Dialog 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Dialog#theming
+ */
+.player-ui .ui-dialog { position: absolute; padding: .2em; width: 300px; overflow: hidden; }
+.player-ui .ui-dialog .ui-dialog-titlebar { padding: .4em 1em; position: relative;  }
+.player-ui .ui-dialog .ui-dialog-title { float: left; margin: .1em 16px .1em 0; } 
+.player-ui .ui-dialog .ui-dialog-titlebar-close { position: absolute; right: .3em; top: 50%; width: 19px; margin: -10px 0 0 0; padding: 1px; height: 18px; }
+.player-ui .ui-dialog .ui-dialog-titlebar-close span { display: block; margin: 1px; }
+.player-ui .ui-dialog .ui-dialog-titlebar-close:hover, .player-ui .ui-dialog .ui-dialog-titlebar-close:focus { padding: 0; }
+.player-ui .ui-dialog .ui-dialog-content { position: relative; border: 0; padding: .5em 1em; background: none; overflow: auto; zoom: 1; }
+.player-ui .ui-dialog .ui-dialog-buttonpane { text-align: left; border-width: 1px 0 0 0; background-image: none; margin: .5em 0 0 0; padding: .3em 1em .5em .4em; }
+.player-ui .ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset { float: right; }
+.player-ui .ui-dialog .ui-dialog-buttonpane button { margin: .5em .4em .5em 0; cursor: pointer; }
+.player-ui .ui-dialog .ui-resizable-se { width: 14px; height: 14px; right: 3px; bottom: 3px; }
+.player-ui .ui-draggable .ui-dialog-titlebar { cursor: move; }
+/*
+ * jQuery UI Slider 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Slider#theming
+ */
+.player-ui .ui-slider { position: relative; text-align: left; }
+.player-ui .ui-slider .ui-slider-handle { position: absolute; z-index: 2; width: 1.2em; height: 1.2em; cursor: default; }
+.player-ui .ui-slider .ui-slider-range { position: absolute; z-index: 1; font-size: .7em; display: block; border: 0; background-position: 0 0; }
+
+.player-ui .ui-slider-horizontal { height: .8em; }
+.player-ui .ui-slider-horizontal .ui-slider-handle { top: -.3em; margin-left: -.6em; }
+.player-ui .ui-slider-horizontal .ui-slider-range { top: 0; height: 100%; }
+.player-ui .ui-slider-horizontal .ui-slider-range-min { left: 0; }
+.player-ui .ui-slider-horizontal .ui-slider-range-max { right: 0; }
+
+.player-ui .ui-slider-vertical { width: .8em; height: 100px; }
+.player-ui .ui-slider-vertical .ui-slider-handle { left: -.3em; margin-left: 0; margin-bottom: -.6em; }
+.player-ui .ui-slider-vertical .ui-slider-range { left: 0; width: 100%; }
+.player-ui .ui-slider-vertical .ui-slider-range-min { bottom: 0; }
+.player-ui .ui-slider-vertical .ui-slider-range-max { top: 0; }/*
+ * jQuery UI Tabs 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Tabs#theming
+ */
+.player-ui .ui-tabs { position: relative; padding: .2em; zoom: 1; } /* position: relative prevents IE scroll bug (element with position: relative inside container with overflow: auto appear as "fixed") */
+.player-ui .ui-tabs .ui-tabs-nav { margin: 0; padding: .2em .2em 0; }
+.player-ui .ui-tabs .ui-tabs-nav li { list-style: none; float: left; position: relative; top: 1px; margin: 0 .2em 1px 0; border-bottom: 0 !important; padding: 0; white-space: nowrap; }
+.player-ui .ui-tabs .ui-tabs-nav li a { float: left; padding: .5em 1em; text-decoration: none; }
+.player-ui .ui-tabs .ui-tabs-nav li.ui-tabs-selected { margin-bottom: 0; padding-bottom: 1px; }
+.player-ui .ui-tabs .ui-tabs-nav li.ui-tabs-selected a, .player-ui .ui-tabs .ui-tabs-nav li.ui-state-disabled a, .player-ui .ui-tabs .ui-tabs-nav li.ui-state-processing a { cursor: text; }
+.player-ui .ui-tabs .ui-tabs-nav li a, .player-ui .ui-tabs.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-selected a { cursor: pointer; } /* first selector in group seems obsolete, but required to overcome bug in Opera applying cursor: text overall if defined elsewhere... */
+.player-ui .ui-tabs .ui-tabs-panel { display: block; border-width: 0; padding: 1em 1.4em; background: none; }
+.player-ui .ui-tabs .ui-tabs-hide { display: none !important; }
+/*
+ * jQuery UI Datepicker 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Datepicker#theming
+ */
+.player-ui .ui-datepicker { width: 17em; padding: .2em .2em 0; display: none; }
+.player-ui .ui-datepicker .ui-datepicker-header { position:relative; padding:.2em 0; }
+.player-ui .ui-datepicker .ui-datepicker-prev, .player-ui .ui-datepicker .ui-datepicker-next { position:absolute; top: 2px; width: 1.8em; height: 1.8em; }
+.player-ui .ui-datepicker .ui-datepicker-prev-hover, .player-ui .ui-datepicker .ui-datepicker-next-hover { top: 1px; }
+.player-ui .ui-datepicker .ui-datepicker-prev { left:2px; }
+.player-ui .ui-datepicker .ui-datepicker-next { right:2px; }
+.player-ui .ui-datepicker .ui-datepicker-prev-hover { left:1px; }
+.player-ui .ui-datepicker .ui-datepicker-next-hover { right:1px; }
+.player-ui .ui-datepicker .ui-datepicker-prev span, .player-ui .ui-datepicker .ui-datepicker-next span { display: block; position: absolute; left: 50%; margin-left: -8px; top: 50%; margin-top: -8px;  }
+.player-ui .ui-datepicker .ui-datepicker-title { margin: 0 2.3em; line-height: 1.8em; text-align: center; }
+.player-ui .ui-datepicker .ui-datepicker-title select { font-size:1em; margin:1px 0; }
+.player-ui .ui-datepicker select.ui-datepicker-month-year {width: 100%;}
+.player-ui .ui-datepicker select.ui-datepicker-month, 
+.player-ui .ui-datepicker select.ui-datepicker-year { width: 49%;}
+.player-ui .ui-datepicker table {width: 100%; font-size: .9em; border-collapse: collapse; margin:0 0 .4em; }
+.player-ui .ui-datepicker th { padding: .7em .3em; text-align: center; font-weight: bold; border: 0;  }
+.player-ui .ui-datepicker td { border: 0; padding: 1px; }
+.player-ui .ui-datepicker td span, .player-ui .ui-datepicker td a { display: block; padding: .2em; text-align: right; text-decoration: none; }
+.player-ui .ui-datepicker .ui-datepicker-buttonpane { background-image: none; margin: .7em 0 0 0; padding:0 .2em; border-left: 0; border-right: 0; border-bottom: 0; }
+.player-ui .ui-datepicker .ui-datepicker-buttonpane button { float: right; margin: .5em .2em .4em; cursor: pointer; padding: .2em .6em .3em .6em; width:auto; overflow:visible; }
+.player-ui .ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current { float:left; }
+
+/* with multiple calendars */
+.player-ui .ui-datepicker.ui-datepicker-multi { width:auto; }
+.player-ui .ui-datepicker-multi .ui-datepicker-group { float:left; }
+.player-ui .ui-datepicker-multi .ui-datepicker-group table { width:95%; margin:0 auto .4em; }
+.player-ui .ui-datepicker-multi-2 .ui-datepicker-group { width:50%; }
+.player-ui .ui-datepicker-multi-3 .ui-datepicker-group { width:33.3%; }
+.player-ui .ui-datepicker-multi-4 .ui-datepicker-group { width:25%; }
+.player-ui .ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header { border-left-width:0; }
+.player-ui .ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header { border-left-width:0; }
+.player-ui .ui-datepicker-multi .ui-datepicker-buttonpane { clear:left; }
+.player-ui .ui-datepicker-row-break { clear:both; width:100%; font-size:0em; }
+
+/* RTL support */
+.player-ui .ui-datepicker-rtl { direction: rtl; }
+.player-ui .ui-datepicker-rtl .ui-datepicker-prev { right: 2px; left: auto; }
+.player-ui .ui-datepicker-rtl .ui-datepicker-next { left: 2px; right: auto; }
+.player-ui .ui-datepicker-rtl .ui-datepicker-prev:hover { right: 1px; left: auto; }
+.player-ui .ui-datepicker-rtl .ui-datepicker-next:hover { left: 1px; right: auto; }
+.player-ui .ui-datepicker-rtl .ui-datepicker-buttonpane { clear:right; }
+.player-ui .ui-datepicker-rtl .ui-datepicker-buttonpane button { float: left; }
+.player-ui .ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current { float:right; }
+.player-ui .ui-datepicker-rtl .ui-datepicker-group { float:right; }
+.player-ui .ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header { border-right-width:0; border-left-width:1px; }
+.player-ui .ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header { border-right-width:0; border-left-width:1px; }
+
+/* IE6 IFRAME FIX (taken from datepicker 1.5.3 */
+.player-ui .ui-datepicker-cover {
+    display: none; /*sorry for IE5*/
+    display/**/: block; /*sorry for IE5*/
+    position: absolute; /*must have*/
+    z-index: -1; /*must have*/
+    filter: mask(); /*must have*/
+    top: -4px; /*must have*/
+    left: -4px; /*must have*/
+    width: 200px; /*must have*/
+    height: 200px; /*must have*/
+}/*
+ * jQuery UI Progressbar 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Progressbar#theming
+ */
+.player-ui .ui-progressbar { height:2em; text-align: left; overflow: hidden; }
+.player-ui .ui-progressbar .ui-progressbar-value {margin: -1px; height:100%; }
\ No newline at end of file
diff --git a/public/admin/js/osmplayer/logo.png b/public/admin/js/osmplayer/logo.png
new file mode 100644
index 0000000000000000000000000000000000000000..6ff38b24f5bc9acd178778e3c2a4e7bb5b1e4e44
GIT binary patch
literal 763
zcmV<X0tEeuP)<h;3K|Lk000e1NJLTq001!n000jN1^@s6P3$MZ00004b3#c}2nYxW
zd<bNS00009a7bBm000HR000HR0c3<S5&!@I8FWQhbW?9;ba!ELWdL_~cP?peYja~^
zaAhuUa%Y?FJQ@H10(eP8K~zYIt(LoM6j2n1za7^Htdb@!i5Q7*(+B|(qohld6e&ck
zEi57^iiJP_06~vLQm7Ctw6+o@ibw>}fQ2B4;v*)SprQc{c_4{old+f?T*iBMc1gZw
z9=~($Ip@y3=T0sRL&`C;24Fw14cH3I0iS?jU`SGlDlxM<pb01f0q|H-Sf;NAx`5q4
zBk%?I01Qg{6WbJk4xk0t2#m+M3?{kck|NA34;%rG0&6^ZjRAd<Ml+J%1M~npQc}01
zrP!t!I0tNT4Dl5(U_Ed)PCm_h;F6@DxiAbdv$a4k(adMD2=q#N<|&{9I1S_+a<`<V
zcy_M?^%dfjfK{Gx5`F+ZLHux>>Ixtp_@tQ?(?Yxydolt89HVjp0QoA$X#hF{GiwDp
zGmO&|fHRKw?ZCP!{14U`uM!6Wpv@!B0QZ159(}KwZAiUq%!+7c^+26NngAYp+)BUz
zFy+vS0kGX6EC44Y-H>#is2CS%-%TF7w?ID-;w}K-uB2<gZ-+J_sULXm(CPzVvqN|#
zX}awBsV8t#auYX)bT>-qlQdA?UL8!v*XbIyd_c6r)3lgb`P$y+30&^mhI>DJll0x=
zzar#;QT|^R1>mBY-3N9N9X2jT&8!_bjQ=ZqT!}<05dbee+D@Vl)P?)-8<R8%w8pl+
zcKCX^NoEm98p6F{DzN}uslsj^|9)CAlEdyQ@T&&DTarFkVRuu~T<vMqMgSmb1~^6b
ztW5zIB>7ryLI~WJ^kDfZW|L2D;zBN)*%ROp&`k7mHcRy5Hv-&|H0v2FBx->#fJc(v
tdF<wKAE3!WHq5`4nlK(;Cmg<ue*sfRz-9`V^K}3K002ovPDHLkV1iGJH`V|E

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/makefile b/public/admin/js/osmplayer/makefile
new file mode 100644
index 00000000000..d4ce121f0f0
--- /dev/null
+++ b/public/admin/js/osmplayer/makefile
@@ -0,0 +1,95 @@
+# To run this makefile, you must do the following.
+#
+# 1.)  Download http://closure-compiler.googlecode.com/files/compiler-latest.zip
+#      and place compiler.jar within the tools directory.
+#
+# 2.)  Install closure-linter tool at by following
+#      http://code.google.com/closure/utilities/docs/linter_howto.html
+#
+# 3.)  Download the JSDoc toolkit found at
+#      http://code.google.com/p/jsdoc-toolkit and place the jsdoc-toolkit
+#      directory within the tools directory.
+
+# Create the list of files
+files =   minplayer/src/minplayer.compatibility.js\
+          minplayer/src/minplayer.async.js\
+          minplayer/src/minplayer.flags.js\
+          minplayer/src/minplayer.plugin.js\
+          minplayer/src/minplayer.display.js\
+          minplayer/src/minplayer.js\
+          minplayer/src/minplayer.image.js\
+          minplayer/src/minplayer.file.js\
+          minplayer/src/minplayer.playLoader.js\
+          minplayer/src/minplayer.players.base.js\
+          minplayer/src/minplayer.players.html5.js\
+          minplayer/src/minplayer.players.flash.js\
+          minplayer/src/minplayer.players.minplayer.js\
+          minplayer/src/minplayer.players.youtube.js\
+          minplayer/src/minplayer.players.vimeo.js\
+          minplayer/src/minplayer.controller.js\
+          src/osmplayer.js\
+          src/osmplayer.parser.default.js\
+          src/osmplayer.parser.youtube.js\
+          src/osmplayer.parser.rss.js\
+          src/osmplayer.parser.asx.js\
+          src/osmplayer.parser.xspf.js\
+          src/osmplayer.playlist.js\
+          src/osmplayer.pager.js\
+          src/osmplayer.teaser.js
+
+default_template =   templates/default/js/osmplayer.playLoader.default.js\
+          templates/default/js/osmplayer.controller.default.js\
+          templates/default/js/osmplayer.playlist.default.js\
+          templates/default/js/osmplayer.teaser.default.js\
+          templates/default/js/osmplayer.pager.default.js\
+          templates/default/js/osmplayer.default.js
+
+.DEFAULT_GOAL := all
+
+all: jslint js jsdoc
+
+# Perform a jsLint on all the files.
+jslint: ${files}
+	gjslint $^
+
+# Create an aggregated js file and a compressed js file.
+js: ${files}
+	@echo "Generating aggregated bin/osmplayer.js file"
+	@cat > bin/osmplayer.js src/iscroll/src/iscroll.js $^
+	@echo "Generating compressed bin/osmplayer.compressed file"
+	curl -s \
+	  -d compilation_level=SIMPLE_OPTIMIZATIONS \
+	  -d output_format=text \
+	  -d output_info=compiled_code \
+	  --data-urlencode "js_code@bin/osmplayer.js" \
+	  http://closure-compiler.appspot.com/compile \
+	  > bin/osmplayer.compressed.js
+	@cat > templates/default/osmplayer.default.tmp ${default_template}
+	curl -s \
+	  -d compilation_level=SIMPLE_OPTIMIZATIONS \
+	  -d output_format=text \
+	  -d output_info=compiled_code \
+	  --data-urlencode "js_code@templates/default/osmplayer.default.tmp" \
+	  http://closure-compiler.appspot.com/compile \
+	  > templates/default/osmplayer.default.js
+	@rm templates/default/osmplayer.default.tmp
+
+# Create the documentation from source code.
+jsdoc: ${files}
+	@echo "Generating documetation."
+	@java -jar tools/jsdoc-toolkit/jsrun.jar tools/jsdoc-toolkit/app/run.js -a -t=tools/jsdoc-toolkit/templates/jsdoc -d=doc $^
+
+# Fix the js style on all the files.
+fixjsstyle: ${files}
+	fixjsstyle $^
+
+# Install the necessary tools.
+tools:
+	apt-get install python-setuptools
+	apt-get install unzip
+	easy_install http://closure-linter.googlecode.com/files/closure_linter-latest.tar.gz
+	wget http://jsdoc-toolkit.googlecode.com/files/jsdoc_toolkit-2.4.0.zip -P tools
+	unzip tools/jsdoc_toolkit-2.4.0.zip -d tools
+	mv tools/jsdoc_toolkit-2.4.0/jsdoc-toolkit tools/jsdoc-toolkit
+	rm -rd tools/jsdoc_toolkit-2.4.0
+	rm tools/jsdoc_toolkit-2.4.0.zip
diff --git a/public/admin/js/osmplayer/minplayer/README.md b/public/admin/js/osmplayer/minplayer/README.md
new file mode 100644
index 00000000000..63034555b62
--- /dev/null
+++ b/public/admin/js/osmplayer/minplayer/README.md
@@ -0,0 +1,122 @@
+minPlayer - Because less IS more.
+===================================
+
+The goal of this project is to provide a slim, well documented, object oriented,
+plugin-based "core" media player in which other players and libraries can build
+on top of.  It is written using object oriented JavaScript and is continuously
+integrated using JSLint, JSDoc, and Google Closure.
+
+Multiple players - One single API.
+-----------------------------------
+It also allows for hot-swappable 3rd party API players by providing a common
+API for all of these players so that they can be utilized in the same manner.
+This means that once you develop for the minPlayer, one can easily bring in a
+different player an your code will still function as it would for all the
+others.  Out of the box, this player provides a common API for YouTube, Vimeo,
+HTML5, and Flash with more on the way.
+
+Everything is a plugin
+-----------------------------------
+Since this is a plugin-based media player, every displayable class must derive
+from the plugin class, thereby, making it a plugin.  This includes the media
+player itself.  This plugin system is highly flexible to be able to handle
+just about any type of plugin imaginable, and allows for every plugin to have
+direct dependeny-injected control over any other plugin within the media player.
+
+Complete User Interface & Business Logic separation
+-----------------------------------
+One common complaint for many media solutions out there is that they hijack the
+DOM and build out their own controls to provide consistency amongst different
+browsers.  They do this, however, within the core player which completely binds
+the user interface to the business logic of the media player.  The minPlayer
+takes a different approach by keeping ALL user interface functionality within
+the "templates" directory, where each template essentially derives from the base
+Business logic classes only to provide the user interface aspects of that control.
+This allows for easy templating of the media player besides just overriding the
+CSS like current media solutions do today.
+
+No "Features"!
+-----------------------------------
+I am pleased to say that this media player does NOT have many features, and this
+is on purpose.  Since this is a "core" player, it does not have any features
+other than what is critical in presenting your media.  Any additional "bling"
+will be added to this player from different repositories and from different
+players that extend this "core" functionality.  This methodology will keep this
+"core" media solution lean & highly functional.
+
+API
+-----------------------------------
+The API for minPlayer is very simple.  It revolves around a single API that is
+able to retrieve any plugin even before that plugin is created.  By doing this,
+you can have complete control over any plugin within the minPlayer.  This API
+is simply called
+
+```
+minplayer.get();
+```
+
+This API can take up to three different argument with each argument providing
+different usage.  The code docs for this function are as follows...
+
+```
+/**
+ * The main API for minPlayer.
+ *
+ * Provided that this function takes three parameters, there are 8 different
+ * ways to use this api.
+ *
+ *   id (0x100) - You want a specific player.
+ *   plugin (0x010) - You want a specific plugin.
+ *   callback (0x001) - You only want it when it is ready.
+ *
+ *   000 - You want all plugins from all players, ready or not.
+ *
+ *          var instances = minplayer.get();
+ *
+ *   001 - You want all plugins from all players, but only when ready.
+ *
+ *          minplayer.get(function(plugin) {
+ *            // Code goes here.
+ *          });
+ *
+ *   010 - You want a specific plugin from all players, ready or not...
+ *
+ *          var medias = minplayer.get(null, 'media');
+ *
+ *   011 - You want a specific plugin from all players, but only when ready.
+ *
+ *          minplayer.get('player', function(player) {
+ *            // Code goes here.
+ *          });
+ *
+ *   100 - You want all plugins from a specific player, ready or not.
+ *
+ *          var plugins = minplayer.get('player_id');
+ *
+ *   101 - You want all plugins from a specific player, but only when ready.
+ *
+ *          minplayer.get('player_id', null, function(plugin) {
+ *            // Code goes here.
+ *          });
+ *
+ *   110 - You want a specific plugin from a specific player, ready or not.
+ *
+ *          var plugin = minplayer.get('player_id', 'media');
+ *
+ *   111 - You want a specific plugin from a specific player, only when ready.
+ *
+ *          minplayer.get('player_id', 'media', function(media) {
+ *            // Code goes here.
+ *          });
+ *
+ * @this The context in which this function was called.
+ * @param {string} id The ID of the widget to get the plugins from.
+ * @param {string} plugin The name of the plugin.
+ * @param {function} callback Called when the plugin is ready.
+ * @return {object} The plugin object if it is immediately available.
+ */
+minplayer.get = function(id, plugin, callback) {
+};
+```
+
+Thanks and enjoy minPlayer.
\ No newline at end of file
diff --git a/public/admin/js/osmplayer/minplayer/bin/minplayer.compressed.js b/public/admin/js/osmplayer/minplayer/bin/minplayer.compressed.js
new file mode 100644
index 00000000000..58431bb3fc7
--- /dev/null
+++ b/public/admin/js/osmplayer/minplayer/bin/minplayer.compressed.js
@@ -0,0 +1,115 @@
+var minplayer=minplayer||{};function checkPlayType(a,b){if("function"===typeof a.canPlayType){if("object"===typeof b){for(var c=b.length,d="";c--&&!(d=checkPlayType(a,b[c])););return d}c=a.canPlayType(b);if("no"!==c&&""!==c)return b}return""}
+minplayer.compatibility=function(){var a=null,a=document.createElement("video");this.videoOGG=checkPlayType(a,"video/ogg");this.videoH264=checkPlayType(a,["video/mp4","video/h264"]);this.videoWEBM=checkPlayType(a,["video/x-webm","video/webm","application/octet-stream"]);a=document.createElement("audio");this.audioOGG=checkPlayType(a,"audio/ogg");this.audioMP3=checkPlayType(a,"audio/mpeg");this.audioMP4=checkPlayType(a,"audio/mp4")};
+minplayer.playTypes||(minplayer.playTypes=new minplayer.compatibility,minplayer.isAndroid=/android/gi.test(navigator.appVersion),minplayer.isIDevice=/iphone|ipad/gi.test(navigator.appVersion),minplayer.isPlaybook=/playbook/gi.test(navigator.appVersion),minplayer.isTouchPad=/hp-tablet/gi.test(navigator.appVersion),minplayer.hasTouch="ontouchstart"in window&&!minplayer.isTouchPad);minplayer=minplayer||{};minplayer.async=function(){this.value=null;this.queue=[]};
+minplayer.async.prototype.get=function(a){this.value!==null?a(this.value):this.queue.push(a)};minplayer.async.prototype.set=function(a){this.value=a;var b=this.queue.length;if(b){for(;b--;)this.queue[b](a);this.queue=[]}};minplayer=minplayer||{};minplayer.flags=function(){this.flag=0;this.ids={};this.numFlags=0};minplayer.flags.prototype.setFlag=function(a,b){if(!this.ids.hasOwnProperty(a)){this.ids[a]=this.numFlags;this.numFlags++}this.flag=b?this.flag|1<<this.ids[a]:this.flag&~(1<<this.ids[a])};
+minplayer=minplayer||{};minplayer.plugins=minplayer.plugins||{};minplayer.queue=minplayer.queue||[];minplayer.lock=!1;minplayer.plugin=function(a,b,c,d){this.name=a;this.pluginReady=false;this.options=c||{};this.queue=d||{};this.triggered={};this.lock=false;if(b){this.active=true;this.context=jQuery(b);this.construct()}};minplayer.plugin.prototype.construct=function(){this.addPlugin()};minplayer.plugin.prototype.destroy=function(){this.active=false;this.unbind()};
+minplayer.plugin.prototype.create=function(a,b,c){var d=null,b=b||"minplayer";window[b][a]||(b="minplayer");c=c||this.display;if(window[b][a]){d=window[b][a];d[this.options.template]&&(d=d[this.options.template]);typeof d!=="function"&&(d=window.minplayer[a]);if(typeof d==="function")return new d(c,this.options)}return null};minplayer.plugin.prototype.ready=function(){if(!this.pluginReady){this.pluginReady=true;this.trigger("ready");this.checkQueue()}};
+minplayer.plugin.prototype.isValid=function(){return!!this.options.id&&this.active};minplayer.plugin.prototype.addPlugin=function(a,b){a=a||this.name;b=b||this;if(b.isValid()){minplayer.plugins[this.options.id]||(minplayer.plugins[this.options.id]={});minplayer.plugins[this.options.id][a]||(minplayer.plugins[this.options.id][a]=[]);minplayer.plugins[this.options.id][a].push(b);this.checkQueue(b)}};
+minplayer.plugin.prototype.poll=function(a,b){var c=this;setTimeout(function e(){a.call(c)&&setTimeout(e,b)},b)};minplayer.plugin.prototype.get=function(a,b){if(typeof a==="function"){b=a;a=null}return minplayer.get.call(this,this.options.id,a,b)};
+minplayer.plugin.prototype.checkQueue=function(a){var b=null,c=0,d=false,e=[],a=a||this;minplayer.lock=true;for(var f=minplayer.queue.length,c=0;c<f;c++)if(minplayer.queue.hasOwnProperty(c)){b=minplayer.queue[c];d=!b.id&&!b.plugin;d=d|b.plugin==a.name;(d=d&(!b.id||b.id==this.options.id))&&(d=minplayer.bind.call(b.context,b.event,this.options.id,a.name,b.callback));d||e.push(b)}minplayer.queue=e;minplayer.lock=false};
+minplayer.plugin.prototype.trigger=function(a,b){if(!this.active)return this;this.triggered[a]=b;if(this.queue.hasOwnProperty(a)){var c=0,d={},e=this.queue[a];for(c in e)if(e.hasOwnProperty(c)){d=e[c];d.callback({target:this,data:d.data},b)}}return this};
+minplayer.plugin.prototype.bind=function(a,b,c){if(!this.active)return this;if(typeof b==="function"){c=b;b=null}if(a&&c){this.queue[a]=this.queue[a]||[];this.unbind(a,c);this.queue[a].push({callback:c,data:b});this.triggered.hasOwnProperty(a)&&c({target:this,data:b},this.triggered[a]);return this}};
+minplayer.plugin.prototype.unbind=function(a,b){if(this.lock){var c=this;setTimeout(function(){c.unbind(a,b)},10)}this.lock=true;var d=this.queue.hasOwnProperty(a)?this.queue[a]:null;if(a)if(b){if(d){var e=0,f={};for(e in d)if(d.hasOwnProperty(e)&&d[e].callback===b){f=this.queue[a].splice(e,1);delete f}}}else this.queue[a]=[];else this.queue={};this.lock=false;return this};
+minplayer.addQueue=function(a,b,c,d,e){minplayer.lock?setTimeout(function(){minplayer.addQueue(a,c,b,d,e)},10):minplayer.queue.push({context:a,id:c,event:b,plugin:d,callback:e})};
+minplayer.bind=function(a,b,c,d){if(!d)return false;var e=minplayer.plugins,f=[],g=function(a,b){if(e.hasOwnProperty(a)&&e[a].hasOwnProperty(b))for(var c=e[a][b].length;c--;)f.push(e[a][b][c])};if(b&&c)g(b,c);else if(!b&&c)for(b in e)g(b,c);else if(b&&!c&&e[b])for(c in e[b])g(b,c);else if(!b&&!c)for(b in e)for(c in e[b])g(b,c);for(g=f.length;g--;)f[g].bind(a,function(a){return function(b){d.call(a,b.target)}}(this));minplayer.addQueue(this,a,b,c,d);return f.length>0};
+minplayer.get=function(a,b,c){if(typeof a==="function"){c=a;b=a=null}if(typeof b==="function"){c=b;b=a;a=null}if(c=typeof c==="function"?c:null)minplayer.bind.call(this,"ready",a,b,c);else{var d=minplayer.plugins;if(!a&&!b&&!c)return d;if(a&&!b&&!c)return d[a];if(a&&b&&!c)return d[a][b];if(!a&&b&&!c){c=[];for(a in d)if(d.hasOwnProperty(a)&&d[a].hasOwnProperty(b))for(var e=d[a][b].length;e--;)c.push(d[a][b][e]);return c}}};minplayer=minplayer||{};
+minplayer.display=function(a,b,c,d){minplayer.plugin.call(this,a,b,c,d)};minplayer.display.prototype=new minplayer.plugin;minplayer.display.prototype.constructor=minplayer.display;minplayer.display.prototype.getDisplay=function(){return this.context};
+minplayer.display.prototype.construct=function(){this.display=this.getDisplay(this.context,this.options);minplayer.plugin.prototype.construct.call(this);this.options.pluginName="display";this.elements=this.getElements();if(this.onResize){var a=0;jQuery(window).resize(function(b){return function(){clearTimeout(a);a=setTimeout(function(){b.onResize()},200)}}(this))}};minplayer.display.prototype.onResize=!1;minplayer.display.prototype.hide=function(a){if(a=a||this.display){a.forceHide=true;a.unbind().hide()}};
+minplayer.display.prototype.fullScreenElement=function(){return this.display};minplayer.click=function(a,b){var c=false,a=jQuery(a);a.bind("touchstart click",function(a){if(!c){c=true;setTimeout(function(){c=false},100);b.call(this,a)}});return a};minplayer.display.prototype.onFocus=function(a){this.hasFocus=this.focus=a};minplayer.showHideElements=[];
+minplayer.showAll=function(){for(var a=minplayer.showHideElements.length,b=null;a--;){b=minplayer.showHideElements[a];minplayer.showThenHide(b.element,b.timeout,b.callback)}};minplayer.stopShowThenHide=function(a){a=jQuery(a);a.showTimer&&clearTimeout(a.showTimer);a.stopShowThenHide=true;a.shown=true;a.show()};
+minplayer.showThenHide=function(a,b,c){if(a){b=b||5E3;if(!a.showTimer){a.shown=true;a.stopShowThenHide=false;minplayer.showHideElements.push({element:a,timeout:b,callback:c});minplayer.click(document,function(){a.stopShowThenHide||minplayer.showThenHide(a,b,c)});jQuery(document).bind("mousemove",function(){a.stopShowThenHide||minplayer.showThenHide(a,b,c)})}clearTimeout(a.showTimer);if(!a.shown&&!a.forceHide){a.shown=true;a.show();c&&c(true)}a.showTimer=setTimeout(function(){a.hide("slow",function(){a.shown=
+false;c&&c(false)})},b)}};minplayer.display.prototype.fullscreen=function(a){var b=this.isFullScreen(),c=this.fullScreenElement();if(b&&!a){c.removeClass("fullscreen");screenfull&&screenfull.exit();this.trigger("fullscreen",false)}else if(!b&&a){c.addClass("fullscreen");if(screenfull){screenfull.request(c[0]);var d=this;screenfull.onchange=function(){screenfull.isFullscreen||d.fullscreen(false)}}this.trigger("fullscreen",true)}};minplayer.display.prototype.toggleFullScreen=function(){this.fullscreen(!this.isFullScreen())};
+minplayer.display.prototype.isFullScreen=function(){return this.fullScreenElement().hasClass("fullscreen")};minplayer.display.prototype.getScaledRect=function(a,b){var c={};c.x=b.x?b.x:0;c.y=b.y?b.y:0;c.width=b.width?b.width:0;c.height=b.height?b.height:0;if(a){if(b.width/b.height>a){c.height=b.height;c.width=Math.floor(b.height*a)}else{c.height=Math.floor(b.width/a);c.width=b.width}c.x=Math.floor((b.width-c.width)/2);c.y=Math.floor((b.height-c.height)/2)}return c};
+minplayer.display.prototype.getElements=function(){return{}};
+(function(a,b){var c;a:{for(var d=[["requestFullscreen","exitFullscreen","fullscreenchange","fullscreen","fullscreenElement"],["webkitRequestFullScreen","webkitCancelFullScreen","webkitfullscreenchange","webkitIsFullScreen","webkitCurrentFullScreenElement"],["mozRequestFullScreen","mozCancelFullScreen","mozfullscreenchange","mozFullScreen","mozFullScreenElement"]],e=0,f=d.length;e<f;e++)if(d.hasOwnProperty(e)){var g=d[e];if(g[1]in b){c=g;break a}}c=void 0}if(!c)return a.screenfull=false;var i="ALLOW_KEYBOARD_INPUT"in
+Element,h={init:function(){b.addEventListener(c[2],function(a){h.isFullscreen=b[c[3]];h.element=b[c[4]];h.onchange(a)});return this},isFullscreen:b[c[3]],element:b[c[4]],request:function(a){a=a||b.documentElement;a[c[0]](i&&Element.ALLOW_KEYBOARD_INPUT);if(!b.isFullscreen)a[c[0]]()},exit:function(){b[c[1]]()},toggle:function(a){this.isFullscreen?this.exit():this.request(a)},onchange:function(){}};a.screenfull=h.init()})(window,document);
+jQuery.fn.minplayer||(jQuery.fn.minplayer=function(a){return jQuery(this).each(function(){a=a||{};a.id=a.id||jQuery(this).attr("id")||Math.random();if(!minplayer.plugins[a.id]){a.template=a.template||"default";minplayer[a.template]?new minplayer[a.template](jQuery(this),a):new minplayer(jQuery(this),a)}})});minplayer=jQuery.extend(function(a,b){minplayer.display.call(this,"player",a,b)},minplayer);minplayer.prototype=new minplayer.display;minplayer.prototype.constructor=minplayer;
+minplayer.prototype.construct=function(){jQuery.each(this.context[0].attributes,function(a){return function(c,d){a.options[d.name]=a.options[d.name]||d.value}}(this));this.options=jQuery.extend({id:"player",build:false,wmode:"transparent",preload:true,autoplay:false,autoload:true,loop:false,width:"100%",height:"350px",debug:false,volume:80,files:null,file:"",preview:"",attributes:{},logo:"",link:"",width:"100%",height:"100%"},this.options);minplayer.display.prototype.construct.call(this);this.options.pluginName=
+"player";this.controller=this.create("controller");this.playLoader=this.create("playLoader");minplayer.click(document,function(a){return function(c){var d=jQuery(c.target).closest("#"+a.options.id).length!=0;minplayer.get.call(this,a.options.id,null,function(a){a.onFocus(d)})}}(this));if(this.options.logo&&this.elements.logo){var a="";this.options.link&&(a=a+('<a target="_blank" href="'+this.options.link+'">'));a=a+('<img src="'+this.options.logo+'" >');this.options.link&&(a=a+"</a>");this.logo=this.elements.logo.append(a)}this.currentPlayer=
+"html5";this.addKeyEvents();this.addEvents();this.load(this.getFiles());this.ready()};minplayer.prototype.bindTo=function(a){a.bind("error",function(a){return function(c,d){if(a.currentPlayer=="html5"){minplayer.player="minplayer";a.options.file.player="minplayer";a.loadPlayer()}else a.showError(d)}}(this));a.bind("fullscreen",function(a){return function(){a.resize()}}(this))};minplayer.prototype.addEvents=function(){minplayer.get.call(this,this.options.id,null,function(a){return function(b){a.bindTo(b)}}(this))};
+minplayer.prototype.showError=function(a){if(typeof a!=="object"){a=a||"";if(this.elements.error){this.elements.error.text(a);if(a){this.elements.error.show();var b=this;setTimeout(function(){b.elements.error.hide("slow")},5E3)}else this.elements.error.hide()}}};minplayer.prototype.addKeyEvents=function(){jQuery(document).bind("keydown",function(a){return function(b){switch(b.keyCode){case 113:case 27:a.isFullScreen()&&a.fullscreen(false)}}}(this))};
+minplayer.prototype.getFiles=function(){if(this.options.files)return this.options.files;if(this.options.file)return this.options.file;var a=[],b=null;if(this.elements.media){(b=this.elements.media.attr("src"))&&a.push({path:b});jQuery("source",this.elements.media).each(function(){a.push({path:jQuery(this).attr("src"),mimetype:jQuery(this).attr("type"),codecs:jQuery(this).attr("codecs")})})}return a};
+minplayer.getMediaFile=function(a){if(!a)return null;if(typeof a==="string"||a.path||a.id)return new minplayer.file(a);var b=null,c=null,d;for(d in a)if(a.hasOwnProperty(d)){c=new minplayer.file(a[d]);c.player&&c.priority>0&&(b=c)}return b};
+minplayer.prototype.loadPlayer=function(){if(!this.options.file||this.elements.display.length==0||!this.options.file.player)return false;this.showError();var a=this.options.file.player.toString();if(!this.media||a!==this.currentPlayer){this.currentPlayer=a;if(this.elements.display){a={};if(this.media){a=this.media.queue;this.media.destroy()}pClass=minplayer.players[this.options.file.player];this.options.mediaelement=this.elements.media;this.media=new pClass(this.elements.display,this.options,a);this.get("media",
+function(a){return function(c){c.load(a.options.file);a.display.addClass("minplayer-player-"+c.mediaFile.player)}}(this));return true}this.showError("No media display found.")}else if(this.media){this.media.options=this.options;this.display.removeClass("minplayer-player-"+this.media.mediaFile.player);this.media.load(this.options.file);this.display.addClass("minplayer-player-"+this.media.mediaFile.player);return false}};
+minplayer.prototype.load=function(a){this.options.files=a||this.options.files;this.options.file=minplayer.getMediaFile(this.options.files);if(this.loadPlayer()){this.bindTo(this.media);this.options.file.mimetype&&!this.options.file.player&&this.showError("Cannot play media: "+this.options.file.mimetype)}};minplayer.prototype.resize=function(){this.get(function(a){if(a.onResize)a.onResize()})};minplayer=minplayer||{};
+minplayer.image=function(a,b){this.loaded=false;this.loader=null;this.ratio=0;this.img=null;minplayer.display.call(this,"image",a,b)};minplayer.image.prototype=new minplayer.display;minplayer.image.prototype.constructor=minplayer.image;
+minplayer.image.prototype.construct=function(){minplayer.display.prototype.construct.call(this);this.options.pluginName="image";this.display.css("overflow","hidden");this.loader=new Image;var a=this;this.loader.onload=function(){a.loaded=true;a.ratio=a.loader.width/a.loader.height;a.resize();a.trigger("loaded")};this.ready()};
+minplayer.image.prototype.load=function(a){this.clear(function(){this.display.empty();this.img=jQuery(document.createElement("img")).attr({src:""}).hide();this.display.append(this.img);this.loader.src=a;this.img.attr("src",a)})};minplayer.image.prototype.clear=function(a){this.loaded=false;this.img?this.img.fadeOut(function(b){return function(){b.img.attr("src","");b.loader.src="";jQuery(this).remove();a.call(b)}}(this)):a.call(this)};
+minplayer.image.prototype.resize=function(a,b){a=a||this.display.parent().width();b=b||this.display.parent().height();if(a&&b&&this.loaded){var c=this.getScaledRect(this.ratio,{width:a,height:b});this.img&&this.img.attr("src",this.loader.src).css({marginLeft:c.x,marginTop:c.y,width:c.width,height:c.height});this.img.fadeIn()}};minplayer.image.prototype.onResize=function(){this.resize()};minplayer=minplayer||{};
+minplayer.file=function(a){if(!a)return null;a=typeof a==="string"?{path:a}:a;if(a.hasOwnProperty("isMinPlayerFile"))return a;this.isMinPlayerFile=true;this.duration=a.duration||0;this.bytesTotal=a.bytesTotal||0;this.quality=a.quality||0;this.stream=a.stream||"";this.path=a.path||"";this.codecs=a.codecs||"";this.extension=a.extension||this.getFileExtension();this.mimetype=a.mimetype||a.filemime||this.getMimeType();this.type=a.type||this.getType();if(!this.type){this.mimetype=this.getMimeType();this.type=
+this.getType()}this.player=minplayer.player||a.player||this.getBestPlayer();this.priority=a.priority||this.getPriority();this.id=a.id||this.getId();if(!this.path)this.path=this.id};minplayer.player="";minplayer.file.prototype.getBestPlayer=function(){var a=null,b=0;jQuery.each(minplayer.players,function(c){return function(d,e){var f=e.getPriority();if(e.canPlay(c)&&f>b){a=d;b=f}}}(this));return a};
+minplayer.file.prototype.getPriority=function(){var a=1;this.player&&(a=minplayer.players[this.player].getPriority());switch(this.mimetype){case "video/x-webm":case "video/webm":case "application/octet-stream":return a*10;case "video/mp4":case "audio/mp4":case "audio/mpeg":return a*9;case "video/ogg":case "audio/ogg":case "video/quicktime":return a*8;default:return a*5}};minplayer.file.prototype.getFileExtension=function(){return this.path.substring(this.path.lastIndexOf(".")+1).toLowerCase()};
+minplayer.file.prototype.getMimeType=function(){switch(this.extension){case "mp4":case "m4v":case "flv":case "f4v":return"video/mp4";case "webm":return"video/webm";case "ogg":case "ogv":return"video/ogg";case "3g2":return"video/3gpp2";case "3gpp":case "3gp":return"video/3gpp";case "mov":return"video/quicktime";case "swf":return"application/x-shockwave-flash";case "oga":return"audio/ogg";case "mp3":return"audio/mpeg";case "m4a":case "f4a":return"audio/mp4";case "aac":return"audio/aac";case "wav":return"audio/vnd.wave";
+case "wma":return"audio/x-ms-wma";default:return"unknown"}};minplayer.file.prototype.getType=function(){var a=this.mimetype.match(/([^\/]+)(\/)/),a=a&&a.length>1?a[1]:"";return a=="video"||this.mimetype=="application/octet-stream"?"video":a=="audio"?"audio":""};minplayer.file.prototype.getId=function(){var a=minplayer.players[this.player];return a&&a.getMediaId?a.getMediaId(this):""};minplayer=minplayer||{};
+minplayer.playLoader=function(a,b){this.busy=new minplayer.flags;this.bigPlay=new minplayer.flags;this.previewFlag=new minplayer.flags;this.preview=null;this.enabled=true;minplayer.display.call(this,"playLoader",a,b)};minplayer.playLoader.prototype=new minplayer.display;minplayer.playLoader.prototype.constructor=minplayer.playLoader;minplayer.playLoader.prototype.construct=function(){minplayer.display.prototype.construct.call(this);this.options.pluginName="playLoader";this.initialize();this.ready()};
+minplayer.playLoader.prototype.initialize=function(){this.get("media",function(a){if(a.hasPlayLoader(this.options.preview)){this.enabled=false;this.hide(this.elements.busy);this.hide(this.elements.bigPlay);this.hide(this.elements.preview);this.hide()}else{this.enabled=true;if(!this.options.preview)this.options.preview=a.elements.media.attr("poster");a.elements.media.attr("poster","");this.loadPreview();this.elements.bigPlay&&minplayer.click(this.elements.bigPlay.unbind(),function(b){b.preventDefault();
+minplayer.showAll();jQuery(this).hide();a.play()});a.unbind("loadstart").bind("loadstart",function(a){return function(){a.busy.setFlag("media",true);a.bigPlay.setFlag("media",true);a.previewFlag.setFlag("media",true);a.checkVisibility()}}(this));a.bind("waiting",function(a){return function(){a.busy.setFlag("media",true);a.checkVisibility()}}(this));a.bind("loadeddata",function(a){return function(){a.busy.setFlag("media",false);a.checkVisibility()}}(this));a.bind("playing",function(b){return function(){b.busy.setFlag("media",
+false);b.bigPlay.setFlag("media",false);a.mediaFile.type!=="audio"&&b.previewFlag.setFlag("media",false);b.checkVisibility()}}(this));a.bind("pause",function(a){return function(){a.bigPlay.setFlag("media",true);a.checkVisibility()}}(this))}})};minplayer.playLoader.prototype.loadPreview=function(){if(this.enabled&&this.elements.preview)if(this.options.preview){this.elements.preview.addClass("has-preview").show();this.preview=new minplayer.image(this.elements.preview,this.options);this.preview.load(this.options.preview)}else this.elements.preview.hide()};
+minplayer.playLoader.prototype.checkVisibility=function(){if(this.enabled){this.busy.flag?this.elements.busy.show():this.elements.busy.hide();this.bigPlay.flag?this.elements.bigPlay.show():this.elements.bigPlay.hide();this.previewFlag.flag?this.elements.preview.show():this.elements.preview.hide();(this.bigPlay.flag||this.busy.flag||this.previewFlag.flag)&&this.display.show();!this.bigPlay.flag&&(!this.busy.flag&&!this.previewFlag.flag)&&this.display.hide()}};minplayer=minplayer||{};
+minplayer.players=minplayer.players||{};minplayer.players.base=function(a,b,c){minplayer.display.call(this,"media",a,b,c)};minplayer.players.base.prototype=new minplayer.display;minplayer.players.base.prototype.constructor=minplayer.players.base;minplayer.players.base.prototype.getElements=function(){var a=minplayer.display.prototype.getElements.call(this);return jQuery.extend(a,{media:this.options.mediaelement})};minplayer.players.base.getPriority=function(){return 0};
+minplayer.players.base.getMediaId=function(){return""};minplayer.players.base.canPlay=function(){return false};
+minplayer.players.base.prototype.construct=function(){minplayer.display.prototype.construct.call(this);this.options.pluginName="basePlayer";this.mediaFile=this.options.file;this.clear();this.playerFound()||this.addPlayer();this.player=this.getPlayer();minplayer.click(this.display,function(a){return function(){minplayer.showAll();a.playing?a.pause():a.play()}}(this));jQuery(document).bind("keydown",function(a){return function(b){if(a.hasFocus){b.preventDefault();switch(b.keyCode){case 32:case 179:a.playing?
+a.pause():a.play();break;case 38:a.setVolumeRelative(0.1);break;case 40:a.setVolumeRelative(-0.1);break;case 37:case 227:a.seekRelative(-0.05);break;case 39:case 228:a.seekRelative(0.05)}}}}(this))};minplayer.players.base.prototype.addPlayer=function(){this.elements.media&&this.elements.media.remove();this.elements.media=jQuery(this.create());this.display.html(this.elements.media)};minplayer.players.base.prototype.destroy=function(){minplayer.plugin.prototype.destroy.call(this);this.clear()};
+minplayer.players.base.prototype.clear=function(){this.playerReady=false;this.reset();this.player&&jQuery(this.player).unbind()};
+minplayer.players.base.prototype.reset=function(){this.duration=new minplayer.async;this.currentTime=new minplayer.async;this.bytesLoaded=new minplayer.async;this.bytesTotal=new minplayer.async;this.bytesStart=new minplayer.async;this.volume=new minplayer.async;this.loading=this.playing=this.hasFocus=false;this.trigger("pause");this.trigger("waiting");this.trigger("progress",{loaded:0,total:0,start:0});this.trigger("timeupdate",{currentTime:0,duration:0})};
+minplayer.players.base.prototype.onReady=function(){if(!this.playerReady){this.playerReady=true;this.setVolume(this.options.volume/100);this.loading=true;this.poll(function(a){return function(){a.loading&&a.getBytesLoaded(function(b){a.getBytesTotal(function(c){if(b||c){var d=0;a.getBytesStart(function(a){d=a});a.trigger("progress",{loaded:b,total:c,start:d});if(b>=c)a.loading=false}})});return a.loading}}(this),1E3);this.ready();this.trigger("loadstart")}};
+minplayer.players.base.prototype.onPlaying=function(){this.trigger("playing");this.playing=this.hasFocus=true;this.poll(function(a){return function(){a.playing&&a.getCurrentTime(function(b){a.getDuration(function(c){b=parseFloat(b);c=parseFloat(c);(b||c)&&a.trigger("timeupdate",{currentTime:b,duration:c})})});return a.playing}}(this),1E3)};minplayer.players.base.prototype.onPaused=function(){this.trigger("pause");this.playing=this.hasFocus=false};
+minplayer.players.base.prototype.onComplete=function(){if(this.playing)this.onPaused();this.hasFocus=this.loading=this.playing=false;this.trigger("ended")};minplayer.players.base.prototype.onLoaded=function(){this.options.autoplay&&this.play();this.trigger("loadeddata")};minplayer.players.base.prototype.onWaiting=function(){this.trigger("waiting")};minplayer.players.base.prototype.onError=function(a){this.hasFocus=false;this.trigger("error",a)};
+minplayer.players.base.prototype.isReady=function(){return this.player&&this.playerReady};minplayer.players.base.prototype.hasPlayLoader=function(){return false};minplayer.players.base.prototype.hasController=function(){return false};minplayer.players.base.prototype.playerFound=function(){return false};minplayer.players.base.prototype.create=function(){this.reset();return null};minplayer.players.base.prototype.getPlayer=function(){return this.player};
+minplayer.players.base.prototype.load=function(a){var b=typeof this.mediaFile=="string"?this.mediaFile:this.mediaFile.path;if(a&&this.isReady()&&a.path!=b){this.reset();this.mediaFile=a;return true}return false};minplayer.players.base.prototype.play=function(){return this.isReady()};minplayer.players.base.prototype.pause=function(){return this.isReady()};minplayer.players.base.prototype.stop=function(){this.hasFocus=this.loading=this.playing=false;return this.isReady()};
+minplayer.players.base.prototype.seekRelative=function(a){this.getCurrentTime(function(b){return function(c){b.getDuration(function(d){if(d){var e=0,e=a>-1&&a<1?(c/d+parseFloat(a))*d:c+parseFloat(a);b.seek(e)}})}}(this))};minplayer.players.base.prototype.seek=function(){return this.isReady()};minplayer.players.base.prototype.getValue=function(a,b){if(this.isReady()){var c=this.player[a]();c!==void 0&&c!==null&&b(c)}};
+minplayer.players.base.prototype.setVolumeRelative=function(a){this.getVolume(function(b){return function(c){c=c+parseFloat(a);c=c<0?0:c;b.setVolume(c>1?1:c)}}(this))};minplayer.players.base.prototype.setVolume=function(a){this.trigger("volumeupdate",a);return this.isReady()};minplayer.players.base.prototype.getVolume=function(a){return this.volume.get(a)};minplayer.players.base.prototype.getCurrentTime=function(a){return this.currentTime.get(a)};minplayer.players.base.prototype.getDuration=function(a){return this.duration.get(a)};
+minplayer.players.base.prototype.getBytesStart=function(a){return this.bytesStart.get(a)};minplayer.players.base.prototype.getBytesLoaded=function(a){return this.bytesLoaded.get(a)};minplayer.players.base.prototype.getBytesTotal=function(a){return this.bytesTotal.get(a)};minplayer=minplayer||{};minplayer.players=minplayer.players||{};minplayer.players.html5=function(a,b,c){minplayer.players.base.call(this,a,b,c)};minplayer.players.html5.prototype=new minplayer.players.base;
+minplayer.players.html5.prototype.constructor=minplayer.players.html5;minplayer.players.html5.getPriority=function(){return 10};
+minplayer.players.html5.canPlay=function(a){switch(a.mimetype){case "video/ogg":return!!minplayer.playTypes.videoOGG;case "video/mp4":case "video/x-mp4":case "video/m4v":case "video/x-m4v":return!!minplayer.playTypes.videoH264;case "video/x-webm":case "video/webm":case "application/octet-stream":return!!minplayer.playTypes.videoWEBM;case "audio/ogg":return!!minplayer.playTypes.audioOGG;case "audio/mpeg":return!!minplayer.playTypes.audioMP3;case "audio/mp4":return!!minplayer.playTypes.audioMP4;default:return false}};
+minplayer.players.html5.prototype.construct=function(){minplayer.players.base.prototype.construct.call(this);this.options.pluginName="html5";this.addPlayerEvents()};minplayer.players.html5.prototype.addPlayerEvent=function(a,b){this.player&&this.player.addEventListener(a,function(c){var d=a+"Event";c[d]&&c.player.removeEventListener(a,c[d],false);c[d]=function(a){b.call(c,a)};return c[d]}(this),false)};
+minplayer.players.html5.prototype.addPlayerEvents=function(){if(this.player){this.addPlayerEvent("abort",function(){this.trigger("abort")});this.addPlayerEvent("loadstart",function(){this.onReady()});this.addPlayerEvent("loadeddata",function(){this.onLoaded()});this.addPlayerEvent("loadedmetadata",function(){this.onLoaded()});this.addPlayerEvent("canplaythrough",function(){this.onLoaded()});this.addPlayerEvent("ended",function(){this.onComplete()});this.addPlayerEvent("pause",function(){this.onPaused()});
+this.addPlayerEvent("play",function(){this.onPlaying()});this.addPlayerEvent("playing",function(){this.onPlaying()});var a=false;this.addPlayerEvent("error",function(){if(!a){a=true;this.trigger("error","An error occured - "+this.player.error.code)}});this.addPlayerEvent("waiting",function(){this.onWaiting()});this.addPlayerEvent("durationchange",function(){this.duration.set(this.player.duration);this.trigger("durationchange",{duration:this.player.duration})});this.addPlayerEvent("progress",function(a){this.bytesTotal.set(a.total);
+this.bytesLoaded.set(a.loaded)});return true}return false};minplayer.players.html5.prototype.onReady=function(){minplayer.players.base.prototype.onReady.call(this);if(minplayer.isAndroid)this.onLoaded();if(minplayer.isIDevice){this.play();var a=this;setTimeout(function(){a.pause();a.onLoaded()},1)}};minplayer.players.html5.prototype.playerFound=function(){return this.display.find(this.mediaFile.type).length>0};
+minplayer.players.html5.prototype.create=function(){minplayer.players.base.prototype.create.call(this);var a=jQuery(document.createElement(this.mediaFile.type)).attr(this.options.attributes).append(jQuery(document.createElement("source")).attr({src:this.mediaFile.path}));a.eq(0)[0].setAttribute("width","100%");a.eq(0)[0].setAttribute("height","100%");a.eq(0)[0].setAttribute("autobuffer",true);var b=this.options.autoload?"auto":"metadata",b=minplayer.isIDevice?"metadata":b;a.eq(0)[0].setAttribute("preload",
+b);return a};minplayer.players.html5.prototype.getPlayer=function(){return this.elements.media.eq(0)[0]};minplayer.players.html5.prototype.load=function(a){if(minplayer.players.base.prototype.load.call(this,a)){var b=this.elements.media.attr("src");b||(b=jQuery("source",this.elements.media).eq(0).attr("src"));if(b!=a.path){this.addPlayer();this.player=this.getPlayer();this.addPlayerEvents();a='<source src="'+a.path+'"></source>';this.elements.media.removeAttr("src").empty().html(a);return true}}return false};
+minplayer.players.html5.prototype.play=function(){if(minplayer.players.base.prototype.play.call(this)){this.player.play();return true}return false};minplayer.players.html5.prototype.pause=function(){if(minplayer.players.base.prototype.pause.call(this)){this.player.pause();return true}return false};minplayer.players.html5.prototype.stop=function(){if(minplayer.players.base.prototype.stop.call(this)){this.player.pause();this.player.src="";return true}return false};
+minplayer.players.html5.prototype.seek=function(a){if(minplayer.players.base.prototype.seek.call(this,a)){this.player.currentTime=a;return true}return false};minplayer.players.html5.prototype.setVolume=function(a){if(minplayer.players.base.prototype.setVolume.call(this,a)){this.player.volume=a;return true}return false};minplayer.players.html5.prototype.getVolume=function(a){this.isReady()&&a(this.player.volume)};minplayer.players.html5.prototype.getDuration=function(a){this.isReady()&&a(this.player.duration)};
+minplayer.players.html5.prototype.getCurrentTime=function(a){this.isReady()&&a(this.player.currentTime)};
+minplayer.players.html5.prototype.getBytesLoaded=function(a){if(this.isReady()){var b=0;if(this.bytesLoaded.value)b=this.bytesLoaded.value;else if(this.player.buffered&&this.player.buffered.length>0&&this.player.buffered.end&&this.player.duration)b=this.player.buffered.end(0);else if(this.player.bytesTotal!=void 0&&this.player.bytesTotal>0&&this.player.bufferedBytes!=void 0)b=this.player.bufferedBytes;a(b)}};
+minplayer.players.html5.prototype.getBytesTotal=function(a){if(this.isReady()){var b=0;if(this.bytesTotal.value)b=this.bytesTotal.value;else if(this.player.buffered&&this.player.buffered.length>0&&this.player.buffered.end&&this.player.duration)b=this.player.duration;else if(this.player.bytesTotal!=void 0&&this.player.bytesTotal>0&&this.player.bufferedBytes!=void 0)b=this.player.bytesTotal;a(b)}};minplayer=minplayer||{};minplayer.players=minplayer.players||{};
+minplayer.players.flash=function(a,b,c){minplayer.players.base.call(this,a,b,c)};minplayer.players.flash.prototype=new minplayer.players.base;minplayer.players.flash.prototype.constructor=minplayer.players.flash;minplayer.players.flash.prototype.construct=function(){minplayer.players.base.prototype.construct.call(this);this.options.pluginName="flash"};minplayer.players.flash.getPriority=function(){return 0};minplayer.players.flash.canPlay=function(){return false};
+minplayer.players.flash.prototype.getFlash=function(a){var b=window.location.protocol;b.charAt(b.length-1)==":"&&(b=b.substring(0,b.length-1));var c=document.createElement("script");c.src=b+"://ajax.googleapis.com/ajax/libs/swfobject/2.2/swfobject.js";b=document.getElementsByTagName("script")[0];b.parentNode.insertBefore(c,b);var d=this;setTimeout(function f(){typeof swfobject!=="undefined"?swfobject.embedSWF(a.swf,a.id,a.width,a.height,"9.0.0",false,a.flashvars,{allowscriptaccess:"always",allowfullscreen:"true",
+wmode:a.wmode,quality:"high"},{id:a.id,name:a.id,playerType:"flash"},function(a){d.player=a.ref}):setTimeout(f,200)},200);return'<div id="'+a.id+'"></div>'};minplayer.players.flash.prototype.playerFound=function(){return this.display.find('object[playerType="flash"]').length>0};minplayer=minplayer||{};minplayer.players=minplayer.players||{};minplayer.players.minplayer=function(a,b,c){minplayer.players.flash.call(this,a,b,c)};minplayer.players.minplayer.prototype=new minplayer.players.flash;
+minplayer.players.minplayer.prototype.constructor=minplayer.players.minplayer;minplayer.players.minplayer.prototype.construct=function(){minplayer.players.flash.prototype.construct.call(this);this.options.pluginName="minplayer"};window.onFlashPlayerReady=function(a){for(var a=minplayer.get(a,"media"),b=a.length;b--;)a[b].onReady()};window.onFlashPlayerUpdate=function(a,b){for(var c=minplayer.get(a,"media"),d=c.length;d--;)c[d].onMediaUpdate(b)};
+window.onFlashPlayerDebug=function(a){console&&console.log&&console.log(a)};minplayer.players.minplayer.getPriority=function(){return 1};minplayer.players.minplayer.canPlay=function(a){return!(jQuery.inArray(a.mimetype,["video/x-webm","video/webm","application/octet-stream"])>=0)&&(a.type=="video"||a.type=="audio")};
+minplayer.players.minplayer.prototype.create=function(){this.options=jQuery.extend({swfplayer:"flash/minplayer.swf"},this.options);minplayer.players.flash.prototype.create.call(this);return this.getFlash({swf:this.options.swfplayer,id:this.options.id+"_player",width:"100%",height:"100%",flashvars:{id:this.options.id,debug:this.options.debug,config:"nocontrols",file:this.mediaFile.path,autostart:this.options.autoplay,autoload:this.options.autoload},wmode:this.options.wmode})};
+minplayer.players.minplayer.prototype.onMediaUpdate=function(a){switch(a){case "mediaMeta":this.onLoaded();break;case "mediaPlaying":if(this.minplayerloaded)this.onPlaying();break;case "mediaPaused":this.minplayerloaded=true;this.onPaused();break;case "mediaComplete":this.onComplete()}};minplayer.players.minplayer.prototype.clear=function(){minplayer.players.flash.prototype.clear.call(this);this.minplayerloaded=this.options.autoplay};
+minplayer.players.minplayer.prototype.load=function(a){if(minplayer.players.flash.prototype.load.call(this,a)){this.player.loadMedia(a.path,a.stream);return true}return false};minplayer.players.minplayer.prototype.play=function(){if(minplayer.players.flash.prototype.play.call(this)){this.player.playMedia();return true}return false};minplayer.players.minplayer.prototype.pause=function(){if(minplayer.players.flash.prototype.pause.call(this)){this.player.pauseMedia();return true}return false};
+minplayer.players.minplayer.prototype.stop=function(){if(minplayer.players.flash.prototype.stop.call(this)){this.player.stopMedia();return true}return false};minplayer.players.minplayer.prototype.seek=function(a){if(minplayer.players.flash.prototype.seek.call(this,a)){this.player.seekMedia(a);return true}return false};minplayer.players.minplayer.prototype.setVolume=function(a){if(minplayer.players.flash.prototype.setVolume.call(this,a)){this.player.setVolume(a);return true}return false};
+minplayer.players.minplayer.prototype.getVolume=function(a){if(this.isReady()){var b=0,c=5,d=this;setTimeout(function f(){b=d.player.getVolume();!b&&c-- >0?setTimeout(f,200):a(b)},200)}};minplayer.players.minplayer.prototype.getDuration=function(a){if(this.isReady()){var b=this.player.getDuration();b?a(b):this.poll(function(c){return function(){(b=c.player.getDuration())&&a(b);return!b}}(this),1E3)}};minplayer.players.minplayer.prototype.getCurrentTime=function(a){this.isReady()&&a(this.player.getCurrentTime())};
+minplayer.players.minplayer.prototype.getBytesLoaded=function(a){this.isReady()&&a(this.player.getMediaBytesLoaded())};minplayer.players.minplayer.prototype.getBytesTotal=function(a){this.isReady()&&a(this.player.getMediaBytesTotal())};minplayer=minplayer||{};minplayer.players=minplayer.players||{};minplayer.players.youtube=function(a,b,c){this.quality="default";minplayer.players.base.call(this,a,b,c)};minplayer.players.youtube.prototype=new minplayer.players.base;
+minplayer.players.youtube.prototype.constructor=minplayer.players.youtube;minplayer.players.youtube.prototype.construct=function(){minplayer.players.base.prototype.construct.call(this);this.options.pluginName="youtube"};minplayer.players.youtube.getPriority=function(){return 10};minplayer.players.youtube.canPlay=function(a){return a.mimetype==="video/youtube"?true:a.path.search(/^http(s)?\:\/\/(www\.)?youtube\.com/i)===0};
+minplayer.players.youtube.getMediaId=function(a){var b=/^http[s]?\:\/\/(www\.)?youtube\.com\/watch\?v=([a-zA-Z0-9_\-]+)/i;return a.path.search(b)===0?a.path.match(b)[2]:a.path};minplayer.players.youtube.getImage=function(a,b,c){c("http://img.youtube.com/vi/"+a.id+"/"+(b=="thumbnail"?"1":"0")+".jpg")};
+minplayer.players.youtube.prototype.setPlayerState=function(a){switch(a){case YT.PlayerState.BUFFERING:this.onWaiting();break;case YT.PlayerState.PAUSED:this.onPaused();break;case YT.PlayerState.PLAYING:this.onPlaying();break;case YT.PlayerState.ENDED:this.onComplete()}};minplayer.players.youtube.prototype.onReady=function(){minplayer.players.base.prototype.onReady.call(this);this.options.autoplay||this.pause();this.onLoaded()};
+minplayer.players.youtube.prototype.playerFound=function(){return this.display.find("iframe#"+this.options.id+"-player.youtube-player").length>0};minplayer.players.youtube.prototype.onPlayerStateChange=function(a){this.setPlayerState(a.data)};minplayer.players.youtube.prototype.onQualityChange=function(a){this.quality=a.data};minplayer.players.youtube.prototype.hasPlayLoader=function(a){return minplayer.hasTouch||!a};minplayer.players.youtube.prototype.hasController=function(){return minplayer.isIDevice};
+minplayer.players.youtube.prototype.create=function(){minplayer.players.base.prototype.create.call(this);var a=document.createElement("script");a.src="https://www.youtube.com/player_api";var b=document.getElementsByTagName("script")[0];b.parentNode.insertBefore(a,b);this.playerId=this.options.id+"-player";this.poll(function(a){return function(){var b=jQuery("#"+a.playerId).length>0;if(b=(b=b&&"YT"in window)&&typeof YT.Player=="function"){jQuery("#"+a.playerId).addClass("youtube-player");var e=location.protocol,
+e=e+("//"+location.hostname),e=e+(location.port&&":"+location.port),f={};minplayer.isIDevice?f.origin=e:f={enablejsapi:minplayer.isIDevice?0:1,origin:e,wmode:"opaque",controls:minplayer.isAndroid?1:0};a.player=new YT.Player(a.playerId,{height:"100%",width:"100%",frameborder:0,videoId:a.mediaFile.id,playerVars:f,events:{onReady:function(b){a.onReady(b)},onStateChange:function(b){a.onPlayerStateChange(b)},onPlaybackQualityChange:function(b){a.onQualityChange(b)},onError:function(b){a.onError(b)}}})}return!b}}(this),
+200);return jQuery(document.createElement("div")).attr({id:this.playerId})};minplayer.players.youtube.prototype.load=function(a){if(minplayer.players.base.prototype.load.call(this,a)){this.player.loadVideoById(a.id,0,this.quality);return true}return false};minplayer.players.youtube.prototype.play=function(){if(minplayer.players.base.prototype.play.call(this)){this.onWaiting();this.player.playVideo();return true}return false};
+minplayer.players.youtube.prototype.pause=function(){if(minplayer.players.base.prototype.pause.call(this)){this.player.pauseVideo();return true}return false};minplayer.players.youtube.prototype.stop=function(){if(minplayer.players.base.prototype.stop.call(this)){this.player.stopVideo();return true}return false};minplayer.players.youtube.prototype.seek=function(a){if(minplayer.players.base.prototype.seek.call(this,a)){this.onWaiting();this.player.seekTo(a,true);return true}return false};
+minplayer.players.youtube.prototype.setVolume=function(a){if(minplayer.players.base.prototype.setVolume.call(this,a)){this.player.setVolume(a*100);return true}return false};minplayer.players.youtube.prototype.getVolume=function(a){this.getValue("getVolume",a)};minplayer.players.youtube.prototype.getDuration=function(a){this.getValue("getDuration",a)};minplayer.players.youtube.prototype.getCurrentTime=function(a){this.getValue("getCurrentTime",a)};
+minplayer.players.youtube.prototype.getBytesStart=function(a){this.getValue("getVideoStartBytes",a)};minplayer.players.youtube.prototype.getBytesLoaded=function(a){this.getValue("getVideoBytesLoaded",a)};minplayer.players.youtube.prototype.getBytesTotal=function(a){this.getValue("getVideoBytesTotal",a)};minplayer=minplayer||{};minplayer.players=minplayer.players||{};minplayer.players.vimeo=function(a,b,c){minplayer.players.base.call(this,a,b,c)};minplayer.players.vimeo.prototype=new minplayer.players.base;
+minplayer.players.vimeo.prototype.constructor=minplayer.players.vimeo;minplayer.players.vimeo.prototype.construct=function(){minplayer.players.base.prototype.construct.call(this);this.options.pluginName="vimeo"};minplayer.players.vimeo.getPriority=function(){return 10};minplayer.players.vimeo.canPlay=function(a){return a.mimetype==="video/vimeo"?true:a.path.search(/^http(s)?\:\/\/(www\.)?vimeo\.com/i)===0};minplayer.players.vimeo.prototype.hasPlayLoader=function(a){return minplayer.hasTouch||!a};
+minplayer.players.vimeo.prototype.hasController=function(){return minplayer.hasTouch};minplayer.players.vimeo.getMediaId=function(a){var b=/^http[s]?\:\/\/(www\.)?vimeo\.com\/(\?v\=)?([0-9]+)/i;return a.path.search(b)===0?a.path.match(b)[3]:a.path};minplayer.players.vimeo.getImage=function(a,b,c){jQuery.ajax({url:"http://vimeo.com/api/v2/video/"+a.id+".json",dataType:"jsonp",success:function(a){c(a[0].thumbnail_large)}})};minplayer.players.vimeo.prototype.reset=function(){minplayer.players.base.prototype.reset.call(this)};
+minplayer.players.vimeo.prototype.create=function(){minplayer.players.base.prototype.create.call(this);var a=document.createElement("script");a.src="http://a.vimeocdn.com/js/froogaloop2.min.js";var b=document.getElementsByTagName("script")[0];b.parentNode.insertBefore(a,b);var c=document.createElement("iframe");c.setAttribute("id",this.options.id+"-player");c.setAttribute("type","text/html");c.setAttribute("width","100%");c.setAttribute("height","100%");c.setAttribute("frameborder","0");jQuery(c).addClass("vimeo-player");
+a="http://player.vimeo.com/video/"+(this.mediaFile.id+"?");a=a+jQuery.param({wmode:"opaque",api:1,player_id:this.options.id+"-player",title:0,byline:0,portrait:0,autoplay:this.options.autoplay,loop:this.options.loop});c.setAttribute("src",a);this.poll(function(a){return function(){if(window.Froogaloop){a.player=window.Froogaloop(c);var b=0;a.player.addEvent("ready",function(){clearTimeout(b);a.onReady();a.onError("")});b=setTimeout(function(){a.onReady();a.onError("Unable to play video.")},2E3)}return!window.Froogaloop}}(this),
+200);this.trigger("loadstart");return c};
+minplayer.players.vimeo.prototype.onReady=function(){this.player.addEvent("loadProgress",function(a){return function(b){a.duration.set(parseFloat(b.duration));a.bytesLoaded.set(b.bytesLoaded);a.bytesTotal.set(b.bytesTotal)}}(this));this.player.addEvent("playProgress",function(a){return function(b){a.duration.set(parseFloat(b.duration));a.currentTime.set(parseFloat(b.seconds))}}(this));this.player.addEvent("play",function(a){return function(){a.onPlaying()}}(this));this.player.addEvent("pause",function(a){return function(){a.onPaused()}}(this));
+this.player.addEvent("finish",function(a){return function(){a.onComplete()}}(this));minplayer.players.base.prototype.onReady.call(this);this.onLoaded()};minplayer.players.vimeo.prototype.clear=function(){this.player&&this.player.api("unload");minplayer.players.base.prototype.clear.call(this)};minplayer.players.vimeo.prototype.load=function(a){if(minplayer.players.base.prototype.load.call(this,a)){this.construct();return true}return false};
+minplayer.players.vimeo.prototype.play=function(){if(minplayer.players.base.prototype.play.call(this)){this.player.api("play");return true}return false};minplayer.players.vimeo.prototype.pause=function(){if(minplayer.players.base.prototype.pause.call(this)){this.player.api("pause");return true}return false};minplayer.players.vimeo.prototype.stop=function(){if(minplayer.players.base.prototype.stop.call(this)){this.player.api("unload");return true}return false};
+minplayer.players.vimeo.prototype.seek=function(a){if(minplayer.players.base.prototype.seek.call(this,a)){this.player.api("seekTo",a);return true}return false};minplayer.players.vimeo.prototype.setVolume=function(a){if(minplayer.players.base.prototype.setVolume.call(this,a)){this.volume.set(a);this.player.api("setVolume",a);return true}return false};minplayer.players.vimeo.prototype.getVolume=function(a){this.player.api("getVolume",function(b){a(b)})};
+minplayer.players.vimeo.prototype.getDuration=function(a){this.isReady()&&(this.duration.value?a(this.duration.value):this.player.api("getDuration",function(b){a(b)}))};minplayer=minplayer||{};minplayer.controller=function(a,b){minplayer.display.call(this,"controller",a,b)};minplayer.controller.prototype=new minplayer.display;minplayer.controller.prototype.constructor=minplayer.controller;
+minplayer.formatTime=function(a){var a=a||0,b=0,c=0,d=0,e="",d=Math.floor(a/3600),a=a-d*3600,c=Math.floor(a/60),b=Math.floor((a-c*60)%60);if(d){e=e+String(d);e=e+":"}e=e+(c>=10?String(c):"0"+String(c));e=e+":"+(b>=10?String(b):"0"+String(b));return{time:e,units:""}};minplayer.controller.prototype.getElements=function(){var a=minplayer.display.prototype.getElements.call(this);return jQuery.extend(a,{play:null,pause:null,fullscreen:null,seek:null,progress:null,volume:null,timer:null})};
+minplayer.controller.prototype.construct=function(){minplayer.display.prototype.construct.call(this);this.options.pluginName="controller";this.dragging=false;this.vol=0;if(this.elements.seek)this.seekBar=this.elements.seek.slider({range:"min",create:function(a){jQuery(".ui-slider-range",a.target).addClass("ui-state-active")}});if(this.elements.volume)this.volumeBar=this.elements.volume.slider({range:"min",orientation:"vertical"});this.get("player",function(a){this.elements.fullscreen&&minplayer.click(this.elements.fullscreen.unbind(),
+function(){a.toggleFullScreen()}).css({pointer:"hand"})});this.get("media",function(a){if(a.hasController())this.hide();else{if(this.elements.pause){minplayer.click(this.elements.pause.unbind(),function(b){return function(c){c.preventDefault();b.playPause(false,a)}}(this));a.bind("pause",function(a){return function(){a.setPlayPause(true)}}(this))}if(this.elements.play){minplayer.click(this.elements.play.unbind(),function(b){return function(c){c.preventDefault();b.playPause(true,a)}}(this));a.bind("playing",
+function(a){return function(){a.setPlayPause(false)}}(this))}if(this.elements.duration){a.bind("durationchange",function(a){return function(c,d){a.setTimeString("duration",d.duration)}}(this));a.getDuration(function(a){return function(c){a.setTimeString("duration",c)}}(this))}this.elements.progress&&a.bind("progress",function(a){return function(c,d){a.elements.progress.width((d.total?d.loaded/d.total*100:0)+"%")}}(this));(this.seekBar||this.elements.timer)&&a.bind("timeupdate",function(a){return function(c,
+d){if(!a.dragging){var e=0;d.duration&&(e=d.currentTime/d.duration*100);a.seekBar&&a.seekBar.slider("option","value",e);a.setTimeString("timer",d.currentTime)}}}(this));this.seekBar&&this.seekBar.slider({start:function(a){return function(){a.dragging=true}}(this),stop:function(b){return function(c,d){b.dragging=false;a.getDuration(function(b){a.seek(d.value/100*b)})}}(this),slide:function(b){return function(c,d){a.getDuration(function(c){c=d.value/100*c;b.dragging||a.seek(c);b.setTimeString("timer",
+c)})}}(this)});this.elements.mute&&minplayer.click(this.elements.mute,function(b){return function(c){c.preventDefault();c=b.volumeBar.slider("option","value");if(c>0){b.vol=c;b.volumeBar.slider("option","value",0);a.setVolume(0)}else{b.volumeBar.slider("option","value",b.vol);a.setVolume(b.vol/100)}}}(this));if(this.volumeBar){this.volumeBar.slider({slide:function(b,c){a.setVolume(c.value/100)}});a.bind("volumeupdate",function(a){return function(c,d){a.volumeBar.slider("option","value",d*100)}}(this));
+a.getVolume(function(a){return function(c){a.volumeBar.slider("option","value",c*100)}}(this))}}});this.ready()};minplayer.controller.prototype.setPlayPause=function(a){this.elements.play&&this.elements.play.css("display",a?"inherit":"none");this.elements.pause&&this.elements.pause.css("display",a?"none":"inherit")};minplayer.controller.prototype.playPause=function(a,b){var c=a?"play":"pause";this.display.trigger(c);this.setPlayPause(!a);if(b)b[c]()};
+minplayer.controller.prototype.setTimeString=function(a,b){this.elements[a]&&this.elements[a].text(minplayer.formatTime(b).time)};
diff --git a/public/admin/js/osmplayer/minplayer/bin/minplayer.js b/public/admin/js/osmplayer/minplayer/bin/minplayer.js
new file mode 100644
index 00000000000..e26f729180c
--- /dev/null
+++ b/public/admin/js/osmplayer/minplayer/bin/minplayer.js
@@ -0,0 +1,4816 @@
+/** The minplayer namespace. */
+var minplayer = minplayer || {};
+
+// Private function to check a single element's play type.
+function checkPlayType(elem, playType) {
+  if ((typeof elem.canPlayType) === 'function') {
+    if (typeof playType === 'object') {
+      var i = playType.length;
+      var mimetype = '';
+      while (i--) {
+        mimetype = checkPlayType(elem, playType[i]);
+        if (!!mimetype) {
+          break;
+        }
+      }
+      return mimetype;
+    }
+    else {
+      var canPlay = elem.canPlayType(playType);
+      if (('no' !== canPlay) && ('' !== canPlay)) {
+        return playType;
+      }
+    }
+  }
+  return '';
+}
+
+/**
+ * @constructor
+ * @class This class is used to define the types of media that can be played
+ * within the browser.
+ * <p>
+ * <strong>Usage:</strong>
+ * <pre><code>
+ *   var playTypes = new minplayer.compatibility();
+ *
+ *   if (playTypes.videoOGG) {
+ *     console.log("This browser can play OGG video");
+ *   }
+ *
+ *   if (playTypes.videoH264) {
+ *     console.log("This browser can play H264 video");
+ *   }
+ *
+ *   if (playTypes.videoWEBM) {
+ *     console.log("This browser can play WebM video");
+ *   }
+ *
+ *   if (playTypes.audioOGG) {
+ *     console.log("This browser can play OGG audio");
+ *   }
+ *
+ *   if (playTypes.audioMP3) {
+ *     console.log("This browser can play MP3 audio");
+ *   }
+ *
+ *   if (playTypes.audioMP4) {
+ *     console.log("This browser can play MP4 audio");
+ *   }
+ * </code></pre>
+ */
+minplayer.compatibility = function() {
+  var elem = null;
+
+  // Create a video element.
+  elem = document.createElement('video');
+
+  /** Can play OGG video */
+  this.videoOGG = checkPlayType(elem, 'video/ogg');
+
+  /** Can play H264 video */
+  this.videoH264 = checkPlayType(elem, [
+    'video/mp4',
+    'video/h264'
+  ]);
+
+  /** Can play WEBM video */
+  this.videoWEBM = checkPlayType(elem, [
+    'video/x-webm',
+    'video/webm',
+    'application/octet-stream'
+  ]);
+
+  // Create an audio element.
+  elem = document.createElement('audio');
+
+  /** Can play audio OGG */
+  this.audioOGG = checkPlayType(elem, 'audio/ogg');
+
+  /** Can play audio MP3 */
+  this.audioMP3 = checkPlayType(elem, 'audio/mpeg');
+
+  /** Can play audio MP4 */
+  this.audioMP4 = checkPlayType(elem, 'audio/mp4');
+};
+
+if (!minplayer.playTypes) {
+
+  /** The compatible playtypes for this browser. */
+  minplayer.playTypes = new minplayer.compatibility();
+
+  /** See if we are an android device. */
+  minplayer.isAndroid = (/android/gi).test(navigator.appVersion);
+
+  /** See if we are an iOS device. */
+  minplayer.isIDevice = (/iphone|ipad/gi).test(navigator.appVersion);
+
+  /** See if we are a playbook device. */
+  minplayer.isPlaybook = (/playbook/gi).test(navigator.appVersion);
+
+  /** See if we are a touchpad device. */
+  minplayer.isTouchPad = (/hp-tablet/gi).test(navigator.appVersion);
+
+  /** Determine if we have a touchscreen. */
+  minplayer.hasTouch = 'ontouchstart' in window && !minplayer.isTouchPad;
+}
+/** The minplayer namespace. */
+var minplayer = minplayer || {};
+
+/**
+ * @constructor
+ * @class This class keeps track of asynchronous get requests for certain
+ * variables within the player.
+ */
+minplayer.async = function() {
+
+  /** The final value of this asynchronous variable. */
+  this.value = null;
+
+  /** The queue of callbacks to call when this value is determined. */
+  this.queue = [];
+};
+
+/**
+ * Retrieve the value of this variable.
+ *
+ * @param {function} callback The function to call when the value is determined.
+ * @param {function} pollValue The poll function to try and get the value every
+ * 1 second if the value is not set.
+ */
+minplayer.async.prototype.get = function(callback, pollValue) {
+
+  // If the value is set, then immediately call the callback, otherwise, just
+  // add it to the queue when the variable is set.
+  if (this.value !== null) {
+    callback(this.value);
+  }
+  else {
+
+    // Add this callback to the queue.
+    this.queue.push(callback);
+  }
+};
+
+/**
+ * Sets the value of an asynchronous value.
+ *
+ * @param {void} val The value to set.
+ */
+minplayer.async.prototype.set = function(val) {
+
+  // Set the value.
+  this.value = val;
+
+  // Get the callback queue length.
+  var i = this.queue.length;
+
+  // Iterate through all the callbacks and call them.
+  if (i) {
+    while (i--) {
+      this.queue[i](val);
+    }
+
+    // Reset the queue.
+    this.queue = [];
+  }
+};
+/** The minplayer namespace. */
+var minplayer = minplayer || {};
+
+/**
+ * @constructor
+ * @class This is a class used to keep track of flag states
+ * which is used to control the busy cursor, big play button, among other
+ * items in which multiple components can have an interest in hiding or
+ * showing a single element on the screen.
+ *
+ * <p>
+ * <strong>Usage:</strong>
+ * <pre><code>
+ *   // Declare a flags variable.
+ *   var flags = new minplayer.flags();
+ *
+ *   // Set the flag based on two components interested in the flag.
+ *   flags.setFlag("component1", true);
+ *   flags.setFlag("component2", true);
+ *
+ *   // Print out the value of the flags. ( Prints 3 )
+ *   console.log(flags.flags);
+ *
+ *   // Now unset a single components flag.
+ *   flags.setFlag("component1", false);
+ *
+ *   // Print out the value of the flags.
+ *   console.log(flags.flags);
+ *
+ *   // Unset the other components flag.
+ *   flags.setFlag("component2", false);
+ *
+ *   // Print out the value of the flags.
+ *   console.log(flags.flags);
+ * </code></pre>
+ * </p>
+ */
+minplayer.flags = function() {
+
+  /** The flag. */
+  this.flag = 0;
+
+  /** Id map to reference id with the flag index. */
+  this.ids = {};
+
+  /** The number of flags. */
+  this.numFlags = 0;
+};
+
+/**
+ * Sets a flag based on boolean logic operators.
+ *
+ * @param {string} id The id of the controller interested in this flag.
+ * @param {boolean} value The value of this flag ( true or false ).
+ */
+minplayer.flags.prototype.setFlag = function(id, value) {
+
+  // Define this id if it isn't present.
+  if (!this.ids.hasOwnProperty(id)) {
+    this.ids[id] = this.numFlags;
+    this.numFlags++;
+  }
+
+  // Use binary operations to keep track of the flag state
+  if (value) {
+    this.flag |= (1 << this.ids[id]);
+  }
+  else {
+    this.flag &= ~(1 << this.ids[id]);
+  }
+};
+/** The minplayer namespace. */
+minplayer = minplayer || {};
+
+/** Static array to keep track of all plugins. */
+minplayer.plugins = minplayer.plugins || {};
+
+/** Static array to keep track of queues. */
+minplayer.queue = minplayer.queue || [];
+
+/** Mutex lock to keep multiple triggers from occuring. */
+minplayer.lock = false;
+
+/**
+ * @constructor
+ * @class The base class for all plugins.
+ *
+ * @param {string} name The name of this plugin.
+ * @param {object} context The jQuery context.
+ * @param {object} options This components options.
+ * @param {object} queue The event queue to pass events around.
+ */
+minplayer.plugin = function(name, context, options, queue) {
+
+  /** The name of this plugin. */
+  this.name = name;
+
+  /** The ready flag. */
+  this.pluginReady = false;
+
+  /** The options for this plugin. */
+  this.options = options || {};
+
+  /** The event queue. */
+  this.queue = queue || {};
+
+  /** Keep track of already triggered events. */
+  this.triggered = {};
+
+  /** Create a queue lock. */
+  this.lock = false;
+
+  // Only call the constructor if we have a context.
+  if (context) {
+
+    /** Say that we are active. */
+    this.active = true;
+
+    /** Keep track of the context. */
+    this.context = jQuery(context);
+
+    // Construct this plugin.
+    this.construct();
+  }
+};
+
+/**
+ * The constructor which is called once the context is set.
+ * Any class deriving from the plugin class should place all context
+ * dependant functionality within this function instead of the standard
+ * constructor function since it is called on object derivation as well
+ * as object creation.
+ */
+minplayer.plugin.prototype.construct = function() {
+
+  // Adds this as a plugin.
+  this.addPlugin();
+};
+
+/**
+ * Destructor.
+ */
+minplayer.plugin.prototype.destroy = function() {
+
+  // Unbind all events.
+  this.active = false;
+  this.unbind();
+};
+
+/**
+ * Creates a new plugin within this context.
+ *
+ * @param {string} name The name of the plugin you wish to create.
+ * @param {object} base The base object for this plugin.
+ * @param {object} context The context which you would like to create.
+ * @return {object} The new plugin object.
+ */
+minplayer.plugin.prototype.create = function(name, base, context) {
+  var plugin = null;
+
+  // Make sure we have a base object.
+  base = base || 'minplayer';
+  if (!window[base][name]) {
+    base = 'minplayer';
+  }
+
+  // Make sure there is a context.
+  context = context || this.display;
+
+  // See if this plugin exists within this object.
+  if (window[base][name]) {
+
+    // Set the plugin.
+    plugin = window[base][name];
+
+    // See if a template version of the plugin exists.
+    if (plugin[this.options.template]) {
+
+      plugin = plugin[this.options.template];
+    }
+
+    // Make sure the plugin is a function.
+    if (typeof plugin !== 'function') {
+      plugin = window['minplayer'][name];
+    }
+
+    // Make sure it is a function.
+    if (typeof plugin === 'function') {
+      return new plugin(context, this.options);
+    }
+  }
+
+  return null;
+};
+
+/**
+ * Plugins should call this method when they are ready.
+ */
+minplayer.plugin.prototype.ready = function() {
+
+  // Keep this plugin from triggering multiple ready events.
+  if (!this.pluginReady) {
+
+    // Set the ready flag.
+    this.pluginReady = true;
+
+    // Now trigger that I am ready.
+    this.trigger('ready');
+
+    // Check the queue.
+    this.checkQueue();
+  }
+};
+
+/**
+ * Returns if this component is valid.
+ *
+ * @return {boolean} TRUE if the plugin display is valid.
+ */
+minplayer.plugin.prototype.isValid = function() {
+  return !!this.options.id && this.active;
+};
+
+/**
+ * Adds a new plugin to this player.
+ *
+ * @param {string} name The name of this plugin.
+ * @param {object} plugin A new plugin object, derived from media.plugin.
+ */
+minplayer.plugin.prototype.addPlugin = function(name, plugin) {
+  name = name || this.name;
+  plugin = plugin || this;
+
+  // Make sure the plugin is valid.
+  if (plugin.isValid()) {
+
+    // If the plugins for this instance do not exist.
+    if (!minplayer.plugins[this.options.id]) {
+
+      // Initialize the plugins.
+      minplayer.plugins[this.options.id] = {};
+    }
+
+    if (!minplayer.plugins[this.options.id][name]) {
+
+      // Add the plugins array.
+      minplayer.plugins[this.options.id][name] = [];
+    }
+
+    // Add this plugin.
+    minplayer.plugins[this.options.id][name].push(plugin);
+
+    // Now check the queue for this plugin.
+    this.checkQueue(plugin);
+  }
+};
+
+/**
+ * Create a polling timer.
+ *
+ * @param {function} callback The function to call when you poll.
+ * @param {integer} interval The interval you would like to poll.
+ */
+minplayer.plugin.prototype.poll = function(callback, interval) {
+  setTimeout((function(context) {
+    return function callLater() {
+      if (callback.call(context)) {
+        setTimeout(callLater, interval);
+      }
+    };
+  })(this), interval);
+};
+
+/**
+ * Gets a plugin by name and calls callback when it is ready.
+ *
+ * @param {string} plugin The plugin of the plugin.
+ * @param {function} callback Called when the plugin is ready.
+ * @return {object} The plugin if no callback is provided.
+ */
+minplayer.plugin.prototype.get = function(plugin, callback) {
+
+  // If they pass just a callback, then return all plugins when ready.
+  if (typeof plugin === 'function') {
+    callback = plugin;
+    plugin = null;
+  }
+
+  // Return the minplayer.get equivalent.
+  return minplayer.get.call(this, this.options.id, plugin, callback);
+};
+
+/**
+ * Check the queue and execute it.
+ *
+ * @param {object} plugin The plugin object to check the queue against.
+ */
+minplayer.plugin.prototype.checkQueue = function(plugin) {
+
+  // Initialize our variables.
+  var q = null, i = 0, check = false, newqueue = [];
+
+  // Normalize the plugin variable.
+  plugin = plugin || this;
+
+  // Set the lock.
+  minplayer.lock = true;
+
+  // Iterate through all the queues.
+  var length = minplayer.queue.length;
+  for (i = 0; i < length; i++) {
+    if (minplayer.queue.hasOwnProperty(i)) {
+      // Get the queue.
+      q = minplayer.queue[i];
+
+      // Now check to see if this queue is about us.
+      check = !q.id && !q.plugin;
+      check |= (q.plugin == plugin.name);
+      check &= (!q.id || (q.id == this.options.id));
+
+      // If the check passes...
+      if (check) {
+        check = minplayer.bind.call(
+          q.context,
+          q.event,
+          this.options.id,
+          plugin.name,
+          q.callback
+        );
+      }
+
+      // Add the queue back if it doesn't check out.
+      if (!check) {
+
+        // Add this back to the queue.
+        newqueue.push(q);
+      }
+    }
+  }
+
+  // Set the old queue to the new queue.
+  minplayer.queue = newqueue;
+
+  // Release the lock.
+  minplayer.lock = false;
+};
+
+/**
+ * Trigger a media event.
+ *
+ * @param {string} type The event type.
+ * @param {object} data The event data object.
+ * @return {object} The plugin object.
+ */
+minplayer.plugin.prototype.trigger = function(type, data) {
+
+  // Don't trigger if this plugin is inactive.
+  if (!this.active) {
+    return this;
+  }
+
+  // Add this to our triggered array.
+  this.triggered[type] = data;
+
+  // Check to make sure the queue for this type exists.
+  if (this.queue.hasOwnProperty(type)) {
+
+    var i = 0, queue = {}, queuetype = this.queue[type];
+
+    // Iterate through all the callbacks in this queue.
+    for (i in queuetype) {
+
+      // Check to make sure the queue index exists.
+      if (queuetype.hasOwnProperty(i)) {
+
+        // Setup the event object, and call the callback.
+        queue = queuetype[i];
+        queue.callback({target: this, data: queue.data}, data);
+      }
+    }
+  }
+
+  // Return the plugin object.
+  return this;
+};
+
+/**
+ * Bind to a media event.
+ *
+ * @param {string} type The event type.
+ * @param {object} data The data to bind with the event.
+ * @param {function} fn The callback function.
+ * @return {object} The plugin object.
+ **/
+minplayer.plugin.prototype.bind = function(type, data, fn) {
+
+  // Only bind if active.
+  if (!this.active) {
+    return this;
+  }
+
+  // Allow the data to be the callback.
+  if (typeof data === 'function') {
+    fn = data;
+    data = null;
+  }
+
+  // You must bind to a specific event and have a callback.
+  if (!type || !fn) {
+    return;
+  }
+
+  // Initialize the queue for this type.
+  this.queue[type] = this.queue[type] || [];
+
+  // Unbind any existing equivalent events.
+  this.unbind(type, fn);
+
+  // Now add this event to the queue.
+  this.queue[type].push({
+    callback: fn,
+    data: data
+  });
+
+  // Now see if this event has already been triggered.
+  if (this.triggered.hasOwnProperty(type)) {
+
+    // Go ahead and trigger the event.
+    fn({target: this, data: data}, this.triggered[type]);
+  }
+
+  // Return the plugin.
+  return this;
+};
+
+/**
+ * Unbind a media event.
+ *
+ * @param {string} type The event type.
+ * @param {function} fn The callback function.
+ * @return {object} The plugin object.
+ **/
+minplayer.plugin.prototype.unbind = function(type, fn) {
+
+  // If this is locked then try again after 10ms.
+  if (this.lock) {
+    setTimeout((function(plugin) {
+      return function() {
+        plugin.unbind(type, fn);
+      };
+    })(this), 10);
+  }
+
+  // Set the lock.
+  this.lock = true;
+
+  // Get the queue type.
+  var queuetype = this.queue.hasOwnProperty(type) ? this.queue[type] : null;
+
+  if (!type) {
+    this.queue = {};
+  }
+  else if (!fn) {
+    this.queue[type] = [];
+  }
+  else if (queuetype) {
+    // Iterate through all the callbacks and search for equal callbacks.
+    var i = 0, queue = {};
+    for (i in queuetype) {
+      if (queuetype.hasOwnProperty(i)) {
+        if (queuetype[i].callback === fn) {
+          queue = this.queue[type].splice(i, 1);
+          delete queue;
+        }
+      }
+    }
+  }
+
+  // Reset the lock.
+  this.lock = false;
+
+  // Return the plugin.
+  return this;
+};
+
+/**
+ * Adds an item to the queue.
+ *
+ * @param {object} context The context which this is called within.
+ * @param {string} event The event to trigger on.
+ * @param {string} id The player ID.
+ * @param {string} plugin The name of the plugin.
+ * @param {function} callback Called when the event occurs.
+ */
+minplayer.addQueue = function(context, event, id, plugin, callback) {
+
+  // See if it is locked...
+  if (!minplayer.lock) {
+    minplayer.queue.push({
+      context: context,
+      id: id,
+      event: event,
+      plugin: plugin,
+      callback: callback
+    });
+  }
+  else {
+
+    // If so, then try again after 10 milliseconds.
+    setTimeout(function() {
+      minplayer.addQueue(context, id, event, plugin, callback);
+    }, 10);
+  }
+};
+
+/**
+ * Binds an event to a plugin instance, and if it doesn't exist, then caches
+ * it for a later time.
+ *
+ * @param {string} event The event to trigger on.
+ * @param {string} id The player ID.
+ * @param {string} plugin The name of the plugin.
+ * @param {function} callback Called when the event occurs.
+ * @return {boolean} If the bind was successful.
+ * @this The object in context who called this method.
+ */
+minplayer.bind = function(event, id, plugin, callback) {
+
+  // If no callback exists, then just return false.
+  if (!callback) {
+    return false;
+  }
+
+  // Get the plugins.
+  var plugins = minplayer.plugins;
+
+  // Determine the selected plugins.
+  var selected = [];
+
+  // Create a quick add.
+  var addSelected = function(id, plugin) {
+    if (plugins.hasOwnProperty(id) && plugins[id].hasOwnProperty(plugin)) {
+      var i = plugins[id][plugin].length;
+      while (i--) {
+        selected.push(plugins[id][plugin][i]);
+      }
+    }
+  };
+
+  // If they provide id && plugin
+  if (id && plugin) {
+    addSelected(id, plugin);
+  }
+
+  // If they provide no id but a plugin.
+  else if (!id && plugin) {
+    for (var id in plugins) {
+      addSelected(id, plugin);
+    }
+  }
+
+  // If they provide an id but no plugin.
+  else if (id && !plugin && plugins[id]) {
+    for (var plugin in plugins[id]) {
+      addSelected(id, plugin);
+    }
+  }
+
+  // If they provide niether an id or a plugin.
+  else if (!id && !plugin) {
+    for (var id in plugins) {
+      for (var plugin in plugins[id]) {
+        addSelected(id, plugin);
+      }
+    }
+  }
+
+  // Iterate through the selected plugins and bind.
+  var i = selected.length;
+  while (i--) {
+    selected[i].bind(event, (function(context) {
+      return function(event) {
+        callback.call(context, event.target);
+      };
+    })(this));
+  }
+
+  // Add it to the queue for post bindings...
+  minplayer.addQueue(this, event, id, plugin, callback);
+
+  // Return that this wasn't handled.
+  return (selected.length > 0);
+};
+
+/**
+ * The main API for minPlayer.
+ *
+ * Provided that this function takes three parameters, there are 8 different
+ * ways to use this api.
+ *
+ *   id (0x100) - You want a specific player.
+ *   plugin (0x010) - You want a specific plugin.
+ *   callback (0x001) - You only want it when it is ready.
+ *
+ *   000 - You want all plugins from all players, ready or not.
+ *
+ *          var plugins = minplayer.get();
+ *
+ *   001 - You want all plugins from all players, but only when ready.
+ *
+ *          minplayer.get(function(plugin) {
+ *            // Code goes here.
+ *          });
+ *
+ *   010 - You want a specific plugin from all players, ready or not...
+ *
+ *          var medias = minplayer.get(null, 'media');
+ *
+ *   011 - You want a specific plugin from all players, but only when ready.
+ *
+ *          minplayer.get('player', function(player) {
+ *            // Code goes here.
+ *          });
+ *
+ *   100 - You want all plugins from a specific player, ready or not.
+ *
+ *          var plugins = minplayer.get('player_id');
+ *
+ *   101 - You want all plugins from a specific player, but only when ready.
+ *
+ *          minplayer.get('player_id', null, function(plugin) {
+ *            // Code goes here.
+ *          });
+ *
+ *   110 - You want a specific plugin from a specific player, ready or not.
+ *
+ *          var plugin = minplayer.get('player_id', 'media');
+ *
+ *   111 - You want a specific plugin from a specific player, only when ready.
+ *
+ *          minplayer.get('player_id', 'media', function(media) {
+ *            // Code goes here.
+ *          });
+ *
+ * @this The context in which this function was called.
+ * @param {string} id The ID of the widget to get the plugins from.
+ * @param {string} plugin The name of the plugin.
+ * @param {function} callback Called when the plugin is ready.
+ * @return {object} The plugin object if it is immediately available.
+ */
+minplayer.get = function(id, plugin, callback) {
+
+  // Normalize the arguments for a better interface.
+  if (typeof id === 'function') {
+    callback = id;
+    plugin = id = null;
+  }
+
+  if (typeof plugin === 'function') {
+    callback = plugin;
+    plugin = id;
+    id = null;
+  }
+
+  // Make sure the callback is a callback.
+  callback = (typeof callback === 'function') ? callback : null;
+
+  // If a callback was provided, then just go ahead and bind.
+  if (callback) {
+    minplayer.bind.call(this, 'ready', id, plugin, callback);
+    return;
+  }
+
+  // Get the plugins.
+  var plugins = minplayer.plugins;
+
+  // 0x000
+  if (!id && !plugin && !callback) {
+    return plugins;
+  }
+  // 0x100
+  else if (id && !plugin && !callback) {
+    return plugins[id];
+  }
+  // 0x110
+  else if (id && plugin && !callback) {
+    return plugins[id][plugin];
+  }
+  // 0x010
+  else if (!id && plugin && !callback) {
+    var plugin_types = [];
+    for (var id in plugins) {
+      if (plugins.hasOwnProperty(id) && plugins[id].hasOwnProperty(plugin)) {
+        var i = plugins[id][plugin].length;
+        while (i--) {
+          plugin_types.push(plugins[id][plugin][i]);
+        }
+      }
+    }
+    return plugin_types;
+  }
+};
+/** The minplayer namespace. */
+minplayer = minplayer || {};
+
+/**
+ * @constructor
+ * @extends minplayer.plugin
+ * @class Base class used to provide the display and options for any component
+ * deriving from this class.  Components who derive are expected to provide
+ * the elements that they define by implementing the getElements method.
+ *
+ * @param {string} name The name of this plugin.
+ * @param {object} context The jQuery context this component resides.
+ * @param {object} options The options for this component.
+ * @param {object} queue The event queue to pass events around.
+ */
+minplayer.display = function(name, context, options, queue) {
+
+  // Derive from plugin
+  minplayer.plugin.call(this, name, context, options, queue);
+};
+
+/** Derive from minplayer.plugin. */
+minplayer.display.prototype = new minplayer.plugin();
+
+/** Reset the constructor. */
+minplayer.display.prototype.constructor = minplayer.display;
+
+/**
+ * Returns the display for this component.
+ *
+ * @return {object} The jQuery context for this display.
+ */
+minplayer.display.prototype.getDisplay = function() {
+  return this.context;
+};
+
+/**
+ * @see minplayer.plugin.construct
+ */
+minplayer.display.prototype.construct = function() {
+
+  // Set the display.
+  this.display = this.getDisplay(this.context, this.options);
+
+  // Call the plugin constructor.
+  minplayer.plugin.prototype.construct.call(this);
+
+  // Set the plugin name within the options.
+  this.options.pluginName = 'display';
+
+  // Get the display elements.
+  this.elements = this.getElements();
+
+  // Only do this if they allow resize for this display.
+  if (this.onResize) {
+
+    // Set the resize timeout and this pointer.
+    var resizeTimeout = 0;
+
+    // Add a handler to trigger a resize event.
+    jQuery(window).resize((function(display) {
+      return function() {
+        clearTimeout(resizeTimeout);
+        resizeTimeout = setTimeout(function() {
+          display.onResize();
+        }, 200);
+      };
+    })(this));
+  }
+};
+
+/**
+ * Called when the window resizes.
+ */
+minplayer.display.prototype.onResize = false;
+
+/**
+ * Wrapper around hide that will always not show.
+ *
+ * @param {object} element The element you wish to hide.
+ */
+minplayer.display.prototype.hide = function(element) {
+  element = element || this.display;
+  if (element) {
+    element.forceHide = true;
+    element.unbind().hide();
+  }
+};
+
+/**
+ * Gets the full screen element.
+ *
+ * @return {object} The display to be used for full screen support.
+ */
+minplayer.display.prototype.fullScreenElement = function() {
+  return this.display;
+};
+
+/**
+ * Fix for the click function in jQuery to be cross platform.
+ *
+ * @param {object} element The element that will be clicked.
+ * @param {function} fn Called when the element is clicked.
+ * @return {object} The element that is to be clicked.
+ */
+minplayer.click = function(element, fn) {
+  var flag = false;
+  element = jQuery(element);
+  element.bind('touchstart click', function(event) {
+    if (!flag) {
+      flag = true;
+      setTimeout(function() {
+        flag = false;
+      }, 100);
+      fn.call(this, event);
+    }
+  });
+  return element;
+};
+
+/**
+ * Determines if the player is in focus or not.
+ *
+ * @param {boolean} focus If the player is in focus.
+ */
+minplayer.display.prototype.onFocus = function(focus) {
+  this.hasFocus = this.focus = focus;
+};
+
+/** Keep track of all the show hide elements. */
+minplayer.showHideElements = [];
+
+/**
+ * Show all the show hide elements.
+ */
+minplayer.showAll = function() {
+  var i = minplayer.showHideElements.length;
+  var obj = null;
+  while (i--) {
+    obj = minplayer.showHideElements[i];
+    minplayer.showThenHide(obj.element, obj.timeout, obj.callback);
+  }
+};
+
+/**
+ * Stops the whole show then hide from happening.
+ *
+ * @param {object} element The element you want the showThenHide to stop.
+ */
+minplayer.stopShowThenHide = function(element) {
+  element = jQuery(element);
+  if (element.showTimer) {
+    clearTimeout(element.showTimer);
+  }
+  element.stopShowThenHide = true;
+  element.shown = true;
+  element.show();
+};
+
+/**
+ * Called if you would like for your display item to show then hide.
+ *
+ * @param {object} element The element you would like to hide or show.
+ * @param {number} timeout The timeout to hide and show.
+ * @param {function} callback Called when something happens.
+ */
+minplayer.showThenHide = function(element, timeout, callback) {
+
+  // If no element exists, then just return.
+  if (!element) {
+    return;
+  }
+
+  // Ensure we have a timeout.
+  timeout = timeout || 5000;
+
+  // If this has not yet been configured.
+  if (!element.showTimer) {
+    element.shown = true;
+    element.stopShowThenHide = false;
+
+    // Add this to our showHideElements.
+    minplayer.showHideElements.push({
+      element: element,
+      timeout: timeout,
+      callback: callback
+    });
+
+    // Bind to a click event.
+    minplayer.click(document, function() {
+      if (!element.stopShowThenHide) {
+        minplayer.showThenHide(element, timeout, callback);
+      }
+    });
+
+    // Bind to the mousemove event.
+    jQuery(document).bind('mousemove', function() {
+      if (!element.stopShowThenHide) {
+        minplayer.showThenHide(element, timeout, callback);
+      }
+    });
+  }
+
+  // Clear the timeout, and then setup the show then hide functionality.
+  clearTimeout(element.showTimer);
+
+  // Show the display.
+  if (!element.shown && !element.forceHide) {
+    element.shown = true;
+    element.show();
+    if (callback) {
+      callback(true);
+    }
+  }
+
+  // Set a timer to hide it after the timeout.
+  element.showTimer = setTimeout(function() {
+    element.hide('slow', function() {
+      element.shown = false;
+      if (callback) {
+        callback(false);
+      }
+    });
+  }, timeout);
+};
+
+/**
+ * Make this display element go fullscreen.
+ *
+ * @param {boolean} full Tell the player to go into fullscreen or not.
+ */
+minplayer.display.prototype.fullscreen = function(full) {
+  var isFull = this.isFullScreen();
+  var element = this.fullScreenElement();
+  if (isFull && !full) {
+    element.removeClass('fullscreen');
+    if (screenfull) {
+      screenfull.exit();
+    }
+    this.trigger('fullscreen', false);
+  }
+  else if (!isFull && full) {
+    element.addClass('fullscreen');
+    if (screenfull) {
+      screenfull.request(element[0]);
+      screenfull.onchange = (function(display) {
+        return function(e) {
+          if (!screenfull.isFullscreen) {
+            display.fullscreen(false);
+          }
+        };
+      })(this);
+    }
+    this.trigger('fullscreen', true);
+  }
+};
+
+/**
+ * Toggle fullscreen.
+ */
+minplayer.display.prototype.toggleFullScreen = function() {
+  this.fullscreen(!this.isFullScreen());
+};
+
+/**
+ * Checks to see if we are in fullscreen mode.
+ *
+ * @return {boolean} TRUE - fullscreen, FALSE - otherwise.
+ */
+minplayer.display.prototype.isFullScreen = function() {
+  return this.fullScreenElement().hasClass('fullscreen');
+};
+
+/**
+ * Returns a scaled rectangle provided a ratio and the container rect.
+ *
+ * @param {number} ratio The width/height ratio of what is being scaled.
+ * @param {object} rect The bounding rectangle for scaling.
+ * @return {object} The Rectangle object of the scaled rectangle.
+ */
+minplayer.display.prototype.getScaledRect = function(ratio, rect) {
+  var scaledRect = {};
+  scaledRect.x = rect.x ? rect.x : 0;
+  scaledRect.y = rect.y ? rect.y : 0;
+  scaledRect.width = rect.width ? rect.width : 0;
+  scaledRect.height = rect.height ? rect.height : 0;
+  if (ratio) {
+    if ((rect.width / rect.height) > ratio) {
+      scaledRect.height = rect.height;
+      scaledRect.width = Math.floor(rect.height * ratio);
+    }
+    else {
+      scaledRect.height = Math.floor(rect.width / ratio);
+      scaledRect.width = rect.width;
+    }
+    scaledRect.x = Math.floor((rect.width - scaledRect.width) / 2);
+    scaledRect.y = Math.floor((rect.height - scaledRect.height) / 2);
+  }
+  return scaledRect;
+};
+
+/**
+ * Returns all the jQuery elements that this component uses.
+ *
+ * @return {object} An object which defines all the jQuery elements that
+ * this component uses.
+ */
+minplayer.display.prototype.getElements = function() {
+  return {};
+};
+
+/**
+ * From https://github.com/sindresorhus/screenfull.js
+ */
+/*global Element:true*/
+(function(window, document) {
+  'use strict';
+  var methods = (function() {
+    var methodMap = [
+      [
+        'requestFullscreen',
+        'exitFullscreen',
+        'fullscreenchange',
+        'fullscreen',
+        'fullscreenElement'
+      ],
+      [
+        'webkitRequestFullScreen',
+        'webkitCancelFullScreen',
+        'webkitfullscreenchange',
+        'webkitIsFullScreen',
+        'webkitCurrentFullScreenElement'
+      ],
+      [
+        'mozRequestFullScreen',
+        'mozCancelFullScreen',
+        'mozfullscreenchange',
+        'mozFullScreen',
+        'mozFullScreenElement'
+      ]
+    ];
+    for (var i = 0, l = methodMap.length; i < l; i++) {
+      if (methodMap.hasOwnProperty(i)) {
+        var val = methodMap[i];
+        if (val[1] in document) {
+          return val;
+        }
+      }
+    }
+  })();
+
+  if (!methods) {
+    return window.screenfull = false;
+  }
+
+  var keyboardAllowed = 'ALLOW_KEYBOARD_INPUT' in Element;
+
+  var screenfull = {
+    init: function() {
+      document.addEventListener(methods[2], function(e) {
+        screenfull.isFullscreen = document[methods[3]];
+        screenfull.element = document[methods[4]];
+        screenfull.onchange(e);
+      });
+      return this;
+    },
+    isFullscreen: document[methods[3]],
+    element: document[methods[4]],
+    request: function(elem) {
+      elem = elem || document.documentElement;
+      elem[methods[0]](keyboardAllowed && Element.ALLOW_KEYBOARD_INPUT);
+      // Work around Safari 5.1 bug: reports support for keyboard in fullscreen
+      // even though it doesn't.
+      if (!document.isFullscreen) {
+        elem[methods[0]]();
+      }
+    },
+    exit: function() {
+      document[methods[1]]();
+    },
+    toggle: function(elem) {
+      if (this.isFullscreen) {
+        this.exit();
+      } else {
+        this.request(elem);
+      }
+    },
+    onchange: function() {}
+  };
+
+  window.screenfull = screenfull.init();
+})(window, document);
+// Add a way to instanciate using jQuery prototype.
+if (!jQuery.fn.minplayer) {
+
+  /**
+   * @constructor
+   *
+   * Define a jQuery minplayer prototype.
+   *
+   * @param {object} options The options for this jQuery prototype.
+   * @return {Array} jQuery object.
+   */
+  jQuery.fn.minplayer = function(options) {
+    return jQuery(this).each(function() {
+      options = options || {};
+      options.id = options.id || jQuery(this).attr('id') || Math.random();
+      if (!minplayer.plugins[options.id]) {
+        options.template = options.template || 'default';
+        if (minplayer[options.template]) {
+          new minplayer[options.template](jQuery(this), options);
+        }
+        else {
+          new minplayer(jQuery(this), options);
+        }
+      }
+    });
+  };
+}
+
+/**
+ * @constructor
+ * @extends minplayer.display
+ * @class The core media player class which governs the media player
+ * functionality.
+ *
+ * <p><strong>Usage:</strong>
+ * <pre><code>
+ *
+ *   // Create a media player.
+ *   var player = jQuery("#player").minplayer({
+ *
+ *   });
+ *
+ * </code></pre>
+ * </p>
+ *
+ * @param {object} context The jQuery context.
+ * @param {object} options This components options.
+ */
+minplayer = jQuery.extend(function(context, options) {
+
+  // Derive from display
+  minplayer.display.call(this, 'player', context, options);
+}, minplayer);
+
+/** Derive from minplayer.display. */
+minplayer.prototype = new minplayer.display();
+
+/** Reset the constructor. */
+minplayer.prototype.constructor = minplayer;
+
+/**
+ * @see minplayer.plugin.construct
+ */
+minplayer.prototype.construct = function() {
+
+  // Allow them to provide arguments based off of the DOM attributes.
+  jQuery.each(this.context[0].attributes, (function(player) {
+    return function(index, attr) {
+      player.options[attr.name] = player.options[attr.name] || attr.value;
+    };
+  })(this));
+
+  // Make sure we provide default options...
+  this.options = jQuery.extend({
+    id: 'player',
+    build: false,
+    wmode: 'transparent',
+    preload: true,
+    autoplay: false,
+    autoload: true,
+    loop: false,
+    width: '100%',
+    height: '350px',
+    debug: false,
+    volume: 80,
+    files: null,
+    file: '',
+    preview: '',
+    attributes: {},
+    logo: '',
+    link: '',
+    width: '100%',
+    height: '100%'
+  }, this.options);
+
+  // Call the minplayer display constructor.
+  minplayer.display.prototype.construct.call(this);
+
+  // Set the plugin name within the options.
+  this.options.pluginName = 'player';
+
+  /** The controller for this player. */
+  this.controller = this.create('controller');
+
+  /** The play loader for this player. */
+  this.playLoader = this.create('playLoader');
+
+  // Set the focus of the element based on if they click in or outside of it.
+  minplayer.click(document, (function(player) {
+    return function(event) {
+      var target = jQuery(event.target);
+      var focus = !(target.closest('#' + player.options.id).length == 0);
+      minplayer.get.call(this, player.options.id, null, function(plugin) {
+        plugin.onFocus(focus);
+      });
+    };
+  })(this));
+
+  /** Add the logo for the player. */
+  if (this.options.logo && this.elements.logo) {
+
+    var code = '';
+    if (this.options.link) {
+      code += '<a target="_blank" href="' + this.options.link + '">';
+    }
+    code += '<img src="' + this.options.logo + '" >';
+    if (this.options.link) {
+      code += '</a>';
+    }
+    this.logo = this.elements.logo.append(code);
+  }
+
+  /** Variable to store the current media player. */
+  this.currentPlayer = 'html5';
+
+  // Add key events to the window.
+  this.addKeyEvents();
+
+  // Called to add events.
+  this.addEvents();
+
+  // Now load these files.
+  this.load(this.getFiles());
+
+  // The player is ready.
+  this.ready();
+};
+
+/**
+ * Called when an error occurs.
+ *
+ * @param {object} plugin The plugin you wish to bind to.
+ */
+minplayer.prototype.bindTo = function(plugin) {
+  plugin.bind('error', (function(player) {
+    return function(event, data) {
+      if (player.currentPlayer == 'html5') {
+        minplayer.player = 'minplayer';
+        player.options.file.player = 'minplayer';
+        player.loadPlayer();
+      }
+      else {
+        player.showError(data);
+      }
+    };
+  })(this));
+
+  // Bind to the fullscreen event.
+  plugin.bind('fullscreen', (function(player) {
+    return function(event, data) {
+      player.resize();
+    };
+  })(this));
+};
+
+/**
+ * We need to bind to events we are interested in.
+ */
+minplayer.prototype.addEvents = function() {
+  minplayer.get.call(this, this.options.id, null, (function(player) {
+    return function(plugin) {
+      player.bindTo(plugin);
+    };
+  })(this));
+};
+
+/**
+ * Sets an error on the player.
+ *
+ * @param {string} error The error to display on the player.
+ */
+minplayer.prototype.showError = function(error) {
+  if (typeof error !== 'object') {
+    error = error || '';
+    if (this.elements.error) {
+
+      // Set the error text.
+      this.elements.error.text(error);
+      if (error) {
+        // Show the error message.
+        this.elements.error.show();
+
+        // Only show this error for a time interval.
+        setTimeout((function(player) {
+          return function() {
+            player.elements.error.hide('slow');
+          };
+        })(this), 5000);
+      }
+      else {
+        this.elements.error.hide();
+      }
+    }
+  }
+};
+
+/**
+ * Adds key events to the player.
+ */
+minplayer.prototype.addKeyEvents = function() {
+  jQuery(document).bind('keydown', (function(player) {
+    return function(event) {
+      switch (event.keyCode) {
+        case 113: // ESC
+        case 27:  // Q
+          if (player.isFullScreen()) {
+            player.fullscreen(false);
+          }
+          break;
+      }
+    };
+  })(this));
+};
+
+/**
+ * Returns all the media files available for this player.
+ *
+ * @return {array} All the media files for this player.
+ */
+minplayer.prototype.getFiles = function() {
+
+  // If they provide the files in the options, use those first.
+  if (this.options.files) {
+    return this.options.files;
+  }
+
+  if (this.options.file) {
+    return this.options.file;
+  }
+
+  var files = [];
+  var mediaSrc = null;
+
+  // Get the files involved...
+  if (this.elements.media) {
+    mediaSrc = this.elements.media.attr('src');
+    if (mediaSrc) {
+      files.push({'path': mediaSrc});
+    }
+    jQuery('source', this.elements.media).each(function() {
+      files.push({
+        'path': jQuery(this).attr('src'),
+        'mimetype': jQuery(this).attr('type'),
+        'codecs': jQuery(this).attr('codecs')
+      });
+    });
+  }
+
+  return files;
+};
+
+/**
+ * Returns the full media player object.
+ *
+ * @param {array} files An array of files to chose from.
+ * @return {object} The best media file to play in the current browser.
+ */
+minplayer.getMediaFile = function(files) {
+
+  // If there are no files then return null.
+  if (!files) {
+    return null;
+  }
+
+  // If the file is already a file object then just return.
+  if ((typeof files === 'string') || files.path || files.id) {
+    return new minplayer.file(files);
+  }
+
+  // Add the files and get the best player to play.
+  var bestPriority = 0, mFile = null, file = null;
+  for (var i in files) {
+    if (files.hasOwnProperty(i)) {
+      file = new minplayer.file(files[i]);
+      if (file.player && (file.priority > bestPriority)) {
+        mFile = file;
+      }
+    }
+  }
+
+  // Return the best minplayer file.
+  return mFile;
+};
+
+/**
+ * Loads a media player based on the current file.
+ *
+ * @return {boolean} If a new player was loaded.
+ */
+minplayer.prototype.loadPlayer = function() {
+
+  // Do nothing if there isn't a file or anywhere to put it.
+  if (!this.options.file || (this.elements.display.length == 0)) {
+    return false;
+  }
+
+  // If no player is set, then also return false.
+  if (!this.options.file.player) {
+    return false;
+  }
+
+  // Reset the error.
+  this.showError();
+
+  // Only destroy if the current player is different than the new player.
+  var player = this.options.file.player.toString();
+
+  // If there isn't media or if the players are different.
+  if (!this.media || (player !== this.currentPlayer)) {
+
+    // Set the current media player.
+    this.currentPlayer = player;
+
+    // Do nothing if we don't have a display.
+    if (!this.elements.display) {
+      this.showError('No media display found.');
+      return;
+    }
+
+    // Destroy the current media.
+    var queue = {};
+    if (this.media) {
+      queue = this.media.queue;
+      this.media.destroy();
+    }
+
+    // Get the class name and create the new player.
+    pClass = minplayer.players[this.options.file.player];
+
+    // Create the new media player.
+    this.options.mediaelement = this.elements.media;
+    this.media = new pClass(this.elements.display, this.options, queue);
+
+    // Now get the media when it is ready.
+    this.get('media', (function(player) {
+      return function(media) {
+
+        // Load the media.
+        media.load(player.options.file);
+        player.display.addClass('minplayer-player-' + media.mediaFile.player);
+      };
+    })(this));
+
+    // Return that a new player is loaded.
+    return true;
+  }
+  // If the media object already exists...
+  else if (this.media) {
+
+    // Now load the different media file.
+    this.media.options = this.options;
+    this.display.removeClass('minplayer-player-' + this.media.mediaFile.player);
+    this.media.load(this.options.file);
+    this.display.addClass('minplayer-player-' + this.media.mediaFile.player);
+    return false;
+  }
+};
+
+/**
+ * Load a set of files or a single file for the media player.
+ *
+ * @param {array} files An array of files to chose from to load.
+ */
+minplayer.prototype.load = function(files) {
+
+  // Set the id and class.
+  var id = '', pClass = '';
+
+  // If no file was provided, then get it.
+  this.options.files = files || this.options.files;
+  this.options.file = minplayer.getMediaFile(this.options.files);
+
+  // Now load the player.
+  if (this.loadPlayer()) {
+
+    // Add the events since we now have a player.
+    this.bindTo(this.media);
+
+    // If the player isn't valid, then show an error.
+    if (this.options.file.mimetype && !this.options.file.player) {
+      this.showError('Cannot play media: ' + this.options.file.mimetype);
+    }
+  }
+};
+
+/**
+ * Called when the player is resized.
+ */
+minplayer.prototype.resize = function() {
+
+  // Call onRezie for each plugin.
+  this.get(function(plugin) {
+    if (plugin.onResize) {
+      plugin.onResize();
+    }
+  });
+};
+/** The minplayer namespace. */
+var minplayer = minplayer || {};
+
+/**
+ * @constructor
+ * @class A class to easily handle images.
+ * @param {object} context The jQuery context.
+ * @param {object} options This components options.
+ */
+minplayer.image = function(context, options) {
+
+  // Determine if the image is loaded.
+  this.loaded = false;
+
+  // The image loader.
+  this.loader = null;
+
+  // The ratio of the image.
+  this.ratio = 0;
+
+  // The image element.
+  this.img = null;
+
+  // Derive from display
+  minplayer.display.call(this, 'image', context, options);
+};
+
+/** Derive from minplayer.display. */
+minplayer.image.prototype = new minplayer.display();
+
+/** Reset the constructor. */
+minplayer.image.prototype.constructor = minplayer.image;
+
+/**
+ * @see minplayer.plugin.construct
+ */
+minplayer.image.prototype.construct = function() {
+
+  // Call the media display constructor.
+  minplayer.display.prototype.construct.call(this);
+
+  // Set the plugin name within the options.
+  this.options.pluginName = 'image';
+
+  // Set the container to not show any overflow...
+  this.display.css('overflow', 'hidden');
+
+  /** The loader for the image. */
+  this.loader = new Image();
+
+  /** Register for when the image is loaded within the loader. */
+  this.loader.onload = (function(image) {
+    return function() {
+      image.loaded = true;
+      image.ratio = (image.loader.width / image.loader.height);
+      image.resize();
+      image.trigger('loaded');
+    };
+  })(this);
+
+  // We are now ready.
+  this.ready();
+};
+
+/**
+ * Loads an image.
+ *
+ * @param {string} src The source of the image to load.
+ */
+minplayer.image.prototype.load = function(src) {
+
+  // First clear the previous image.
+  this.clear(function() {
+
+    // Create the new image, and append to the display.
+    this.display.empty();
+    this.img = jQuery(document.createElement('img')).attr({src: ''}).hide();
+    this.display.append(this.img);
+    this.loader.src = src;
+    this.img.attr('src', src);
+  });
+};
+
+/**
+ * Clears an image.
+ *
+ * @param {function} callback Called when the image is done clearing.
+ */
+minplayer.image.prototype.clear = function(callback) {
+  this.loaded = false;
+  if (this.img) {
+    this.img.fadeOut((function(image) {
+      return function() {
+        image.img.attr('src', '');
+        image.loader.src = '';
+        jQuery(this).remove();
+        callback.call(image);
+      };
+    })(this));
+  }
+  else {
+    callback.call(this);
+  }
+};
+
+/**
+ * Resize the image provided a width and height or nothing.
+ *
+ * @param {integer} width (optional) The width of the container.
+ * @param {integer} height (optional) The height of the container.
+ */
+minplayer.image.prototype.resize = function(width, height) {
+  width = width || this.display.parent().width();
+  height = height || this.display.parent().height();
+  if (width && height && this.loaded) {
+
+    // Get the scaled rectangle.
+    var rect = this.getScaledRect(this.ratio, {
+      width: width,
+      height: height
+    });
+
+    // Now set this image to the new size.
+    if (this.img) {
+      this.img.attr('src', this.loader.src).css({
+        marginLeft: rect.x,
+        marginTop: rect.y,
+        width: rect.width,
+        height: rect.height
+      });
+    }
+
+    // Show the container.
+    this.img.fadeIn();
+  }
+};
+
+/**
+ * @see minplayer.display#onResize
+ */
+minplayer.image.prototype.onResize = function() {
+
+  // Resize the image to fit.
+  this.resize();
+};
+/** The minplayer namespace. */
+var minplayer = minplayer || {};
+
+/**
+ * @constructor
+ * @class A wrapper class used to provide all the data necessary to control an
+ * individual file within this media player.
+ *
+ * @param {object} file A media file object with minimal required information.
+ */
+minplayer.file = function(file) {
+
+  // If there isn't a file provided, then just return null.
+  if (!file) {
+    return null;
+  }
+
+  file = (typeof file === 'string') ? {path: file} : file;
+
+  // If we already are a minplayer file, then just return this file.
+  if (file.hasOwnProperty('isMinPlayerFile')) {
+    return file;
+  }
+
+  this.isMinPlayerFile = true;
+  this.duration = file.duration || 0;
+  this.bytesTotal = file.bytesTotal || 0;
+  this.quality = file.quality || 0;
+  this.stream = file.stream || '';
+  this.path = file.path || '';
+  this.codecs = file.codecs || '';
+
+  // These should be provided, but just in case...
+  this.extension = file.extension || this.getFileExtension();
+  this.mimetype = file.mimetype || file.filemime || this.getMimeType();
+  this.type = file.type || this.getType();
+
+  // Fail safe to try and guess the mimetype and media type.
+  if (!this.type) {
+    this.mimetype = this.getMimeType();
+    this.type = this.getType();
+  }
+
+  // Get the player.
+  this.player = minplayer.player || file.player || this.getBestPlayer();
+  this.priority = file.priority || this.getPriority();
+  this.id = file.id || this.getId();
+  if (!this.path) {
+    this.path = this.id;
+  }
+};
+
+/** Used to force the player for all media. */
+minplayer.player = '';
+
+/**
+ * Returns the best player for the job.
+ *
+ * @return {string} The best player to play the media file.
+ */
+minplayer.file.prototype.getBestPlayer = function() {
+  var bestplayer = null, bestpriority = 0;
+  jQuery.each(minplayer.players, (function(file) {
+    return function(name, player) {
+      var priority = player.getPriority();
+      if (player.canPlay(file) && (priority > bestpriority)) {
+        bestplayer = name;
+        bestpriority = priority;
+      }
+    };
+  })(this));
+  return bestplayer;
+};
+
+/**
+ * The priority of this file is determined by the priority of the best
+ * player multiplied by the priority of the mimetype.
+ *
+ * @return {integer} The priority of the media file.
+ */
+minplayer.file.prototype.getPriority = function() {
+  var priority = 1;
+  if (this.player) {
+    priority = minplayer.players[this.player].getPriority();
+  }
+  switch (this.mimetype) {
+    case 'video/x-webm':
+    case 'video/webm':
+    case 'application/octet-stream':
+      return priority * 10;
+    case 'video/mp4':
+    case 'audio/mp4':
+    case 'audio/mpeg':
+      return priority * 9;
+    case 'video/ogg':
+    case 'audio/ogg':
+    case 'video/quicktime':
+      return priority * 8;
+    default:
+      return priority * 5;
+  }
+};
+
+/**
+ * Returns the file extension of the file path.
+ *
+ * @return {string} The file extension.
+ */
+minplayer.file.prototype.getFileExtension = function() {
+  return this.path.substring(this.path.lastIndexOf('.') + 1).toLowerCase();
+};
+
+/**
+ * Returns the proper mimetype based off of the extension.
+ *
+ * @return {string} The mimetype of the file based off of extension.
+ */
+minplayer.file.prototype.getMimeType = function() {
+  switch (this.extension) {
+    case 'mp4': case 'm4v': case 'flv': case 'f4v':
+      return 'video/mp4';
+    case'webm':
+      return 'video/webm';
+    case 'ogg': case 'ogv':
+      return 'video/ogg';
+    case '3g2':
+      return 'video/3gpp2';
+    case '3gpp':
+    case '3gp':
+      return 'video/3gpp';
+    case 'mov':
+      return 'video/quicktime';
+    case'swf':
+      return 'application/x-shockwave-flash';
+    case 'oga':
+      return 'audio/ogg';
+    case 'mp3':
+      return 'audio/mpeg';
+    case 'm4a': case 'f4a':
+      return 'audio/mp4';
+    case 'aac':
+      return 'audio/aac';
+    case 'wav':
+      return 'audio/vnd.wave';
+    case 'wma':
+      return 'audio/x-ms-wma';
+    default:
+      return 'unknown';
+  }
+};
+
+/**
+ * The type of media this is: video or audio.
+ *
+ * @return {string} "video" or "audio" based on what the type of media this
+ * is.
+ */
+minplayer.file.prototype.getType = function() {
+  var type = this.mimetype.match(/([^\/]+)(\/)/);
+  type = (type && (type.length > 1)) ? type[1] : '';
+  if (type == 'video' || this.mimetype == 'application/octet-stream') {
+    return 'video';
+  }
+  if (type == 'audio') {
+    return 'audio';
+  }
+  return '';
+};
+
+/**
+ * Returns the ID for this media file.
+ *
+ * @return {string} The id for this media file which is provided by the player.
+ */
+minplayer.file.prototype.getId = function() {
+  var player = minplayer.players[this.player];
+  return (player && player.getMediaId) ? player.getMediaId(this) : '';
+};
+/** The minplayer namespace. */
+var minplayer = minplayer || {};
+
+/**
+ * @constructor
+ * @extends minplayer.display
+ * @class The play loader base class, which is used to control the busy
+ * cursor, big play button, and the opaque background which shows when the
+ * player is paused.
+ *
+ * @param {object} context The jQuery context.
+ * @param {object} options This components options.
+ */
+minplayer.playLoader = function(context, options) {
+
+  // Define the flags that control the busy cursor.
+  this.busy = new minplayer.flags();
+
+  // Define the flags that control the big play button.
+  this.bigPlay = new minplayer.flags();
+
+  // Define the flags the control the preview.
+  this.previewFlag = new minplayer.flags();
+
+  /** The preview image. */
+  this.preview = null;
+
+  /** If the playLoader is enabled. */
+  this.enabled = true;
+
+  // Derive from display
+  minplayer.display.call(this, 'playLoader', context, options);
+};
+
+/** Derive from minplayer.display. */
+minplayer.playLoader.prototype = new minplayer.display();
+
+/** Reset the constructor. */
+minplayer.playLoader.prototype.constructor = minplayer.playLoader;
+
+/**
+ * The constructor.
+ */
+minplayer.playLoader.prototype.construct = function() {
+
+  // Call the media display constructor.
+  minplayer.display.prototype.construct.call(this);
+
+  // Set the plugin name within the options.
+  this.options.pluginName = 'playLoader';
+
+  // Get the media plugin.
+  this.initialize();
+
+  // We are now ready.
+  this.ready();
+};
+
+/**
+ * Initialize the playLoader.
+ */
+minplayer.playLoader.prototype.initialize = function() {
+
+  // Get the media plugin.
+  this.get('media', function(media) {
+
+    // Only bind if this player does not have its own play loader.
+    if (!media.hasPlayLoader(this.options.preview)) {
+
+      // Enable the playLoader.
+      this.enabled = true;
+
+      // Get the poster image.
+      if (!this.options.preview) {
+        this.options.preview = media.elements.media.attr('poster');
+      }
+
+      // Reset the media's poster image.
+      media.elements.media.attr('poster', '');
+
+      // Load the preview image.
+      this.loadPreview();
+
+      // Trigger a play event when someone clicks on the controller.
+      if (this.elements.bigPlay) {
+        minplayer.click(this.elements.bigPlay.unbind(), function(event) {
+          event.preventDefault();
+          minplayer.showAll();
+          jQuery(this).hide();
+          media.play();
+        });
+      }
+
+      // Bind to the player events to control the play loader.
+      media.unbind('loadstart').bind('loadstart', (function(playLoader) {
+        return function(event) {
+          playLoader.busy.setFlag('media', true);
+          playLoader.bigPlay.setFlag('media', true);
+          playLoader.previewFlag.setFlag('media', true);
+          playLoader.checkVisibility();
+        };
+      })(this));
+      media.bind('waiting', (function(playLoader) {
+        return function(event) {
+          playLoader.busy.setFlag('media', true);
+          playLoader.checkVisibility();
+        };
+      })(this));
+      media.bind('loadeddata', (function(playLoader) {
+        return function(event) {
+          playLoader.busy.setFlag('media', false);
+          playLoader.checkVisibility();
+        };
+      })(this));
+      media.bind('playing', (function(playLoader) {
+        return function(event) {
+          playLoader.busy.setFlag('media', false);
+          playLoader.bigPlay.setFlag('media', false);
+          if (media.mediaFile.type !== 'audio') {
+            playLoader.previewFlag.setFlag('media', false);
+          }
+          playLoader.checkVisibility();
+        };
+      })(this));
+      media.bind('pause', (function(playLoader) {
+        return function(event) {
+          playLoader.bigPlay.setFlag('media', true);
+          playLoader.checkVisibility();
+        };
+      })(this));
+    }
+    else {
+
+      // Hide the display.
+      this.enabled = false;
+      this.hide(this.elements.busy);
+      this.hide(this.elements.bigPlay);
+      this.hide(this.elements.preview);
+      this.hide();
+    }
+  });
+};
+
+/**
+ * Loads the preview image.
+ */
+minplayer.playLoader.prototype.loadPreview = function() {
+
+  // Ignore if disabled.
+  if (!this.enabled) {
+    return;
+  }
+
+  // If the preview element exists.
+  if (this.elements.preview) {
+
+    // If there is a preview to show...
+    if (this.options.preview) {
+
+      // Say that this has a preview.
+      this.elements.preview.addClass('has-preview').show();
+
+      // Create a new preview image.
+      this.preview = new minplayer.image(this.elements.preview, this.options);
+
+      // Create the image.
+      this.preview.load(this.options.preview);
+    }
+    else {
+
+      // Hide the preview.
+      this.elements.preview.hide();
+    }
+  }
+};
+
+/**
+ * Hide or show certain elements based on the state of the busy and big play
+ * button.
+ */
+minplayer.playLoader.prototype.checkVisibility = function() {
+
+  // Ignore if disabled.
+  if (!this.enabled) {
+    return;
+  }
+
+  // Hide or show the busy cursor based on the flags.
+  if (this.busy.flag) {
+    this.elements.busy.show();
+  }
+  else {
+    this.elements.busy.hide();
+  }
+
+  // Hide or show the big play button based on the flags.
+  if (this.bigPlay.flag) {
+    this.elements.bigPlay.show();
+  }
+  else {
+    this.elements.bigPlay.hide();
+  }
+
+  if (this.previewFlag.flag) {
+    this.elements.preview.show();
+  }
+  else {
+    this.elements.preview.hide();
+  }
+
+  // Show the control either flag is set.
+  if (this.bigPlay.flag || this.busy.flag || this.previewFlag.flag) {
+    this.display.show();
+  }
+
+  // Hide the whole control if both flags are 0.
+  if (!this.bigPlay.flag && !this.busy.flag && !this.previewFlag.flag) {
+    this.display.hide();
+  }
+};
+/** The minplayer namespace. */
+var minplayer = minplayer || {};
+
+/** All the media player implementations */
+minplayer.players = minplayer.players || {};
+
+/**
+ * @constructor
+ * @extends minplayer.display
+ * @class The base media player class where all media players derive from.
+ *
+ * @param {object} context The jQuery context.
+ * @param {object} options This components options.
+ * @param {object} queue The event queue to pass events around.
+ */
+minplayer.players.base = function(context, options, queue) {
+
+  // Derive from display
+  minplayer.display.call(this, 'media', context, options, queue);
+};
+
+/** Derive from minplayer.display. */
+minplayer.players.base.prototype = new minplayer.display();
+
+/** Reset the constructor. */
+minplayer.players.base.prototype.constructor = minplayer.players.base;
+
+/**
+ * @see minplayer.display.getElements
+ * @this minplayer.players.base
+ * @return {object} The elements for this display.
+ */
+minplayer.players.base.prototype.getElements = function() {
+  var elements = minplayer.display.prototype.getElements.call(this);
+  return jQuery.extend(elements, {
+    media: this.options.mediaelement
+  });
+};
+
+/**
+ * Get the priority of this media player.
+ *
+ * @return {number} The priority of this media player.
+ */
+minplayer.players.base.getPriority = function() {
+  return 0;
+};
+
+/**
+ * Returns the ID for the media being played.
+ *
+ * @param {object} file A {@link minplayer.file} object.
+ * @return {string} The ID for the provided media.
+ */
+minplayer.players.base.getMediaId = function(file) {
+  return '';
+};
+
+/**
+ * Determine if we can play the media file.
+ *
+ * @param {object} file A {@link minplayer.file} object.
+ * @return {boolean} If this player can play this media type.
+ */
+minplayer.players.base.canPlay = function(file) {
+  return false;
+};
+
+/**
+ * @see minplayer.plugin.construct
+ * @this minplayer.players.base
+ */
+minplayer.players.base.prototype.construct = function() {
+
+  // Call the media display constructor.
+  minplayer.display.prototype.construct.call(this);
+
+  // Set the plugin name within the options.
+  this.options.pluginName = 'basePlayer';
+
+  /** The currently loaded media file. */
+  this.mediaFile = this.options.file;
+
+  // Clear the media player.
+  this.clear();
+
+  // Get the player display object.
+  if (!this.playerFound()) {
+
+    // Add the new player.
+    this.addPlayer();
+  }
+
+  // Get the player object...
+  this.player = this.getPlayer();
+
+  // Toggle playing if they click.
+  minplayer.click(this.display, (function(player) {
+    return function() {
+      minplayer.showAll();
+      if (player.playing) {
+        player.pause();
+      }
+      else {
+        player.play();
+      }
+    };
+  })(this));
+
+  // Bind to key events...
+  jQuery(document).bind('keydown', (function(player) {
+    return function(event) {
+      if (player.hasFocus) {
+        event.preventDefault();
+        switch (event.keyCode) {
+          case 32:  // SPACE
+          case 179: // GOOGLE play/pause button.
+            if (player.playing) {
+              player.pause();
+            }
+            else {
+              player.play();
+            }
+            break;
+          case 38:  // UP
+            player.setVolumeRelative(0.1);
+            break;
+          case 40:  // DOWN
+            player.setVolumeRelative(-0.1);
+            break;
+          case 37:  // LEFT
+          case 227: // GOOGLE TV REW
+            player.seekRelative(-0.05);
+            break;
+          case 39:  // RIGHT
+          case 228: // GOOGLE TV FW
+            player.seekRelative(0.05);
+            break;
+        }
+      }
+    };
+  })(this));
+};
+
+/**
+ * Adds the media player.
+ */
+minplayer.players.base.prototype.addPlayer = function() {
+
+  // Remove the media element if found
+  if (this.elements.media) {
+    this.elements.media.remove();
+  }
+
+  // Create a new media player element.
+  this.elements.media = jQuery(this.create());
+  this.display.html(this.elements.media);
+};
+
+/**
+ * @see minplayer.plugin.destroy.
+ */
+minplayer.players.base.prototype.destroy = function() {
+  minplayer.plugin.prototype.destroy.call(this);
+  this.clear();
+};
+
+/**
+ * Clears the media player.
+ */
+minplayer.players.base.prototype.clear = function() {
+
+  // Reset the ready flag.
+  this.playerReady = false;
+
+  // Reset the player.
+  this.reset();
+
+  // If the player exists, then unbind all events.
+  if (this.player) {
+    jQuery(this.player).unbind();
+  }
+};
+
+/**
+ * Resets all variables.
+ */
+minplayer.players.base.prototype.reset = function() {
+
+  // The duration of the player.
+  this.duration = new minplayer.async();
+
+  // The current play time of the player.
+  this.currentTime = new minplayer.async();
+
+  // The amount of bytes loaded in the player.
+  this.bytesLoaded = new minplayer.async();
+
+  // The total amount of bytes for the media.
+  this.bytesTotal = new minplayer.async();
+
+  // The bytes that the download started with.
+  this.bytesStart = new minplayer.async();
+
+  // The current volume of the player.
+  this.volume = new minplayer.async();
+
+  // Reset focus.
+  this.hasFocus = false;
+
+  // We are not playing.
+  this.playing = false;
+
+  // We are not loading.
+  this.loading = false;
+
+  // Tell everyone else we reset.
+  this.trigger('pause');
+  this.trigger('waiting');
+  this.trigger('progress', {loaded: 0, total: 0, start: 0});
+  this.trigger('timeupdate', {currentTime: 0, duration: 0});
+};
+
+/**
+ * Called when the player is ready to recieve events and commands.
+ */
+minplayer.players.base.prototype.onReady = function() {
+
+  // Only continue if we are not already ready.
+  if (this.playerReady) {
+    return;
+  }
+
+  // Set the ready flag.
+  this.playerReady = true;
+
+  // Set the volume to the default.
+  this.setVolume(this.options.volume / 100);
+
+  // Setup the progress interval.
+  this.loading = true;
+
+  // Create a poll to get the progress.
+  this.poll((function(player) {
+    return function() {
+
+      // Only do this if the play interval is set.
+      if (player.loading) {
+
+        // Get the bytes loaded asynchronously.
+        player.getBytesLoaded(function(bytesLoaded) {
+
+          // Get the bytes total asynchronously.
+          player.getBytesTotal(function(bytesTotal) {
+
+            // Trigger an event about the progress.
+            if (bytesLoaded || bytesTotal) {
+
+              // Get the bytes start, but don't require it.
+              var bytesStart = 0;
+              player.getBytesStart(function(val) {
+                bytesStart = val;
+              });
+
+              // Trigger a progress event.
+              player.trigger('progress', {
+                loaded: bytesLoaded,
+                total: bytesTotal,
+                start: bytesStart
+              });
+
+              // Say we are not longer loading if they are equal.
+              if (bytesLoaded >= bytesTotal) {
+                player.loading = false;
+              }
+            }
+          });
+        });
+      }
+
+      // Keep polling as long as its loading...
+      return player.loading;
+    };
+  })(this), 1000);
+
+  // We are now ready.
+  this.ready();
+
+  // Trigger that the load has started.
+  this.trigger('loadstart');
+};
+
+/**
+ * Should be called when the media is playing.
+ */
+minplayer.players.base.prototype.onPlaying = function() {
+
+  // Trigger an event that we are playing.
+  this.trigger('playing');
+
+  // Say that this player has focus.
+  this.hasFocus = true;
+
+  // Set the playInterval to true.
+  this.playing = true;
+
+  // Create a poll to get the timeupate.
+  this.poll((function(player) {
+    return function() {
+
+      // Only do this if the play interval is set.
+      if (player.playing) {
+
+        // Get the current time asyncrhonously.
+        player.getCurrentTime(function(currentTime) {
+
+          // Get the duration asynchronously.
+          player.getDuration(function(duration) {
+
+            // Convert these to floats.
+            currentTime = parseFloat(currentTime);
+            duration = parseFloat(duration);
+
+            // Trigger an event about the progress.
+            if (currentTime || duration) {
+
+              // Trigger an update event.
+              player.trigger('timeupdate', {
+                currentTime: currentTime,
+                duration: duration
+              });
+            }
+          });
+        });
+      }
+
+      // Keep polling as long as it is playing.
+      return player.playing;
+    };
+  })(this), 1000);
+};
+
+/**
+ * Should be called when the media is paused.
+ */
+minplayer.players.base.prototype.onPaused = function() {
+
+  // Trigger an event that we are paused.
+  this.trigger('pause');
+
+  // Remove focus.
+  this.hasFocus = false;
+
+  // Say we are not playing.
+  this.playing = false;
+};
+
+/**
+ * Should be called when the media is complete.
+ */
+minplayer.players.base.prototype.onComplete = function() {
+  if (this.playing) {
+    this.onPaused();
+  }
+
+  // Stop the intervals.
+  this.playing = false;
+  this.loading = false;
+  this.hasFocus = false;
+  this.trigger('ended');
+};
+
+/**
+ * Should be called when the media is done loading.
+ */
+minplayer.players.base.prototype.onLoaded = function() {
+
+  // If we should autoplay, then just play now.
+  if (this.options.autoplay) {
+    this.play();
+  }
+
+  this.trigger('loadeddata');
+};
+
+/**
+ * Should be called when the player is waiting.
+ */
+minplayer.players.base.prototype.onWaiting = function() {
+  this.trigger('waiting');
+};
+
+/**
+ * Called when an error occurs.
+ *
+ * @param {string} errorCode The error that was triggered.
+ */
+minplayer.players.base.prototype.onError = function(errorCode) {
+  this.hasFocus = false;
+  this.trigger('error', errorCode);
+};
+
+/**
+ * @see minplayer.players.base#isReady
+ * @return {boolean} Checks to see if the Flash is ready.
+ */
+minplayer.players.base.prototype.isReady = function() {
+
+  // Return that the player is set and the ready flag is good.
+  return (this.player && this.playerReady);
+};
+
+/**
+ * Determines if the player should show the playloader.
+ *
+ * @param {string} preview The preview image.
+ * @return {bool} If this player implements its own playLoader.
+ */
+minplayer.players.base.prototype.hasPlayLoader = function(preview) {
+  return false;
+};
+
+/**
+ * Determines if the player should show the controller.
+ *
+ * @return {bool} If this player implements its own controller.
+ */
+minplayer.players.base.prototype.hasController = function() {
+  return false;
+};
+
+/**
+ * Returns if the media player is already within the DOM.
+ *
+ * @return {boolean} TRUE - if the player is in the DOM, FALSE otherwise.
+ */
+minplayer.players.base.prototype.playerFound = function() {
+  return false;
+};
+
+/**
+ * Creates the media player and inserts it in the DOM.
+ *
+ * @return {object} The media player entity.
+ */
+minplayer.players.base.prototype.create = function() {
+  this.reset();
+  return null;
+};
+
+/**
+ * Returns the media player object.
+ *
+ * @return {object} The media player object.
+ */
+minplayer.players.base.prototype.getPlayer = function() {
+  return this.player;
+};
+
+/**
+ * Loads a new media player.
+ *
+ * @param {object} file A {@link minplayer.file} object.
+ * @return {boolean} If this action was performed.
+ */
+minplayer.players.base.prototype.load = function(file) {
+
+  // Store the media file for future lookup.
+  var isString = (typeof this.mediaFile == 'string');
+  var path = isString ? this.mediaFile : this.mediaFile.path;
+  if (file && this.isReady() && (file.path != path)) {
+    this.reset();
+    this.mediaFile = file;
+    return true;
+  }
+
+  return false;
+};
+
+/**
+ * Play the loaded media file.
+ * @return {boolean} If this action was performed.
+ */
+minplayer.players.base.prototype.play = function() {
+  return this.isReady();
+};
+
+/**
+ * Pause the loaded media file.
+ * @return {boolean} If this action was performed.
+ */
+minplayer.players.base.prototype.pause = function() {
+  return this.isReady();
+};
+
+/**
+ * Stop the loaded media file.
+ * @return {boolean} If this action was performed.
+ */
+minplayer.players.base.prototype.stop = function() {
+  this.playing = false;
+  this.loading = false;
+  this.hasFocus = false;
+  return this.isReady();
+};
+
+/**
+ * Seeks to relative position.
+ *
+ * @param {number} pos Relative position.  -1 to 1 (percent), > 1 (seconds).
+ */
+minplayer.players.base.prototype.seekRelative = function(pos) {
+
+  // Get the current time asyncrhonously.
+  this.getCurrentTime((function(player) {
+    return function(currentTime) {
+
+      // Get the duration asynchronously.
+      player.getDuration(function(duration) {
+
+        // Only do this if we have a duration.
+        if (duration) {
+
+          // Get the position.
+          var seekPos = 0;
+          if ((pos > -1) && (pos < 1)) {
+            seekPos = ((currentTime / duration) + parseFloat(pos)) * duration;
+          }
+          else {
+            seekPos = (currentTime + parseFloat(pos));
+          }
+
+          // Set the seek value.
+          player.seek(seekPos);
+        }
+      });
+    };
+  })(this));
+};
+
+/**
+ * Seek the loaded media.
+ *
+ * @param {number} pos The position to seek the minplayer. 0 to 1.
+ * @return {boolean} If this action was performed.
+ */
+minplayer.players.base.prototype.seek = function(pos) {
+  return this.isReady();
+};
+
+/**
+ * Gets a value from the player.
+ *
+ * @param {string} getter The getter method on the player.
+ * @param {function} callback The callback function.
+ */
+minplayer.players.base.prototype.getValue = function(getter, callback) {
+  if (this.isReady()) {
+    var value = this.player[getter]();
+    if ((value !== undefined) && (value !== null)) {
+      callback(value);
+    }
+  }
+};
+
+/**
+ * Set the volume of the loaded minplayer.
+ *
+ * @param {number} vol -1 to 1 - The relative amount to increase or decrease.
+ */
+minplayer.players.base.prototype.setVolumeRelative = function(vol) {
+
+  // Get the volume
+  this.getVolume((function(player) {
+    return function(newVol) {
+      newVol += parseFloat(vol);
+      newVol = (newVol < 0) ? 0 : newVol;
+      newVol = (newVol > 1) ? 1 : newVol;
+      player.setVolume(newVol);
+    };
+  })(this));
+};
+
+/**
+ * Set the volume of the loaded minplayer.
+ *
+ * @param {number} vol The volume to set the media. 0 to 1.
+ * @return {boolean} If this action was performed.
+ */
+minplayer.players.base.prototype.setVolume = function(vol) {
+  this.trigger('volumeupdate', vol);
+  return this.isReady();
+};
+
+/**
+ * Get the volume from the loaded media.
+ *
+ * @param {function} callback Called when the volume is determined.
+ * @return {number} The volume of the media; 0 to 1.
+ */
+minplayer.players.base.prototype.getVolume = function(callback) {
+  return this.volume.get(callback);
+};
+
+/**
+ * Get the current time for the media being played.
+ *
+ * @param {function} callback Called when the time is determined.
+ * @return {number} The volume of the media; 0 to 1.
+ */
+minplayer.players.base.prototype.getCurrentTime = function(callback) {
+  return this.currentTime.get(callback);
+};
+
+/**
+ * Return the duration of the loaded media.
+ *
+ * @param {function} callback Called when the duration is determined.
+ * @return {number} The duration of the loaded media.
+ */
+minplayer.players.base.prototype.getDuration = function(callback) {
+  return this.duration.get(callback);
+};
+
+/**
+ * Return the start bytes for the loaded media.
+ *
+ * @param {function} callback Called when the start bytes is determined.
+ * @return {int} The bytes that were started.
+ */
+minplayer.players.base.prototype.getBytesStart = function(callback) {
+  return this.bytesStart.get(callback);
+};
+
+/**
+ * Return the bytes of media loaded.
+ *
+ * @param {function} callback Called when the bytes loaded is determined.
+ * @return {int} The amount of bytes loaded.
+ */
+minplayer.players.base.prototype.getBytesLoaded = function(callback) {
+  return this.bytesLoaded.get(callback);
+};
+
+/**
+ * Return the total amount of bytes.
+ *
+ * @param {function} callback Called when the bytes total is determined.
+ * @return {int} The total amount of bytes for this media.
+ */
+minplayer.players.base.prototype.getBytesTotal = function(callback) {
+  return this.bytesTotal.get(callback);
+};
+/** The minplayer namespace. */
+var minplayer = minplayer || {};
+
+/** All the media player implementations */
+minplayer.players = minplayer.players || {};
+
+/**
+ * @constructor
+ * @extends minplayer.display
+ * @class The HTML5 media player implementation.
+ *
+ * @param {object} context The jQuery context.
+ * @param {object} options This components options.
+ * @param {object} queue The event queue to pass events around.
+ */
+minplayer.players.html5 = function(context, options, queue) {
+
+  // Derive players base.
+  minplayer.players.base.call(this, context, options, queue);
+};
+
+/** Derive from minplayer.players.base. */
+minplayer.players.html5.prototype = new minplayer.players.base();
+
+/** Reset the constructor. */
+minplayer.players.html5.prototype.constructor = minplayer.players.html5;
+
+/**
+ * @see minplayer.players.base#getPriority
+ * @return {number} The priority of this media player.
+ */
+minplayer.players.html5.getPriority = function() {
+  return 10;
+};
+
+/**
+ * @see minplayer.players.base#canPlay
+ * @return {boolean} If this player can play this media type.
+ */
+minplayer.players.html5.canPlay = function(file) {
+  switch (file.mimetype) {
+    case 'video/ogg':
+      return !!minplayer.playTypes.videoOGG;
+    case 'video/mp4':
+    case 'video/x-mp4':
+    case 'video/m4v':
+    case 'video/x-m4v':
+      return !!minplayer.playTypes.videoH264;
+    case 'video/x-webm':
+    case 'video/webm':
+    case 'application/octet-stream':
+      return !!minplayer.playTypes.videoWEBM;
+    case 'audio/ogg':
+      return !!minplayer.playTypes.audioOGG;
+    case 'audio/mpeg':
+      return !!minplayer.playTypes.audioMP3;
+    case 'audio/mp4':
+      return !!minplayer.playTypes.audioMP4;
+    default:
+      return false;
+  }
+};
+
+/**
+ * @see minplayer.plugin.construct
+ */
+minplayer.players.html5.prototype.construct = function() {
+
+  // Call base constructor.
+  minplayer.players.base.prototype.construct.call(this);
+
+  // Set the plugin name within the options.
+  this.options.pluginName = 'html5';
+
+  // Add the player events.
+  this.addPlayerEvents();
+};
+
+/**
+ * Adds a new player event.
+ *
+ * @param {string} type The type of event being fired.
+ * @param {function} callback Called when the event is fired.
+ */
+minplayer.players.html5.prototype.addPlayerEvent = function(type, callback) {
+  if (this.player) {
+
+    // Add an event listener for this event type.
+    this.player.addEventListener(type, (function(player) {
+
+      // Get the function name.
+      var func = type + 'Event';
+
+      // If the callback already exists, then remove it from the player.
+      if (player[func]) {
+        player.player.removeEventListener(type, player[func], false);
+      }
+
+      // Create a new callback.
+      player[func] = function(event) {
+        callback.call(player, event);
+      };
+
+      // Return the callback.
+      return player[func];
+
+    })(this), false);
+  }
+};
+
+/**
+ * Add events.
+ * @return {boolean} If this action was performed.
+ */
+minplayer.players.html5.prototype.addPlayerEvents = function() {
+
+  // Check if the player exists.
+  if (this.player) {
+
+    this.addPlayerEvent('abort', function() {
+      this.trigger('abort');
+    });
+    this.addPlayerEvent('loadstart', function() {
+      this.onReady();
+    });
+    this.addPlayerEvent('loadeddata', function() {
+      this.onLoaded();
+    });
+    this.addPlayerEvent('loadedmetadata', function() {
+      this.onLoaded();
+    });
+    this.addPlayerEvent('canplaythrough', function() {
+      this.onLoaded();
+    });
+    this.addPlayerEvent('ended', function() {
+      this.onComplete();
+    });
+    this.addPlayerEvent('pause', function() {
+      this.onPaused();
+    });
+    this.addPlayerEvent('play', function() {
+      this.onPlaying();
+    });
+    this.addPlayerEvent('playing', function() {
+      this.onPlaying();
+    });
+
+    var errorSent = false;
+    this.addPlayerEvent('error', function() {
+      if (!errorSent) {
+        errorSent = true;
+        this.trigger('error', 'An error occured - ' + this.player.error.code);
+      }
+    });
+
+    this.addPlayerEvent('waiting', function() {
+      this.onWaiting();
+    });
+    this.addPlayerEvent('durationchange', function() {
+      this.duration.set(this.player.duration);
+      this.trigger('durationchange', {duration: this.player.duration});
+    });
+    this.addPlayerEvent('progress', function(event) {
+      this.bytesTotal.set(event.total);
+      this.bytesLoaded.set(event.loaded);
+    });
+    return true;
+  }
+
+  return false;
+};
+
+/**
+ * @see minplayer.players.base#onReady
+ */
+minplayer.players.html5.prototype.onReady = function() {
+  minplayer.players.base.prototype.onReady.call(this);
+
+  // Android just say we are loaded here.
+  if (minplayer.isAndroid) {
+    this.onLoaded();
+  }
+
+  // iOS devices are strange in that they don't autoload.
+  if (minplayer.isIDevice) {
+    this.play();
+    setTimeout((function(player) {
+      return function() {
+        player.pause();
+        player.onLoaded();
+      };
+    })(this), 1);
+  }
+};
+
+/**
+ * @see minplayer.players.base#playerFound
+ * @return {boolean} TRUE - if the player is in the DOM, FALSE otherwise.
+ */
+minplayer.players.html5.prototype.playerFound = function() {
+  return (this.display.find(this.mediaFile.type).length > 0);
+};
+
+/**
+ * @see minplayer.players.base#create
+ * @return {object} The media player entity.
+ */
+minplayer.players.html5.prototype.create = function() {
+  minplayer.players.base.prototype.create.call(this);
+  var element = jQuery(document.createElement(this.mediaFile.type))
+  .attr(this.options.attributes)
+  .append(
+    jQuery(document.createElement('source')).attr({
+      'src': this.mediaFile.path
+    })
+  );
+
+  // Fix the fluid width and height.
+  element.eq(0)[0].setAttribute('width', '100%');
+  element.eq(0)[0].setAttribute('height', '100%');
+  element.eq(0)[0].setAttribute('autobuffer', true);
+  var option = this.options.autoload ? 'auto' : 'metadata';
+  option = minplayer.isIDevice ? 'metadata' : option;
+  element.eq(0)[0].setAttribute('preload', option);
+  return element;
+};
+
+/**
+ * @see minplayer.players.base#getPlayer
+ * @return {object} The media player object.
+ */
+minplayer.players.html5.prototype.getPlayer = function() {
+  return this.elements.media.eq(0)[0];
+};
+
+/**
+ * @see minplayer.players.base#load
+ * @return {boolean} If this action was performed.
+ */
+minplayer.players.html5.prototype.load = function(file) {
+
+  // See if a load is even necessary.
+  if (minplayer.players.base.prototype.load.call(this, file)) {
+
+    // Get the current source.
+    var src = this.elements.media.attr('src');
+    if (!src) {
+      src = jQuery('source', this.elements.media).eq(0).attr('src');
+    }
+
+    // Only swap out if the new file is different from the source.
+    if (src != file.path) {
+
+      // Add a new player.
+      this.addPlayer();
+
+      // Set the new player.
+      this.player = this.getPlayer();
+
+      // Add the events again.
+      this.addPlayerEvents();
+
+      // Change the source...
+      var code = '<source src="' + file.path + '"></source>';
+      this.elements.media.removeAttr('src').empty().html(code);
+      return true;
+    }
+  }
+
+  return false;
+};
+
+/**
+ * @see minplayer.players.base#play
+ * @return {boolean} If this action was performed.
+ */
+minplayer.players.html5.prototype.play = function() {
+  if (minplayer.players.base.prototype.play.call(this)) {
+    this.player.play();
+    return true;
+  }
+
+  return false;
+};
+
+/**
+ * @see minplayer.players.base#pause
+ * @return {boolean} If this action was performed.
+ */
+minplayer.players.html5.prototype.pause = function() {
+  if (minplayer.players.base.prototype.pause.call(this)) {
+    this.player.pause();
+    return true;
+  }
+
+  return false;
+};
+
+/**
+ * @see minplayer.players.base#stop
+ * @return {boolean} If this action was performed.
+ */
+minplayer.players.html5.prototype.stop = function() {
+  if (minplayer.players.base.prototype.stop.call(this)) {
+    this.player.pause();
+    this.player.src = '';
+    return true;
+  }
+
+  return false;
+};
+
+/**
+ * @see minplayer.players.base#seek
+ * @return {boolean} If this action was performed.
+ */
+minplayer.players.html5.prototype.seek = function(pos) {
+  if (minplayer.players.base.prototype.seek.call(this, pos)) {
+    this.player.currentTime = pos;
+    return true;
+  }
+
+  return false;
+};
+
+/**
+ * @see minplayer.players.base#setVolume
+ * @return {boolean} If this action was performed.
+ */
+minplayer.players.html5.prototype.setVolume = function(vol) {
+  if (minplayer.players.base.prototype.setVolume.call(this, vol)) {
+    this.player.volume = vol;
+    return true;
+  }
+
+  return false;
+};
+
+/**
+ * @see minplayer.players.base#getVolume
+ */
+minplayer.players.html5.prototype.getVolume = function(callback) {
+  if (this.isReady()) {
+    callback(this.player.volume);
+  }
+};
+
+/**
+ * @see minplayer.players.base#getDuration
+ */
+minplayer.players.html5.prototype.getDuration = function(callback) {
+  if (this.isReady()) {
+    callback(this.player.duration);
+  }
+};
+
+/**
+ * @see minplayer.players.base#getCurrentTime
+ */
+minplayer.players.html5.prototype.getCurrentTime = function(callback) {
+  if (this.isReady()) {
+    callback(this.player.currentTime);
+  }
+};
+
+/**
+ * @see minplayer.players.base#getBytesLoaded
+ */
+minplayer.players.html5.prototype.getBytesLoaded = function(callback) {
+  if (this.isReady()) {
+    var loaded = 0;
+
+    // Check several different possibilities.
+    if (this.bytesLoaded.value) {
+      loaded = this.bytesLoaded.value;
+    }
+    else if (this.player.buffered &&
+        this.player.buffered.length > 0 &&
+        this.player.buffered.end &&
+        this.player.duration) {
+      loaded = this.player.buffered.end(0);
+    }
+    else if (this.player.bytesTotal != undefined &&
+             this.player.bytesTotal > 0 &&
+             this.player.bufferedBytes != undefined) {
+      loaded = this.player.bufferedBytes;
+    }
+
+    // Return the loaded amount.
+    callback(loaded);
+  }
+};
+
+/**
+ * @see minplayer.players.base#getBytesTotal
+ */
+minplayer.players.html5.prototype.getBytesTotal = function(callback) {
+  if (this.isReady()) {
+
+    var total = 0;
+
+    // Check several different possibilities.
+    if (this.bytesTotal.value) {
+      total = this.bytesTotal.value;
+    }
+    else if (this.player.buffered &&
+        this.player.buffered.length > 0 &&
+        this.player.buffered.end &&
+        this.player.duration) {
+      total = this.player.duration;
+    }
+    else if (this.player.bytesTotal != undefined &&
+             this.player.bytesTotal > 0 &&
+             this.player.bufferedBytes != undefined) {
+      total = this.player.bytesTotal;
+    }
+
+    // Return the loaded amount.
+    callback(total);
+  }
+};
+/** The minplayer namespace. */
+var minplayer = minplayer || {};
+
+/** All the media player implementations */
+minplayer.players = minplayer.players || {};
+
+/**
+ * @constructor
+ * @extends minplayer.display
+ * @class The Flash media player class to control the flash fallback.
+ *
+ * @param {object} context The jQuery context.
+ * @param {object} options This components options.
+ * @param {object} queue The event queue to pass events around.
+ */
+minplayer.players.flash = function(context, options, queue) {
+
+  // Derive from players base.
+  minplayer.players.base.call(this, context, options, queue);
+};
+
+/** Derive from minplayer.players.base. */
+minplayer.players.flash.prototype = new minplayer.players.base();
+
+/** Reset the constructor. */
+minplayer.players.flash.prototype.constructor = minplayer.players.flash;
+
+/**
+ * @see minplayer.plugin.construct
+ * @this minplayer.players.flash
+ */
+minplayer.players.flash.prototype.construct = function() {
+
+  // Call the players.base constructor.
+  minplayer.players.base.prototype.construct.call(this);
+
+  // Set the plugin name within the options.
+  this.options.pluginName = 'flash';
+};
+
+/**
+ * @see minplayer.players.base#getPriority
+ * @return {number} The priority of this media player.
+ */
+minplayer.players.flash.getPriority = function() {
+  return 0;
+};
+
+/**
+ * @see minplayer.players.base#canPlay
+ * @return {boolean} If this player can play this media type.
+ */
+minplayer.players.flash.canPlay = function(file) {
+  return false;
+};
+
+/**
+ * API to return the Flash player code provided params.
+ *
+ * @param {object} params The params used to populate the Flash code.
+ * @return {object} A Flash DOM element.
+ */
+minplayer.players.flash.prototype.getFlash = function(params) {
+  // Get the protocol.
+  var protocol = window.location.protocol;
+  if (protocol.charAt(protocol.length - 1) == ':') {
+    protocol = protocol.substring(0, protocol.length - 1);
+  }
+
+  // Insert the swfobject javascript.
+  var tag = document.createElement('script');
+  var src = protocol;
+  src += '://ajax.googleapis.com/ajax/libs/swfobject/2.2/swfobject.js';
+  tag.src = src;
+  var firstScriptTag = document.getElementsByTagName('script')[0];
+  firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);
+
+  // Create the swfobject.
+  setTimeout((function(player) {
+    return function tryAgain() {
+      if (typeof swfobject !== 'undefined') {
+        swfobject.embedSWF(
+          params.swf,
+          params.id,
+          params.width,
+          params.height,
+          '9.0.0',
+          false,
+          params.flashvars,
+          {
+            allowscriptaccess: 'always',
+            allowfullscreen: 'true',
+            wmode: params.wmode,
+            quality: 'high'
+          },
+          {
+            id: params.id,
+            name: params.id,
+            playerType: 'flash'
+          },
+          function(e) {
+            player.player = e.ref;
+          }
+        );
+      }
+      else {
+
+        // Try again after 200 ms.
+        setTimeout(tryAgain, 200);
+      }
+    };
+  })(this), 200);
+
+  // Return the div tag...
+  return '<div id="' + params.id + '"></div>';
+};
+
+/**
+ * @see minplayer.players.base#playerFound
+ * @return {boolean} TRUE - if the player is in the DOM, FALSE otherwise.
+ */
+minplayer.players.flash.prototype.playerFound = function() {
+  return (this.display.find('object[playerType="flash"]').length > 0);
+};
+/** The minplayer namespace. */
+var minplayer = minplayer || {};
+
+/** All the media player implementations */
+minplayer.players = minplayer.players || {};
+
+/**
+ * @constructor
+ * @extends minplayer.display
+ * @class The Flash media player class to control the flash fallback.
+ *
+ * @param {object} context The jQuery context.
+ * @param {object} options This components options.
+ * @param {object} queue The event queue to pass events around.
+ */
+minplayer.players.minplayer = function(context, options, queue) {
+
+  // Derive from players flash.
+  minplayer.players.flash.call(this, context, options, queue);
+};
+
+/** Derive from minplayer.players.flash. */
+minplayer.players.minplayer.prototype = new minplayer.players.flash();
+
+/** Reset the constructor. */
+minplayer.players.minplayer.prototype.constructor = minplayer.players.minplayer;
+
+/**
+ * @see minplayer.plugin.construct
+ * @this minplayer.players.minplayer
+ */
+minplayer.players.minplayer.prototype.construct = function() {
+
+  // Call the players.flash constructor.
+  minplayer.players.flash.prototype.construct.call(this);
+
+  // Set the plugin name within the options.
+  this.options.pluginName = 'minplayer';
+};
+
+/**
+ * Called when the Flash player is ready.
+ *
+ * @param {string} id The media player ID.
+ */
+window.onFlashPlayerReady = function(id) {
+  var media = minplayer.get(id, 'media');
+  var i = media.length;
+  while (i--) {
+    media[i].onReady();
+  }
+};
+
+/**
+ * Called when the Flash player updates.
+ *
+ * @param {string} id The media player ID.
+ * @param {string} eventType The event type that was triggered.
+ */
+window.onFlashPlayerUpdate = function(id, eventType) {
+  var media = minplayer.get(id, 'media');
+  var i = media.length;
+  while (i--) {
+    media[i].onMediaUpdate(eventType);
+  }
+};
+
+/**
+ * Used to debug from the Flash player to the browser console.
+ *
+ * @param {string} debug The debug string.
+ */
+window.onFlashPlayerDebug = function(debug) {
+  if (console && console.log) {
+    console.log(debug);
+  }
+};
+
+/**
+ * @see minplayer.players.base#getPriority
+ * @return {number} The priority of this media player.
+ */
+minplayer.players.minplayer.getPriority = function() {
+  return 1;
+};
+
+/**
+ * @see minplayer.players.base#canPlay
+ * @return {boolean} If this player can play this media type.
+ */
+minplayer.players.minplayer.canPlay = function(file) {
+  var isWEBM = jQuery.inArray(file.mimetype, ['video/x-webm',
+    'video/webm',
+    'application/octet-stream'
+  ]) >= 0;
+  return !isWEBM && (file.type == 'video' || file.type == 'audio');
+};
+
+/**
+ * @see minplayer.players.base#create
+ * @return {object} The media player entity.
+ */
+minplayer.players.minplayer.prototype.create = function() {
+
+  // Make sure we provide default options...
+  this.options = jQuery.extend({
+    swfplayer: 'flash/minplayer.swf'
+  }, this.options);
+
+  minplayer.players.flash.prototype.create.call(this);
+
+  // The flash variables for this flash player.
+  var flashVars = {
+    'id': this.options.id,
+    'debug': this.options.debug,
+    'config': 'nocontrols',
+    'file': this.mediaFile.path,
+    'autostart': this.options.autoplay,
+    'autoload': this.options.autoload
+  };
+
+  // Return a flash media player object.
+  return this.getFlash({
+    swf: this.options.swfplayer,
+    id: this.options.id + '_player',
+    width: '100%',
+    height: '100%',
+    flashvars: flashVars,
+    wmode: this.options.wmode
+  });
+};
+
+/**
+ * Called when the Flash player has an update.
+ *
+ * @param {string} eventType The event that was triggered in the player.
+ */
+minplayer.players.minplayer.prototype.onMediaUpdate = function(eventType) {
+  switch (eventType) {
+    case 'mediaMeta':
+      this.onLoaded();
+      break;
+    case 'mediaPlaying':
+      if (this.minplayerloaded) {
+        this.onPlaying();
+      }
+      break;
+    case 'mediaPaused':
+      this.minplayerloaded = true;
+      this.onPaused();
+      break;
+    case 'mediaComplete':
+      this.onComplete();
+      break;
+  }
+};
+
+/**
+ * Resets all variables.
+ */
+minplayer.players.minplayer.prototype.clear = function() {
+  minplayer.players.flash.prototype.clear.call(this);
+  this.minplayerloaded = this.options.autoplay;
+};
+
+/**
+ * @see minplayer.players.base#load
+ * @return {boolean} If this action was performed.
+ */
+minplayer.players.minplayer.prototype.load = function(file) {
+  if (minplayer.players.flash.prototype.load.call(this, file)) {
+    this.player.loadMedia(file.path, file.stream);
+    return true;
+  }
+
+  return false;
+};
+
+/**
+ * @see minplayer.players.base#play
+ * @return {boolean} If this action was performed.
+ */
+minplayer.players.minplayer.prototype.play = function() {
+  if (minplayer.players.flash.prototype.play.call(this)) {
+    this.player.playMedia();
+    return true;
+  }
+
+  return false;
+};
+
+/**
+ * @see minplayer.players.base#pause
+ * @return {boolean} If this action was performed.
+ */
+minplayer.players.minplayer.prototype.pause = function() {
+  if (minplayer.players.flash.prototype.pause.call(this)) {
+    this.player.pauseMedia();
+    return true;
+  }
+
+  return false;
+};
+
+/**
+ * @see minplayer.players.base#stop
+ * @return {boolean} If this action was performed.
+ */
+minplayer.players.minplayer.prototype.stop = function() {
+  if (minplayer.players.flash.prototype.stop.call(this)) {
+    this.player.stopMedia();
+    return true;
+  }
+
+  return false;
+};
+
+/**
+ * @see minplayer.players.base#seek
+ * @return {boolean} If this action was performed.
+ */
+minplayer.players.minplayer.prototype.seek = function(pos) {
+  if (minplayer.players.flash.prototype.seek.call(this, pos)) {
+    this.player.seekMedia(pos);
+    return true;
+  }
+
+  return false;
+};
+
+/**
+ * @see minplayer.players.base#setVolume
+ * @return {boolean} If this action was performed.
+ */
+minplayer.players.minplayer.prototype.setVolume = function(vol) {
+  if (minplayer.players.flash.prototype.setVolume.call(this, vol)) {
+    this.player.setVolume(vol);
+    return true;
+  }
+
+  return false;
+};
+
+/**
+ * @see minplayer.players.base#getVolume
+ */
+minplayer.players.minplayer.prototype.getVolume = function(callback) {
+  if (this.isReady()) {
+    var vol = 0;
+    var tries = 5;
+    setTimeout((function(player) {
+      return function tryAgain() {
+        vol = player.player.getVolume();
+        if (!vol && (tries-- > 0)) {
+          setTimeout(tryAgain, 200);
+        }
+        else {
+          callback(vol);
+        }
+      };
+    })(this), 200);
+  }
+};
+
+/**
+ * @see minplayer.players.flash#getDuration
+ */
+minplayer.players.minplayer.prototype.getDuration = function(callback) {
+  if (this.isReady()) {
+
+    // Check to see if it is immediately available.
+    var duration = this.player.getDuration();
+    if (duration) {
+      callback(duration);
+    }
+    else {
+
+      // If not, then poll every second for the duration.
+      this.poll((function(player) {
+        return function() {
+          duration = player.player.getDuration();
+          if (duration) {
+            callback(duration);
+          }
+          return !duration;
+        };
+      })(this), 1000);
+    }
+  }
+};
+
+/**
+ * @see minplayer.players.base#getCurrentTime
+ */
+minplayer.players.minplayer.prototype.getCurrentTime = function(callback) {
+  if (this.isReady()) {
+    callback(this.player.getCurrentTime());
+  }
+};
+
+/**
+ * @see minplayer.players.base#getBytesLoaded
+ */
+minplayer.players.minplayer.prototype.getBytesLoaded = function(callback) {
+  if (this.isReady()) {
+    callback(this.player.getMediaBytesLoaded());
+  }
+};
+
+/**
+ * @see minplayer.players.base#getBytesTotal.
+ */
+minplayer.players.minplayer.prototype.getBytesTotal = function(callback) {
+  if (this.isReady()) {
+    callback(this.player.getMediaBytesTotal());
+  }
+};
+/** The minplayer namespace. */
+var minplayer = minplayer || {};
+
+/** All the media player implementations */
+minplayer.players = minplayer.players || {};
+
+/**
+ * @constructor
+ * @extends minplayer.players.base
+ * @class The YouTube media player.
+ *
+ * @param {object} context The jQuery context.
+ * @param {object} options This components options.
+ * @param {object} queue The event queue to pass events around.
+ */
+minplayer.players.youtube = function(context, options, queue) {
+
+  /** The quality of the YouTube stream. */
+  this.quality = 'default';
+
+  // Derive from players base.
+  minplayer.players.base.call(this, context, options, queue);
+};
+
+/** Derive from minplayer.players.base. */
+minplayer.players.youtube.prototype = new minplayer.players.base();
+
+/** Reset the constructor. */
+minplayer.players.youtube.prototype.constructor = minplayer.players.youtube;
+
+/**
+ * @see minplayer.plugin.construct
+ * @this minplayer.players.youtube
+ */
+minplayer.players.youtube.prototype.construct = function() {
+
+  // Call the players.flash constructor.
+  minplayer.players.base.prototype.construct.call(this);
+
+  // Set the plugin name within the options.
+  this.options.pluginName = 'youtube';
+};
+
+/**
+ * @see minplayer.players.base#getPriority
+ * @return {number} The priority of this media player.
+ */
+minplayer.players.youtube.getPriority = function() {
+  return 10;
+};
+
+/**
+ * @see minplayer.players.base#canPlay
+ * @return {boolean} If this player can play this media type.
+ */
+minplayer.players.youtube.canPlay = function(file) {
+
+  // Check for the mimetype for youtube.
+  if (file.mimetype === 'video/youtube') {
+    return true;
+  }
+
+  // If the path is a YouTube path, then return true.
+  return (file.path.search(/^http(s)?\:\/\/(www\.)?youtube\.com/i) === 0);
+};
+
+/**
+ * Return the ID for a provided media file.
+ *
+ * @param {object} file A {@link minplayer.file} object.
+ * @return {string} The ID for the provided media.
+ */
+minplayer.players.youtube.getMediaId = function(file) {
+  var reg = /^http[s]?\:\/\/(www\.)?youtube\.com\/watch\?v=([a-zA-Z0-9_\-]+)/i;
+  if (file.path.search(reg) === 0) {
+    return file.path.match(reg)[2];
+  }
+  else {
+    return file.path;
+  }
+};
+
+/**
+ * Returns a preview image for this media player.
+ *
+ * @param {object} file A {@link minplayer.file} object.
+ * @param {string} type The type of image.
+ * @param {function} callback Called when the image is retrieved.
+ */
+minplayer.players.youtube.getImage = function(file, type, callback) {
+  type = (type == 'thumbnail') ? '1' : '0';
+  callback('http://img.youtube.com/vi/' + file.id + '/' + type + '.jpg');
+};
+
+/**
+ * Translates the player state for the YouTube API player.
+ *
+ * @param {number} playerState The YouTube player state.
+ */
+minplayer.players.youtube.prototype.setPlayerState = function(playerState) {
+  switch (playerState) {
+    case YT.PlayerState.CUED:
+      break;
+    case YT.PlayerState.BUFFERING:
+      this.onWaiting();
+      break;
+    case YT.PlayerState.PAUSED:
+      this.onPaused();
+      break;
+    case YT.PlayerState.PLAYING:
+      this.onPlaying();
+      break;
+    case YT.PlayerState.ENDED:
+      this.onComplete();
+      break;
+    default:
+      break;
+  }
+};
+
+/**
+ * Called when an error occurs.
+ *
+ * @param {string} event The onReady event that was triggered.
+ */
+minplayer.players.youtube.prototype.onReady = function(event) {
+  minplayer.players.base.prototype.onReady.call(this);
+  if (!this.options.autoplay) {
+    this.pause();
+  }
+  this.onLoaded();
+};
+
+/**
+ * Checks to see if this player can be found.
+ * @return {bool} TRUE - Player is found, FALSE - otherwise.
+ */
+minplayer.players.youtube.prototype.playerFound = function() {
+  var id = 'iframe#' + this.options.id + '-player.youtube-player';
+  var iframe = this.display.find(id);
+  return (iframe.length > 0);
+};
+
+/**
+ * Called when the player state changes.
+ *
+ * @param {object} event A JavaScript Event.
+ */
+minplayer.players.youtube.prototype.onPlayerStateChange = function(event) {
+  this.setPlayerState(event.data);
+};
+
+/**
+ * Called when the player quality changes.
+ *
+ * @param {string} newQuality The new quality for the change.
+ */
+minplayer.players.youtube.prototype.onQualityChange = function(newQuality) {
+  this.quality = newQuality.data;
+};
+
+/**
+ * Determines if the player should show the playloader.
+ *
+ * @param {string} preview The preview image.
+ * @return {bool} If this player implements its own playLoader.
+ */
+minplayer.players.youtube.prototype.hasPlayLoader = function(preview) {
+  return minplayer.hasTouch || !preview;
+};
+
+/**
+ * Determines if the player should show the controller.
+ *
+ * @return {bool} If this player implements its own playLoader.
+ */
+minplayer.players.youtube.prototype.hasController = function() {
+  return minplayer.isIDevice;
+};
+
+/**
+ * @see minplayer.players.base#create
+ * @return {object} The media player entity.
+ */
+minplayer.players.youtube.prototype.create = function() {
+  minplayer.players.base.prototype.create.call(this);
+
+  // Insert the YouTube iframe API player.
+  var tag = document.createElement('script');
+  tag.src = 'https://www.youtube.com/player_api';
+  var firstScriptTag = document.getElementsByTagName('script')[0];
+  firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);
+
+  // Get the player ID.
+  this.playerId = this.options.id + '-player';
+
+  // Poll until the YouTube API is ready.
+  this.poll((function(player) {
+    return function() {
+      var ready = jQuery('#' + player.playerId).length > 0;
+      ready = ready && ('YT' in window);
+      ready = ready && (typeof YT.Player == 'function');
+      if (ready) {
+        // Determine the origin of this script.
+        jQuery('#' + player.playerId).addClass('youtube-player');
+        var origin = location.protocol;
+        origin += '//' + location.hostname;
+        origin += (location.port && ':' + location.port);
+
+        var playerVars = {};
+        if (minplayer.isIDevice) {
+          playerVars.origin = origin;
+        }
+        else {
+          playerVars = {
+            enablejsapi: minplayer.isIDevice ? 0 : 1,
+            origin: origin,
+            wmode: 'opaque',
+            controls: minplayer.isAndroid ? 1 : 0
+          };
+        }
+
+        // Create the player.
+        player.player = new YT.Player(player.playerId, {
+          height: '100%',
+          width: '100%',
+          frameborder: 0,
+          videoId: player.mediaFile.id,
+          playerVars: playerVars,
+          events: {
+            'onReady': function(event) {
+              player.onReady(event);
+            },
+            'onStateChange': function(event) {
+              player.onPlayerStateChange(event);
+            },
+            'onPlaybackQualityChange': function(newQuality) {
+              player.onQualityChange(newQuality);
+            },
+            'onError': function(errorCode) {
+              player.onError(errorCode);
+            }
+          }
+        });
+      }
+      return !ready;
+    };
+  })(this), 200);
+
+  // Return the player.
+  return jQuery(document.createElement('div')).attr({
+    id: this.playerId
+  });
+};
+
+/**
+ * @see minplayer.players.base#load
+ * @return {boolean} If this action was performed.
+ */
+minplayer.players.youtube.prototype.load = function(file) {
+  if (minplayer.players.base.prototype.load.call(this, file)) {
+    this.player.loadVideoById(file.id, 0, this.quality);
+    return true;
+  }
+
+  return false;
+};
+
+/**
+ * @see minplayer.players.base#play
+ * @return {boolean} If this action was performed.
+ */
+minplayer.players.youtube.prototype.play = function() {
+  if (minplayer.players.base.prototype.play.call(this)) {
+    this.onWaiting();
+    this.player.playVideo();
+    return true;
+  }
+
+  return false;
+};
+
+/**
+ * @see minplayer.players.base#pause
+ * @return {boolean} If this action was performed.
+ */
+minplayer.players.youtube.prototype.pause = function() {
+  if (minplayer.players.base.prototype.pause.call(this)) {
+    this.player.pauseVideo();
+    return true;
+  }
+
+  return false;
+};
+
+/**
+ * @see minplayer.players.base#stop
+ * @return {boolean} If this action was performed.
+ */
+minplayer.players.youtube.prototype.stop = function() {
+  if (minplayer.players.base.prototype.stop.call(this)) {
+    this.player.stopVideo();
+    return true;
+  }
+
+  return false;
+};
+
+/**
+ * @see minplayer.players.base#seek
+ * @return {boolean} If this action was performed.
+ */
+minplayer.players.youtube.prototype.seek = function(pos) {
+  if (minplayer.players.base.prototype.seek.call(this, pos)) {
+    this.onWaiting();
+    this.player.seekTo(pos, true);
+    return true;
+  }
+
+  return false;
+};
+
+/**
+ * @see minplayer.players.base#setVolume
+ * @return {boolean} If this action was performed.
+ */
+minplayer.players.youtube.prototype.setVolume = function(vol) {
+  if (minplayer.players.base.prototype.setVolume.call(this, vol)) {
+    this.player.setVolume(vol * 100);
+    return true;
+  }
+
+  return false;
+};
+
+/**
+ * @see minplayer.players.base#getVolume
+ */
+minplayer.players.youtube.prototype.getVolume = function(callback) {
+  this.getValue('getVolume', callback);
+};
+
+/**
+ * @see minplayer.players.base#getDuration.
+ */
+minplayer.players.youtube.prototype.getDuration = function(callback) {
+  this.getValue('getDuration', callback);
+};
+
+/**
+ * @see minplayer.players.base#getCurrentTime
+ */
+minplayer.players.youtube.prototype.getCurrentTime = function(callback) {
+  this.getValue('getCurrentTime', callback);
+};
+
+/**
+ * @see minplayer.players.base#getBytesStart.
+ */
+minplayer.players.youtube.prototype.getBytesStart = function(callback) {
+  this.getValue('getVideoStartBytes', callback);
+};
+
+/**
+ * @see minplayer.players.base#getBytesLoaded.
+ */
+minplayer.players.youtube.prototype.getBytesLoaded = function(callback) {
+  this.getValue('getVideoBytesLoaded', callback);
+};
+
+/**
+ * @see minplayer.players.base#getBytesTotal.
+ */
+minplayer.players.youtube.prototype.getBytesTotal = function(callback) {
+  this.getValue('getVideoBytesTotal', callback);
+};
+/** The minplayer namespace. */
+var minplayer = minplayer || {};
+
+/** All the media player implementations */
+minplayer.players = minplayer.players || {};
+
+/**
+ * @constructor
+ * @extends minplayer.players.base
+ * @class The vimeo media player.
+ *
+ * @param {object} context The jQuery context.
+ * @param {object} options This components options.
+ * @param {object} queue The event queue to pass events around.
+ */
+minplayer.players.vimeo = function(context, options, queue) {
+
+  // Derive from players base.
+  minplayer.players.base.call(this, context, options, queue);
+};
+
+/** Derive from minplayer.players.base. */
+minplayer.players.vimeo.prototype = new minplayer.players.base();
+
+/** Reset the constructor. */
+minplayer.players.vimeo.prototype.constructor = minplayer.players.vimeo;
+
+/**
+ * @see minplayer.plugin.construct
+ * @this minplayer.players.vimeo
+ */
+minplayer.players.vimeo.prototype.construct = function() {
+
+  // Call the players.flash constructor.
+  minplayer.players.base.prototype.construct.call(this);
+
+  // Set the plugin name within the options.
+  this.options.pluginName = 'vimeo';
+};
+
+/**
+ * @see minplayer.players.base#getPriority
+ * @return {number} The priority of this media player.
+ */
+minplayer.players.vimeo.getPriority = function() {
+  return 10;
+};
+
+/**
+ * @see minplayer.players.base#canPlay
+ * @return {boolean} If this player can play this media type.
+ */
+minplayer.players.vimeo.canPlay = function(file) {
+
+  // Check for the mimetype for vimeo.
+  if (file.mimetype === 'video/vimeo') {
+    return true;
+  }
+
+  // If the path is a vimeo path, then return true.
+  return (file.path.search(/^http(s)?\:\/\/(www\.)?vimeo\.com/i) === 0);
+};
+
+/**
+ * Determines if the player should show the playloader.
+ *
+ * @param {string} preview The preview image.
+ * @return {bool} If this player implements its own playLoader.
+ */
+minplayer.players.vimeo.prototype.hasPlayLoader = function(preview) {
+  return minplayer.hasTouch || !preview;
+};
+
+/**
+ * Determines if the player should show the playloader.
+ *
+ * @return {bool} If this player implements its own playLoader.
+ */
+minplayer.players.vimeo.prototype.hasController = function() {
+  return minplayer.hasTouch;
+};
+
+/**
+ * Return the ID for a provided media file.
+ *
+ * @param {object} file A {@link minplayer.file} object.
+ * @return {string} The ID for the provided media.
+ */
+minplayer.players.vimeo.getMediaId = function(file) {
+  var regex = /^http[s]?\:\/\/(www\.)?vimeo\.com\/(\?v\=)?([0-9]+)/i;
+  if (file.path.search(regex) === 0) {
+    return file.path.match(regex)[3];
+  }
+  else {
+    return file.path;
+  }
+};
+
+/**
+ * Returns a preview image for this media player.
+ *
+ * @param {object} file A {@link minplayer.file} object.
+ * @param {string} type The type of image.
+ * @param {function} callback Called when the image is retrieved.
+ */
+minplayer.players.vimeo.getImage = function(file, type, callback) {
+  jQuery.ajax({
+    url: 'http://vimeo.com/api/v2/video/' + file.id + '.json',
+    dataType: 'jsonp',
+    success: function(data) {
+      callback(data[0].thumbnail_large);
+    }
+  });
+};
+
+/**
+ * @see minplayer.players.base#reset
+ */
+minplayer.players.vimeo.prototype.reset = function() {
+
+  // Reset the flash variables..
+  minplayer.players.base.prototype.reset.call(this);
+};
+
+/**
+ * @see minplayer.players.base#create
+ * @return {object} The media player entity.
+ */
+minplayer.players.vimeo.prototype.create = function() {
+  minplayer.players.base.prototype.create.call(this);
+
+  // Insert the Vimeo Froogaloop player.
+  var tag = document.createElement('script');
+  tag.src = 'http://a.vimeocdn.com/js/froogaloop2.min.js';
+  var firstScriptTag = document.getElementsByTagName('script')[0];
+  firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);
+
+  // Create the iframe for this player.
+  var iframe = document.createElement('iframe');
+  iframe.setAttribute('id', this.options.id + '-player');
+  iframe.setAttribute('type', 'text/html');
+  iframe.setAttribute('width', '100%');
+  iframe.setAttribute('height', '100%');
+  iframe.setAttribute('frameborder', '0');
+  jQuery(iframe).addClass('vimeo-player');
+
+  // Get the source.
+  var src = 'http://player.vimeo.com/video/';
+  src += this.mediaFile.id + '?';
+
+  // Add the parameters to the src.
+  src += jQuery.param({
+    'wmode': 'opaque',
+    'api': 1,
+    'player_id': this.options.id + '-player',
+    'title': 0,
+    'byline': 0,
+    'portrait': 0,
+    'autoplay': this.options.autoplay,
+    'loop': this.options.loop
+  });
+
+  // Set the source of the iframe.
+  iframe.setAttribute('src', src);
+
+  // Now register this player when the froogaloop code is loaded.
+  this.poll((function(player) {
+    return function() {
+      if (window.Froogaloop) {
+        player.player = window.Froogaloop(iframe);
+        var playerTimeout = 0;
+        player.player.addEvent('ready', function() {
+          clearTimeout(playerTimeout);
+          player.onReady();
+          player.onError('');
+        });
+        playerTimeout = setTimeout(function() {
+          player.onReady();
+          player.onError('Unable to play video.');
+        }, 2000);
+      }
+      return !window.Froogaloop;
+    };
+  })(this), 200);
+
+  // Trigger that the load has started.
+  this.trigger('loadstart');
+
+  // Return the player.
+  return iframe;
+};
+
+/**
+ * @see minplayer.players.base#onReady
+ */
+minplayer.players.vimeo.prototype.onReady = function(player_id) {
+
+  // Add the other listeners.
+  this.player.addEvent('loadProgress', (function(player) {
+    return function(progress) {
+      player.duration.set(parseFloat(progress.duration));
+      player.bytesLoaded.set(progress.bytesLoaded);
+      player.bytesTotal.set(progress.bytesTotal);
+    };
+  })(this));
+
+  this.player.addEvent('playProgress', (function(player) {
+    return function(progress) {
+      player.duration.set(parseFloat(progress.duration));
+      player.currentTime.set(parseFloat(progress.seconds));
+    };
+  })(this));
+
+  this.player.addEvent('play', (function(player) {
+    return function() {
+      player.onPlaying();
+    };
+  })(this));
+
+  this.player.addEvent('pause', (function(player) {
+    return function() {
+      player.onPaused();
+    };
+  })(this));
+
+  this.player.addEvent('finish', (function(player) {
+    return function() {
+      player.onComplete();
+    };
+  })(this));
+
+  minplayer.players.base.prototype.onReady.call(this);
+  this.onLoaded();
+};
+
+/**
+ * Clears the media player.
+ */
+minplayer.players.vimeo.prototype.clear = function() {
+  if (this.player) {
+    this.player.api('unload');
+  }
+  minplayer.players.base.prototype.clear.call(this);
+};
+
+/**
+ * @see minplayer.players.base#load
+ * @return {boolean} If this action was performed.
+ */
+minplayer.players.vimeo.prototype.load = function(file) {
+  if (minplayer.players.base.prototype.load.call(this, file)) {
+    this.construct();
+    return true;
+  }
+  return false;
+};
+
+/**
+ * @see minplayer.players.base#play
+ * @return {boolean} If this action was performed.
+ */
+minplayer.players.vimeo.prototype.play = function() {
+  if (minplayer.players.base.prototype.play.call(this)) {
+    this.player.api('play');
+    return true;
+  }
+
+  return false;
+};
+
+/**
+ * @see minplayer.players.base#pause
+ * @return {boolean} If this action was performed.
+ */
+minplayer.players.vimeo.prototype.pause = function() {
+  if (minplayer.players.base.prototype.pause.call(this)) {
+    this.player.api('pause');
+    return true;
+  }
+
+  return false;
+};
+
+/**
+ * @see minplayer.players.base#stop
+ * @return {boolean} If this action was performed.
+ */
+minplayer.players.vimeo.prototype.stop = function() {
+  if (minplayer.players.base.prototype.stop.call(this)) {
+    this.player.api('unload');
+    return true;
+  }
+
+  return false;
+};
+
+/**
+ * @see minplayer.players.base#seek
+ * @return {boolean} If this action was performed.
+ */
+minplayer.players.vimeo.prototype.seek = function(pos) {
+  if (minplayer.players.base.prototype.seek.call(this, pos)) {
+    this.player.api('seekTo', pos);
+    return true;
+  }
+
+  return false;
+};
+
+/**
+ * @see minplayer.players.base#setVolume
+ * @return {boolean} If this action was performed.
+ */
+minplayer.players.vimeo.prototype.setVolume = function(vol) {
+  if (minplayer.players.base.prototype.setVolume.call(this, vol)) {
+    this.volume.set(vol);
+    this.player.api('setVolume', vol);
+    return true;
+  }
+
+  return false;
+};
+
+/**
+ * @see minplayer.players.base#getVolume
+ */
+minplayer.players.vimeo.prototype.getVolume = function(callback) {
+  this.player.api('getVolume', function(vol) {
+    callback(vol);
+  });
+};
+
+/**
+ * @see minplayer.players.base#getDuration.
+ */
+minplayer.players.vimeo.prototype.getDuration = function(callback) {
+  if (this.isReady()) {
+    if (this.duration.value) {
+      callback(this.duration.value);
+    }
+    else {
+      this.player.api('getDuration', function(duration) {
+        callback(duration);
+      });
+    }
+  }
+};
+/** The minplayer namespace. */
+var minplayer = minplayer || {};
+
+/**
+ * @constructor
+ * @extends minplayer.display
+ * @class This is the base minplayer controller.  Other controllers can derive
+ * from the base and either build on top of it or simply define the elements
+ * that this base controller uses.
+ *
+ * @param {object} context The jQuery context.
+ * @param {object} options This components options.
+ */
+minplayer.controller = function(context, options) {
+
+  // Derive from display
+  minplayer.display.call(this, 'controller', context, options);
+};
+
+/** Derive from minplayer.display. */
+minplayer.controller.prototype = new minplayer.display();
+
+/** Reset the constructor. */
+minplayer.controller.prototype.constructor = minplayer.controller;
+
+/**
+ * A static function that will format a time value into a string time format.
+ *
+ * @param {integer} time An integer value of time.
+ * @return {string} A string representation of the time.
+ */
+minplayer.formatTime = function(time) {
+  time = time || 0;
+  var seconds = 0, minutes = 0, hour = 0, timeString = '';
+
+  hour = Math.floor(time / 3600);
+  time -= (hour * 3600);
+  minutes = Math.floor(time / 60);
+  time -= (minutes * 60);
+  seconds = Math.floor(time % 60);
+
+  if (hour) {
+    timeString += String(hour);
+    timeString += ':';
+  }
+
+  timeString += (minutes >= 10) ? String(minutes) : ('0' + String(minutes));
+  timeString += ':';
+  timeString += (seconds >= 10) ? String(seconds) : ('0' + String(seconds));
+  return {time: timeString, units: ''};
+};
+
+/**
+ * @see minplayer.display#getElements
+ * @return {object} The elements defined by this display.
+ */
+minplayer.controller.prototype.getElements = function() {
+  var elements = minplayer.display.prototype.getElements.call(this);
+  return jQuery.extend(elements, {
+    play: null,
+    pause: null,
+    fullscreen: null,
+    seek: null,
+    progress: null,
+    volume: null,
+    timer: null
+  });
+};
+
+/**
+ * @see minplayer.plugin#construct
+ */
+minplayer.controller.prototype.construct = function() {
+
+  // Call the minplayer plugin constructor.
+  minplayer.display.prototype.construct.call(this);
+
+  // Set the plugin name within the options.
+  this.options.pluginName = 'controller';
+
+  // Keep track of if we are dragging...
+  this.dragging = false;
+
+  // Keep track of the current volume.
+  this.vol = 0;
+
+  // If they have a seek bar.
+  if (this.elements.seek) {
+
+    // Create the seek bar slider control.
+    this.seekBar = this.elements.seek.slider({
+      range: 'min',
+      create: function(event, ui) {
+        jQuery('.ui-slider-range', event.target).addClass('ui-state-active');
+      }
+    });
+  }
+
+  // If they have a volume bar.
+  if (this.elements.volume) {
+
+    // Create the volume bar slider control.
+    this.volumeBar = this.elements.volume.slider({
+      range: 'min',
+      orientation: 'vertical'
+    });
+  }
+
+  // Get the player plugin.
+  this.get('player', function(player) {
+
+    // If they have a fullscreen button.
+    if (this.elements.fullscreen) {
+
+      // Bind to the click event.
+      minplayer.click(this.elements.fullscreen.unbind(), function() {
+        player.toggleFullScreen();
+      }).css({'pointer' : 'hand'});
+    }
+  });
+
+  // Get the media plugin.
+  this.get('media', function(media) {
+
+    // Only bind if this player does not have its own play loader.
+    if (!media.hasController()) {
+
+      // If they have a pause button
+      if (this.elements.pause) {
+
+        // Bind to the click on this button.
+        minplayer.click(this.elements.pause.unbind(), (function(controller) {
+          return function(event) {
+            event.preventDefault();
+            controller.playPause(false, media);
+          };
+        })(this));
+
+        // Bind to the pause event of the media.
+        media.bind('pause', (function(controller) {
+          return function(event) {
+            controller.setPlayPause(true);
+          };
+        })(this));
+      }
+
+      // If they have a play button
+      if (this.elements.play) {
+
+        // Bind to the click on this button.
+        minplayer.click(this.elements.play.unbind(), (function(controller) {
+          return function(event) {
+            event.preventDefault();
+            controller.playPause(true, media);
+          };
+        })(this));
+
+        // Bind to the play event of the media.
+        media.bind('playing', (function(controller) {
+          return function(event) {
+            controller.setPlayPause(false);
+          };
+        })(this));
+      }
+
+      // If they have a duration, then trigger on duration change.
+      if (this.elements.duration) {
+
+        // Bind to the duration change event.
+        media.bind('durationchange', (function(controller) {
+          return function(event, data) {
+            controller.setTimeString('duration', data.duration);
+          };
+        })(this));
+
+        // Set the timestring to the duration.
+        media.getDuration((function(controller) {
+          return function(duration) {
+            controller.setTimeString('duration', duration);
+          };
+        })(this));
+      }
+
+      // If they have a progress element.
+      if (this.elements.progress) {
+
+        // Bind to the progress event.
+        media.bind('progress', (function(controller) {
+          return function(event, data) {
+            var percent = data.total ? (data.loaded / data.total) * 100 : 0;
+            controller.elements.progress.width(percent + '%');
+          };
+        })(this));
+      }
+
+      // If they have a seek bar or timer, bind to the timeupdate.
+      if (this.seekBar || this.elements.timer) {
+
+        // Bind to the time update event.
+        media.bind('timeupdate', (function(controller) {
+          return function(event, data) {
+            if (!controller.dragging) {
+              var value = 0;
+              if (data.duration) {
+                value = (data.currentTime / data.duration) * 100;
+              }
+
+              // Update the seek bar if it exists.
+              if (controller.seekBar) {
+                controller.seekBar.slider('option', 'value', value);
+              }
+
+              controller.setTimeString('timer', data.currentTime);
+            }
+          };
+        })(this));
+      }
+
+      // If they have a seekBar element.
+      if (this.seekBar) {
+
+        // Register the events for the control bar to control the media.
+        this.seekBar.slider({
+          start: (function(controller) {
+            return function(event, ui) {
+              controller.dragging = true;
+            };
+          })(this),
+          stop: (function(controller) {
+            return function(event, ui) {
+              controller.dragging = false;
+              media.getDuration(function(duration) {
+                media.seek((ui.value / 100) * duration);
+              });
+            };
+          })(this),
+          slide: (function(controller) {
+            return function(event, ui) {
+              media.getDuration(function(duration) {
+                var time = (ui.value / 100) * duration;
+                if (!controller.dragging) {
+                  media.seek(time);
+                }
+                controller.setTimeString('timer', time);
+              });
+            };
+          })(this)
+        });
+      }
+
+      // Setup the mute button.
+      if (this.elements.mute) {
+        minplayer.click(this.elements.mute, (function(controller) {
+          return function(event) {
+            event.preventDefault();
+            var value = controller.volumeBar.slider('option', 'value');
+            if (value > 0) {
+              controller.vol = value;
+              controller.volumeBar.slider('option', 'value', 0);
+              media.setVolume(0);
+            }
+            else {
+              controller.volumeBar.slider('option', 'value', controller.vol);
+              media.setVolume(controller.vol / 100);
+            }
+          };
+        })(this));
+      }
+
+      // Setup the volume bar.
+      if (this.volumeBar) {
+
+        // Create the slider.
+        this.volumeBar.slider({
+          slide: function(event, ui) {
+            media.setVolume(ui.value / 100);
+          }
+        });
+
+        media.bind('volumeupdate', (function(controller) {
+          return function(event, vol) {
+            controller.volumeBar.slider('option', 'value', (vol * 100));
+          };
+        })(this));
+
+        // Set the volume to match that of the player.
+        media.getVolume((function(controller) {
+          return function(vol) {
+            controller.volumeBar.slider('option', 'value', (vol * 100));
+          };
+        })(this));
+      }
+    }
+    else {
+
+      // Hide this controller.
+      this.hide();
+    }
+  });
+
+  // We are now ready.
+  this.ready();
+};
+
+/**
+ * Sets the play and pause state of the control bar.
+ *
+ * @param {boolean} state TRUE - Show Play, FALSE - Show Pause.
+ */
+minplayer.controller.prototype.setPlayPause = function(state) {
+  var css = '';
+  if (this.elements.play) {
+    css = state ? 'inherit' : 'none';
+    this.elements.play.css('display', css);
+  }
+  if (this.elements.pause) {
+    css = state ? 'none' : 'inherit';
+    this.elements.pause.css('display', css);
+  }
+};
+
+/**
+ * Plays or pauses the media.
+ *
+ * @param {bool} state true => play, false => pause.
+ * @param {object} media The media player object.
+ */
+minplayer.controller.prototype.playPause = function(state, media) {
+  var type = state ? 'play' : 'pause';
+  this.display.trigger(type);
+  this.setPlayPause(!state);
+  if (media) {
+    media[type]();
+  }
+};
+
+/**
+ * Sets the time string on the control bar.
+ *
+ * @param {string} element The name of the element to set.
+ * @param {number} time The total time amount to set.
+ */
+minplayer.controller.prototype.setTimeString = function(element, time) {
+  if (this.elements[element]) {
+    this.elements[element].text(minplayer.formatTime(time).time);
+  }
+};
diff --git a/public/admin/js/osmplayer/minplayer/flash/README.txt b/public/admin/js/osmplayer/minplayer/flash/README.txt
new file mode 100755
index 00000000000..944acc3ccab
--- /dev/null
+++ b/public/admin/js/osmplayer/minplayer/flash/README.txt
@@ -0,0 +1,12 @@
+The minplayer is a GPLv3, minimalistic, skinable, plugin based Flash media player.
+
+In addition to being a minimal Flash player, it was built with a solid API so that any 
+JavaScript widget can communicate to this player easily and effectively controlling it
+from outside sources.
+
+This player was written with several objectives.
+
+ - Small and lightweight
+ - Solid plugin based system to easily build on top of this player without recompiling.
+ - Complete JavaScript API.
+ - Configurable using external XML files.
\ No newline at end of file
diff --git a/public/admin/js/osmplayer/minplayer/flash/config/config.xml b/public/admin/js/osmplayer/minplayer/flash/config/config.xml
new file mode 100644
index 00000000000..8192ae4fd72
--- /dev/null
+++ b/public/admin/js/osmplayer/minplayer/flash/config/config.xml
@@ -0,0 +1,39 @@
+<config>
+   <settings>
+   </settings>
+   <plugins>
+      <plugin>
+         <definition>com.mediafront.display.media.MediaPlayer</definition>
+         <!--
+           If you wish to dyanmically load a SWF file for your plugin instead of including
+           the definition, you can do so by just providing the path to the plugin like so, and
+           then delete the "definition" parameter above.
+         -->
+         <!--<path>http://mysite.com/plugins/plugin.swf</path>-->
+         <skin>skins/%skin/mediaPlayer.swf</skin>
+         <type>mediaPlayer</type>
+         <name>mediaPlayer</name>
+         <visible>true</visible>
+      </plugin>
+      <plugin>
+         <definition>com.mediafront.display.media.controls.PlayLoader</definition>
+         <skin>skins/%skin/playLoader.swf</skin>
+         <type>playLoader</type>
+         <name>playLoader</name>
+         <visible>true</visible>
+         <dependencies>
+            <dependency>mediaPlayer</dependency>
+         </dependencies>
+      </plugin>
+      <plugin>
+         <definition>com.mediafront.display.media.controls.ControlBar</definition>
+         <skin>skins/%skin/controlBar.swf</skin>
+         <type>controlBar</type>
+         <name>controlBar</name>
+         <visible>true</visible>
+         <dependencies>
+            <dependency>mediaPlayer</dependency>
+         </dependencies>
+      </plugin>
+   </plugins>
+</config>
diff --git a/public/admin/js/osmplayer/minplayer/flash/config/nocontrols.xml b/public/admin/js/osmplayer/minplayer/flash/config/nocontrols.xml
new file mode 100644
index 00000000000..28fef65fcdc
--- /dev/null
+++ b/public/admin/js/osmplayer/minplayer/flash/config/nocontrols.xml
@@ -0,0 +1,39 @@
+<config>
+   <settings>
+   </settings>
+   <plugins>
+      <plugin>
+         <definition>com.mediafront.display.media.MediaPlayer</definition>
+         <!--
+           If you wish to dyanmically load a SWF file for your plugin instead of including
+           the definition, you can do so by just providing the path to the plugin like so, and
+           then delete the "definition" parameter above.
+         -->
+         <!--<path>http://mysite.com/plugins/plugin.swf</path>-->
+         <skin>skins/%skin/mediaPlayer.swf</skin>
+         <type>mediaPlayer</type>
+         <name>mediaPlayer</name>
+         <visible>true</visible>
+      </plugin>
+      <plugin>
+         <definition>com.mediafront.display.media.controls.PlayLoader</definition>
+         <skin>skins/%skin/playLoader.swf</skin>
+         <type>playLoader</type>
+         <name>playLoader</name>
+         <visible>false</visible>
+         <dependencies>
+            <dependency>mediaPlayer</dependency>
+         </dependencies>
+      </plugin>
+      <plugin>
+         <definition>com.mediafront.display.media.controls.ControlBar</definition>
+         <skin>skins/%skin/controlBar.swf</skin>
+         <type>controlBar</type>
+         <name>controlBar</name>
+         <visible>false</visible>
+         <dependencies>
+            <dependency>mediaPlayer</dependency>
+         </dependencies>
+      </plugin>
+   </plugins>
+</config>
\ No newline at end of file
diff --git a/public/admin/js/osmplayer/minplayer/flash/minplayer.swf b/public/admin/js/osmplayer/minplayer/flash/minplayer.swf
new file mode 100644
index 0000000000000000000000000000000000000000..f2a17b7f9d9f19736a8fbac37dda4c3a884e5cc9
GIT binary patch
literal 16098
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

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/minplayer/flash/skins/default/controlBar.swf b/public/admin/js/osmplayer/minplayer/flash/skins/default/controlBar.swf
new file mode 100644
index 0000000000000000000000000000000000000000..dfb2f6831201e99f9dd53ba8e6c08add0c5fd415
GIT binary patch
literal 13678
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
M^&`gr1*OF1FTY>zumAu6

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/minplayer/flash/skins/default/mediaPlayer.swf b/public/admin/js/osmplayer/minplayer/flash/skins/default/mediaPlayer.swf
new file mode 100644
index 0000000000000000000000000000000000000000..3eae131ed5e2ee41f746efc2786b1c73bc4ce5de
GIT binary patch
literal 2982
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

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/minplayer/flash/skins/default/playLoader.swf b/public/admin/js/osmplayer/minplayer/flash/skins/default/playLoader.swf
new file mode 100644
index 0000000000000000000000000000000000000000..2e9a46062e5cec8175558a9917eadeb70dfeebe8
GIT binary patch
literal 2716
zcmV;N3S;#{S5pdH8UO%zoUND(bQ4t?fM@cWJWAWpX4<9&(g(<^dA5awwo;n5RLqt>
z6j)&GG&4y@l1!MHw5f>rLSa!^0Yz4x;&Sk@96Uu<g%uRsg7);`@u;x6f_1lhcH4tJ
za4HDey)#Lh7QzJWrpcXq|NFn@yMJ$TCkRO&fS`oE5R?W(c6BNQLF<wvQV1%fahI*e
zUakvzJwC<;MnzeTEbF%!49(5W`euusqTL3Q)oL{u%?7hM7ii=%Ej|_t=K7fItYRJS
z!A>wvn)I_I<<oIvtbq!!MOj&4w?VIe#I29fV>s17=$(|;5XAfjliq0H`~W3eDNSH3
zMb}Z3r?`aE(v^EKrcqZ~o2Oe$Q!avGKnToJXt-H>ls#bwpJKDoWXv_1b4~emrnxqA
zo-Kb)uCc&oG>)<jX@*Q41dHJqiwzr_a!tV4RA)BYjAmP2!D!<#x?yt)CtWRfWE|1d
z6&h}$cV|3t=Lk-JfcEffggXs{hwu_UmH|jjJW||gb5XPxV~a7r-$Obv&Y>Zg%QRBX
zRn1rvk?Z2{78)XozcwXsXAXz(B741tVQq%3AzZ@ROkIngFw_tX6`-92P|pq*iNgVM
zp~)r!FQ+LlpNk)(8G_R<${IG{l=&z&(#Nov&q-9;i-EPCBypR`WVe(Q<dqobnvDf>
zO(yG{l6-5veL-oywajWSw-*|2F&*}XQ_cVfIqVJp1>Q!P4tt|$(oKSTw*PvsQC#Tw
zLL18|!tT~k<@S=&k~wqAMnaj4*0Q|(1#=7Rru?$9@)38VLxe<?x5B+sZ<V9rhD254
z!Esv`QA^qo-uQ}jP^oBWXy}AS1vW((s&x`RLT7@YyXDJZPH^AV$1&uj5&}9yT=Ork
zY3G_&uGzsgk8+KRYaCo-;TkP8Uo-ojpWF{xo*(!rO@Hpn!vh(?pD%09bg)&cG#$<U
zy6t%BU%a0b?bw~!xv1i+P3e`+*4KA@bEEHm|M9xxMO(8<B-{2(^)FXXT=~Nn3pHog
z9{zsjZx0^qY;*t7^2ssxA?DlFL(+EQ)1qD9o&Rui+Q-StC!T6Mf6qVnT<R=yZ@zr~
z<))tfgUHUlqs>p-UYbeFads^H+sf>7|8TrHePHK4`+~uNzN>LHwQJmmoS*;nSnd9e
z+whO)?Yh`;z&n+Grt#wC?qxkU1`mAwPT$212RHOpPL$`odTrL@UvAiP>HYWSA6nG^
z^kdcdmbb#UHo2we?y0GVz5NaEZtQQHSDjXMMfof$>lo^7*q{01v&VeP`q~HLf|o3N
z2F@><w5u+RS2Rw%S9^u<mI>f}Av)gI1o55`z>CMiyHg17vS@f$u-)5+?CZ)G9bG%6
zuwr+x^KAL-^fgNlHLO|P@fpC2#KJ2Uz`J9F@$K<m6Rh3}0lZH{$NRb<-m|yIdz5|V
zy^7Z3FE6d`u`bxKzQ5<(_o=TQ80=ip_UG$qXVn1jn?iWW=y(SN@ycW2m5j4`uL)Lf
zr2yXb(edsR#QU)T-llQkZHbCEpccfdh=o^r3tsIVGv@IAD2Ue~fOlhby!!?5ejtE1
z7z^)lA-p@H<E<9ND~g3zHqPq(f8(9;L}#9RdsF9%-qSrlt6uu#)iv|ZzP*03W!v=5
zHh}j-fxWje*53Qe@#0&n1;5(hSa^|f;=L}o_f`qu-4q?~lY)3p3E(AT;XN&c_qFK1
z987|EV^*(xym$qxw^{)2v(fRc7sPv70Plmb@U{!#O^c3KxO&C0@G8cM_l98g)(YU=
z93Agdf_Og?z>CGg`<W2l8PV~s7Q`!wg;zNmuVpMnZ4Bh|HMz?Vw_U-Hxw|i)UfpxO
zeMz>pyXeg&*00<9%jv?pBel}qjh*`b-S2j8Y`c+S+P-kGdFv`=p?iAup64_MXkVYb
zviX~px+PNwPo3T<nOO7i3m+)AeCM#Nzuxp!>$x4@W?VV4_RL#HUYuupZP!r8N6P1v
zn$9V`Zx{5px#OJEs=vAvAFz<KwmB;jcK=>ue!111<J3RjcWK(^$-$1ruVk(X4n8cK
zG2^eTUzq;;$jRINI>5K81rY8^dZ=kjoBKY?iECdTJoCtY-``(cV<{}1Jg>d?Mp?-z
z0xVVM552Fnwq5IY99!LeUEI;MeBP;D_d-L8064~}pk(MNnG6QUH)uZiTQ3vC;H)vy
z6-T;~NLL!^$|7AP(v?TLibz+<cew*2I5k3XP!N*-?gEss=TQ(Gf-F$tg#WyAGINkx
zJM+1#@2~s!8=GARYPLfa0~_vNtR7qeGEM|)6F{nb#&Hnu?1U@{w9{ZP0X1OGRc@LJ
z_;5!lh*Ae8;-PxT3_*X|FcM?ae5iO6wEH9kO}8$8@`6<KDBQI-=^$W%%>Khpxc)FS
zMGj(cr3EkMFY0`9`r|jcFW%F;TDc_G6HX){l!yp~2q&W95)p%mj4kI5UhsRcmIVQp
zrF>vY%}vPw?u<9iUB2L<Fr1*F6Unbjxq~x!B|>`cVud746p71z6Yw?=v<k<V#s@;m
z6Zq#(;DFC?eiaU?i6lxrq(7b;-pi{z094`}80o7cy@ZGK5$R*+Y@_Ftq>p4t%tJmz
z$U+g~M$=P9vX@i78iL{UTr}n-OtPwm2MH$|7fOg|;+~@=lyMh3NDgD2jUZclD9@0p
zy3)rIH0ET<CL$z3$IO>fJ{F`#(6U-TO|pcPVKFz68Ghy!dEix2YcZIO#sWh_fb_7W
zPZgR9u%w4c3Z;WNo!pbp2GT>aEyK(RW)(~MhZCl0ie}=&gCI!Ehk3%9F5s4+8D(hX
zCMd5e)b$cLi77&TAHjyLL9#xOhI?d40S6;X#b91P7=^<!EeuO|!=70XR~_l<37;F>
zzC0uekl~>GeT9Pty`GdY6<`~wfaJ0A5W<|X!sxiCj8(d2mC^;AWQ<;Z+fB=_<QH%W
ziL;H;X0BE7f`tU>Ze(SR`~?oeEfNN-OFV|-<y>Xe@(-P+qA)5=m7qwfA_YO!Qn1;`
zQ_(b3i>9L)=p=M9ItA6CnP?W8jpm?J(P`*i=yY@jI#a9A&eG1-=4$m?gVv}`6vJ?~
z99BqVN>$thQ9P26sGgXVtU*&!)3oUs(n*u2=rXgib21QEgur41mLMV-B9SAo5`k3+
z9EZRY5I7!@B`72?0w*HKL`0N?h>{VJ1`(l(6p_LN49yA)X!8&_AAt)Hcn$*3RX{hr
z`2TPbEE3%$7l|cuF_@J~<WdOX_B08?J&KTX2WAD=D8ZzP+hl=MB!a~f@N*89N?=$4
zfsaz$Wvl@1VOXh>bs4)VAus}Ju;Q*R<I1@D3C8+(V|{|LKG9gOHr7ux)=R*9DKshc
zY7_%?am0^AEK;hRz>iDb?MiYbW14Ue#ZtOl3SI`TF3r9i(S9s7EJ8U^3NK3Qav@<Y
zB%+0cwUA*g5K1Z$D^*MQP~h#-bnoSZas8A}_wwO5x2fI0U@sqv8>W5A54kX$yT~j*
z9G(U4WgHPXV4$tia!e307$@?CR;K4bT`pBsx(LYSVO9imJ67;8D=ARFJBiz*MPL^n
WwJ`(9*lkundYk3H8U6>_{3BB198_rl

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/minplayer/images/bg_hr.png b/public/admin/js/osmplayer/minplayer/images/bg_hr.png
new file mode 100644
index 0000000000000000000000000000000000000000..7973bd69888c7e10ccad1111d555ceabb7cd99b6
GIT binary patch
literal 943
zcmaJ=O^ee&7!FiK7FWCot{@Ck@nrMW&tx0B-6VAbrk1u~FTzffX&bu9#AIsIdef8t
z!QZfdz=K}>3m(LO;6X3qN}Y6@>cJYA%)G<%Jn!ec>9im1@7>wsIBwrMF}iHO!q%;8
zSJ@xEd~(FL18NRvkBsOXMVM>4WQc*~qcQGc<Sw3n#C49#L9aic1N*V+5T8dWhEM#E
zu{o~ZNJ8XHF$F_B_5uxlefJ&$&(+}5vMt)7jwjy9GQz!OyYDQgj^e_`Lr_mtCg5X=
zK;oYTv6^Ubt*f$gdM!Y(hR~@7FM}G`9iWp4gEB7`9I+yTio{FBQngxr0Ax`T1yL3x
zxgb^5qO6J{*nE(Ai`<dgHCh{A%+lb5(ohwI`FzgLi#&<Of}|))sv*k-hA6~~fTE-j
z#Q99Yz_Al~A@xWAQbjZ*Gpa!r>17IjxRnj!O_^B1gan0x#EWT48PK->5B2>mI;LIx
zC*FSw$Nfc!g)WZCEOJ=mM)}lLsOk|$ltg_(&ax_YCWMlBLPDVT%D_gB7o_$YZ`-OB
z#1sV%whRq21>W;qwN$N?OUGtQQe;JvOsQrna;+v+j8dth=*?orHHb6waX>S!yXCgT
zo!oR3{E&GzaOAzfZYv@_Sf{LdyJInS>TS60&R9%yCs$y>2x(*gYIJtRrYAja$Ceq}
z!N&oc_K1!3-Ft`U>`CM;quEbB4KG%!MovB*9_3!QzFhqHwrbwK|Doo-y>auDJNSP6
T=d)j*_4El@X4^PFK7I8YBT*xD

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/minplayer/images/blacktocat.png b/public/admin/js/osmplayer/minplayer/images/blacktocat.png
new file mode 100644
index 0000000000000000000000000000000000000000..6e264fe57a2e35a2855405ac7d4102c3f6ddcdae
GIT binary patch
literal 1428
zcmeAS@N?(olHy`uVBq!ia0vp^av;pX1|+Qw)-3{3k|nMYCBgY=CFO}lsSJ)O`AMk?
zp1FzXsX?iUDV2pMQ*9U+n3Xa^B1$5BeXNr6bM+EIYV;~{3xK*A7;Nk-3KEmEQ%e+*
zQqwc@Y?a>c-mj#PnPRIHZt82`Ti~3Uk?B!Ylp0*+7m{3+ootz+WN)WnQ(*-(AUCxn
zQK2F?C$HG5!d3}vt`(3C64qBz04piUwpD^SD#ABF!8yMuRl!uxKsVXI%s|1+P|wiV
z#N6CmN5ROz&_Lh7NZ-&%*U;R`*vQJjKmiJrfVLH-q*(>IxIyg#@@$ndN=gc>^!3Zj
z%k|2Q_413-^$jg8EkR}&8R-I5=oVMzl_XZ^<`pZ$OmImpPA<wUD9OyvQvjKmn3P{y
zVygsnDZ~r81#n~YilM;-3^4tQ!~%UoJp+)JU<!SG@hi>Eg{v+u2}(t{7puX=A(aKG
z`a!A1`K3k4z=%sz23b{L<y@4SSdw29lAoUg3&ntp{F40QjQj!x=U`I>-^Aq1JP;qO
z-q+X4Gq1QLF)umQ)5TT^Xo6m5W{Q=eg`=5?o13Glvx}*rp{t>#shg3DvyriZv5}jZ
ztD`wguS<S%X>Mv>2~2MaLa!4}y`ZF!TL84#CABECEH%ZgC_h&L>}9J=EN(GzcCm0X
zaRr%YgxxI=y(w7S0@dq`Q?EYIG5Vm0MT%&c5HR(CnDAr^<iHbtY927P7Xgzs$AOa5
z3=B*ho-U3d6}QfW-_30?;IZ?o)mKhwPHT~VXqI8+n9pLCz~Z(*x<I<XoH2(%`ofZ;
z3+mVT>T6f1avxRvmvnsN+?-j<F7H>}Z~1)Zr#rqzrt`edmo44*B<0=C4>mrxHF6$p
zVws~UocMfeI`gB8pYMLYT<kBy5cl%*+P|OvOiaDG<5W_Sc2L3k=!bUB#~ZJ({Z!h(
z5cQ^m-ML}np}?nF1qJ%QZ%&+4qx_-u5%b!7*Mwh!%GW0DVVfR1^AmT&2Zx^5+9#_y
zVl?bOyxwefi2JC5G4th=kQ;{6OD@}K%_vt2<#@BBJ27y#@Q%c)SuYG()&<V!_^|eg
zNbEu8<;F38thq0oZ=U&WuIgkD`^dLEH(#C<yVZQ)bJeLhTi*Lh1xx<*XLIlWZ+j~E
zz+=Y;?pdE$&$m3i@NdO#%>zA87`NOI2w2B*JM5L`^AkN4AFQu&S+6ULTPjv;vzl4&
z-eaK_F|D4~l3hzBSF~icNT@MID=v+_X`vpuvf=8+S(<atG{hZMy2ue`t;n3Y?!6FW
z7+0vj&y&wTAN+K_C+A?+FM45h$mB}pfT9AcHouH#b+t?P^&V~W-D<ZsX{Vy=S*e6g
zB_1KRh5{A)pF~s!H%@IkzxJ(BvBuOJnbWpR>|^vlRdHe0<)v-^wiVR3w=TQ)uFA9F
z>vmq<fW2S3Joc$<shiogLvWdMT)oG7Hr^l64U7!J|6HeToTRW0R8D%j`njxgN@xNA
D{Dl;^

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/minplayer/images/icon_download.png b/public/admin/js/osmplayer/minplayer/images/icon_download.png
new file mode 100644
index 0000000000000000000000000000000000000000..a2a287f642aaeeadf62d3819a16d6a55e12afc01
GIT binary patch
literal 1162
zcmeAS@N?(olHy`uVBq!ia0vp^av;pX1|+Qw)-3{3k|nMYCBgY=CFO}lsSJ)O`AMk?
zp1FzXsX?iUDV2pMQ*9U+n3Xa^B1$5BeXNr6bM+EIYV;~{3xK*A7;Nk-3KEmEQ%e+*
zQqwc@Y?a>c-mj#PnPRIHZt82`Ti~3Uk?B!Ylp0*+7m{3+ootz+WN)WnQ(*-(AUCxn
zQK2F?C$HG5!d3}vt`(3C64qBz04piUwpD^SD#ABF!8yMuRl!uxKsVXI%s|1+P|wiV
z#N6CmN5ROz&_Lh7NZ-&%*U;R`*vQJjKmiJrfVLH-q*(>IxIyg#@@$ndN=gc>^!3Zj
z%k|2Q_413-^$jg8EkR}&8R-I5=oVMzl_XZ^<`pZ$OmImpPA<wUD9OyvQvjKmn3P{y
zVygsnDZ~r81#n~YilM;-3^4tQ!~%UoJp+)JU<!SG@hi>Eg{v+u2}(t{7puX=A(aKG
z`a!A1`K3k4z=%sz23b{L<y@4SSdw29lAoUg3&ntp{F40QjQj!x=U`I>-^Aq1JP;qO
z-q+X4Gq1QLF)umQ)5TT^Xo6m5W{Q=$skw`#i<zmJiL;xbp{t>#v$3O_v5UEZv#YC%
zp@9obuS<S%X>Mv>2~2MaLa!N4y`ZF!TL84#CABECEH%ZgC_h&L>}9J=+-@<(X&zK>
z3U0TU;MA)Rbc{YIVv!;mCIn19ASOK70y*%6pPC0u?M1+3t#h8?05D7Z^K@|xskoK&
z=l_5E!ww8;ZH!Ed#V+%1n6Rkg{=V8A2QTsNE8^<v%V(Qxmf%on_`xIgQQ0BKTI%>>
zvHmC<g$BX!w=6n3JPlV26`rYFeiOW453f!{-NYx!3);9HwEBF!=QC}z*YoCNGYxnw
zrEt|{(bD@1r|nbFUU9LhR(1lH%B4pf3zllHoVsIC;}0XjS5ciCr(|?Dwly}L7w(9E
z9Jr0M<F%&WRg0!OLLRaVNoFQ1PhSxEGg0lQM8=0gg{ggNJY1~`K{~3d85pBBFnD}*
z+_`^2=Sx1{Xa$c2JRMsdK5}g-k&jescr-(1Px<>ezoM^A29GnE>#ih4F*YzTGbm`!
V-6~#faTQcLc)I$ztaD0e0svx<f<*uT

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/minplayer/images/sprite_download.png b/public/admin/js/osmplayer/minplayer/images/sprite_download.png
new file mode 100644
index 0000000000000000000000000000000000000000..f2babd575dc1cbd6e9342cc58ca795377d35afdb
GIT binary patch
literal 16799
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

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/minplayer/index.html b/public/admin/js/osmplayer/minplayer/index.html
new file mode 100644
index 00000000000..4b1dfe92d18
--- /dev/null
+++ b/public/admin/js/osmplayer/minplayer/index.html
@@ -0,0 +1,222 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <meta charset='utf-8' />
+    <meta http-equiv="X-UA-Compatible" content="chrome=1" />
+    <meta name="description" content="minPlayer : A minimalistic, plugin-based &quot;core&quot; media player for the web." />
+
+    <!-- Include jQuery and jQuery UI -->
+    <script type='text/javascript' src="https://ajax.googleapis.com/ajax/libs/jquery/1.5/jquery.js"></script>
+    <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.8/jquery-ui.min.js"></script>
+
+    <!-- Many more themes to chose from... go to http://jqueryui.com/themeroller! -->
+    <link rel="stylesheet" href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/themes/dark-hive/jquery-ui.css">
+
+    <!-- The following can be replaced by a single javascript include bin/minplayer.compressed.js -->
+    <script type="text/javascript" src="src/minplayer.compatibility.js"></script>
+    <script type="text/javascript" src="src/minplayer.flags.js"></script>
+    <script type="text/javascript" src="src/minplayer.async.js"></script>
+    <script type="text/javascript" src="src/minplayer.plugin.js"></script>
+    <script type="text/javascript" src="src/minplayer.display.js"></script>
+    <script type="text/javascript" src="src/minplayer.js"></script>
+    <script type="text/javascript" src="src/minplayer.image.js"></script>
+    <script type="text/javascript" src="src/minplayer.file.js"></script>
+    <script type="text/javascript" src="src/minplayer.playLoader.js"></script>
+    <script type="text/javascript" src="src/minplayer.players.base.js"></script>
+    <script type="text/javascript" src="src/minplayer.players.html5.js"></script>
+    <script type="text/javascript" src="src/minplayer.players.flash.js"></script>
+    <script type="text/javascript" src="src/minplayer.players.minplayer.js"></script>
+    <script type="text/javascript" src="src/minplayer.players.youtube.js"></script>
+    <script type="text/javascript" src="src/minplayer.players.vimeo.js"></script>
+    <script type="text/javascript" src="src/minplayer.controller.js"></script>
+
+    <!-- Include the template CSS and JS files. -->
+    <link rel="stylesheet" href="templates/default/css/minplayer_default.css">
+    <script type="text/javascript" src="templates/default/js/minplayer.playLoader.default.js"></script>
+    <script type="text/javascript" src="templates/default/js/minplayer.controller.default.js"></script>
+    <script type="text/javascript" src="templates/default/js/minplayer.default.js"></script>
+    <script type="text/javascript">
+      $(function() {
+        $("#h264").minplayer({
+          width: '500px',
+          height: '300px'
+        });
+        $("#youtube").minplayer({
+          width: '500px',
+          height: '300px'
+        });
+        $("#youtube2").minplayer({
+          width: '500px',
+          height: '300px'
+        });
+        $("#vimeo").minplayer({
+          width: '500px',
+          height: '300px'
+        });
+      });
+    </script>
+    <link rel="stylesheet" type="text/css" media="screen" href="stylesheets/stylesheet.css">
+
+    <title>minPlayer</title>
+  </head>
+
+  <body>
+
+    <!-- HEADER -->
+    <div id="header_wrap" class="outer">
+        <header class="inner">
+          <a id="forkme_banner" href="https://github.com/travist/minplayer">Fork Me on GitHub</a>
+
+          <h1 id="project_title">minPlayer</h1>
+          <h2 id="project_tagline">A minimalistic, plugin-based &quot;core&quot; media player for the web.</h2>
+
+          <section id="downloads">
+            <a class="zip_download_link" href="https://github.com/travist/minplayer/zipball/master">Download this project as a .zip file</a>
+            <a class="tar_download_link" href="https://github.com/travist/minplayer/tarball/master">Download this project as a tar.gz file</a>
+          </section>
+        </header>
+    </div>
+
+    <!-- MAIN CONTENT -->
+    <div id="main_content_wrap" class="outer">
+      <section id="main_content" class="inner">
+        <h1>minPlayer - Because less IS more.</h1>
+
+<p>The goal of this project is to provide a slim, well documented, object oriented,
+plugin-based "core" media player in which other players and libraries can build
+on top of.  It is written using object oriented JavaScript and is continuously
+integrated using JSLint, JSDoc, and Google Closure.</p>
+
+<h2>h264 Example</h2>
+<video id="h264" src="http://mediafront.org/sites/default/files/video/The_Living_Sky___Time-Lapse__HD.mp4"></video>
+<h2>YouTube Example</h2>
+<video id="youtube" src="http://www.youtube.com/watch?v=hLQl3WQQoQ0"></video>
+<h2>Two YouTube Players on same page</h2>
+<video id="youtube2" src="http://www.youtube.com/watch?v=dTAAsCNK7RA"></video>
+<h2>Vimeo Example</h2>
+<video id="vimeo" src="http://vimeo.com/5606758"></video>
+
+<h2>Multiple players - One single API.</h2>
+
+<p>It also allows for hot-swappable 3rd party API players by providing a common
+API for all of these players so that they can be utilized in the same manner.
+This means that once you develop for the minPlayer, one can easily bring in a
+different player an your code will still function as it would for all the
+others.  Out of the box, this player provides a common API for YouTube, Vimeo,
+HTML5, and Flash with more on the way.</p>
+
+<h2>Everything is a plugin</h2>
+
+<p>Since this is a plugin-based media player, every displayable class must derive
+from the plugin class, thereby, making it a plugin.  This includes the media
+player itself.  This plugin system is highly flexible to be able to handle
+just about any type of plugin imaginable, and allows for every plugin to have
+direct dependeny-injected control over any other plugin within the media player.</p>
+
+<h2>Complete User Interface &amp; Business Logic separation</h2>
+
+<p>One common complaint for many media solutions out there is that they hijack the
+DOM and build out their own controls to provide consistency amongst different
+browsers.  They do this, however, within the core player which completely binds
+the user interface to the business logic of the media player.  The minPlayer
+takes a different approach by keeping ALL user interface functionality within
+the "templates" directory, where each template essentially derives from the base
+Business logic classes only to provide the user interface aspects of that control.
+This allows for easy templating of the media player besides just overriding the
+CSS like current media solutions do today.</p>
+
+<h2>No "Features"!</h2>
+
+<p>I am pleased to say that this media player does NOT have many features, and this
+is on purpose.  Since this is a "core" player, it does not have any features
+other than what is critical in presenting your media.  Any additional "bling"
+will be added to this player from different repositories and from different
+players that extend this "core" functionality.  This methodology will keep this
+"core" media solution lean &amp; highly functional.</p>
+
+<h2>API</h2>
+
+<p>The API for minPlayer is very simple.  It revolves around a single API that is
+able to retrieve any plugin even before that plugin is created.  By doing this,
+you can have complete control over any plugin within the minPlayer.  This API
+is simply called</p>
+
+<pre><code>minplayer.get();
+</code></pre>
+
+<p>This API can take up to three different argument with each argument providing
+different usage.  The code docs for this function are as follows...</p>
+
+<pre><code>/**
+ * The main API for minPlayer.
+ *
+ * Provided that this function takes three parameters, there are 8 different
+ * ways to use this api.
+ *
+ *   id (0x100) - You want a specific player.
+ *   plugin (0x010) - You want a specific plugin.
+ *   callback (0x001) - You only want it when it is ready.
+ *
+ *   000 - You want all plugins from all players, ready or not.
+ *
+ *          var instances = minplayer.get();
+ *
+ *   001 - You want all plugins from all players, but only when ready.
+ *
+ *          minplayer.get(function(plugin) {
+ *            // Code goes here.
+ *          });
+ *
+ *   010 - You want a specific plugin from all players, ready or not...
+ *
+ *          var medias = minplayer.get(null, 'media');
+ *
+ *   011 - You want a specific plugin from all players, but only when ready.
+ *
+ *          minplayer.get('player', function(player) {
+ *            // Code goes here.
+ *          });
+ *
+ *   100 - You want all plugins from a specific player, ready or not.
+ *
+ *          var plugins = minplayer.get('player_id');
+ *
+ *   101 - You want all plugins from a specific player, but only when ready.
+ *
+ *          minplayer.get('player_id', null, function(plugin) {
+ *            // Code goes here.
+ *          });
+ *
+ *   110 - You want a specific plugin from a specific player, ready or not.
+ *
+ *          var plugin = minplayer.get('player_id', 'media');
+ *
+ *   111 - You want a specific plugin from a specific player, only when ready.
+ *
+ *          minplayer.get('player_id', 'media', function(media) {
+ *            // Code goes here.
+ *          });
+ *
+ * @this The context in which this function was called.
+ * @param {string} id The ID of the widget to get the plugins from.
+ * @param {string} plugin The name of the plugin.
+ * @param {function} callback Called when the plugin is ready.
+ * @return {object} The plugin object if it is immediately available.
+ */
+minplayer.get = function(id, plugin, callback) {
+};
+</code></pre>
+
+<p>Thanks and enjoy minPlayer.</p>
+      </section>
+    </div>
+
+    <!-- FOOTER  -->
+    <div id="footer_wrap" class="outer">
+      <footer class="inner">
+        <p class="copyright">minPlayer maintained by <a href="https://github.com/travist">travist</a></p>
+        <p>Published with <a href="http://pages.github.com">GitHub Pages</a></p>
+      </footer>
+    </div>
+  </body>
+</html>
diff --git a/public/admin/js/osmplayer/minplayer/javascripts/main.js b/public/admin/js/osmplayer/minplayer/javascripts/main.js
new file mode 100644
index 00000000000..d8135d37b1f
--- /dev/null
+++ b/public/admin/js/osmplayer/minplayer/javascripts/main.js
@@ -0,0 +1 @@
+console.log('This would be the main JS file.');
diff --git a/public/admin/js/osmplayer/minplayer/makefile b/public/admin/js/osmplayer/minplayer/makefile
new file mode 100644
index 00000000000..26425282f06
--- /dev/null
+++ b/public/admin/js/osmplayer/minplayer/makefile
@@ -0,0 +1,70 @@
+# To run this makefile, you must do the following.
+#
+# 1.)  Download http://closure-compiler.googlecode.com/files/compiler-latest.zip
+#      and place compiler.jar within the tools directory.
+#
+# 2.)  Install closure-linter tool at by following
+#      http://code.google.com/closure/utilities/docs/linter_howto.html
+#
+# 3.)  Download the JSDoc toolkit found at
+#      http://code.google.com/p/jsdoc-toolkit and place the jsdoc-toolkit
+#      directory within the tools directory.
+
+# Create the list of files
+files =   src/minplayer.compatibility.js\
+          src/minplayer.async.js\
+          src/minplayer.flags.js\
+          src/minplayer.plugin.js\
+          src/minplayer.display.js\
+          src/minplayer.js\
+          src/minplayer.image.js\
+          src/minplayer.file.js\
+          src/minplayer.playLoader.js\
+          src/minplayer.players.base.js\
+          src/minplayer.players.html5.js\
+          src/minplayer.players.flash.js\
+          src/minplayer.players.minplayer.js\
+          src/minplayer.players.youtube.js\
+          src/minplayer.players.vimeo.js\
+          src/minplayer.controller.js
+
+.DEFAULT_GOAL := all
+
+all: jslint js jsdoc
+
+# Perform a jsLint on all the files.
+jslint: ${files}
+	gjslint $^
+
+# Create an aggregated js file and a compressed js file.
+js: ${files}
+	@echo "Generating aggregated bin/minplayer.js file"
+	@cat > bin/minplayer.js $^
+	@echo "Generating compressed bin/minplayer.compressed file"
+	curl -s \
+	  -d compilation_level=SIMPLE_OPTIMIZATIONS \
+	  -d output_format=text \
+	  -d output_info=compiled_code \
+	  --data-urlencode "js_code@bin/minplayer.js" \
+	  http://closure-compiler.appspot.com/compile \
+	  > bin/minplayer.compressed.js
+
+# Create the documentation from source code.
+jsdoc: ${files}
+	@echo "Generating documetation."
+	@java -jar tools/jsdoc-toolkit/jsrun.jar tools/jsdoc-toolkit/app/run.js -a -t=tools/jsdoc-toolkit/templates/jsdoc -d=doc $^
+
+# Fix the js style on all the files.
+fixjsstyle: ${files}
+	fixjsstyle $^
+
+# Install the necessary tools.
+tools:
+	apt-get install python-setuptools
+	apt-get install unzip
+	easy_install http://closure-linter.googlecode.com/files/closure_linter-latest.tar.gz
+	wget http://jsdoc-toolkit.googlecode.com/files/jsdoc_toolkit-2.4.0.zip -P tools
+	unzip tools/jsdoc_toolkit-2.4.0.zip -d tools
+	mv tools/jsdoc_toolkit-2.4.0/jsdoc-toolkit tools/jsdoc-toolkit
+	rm -rd tools/jsdoc_toolkit-2.4.0
+	rm tools/jsdoc_toolkit-2.4.0.zip
diff --git a/public/admin/js/osmplayer/minplayer/params.json b/public/admin/js/osmplayer/minplayer/params.json
new file mode 100644
index 00000000000..b3c9b4e5649
--- /dev/null
+++ b/public/admin/js/osmplayer/minplayer/params.json
@@ -0,0 +1 @@
+{"name":"minPlayer","body":"minPlayer - Because less IS more.\r\n===================================\r\n\r\nThe goal of this project is to provide a slim, well documented, object oriented,\r\nplugin-based \"core\" media player in which other players and libraries can build\r\non top of.  It is written using object oriented JavaScript and is continuously\r\nintegrated using JSLint, JSDoc, and Google Closure.\r\n\r\n\r\n\r\nMultiple players - One single API.\r\n-----------------------------------\r\nIt also allows for hot-swappable 3rd party API players by providing a common\r\nAPI for all of these players so that they can be utilized in the same manner.\r\nThis means that once you develop for the minPlayer, one can easily bring in a\r\ndifferent player an your code will still function as it would for all the\r\nothers.  Out of the box, this player provides a common API for YouTube, Vimeo,\r\nHTML5, and Flash with more on the way.\r\n\r\nEverything is a plugin\r\n-----------------------------------\r\nSince this is a plugin-based media player, every displayable class must derive\r\nfrom the plugin class, thereby, making it a plugin.  This includes the media\r\nplayer itself.  This plugin system is highly flexible to be able to handle\r\njust about any type of plugin imaginable, and allows for every plugin to have\r\ndirect dependeny-injected control over any other plugin within the media player.\r\n\r\nComplete User Interface & Business Logic separation\r\n-----------------------------------\r\nOne common complaint for many media solutions out there is that they hijack the\r\nDOM and build out their own controls to provide consistency amongst different\r\nbrowsers.  They do this, however, within the core player which completely binds\r\nthe user interface to the business logic of the media player.  The minPlayer\r\ntakes a different approach by keeping ALL user interface functionality within\r\nthe \"templates\" directory, where each template essentially derives from the base\r\nBusiness logic classes only to provide the user interface aspects of that control.\r\nThis allows for easy templating of the media player besides just overriding the\r\nCSS like current media solutions do today.\r\n\r\nNo \"Features\"!\r\n-----------------------------------\r\nI am pleased to say that this media player does NOT have many features, and this\r\nis on purpose.  Since this is a \"core\" player, it does not have any features\r\nother than what is critical in presenting your media.  Any additional \"bling\"\r\nwill be added to this player from different repositories and from different\r\nplayers that extend this \"core\" functionality.  This methodology will keep this\r\n\"core\" media solution lean & highly functional.\r\n\r\nAPI\r\n-----------------------------------\r\nThe API for minPlayer is very simple.  It revolves around a single API that is\r\nable to retrieve any plugin even before that plugin is created.  By doing this,\r\nyou can have complete control over any plugin within the minPlayer.  This API\r\nis simply called\r\n\r\n```\r\nminplayer.get();\r\n```\r\n\r\nThis API can take up to three different argument with each argument providing\r\ndifferent usage.  The code docs for this function are as follows...\r\n\r\n```\r\n/**\r\n * The main API for minPlayer.\r\n *\r\n * Provided that this function takes three parameters, there are 8 different\r\n * ways to use this api.\r\n *\r\n *   id (0x100) - You want a specific player.\r\n *   plugin (0x010) - You want a specific plugin.\r\n *   callback (0x001) - You only want it when it is ready.\r\n *\r\n *   000 - You want all plugins from all players, ready or not.\r\n *\r\n *          var instances = minplayer.get();\r\n *\r\n *   001 - You want all plugins from all players, but only when ready.\r\n *\r\n *          minplayer.get(function(plugin) {\r\n *            // Code goes here.\r\n *          });\r\n *\r\n *   010 - You want a specific plugin from all players, ready or not...\r\n *\r\n *          var medias = minplayer.get(null, 'media');\r\n *\r\n *   011 - You want a specific plugin from all players, but only when ready.\r\n *\r\n *          minplayer.get('player', function(player) {\r\n *            // Code goes here.\r\n *          });\r\n *\r\n *   100 - You want all plugins from a specific player, ready or not.\r\n *\r\n *          var plugins = minplayer.get('player_id');\r\n *\r\n *   101 - You want all plugins from a specific player, but only when ready.\r\n *\r\n *          minplayer.get('player_id', null, function(plugin) {\r\n *            // Code goes here.\r\n *          });\r\n *\r\n *   110 - You want a specific plugin from a specific player, ready or not.\r\n *\r\n *          var plugin = minplayer.get('player_id', 'media');\r\n *\r\n *   111 - You want a specific plugin from a specific player, only when ready.\r\n *\r\n *          minplayer.get('player_id', 'media', function(media) {\r\n *            // Code goes here.\r\n *          });\r\n *\r\n * @this The context in which this function was called.\r\n * @param {string} id The ID of the widget to get the plugins from.\r\n * @param {string} plugin The name of the plugin.\r\n * @param {function} callback Called when the plugin is ready.\r\n * @return {object} The plugin object if it is immediately available.\r\n */\r\nminplayer.get = function(id, plugin, callback) {\r\n};\r\n```\r\n\r\nThanks and enjoy minPlayer.","tagline":"A minimalistic, plugin-based \"core\" media player for the web.","google":"","note":"Don't delete this file! It's used internally to help with page regeneration."}
\ No newline at end of file
diff --git a/public/admin/js/osmplayer/minplayer/src/minplayer.async.js b/public/admin/js/osmplayer/minplayer/src/minplayer.async.js
new file mode 100644
index 00000000000..656aa11031b
--- /dev/null
+++ b/public/admin/js/osmplayer/minplayer/src/minplayer.async.js
@@ -0,0 +1,61 @@
+/** The minplayer namespace. */
+var minplayer = minplayer || {};
+
+/**
+ * @constructor
+ * @class This class keeps track of asynchronous get requests for certain
+ * variables within the player.
+ */
+minplayer.async = function() {
+
+  /** The final value of this asynchronous variable. */
+  this.value = null;
+
+  /** The queue of callbacks to call when this value is determined. */
+  this.queue = [];
+};
+
+/**
+ * Retrieve the value of this variable.
+ *
+ * @param {function} callback The function to call when the value is determined.
+ * @param {function} pollValue The poll function to try and get the value every
+ * 1 second if the value is not set.
+ */
+minplayer.async.prototype.get = function(callback, pollValue) {
+
+  // If the value is set, then immediately call the callback, otherwise, just
+  // add it to the queue when the variable is set.
+  if (this.value !== null) {
+    callback(this.value);
+  }
+  else {
+
+    // Add this callback to the queue.
+    this.queue.push(callback);
+  }
+};
+
+/**
+ * Sets the value of an asynchronous value.
+ *
+ * @param {void} val The value to set.
+ */
+minplayer.async.prototype.set = function(val) {
+
+  // Set the value.
+  this.value = val;
+
+  // Get the callback queue length.
+  var i = this.queue.length;
+
+  // Iterate through all the callbacks and call them.
+  if (i) {
+    while (i--) {
+      this.queue[i](val);
+    }
+
+    // Reset the queue.
+    this.queue = [];
+  }
+};
diff --git a/public/admin/js/osmplayer/minplayer/src/minplayer.compatibility.js b/public/admin/js/osmplayer/minplayer/src/minplayer.compatibility.js
new file mode 100644
index 00000000000..23085fac89a
--- /dev/null
+++ b/public/admin/js/osmplayer/minplayer/src/minplayer.compatibility.js
@@ -0,0 +1,116 @@
+/** The minplayer namespace. */
+var minplayer = minplayer || {};
+
+// Private function to check a single element's play type.
+function checkPlayType(elem, playType) {
+  if ((typeof elem.canPlayType) === 'function') {
+    if (typeof playType === 'object') {
+      var i = playType.length;
+      var mimetype = '';
+      while (i--) {
+        mimetype = checkPlayType(elem, playType[i]);
+        if (!!mimetype) {
+          break;
+        }
+      }
+      return mimetype;
+    }
+    else {
+      var canPlay = elem.canPlayType(playType);
+      if (('no' !== canPlay) && ('' !== canPlay)) {
+        return playType;
+      }
+    }
+  }
+  return '';
+}
+
+/**
+ * @constructor
+ * @class This class is used to define the types of media that can be played
+ * within the browser.
+ * <p>
+ * <strong>Usage:</strong>
+ * <pre><code>
+ *   var playTypes = new minplayer.compatibility();
+ *
+ *   if (playTypes.videoOGG) {
+ *     console.log("This browser can play OGG video");
+ *   }
+ *
+ *   if (playTypes.videoH264) {
+ *     console.log("This browser can play H264 video");
+ *   }
+ *
+ *   if (playTypes.videoWEBM) {
+ *     console.log("This browser can play WebM video");
+ *   }
+ *
+ *   if (playTypes.audioOGG) {
+ *     console.log("This browser can play OGG audio");
+ *   }
+ *
+ *   if (playTypes.audioMP3) {
+ *     console.log("This browser can play MP3 audio");
+ *   }
+ *
+ *   if (playTypes.audioMP4) {
+ *     console.log("This browser can play MP4 audio");
+ *   }
+ * </code></pre>
+ */
+minplayer.compatibility = function() {
+  var elem = null;
+
+  // Create a video element.
+  elem = document.createElement('video');
+
+  /** Can play OGG video */
+  this.videoOGG = checkPlayType(elem, 'video/ogg');
+
+  /** Can play H264 video */
+  this.videoH264 = checkPlayType(elem, [
+    'video/mp4',
+    'video/h264'
+  ]);
+
+  /** Can play WEBM video */
+  this.videoWEBM = checkPlayType(elem, [
+    'video/x-webm',
+    'video/webm',
+    'application/octet-stream'
+  ]);
+
+  // Create an audio element.
+  elem = document.createElement('audio');
+
+  /** Can play audio OGG */
+  this.audioOGG = checkPlayType(elem, 'audio/ogg');
+
+  /** Can play audio MP3 */
+  this.audioMP3 = checkPlayType(elem, 'audio/mpeg');
+
+  /** Can play audio MP4 */
+  this.audioMP4 = checkPlayType(elem, 'audio/mp4');
+};
+
+if (!minplayer.playTypes) {
+
+  /** The compatible playtypes for this browser. */
+  minplayer.playTypes = new minplayer.compatibility();
+
+  /** See if we are an android device. */
+  minplayer.isAndroid = (/android/gi).test(navigator.appVersion);
+
+  /** See if we are an iOS device. */
+  minplayer.isIDevice = (/iphone|ipad/gi).test(navigator.appVersion);
+
+  /** See if we are a playbook device. */
+  minplayer.isPlaybook = (/playbook/gi).test(navigator.appVersion);
+
+  /** See if we are a touchpad device. */
+  minplayer.isTouchPad = (/hp-tablet/gi).test(navigator.appVersion);
+
+  /** Determine if we have a touchscreen. */
+  minplayer.hasTouch = 'ontouchstart' in window && !minplayer.isTouchPad;
+}
diff --git a/public/admin/js/osmplayer/minplayer/src/minplayer.controller.js b/public/admin/js/osmplayer/minplayer/src/minplayer.controller.js
new file mode 100644
index 00000000000..360f2ce3722
--- /dev/null
+++ b/public/admin/js/osmplayer/minplayer/src/minplayer.controller.js
@@ -0,0 +1,347 @@
+/** The minplayer namespace. */
+var minplayer = minplayer || {};
+
+/**
+ * @constructor
+ * @extends minplayer.display
+ * @class This is the base minplayer controller.  Other controllers can derive
+ * from the base and either build on top of it or simply define the elements
+ * that this base controller uses.
+ *
+ * @param {object} context The jQuery context.
+ * @param {object} options This components options.
+ */
+minplayer.controller = function(context, options) {
+
+  // Derive from display
+  minplayer.display.call(this, 'controller', context, options);
+};
+
+/** Derive from minplayer.display. */
+minplayer.controller.prototype = new minplayer.display();
+
+/** Reset the constructor. */
+minplayer.controller.prototype.constructor = minplayer.controller;
+
+/**
+ * A static function that will format a time value into a string time format.
+ *
+ * @param {integer} time An integer value of time.
+ * @return {string} A string representation of the time.
+ */
+minplayer.formatTime = function(time) {
+  time = time || 0;
+  var seconds = 0, minutes = 0, hour = 0, timeString = '';
+
+  hour = Math.floor(time / 3600);
+  time -= (hour * 3600);
+  minutes = Math.floor(time / 60);
+  time -= (minutes * 60);
+  seconds = Math.floor(time % 60);
+
+  if (hour) {
+    timeString += String(hour);
+    timeString += ':';
+  }
+
+  timeString += (minutes >= 10) ? String(minutes) : ('0' + String(minutes));
+  timeString += ':';
+  timeString += (seconds >= 10) ? String(seconds) : ('0' + String(seconds));
+  return {time: timeString, units: ''};
+};
+
+/**
+ * @see minplayer.display#getElements
+ * @return {object} The elements defined by this display.
+ */
+minplayer.controller.prototype.getElements = function() {
+  var elements = minplayer.display.prototype.getElements.call(this);
+  return jQuery.extend(elements, {
+    play: null,
+    pause: null,
+    fullscreen: null,
+    seek: null,
+    progress: null,
+    volume: null,
+    timer: null
+  });
+};
+
+/**
+ * @see minplayer.plugin#construct
+ */
+minplayer.controller.prototype.construct = function() {
+
+  // Call the minplayer plugin constructor.
+  minplayer.display.prototype.construct.call(this);
+
+  // Set the plugin name within the options.
+  this.options.pluginName = 'controller';
+
+  // Keep track of if we are dragging...
+  this.dragging = false;
+
+  // Keep track of the current volume.
+  this.vol = 0;
+
+  // If they have a seek bar.
+  if (this.elements.seek) {
+
+    // Create the seek bar slider control.
+    this.seekBar = this.elements.seek.slider({
+      range: 'min',
+      create: function(event, ui) {
+        jQuery('.ui-slider-range', event.target).addClass('ui-state-active');
+      }
+    });
+  }
+
+  // If they have a volume bar.
+  if (this.elements.volume) {
+
+    // Create the volume bar slider control.
+    this.volumeBar = this.elements.volume.slider({
+      range: 'min',
+      orientation: 'vertical'
+    });
+  }
+
+  // Get the player plugin.
+  this.get('player', function(player) {
+
+    // If they have a fullscreen button.
+    if (this.elements.fullscreen) {
+
+      // Bind to the click event.
+      minplayer.click(this.elements.fullscreen.unbind(), function() {
+        player.toggleFullScreen();
+      }).css({'pointer' : 'hand'});
+    }
+  });
+
+  // Get the media plugin.
+  this.get('media', function(media) {
+
+    // Only bind if this player does not have its own play loader.
+    if (!media.hasController()) {
+
+      // If they have a pause button
+      if (this.elements.pause) {
+
+        // Bind to the click on this button.
+        minplayer.click(this.elements.pause.unbind(), (function(controller) {
+          return function(event) {
+            event.preventDefault();
+            controller.playPause(false, media);
+          };
+        })(this));
+
+        // Bind to the pause event of the media.
+        media.bind('pause', (function(controller) {
+          return function(event) {
+            controller.setPlayPause(true);
+          };
+        })(this));
+      }
+
+      // If they have a play button
+      if (this.elements.play) {
+
+        // Bind to the click on this button.
+        minplayer.click(this.elements.play.unbind(), (function(controller) {
+          return function(event) {
+            event.preventDefault();
+            controller.playPause(true, media);
+          };
+        })(this));
+
+        // Bind to the play event of the media.
+        media.bind('playing', (function(controller) {
+          return function(event) {
+            controller.setPlayPause(false);
+          };
+        })(this));
+      }
+
+      // If they have a duration, then trigger on duration change.
+      if (this.elements.duration) {
+
+        // Bind to the duration change event.
+        media.bind('durationchange', (function(controller) {
+          return function(event, data) {
+            controller.setTimeString('duration', data.duration);
+          };
+        })(this));
+
+        // Set the timestring to the duration.
+        media.getDuration((function(controller) {
+          return function(duration) {
+            controller.setTimeString('duration', duration);
+          };
+        })(this));
+      }
+
+      // If they have a progress element.
+      if (this.elements.progress) {
+
+        // Bind to the progress event.
+        media.bind('progress', (function(controller) {
+          return function(event, data) {
+            var percent = data.total ? (data.loaded / data.total) * 100 : 0;
+            controller.elements.progress.width(percent + '%');
+          };
+        })(this));
+      }
+
+      // If they have a seek bar or timer, bind to the timeupdate.
+      if (this.seekBar || this.elements.timer) {
+
+        // Bind to the time update event.
+        media.bind('timeupdate', (function(controller) {
+          return function(event, data) {
+            if (!controller.dragging) {
+              var value = 0;
+              if (data.duration) {
+                value = (data.currentTime / data.duration) * 100;
+              }
+
+              // Update the seek bar if it exists.
+              if (controller.seekBar) {
+                controller.seekBar.slider('option', 'value', value);
+              }
+
+              controller.setTimeString('timer', data.currentTime);
+            }
+          };
+        })(this));
+      }
+
+      // If they have a seekBar element.
+      if (this.seekBar) {
+
+        // Register the events for the control bar to control the media.
+        this.seekBar.slider({
+          start: (function(controller) {
+            return function(event, ui) {
+              controller.dragging = true;
+            };
+          })(this),
+          stop: (function(controller) {
+            return function(event, ui) {
+              controller.dragging = false;
+              media.getDuration(function(duration) {
+                media.seek((ui.value / 100) * duration);
+              });
+            };
+          })(this),
+          slide: (function(controller) {
+            return function(event, ui) {
+              media.getDuration(function(duration) {
+                var time = (ui.value / 100) * duration;
+                if (!controller.dragging) {
+                  media.seek(time);
+                }
+                controller.setTimeString('timer', time);
+              });
+            };
+          })(this)
+        });
+      }
+
+      // Setup the mute button.
+      if (this.elements.mute) {
+        minplayer.click(this.elements.mute, (function(controller) {
+          return function(event) {
+            event.preventDefault();
+            var value = controller.volumeBar.slider('option', 'value');
+            if (value > 0) {
+              controller.vol = value;
+              controller.volumeBar.slider('option', 'value', 0);
+              media.setVolume(0);
+            }
+            else {
+              controller.volumeBar.slider('option', 'value', controller.vol);
+              media.setVolume(controller.vol / 100);
+            }
+          };
+        })(this));
+      }
+
+      // Setup the volume bar.
+      if (this.volumeBar) {
+
+        // Create the slider.
+        this.volumeBar.slider({
+          slide: function(event, ui) {
+            media.setVolume(ui.value / 100);
+          }
+        });
+
+        media.bind('volumeupdate', (function(controller) {
+          return function(event, vol) {
+            controller.volumeBar.slider('option', 'value', (vol * 100));
+          };
+        })(this));
+
+        // Set the volume to match that of the player.
+        media.getVolume((function(controller) {
+          return function(vol) {
+            controller.volumeBar.slider('option', 'value', (vol * 100));
+          };
+        })(this));
+      }
+    }
+    else {
+
+      // Hide this controller.
+      this.hide();
+    }
+  });
+
+  // We are now ready.
+  this.ready();
+};
+
+/**
+ * Sets the play and pause state of the control bar.
+ *
+ * @param {boolean} state TRUE - Show Play, FALSE - Show Pause.
+ */
+minplayer.controller.prototype.setPlayPause = function(state) {
+  var css = '';
+  if (this.elements.play) {
+    css = state ? 'inherit' : 'none';
+    this.elements.play.css('display', css);
+  }
+  if (this.elements.pause) {
+    css = state ? 'none' : 'inherit';
+    this.elements.pause.css('display', css);
+  }
+};
+
+/**
+ * Plays or pauses the media.
+ *
+ * @param {bool} state true => play, false => pause.
+ * @param {object} media The media player object.
+ */
+minplayer.controller.prototype.playPause = function(state, media) {
+  var type = state ? 'play' : 'pause';
+  this.display.trigger(type);
+  this.setPlayPause(!state);
+  if (media) {
+    media[type]();
+  }
+};
+
+/**
+ * Sets the time string on the control bar.
+ *
+ * @param {string} element The name of the element to set.
+ * @param {number} time The total time amount to set.
+ */
+minplayer.controller.prototype.setTimeString = function(element, time) {
+  if (this.elements[element]) {
+    this.elements[element].text(minplayer.formatTime(time).time);
+  }
+};
diff --git a/public/admin/js/osmplayer/minplayer/src/minplayer.display.js b/public/admin/js/osmplayer/minplayer/src/minplayer.display.js
new file mode 100644
index 00000000000..84b7986f335
--- /dev/null
+++ b/public/admin/js/osmplayer/minplayer/src/minplayer.display.js
@@ -0,0 +1,392 @@
+/** The minplayer namespace. */
+minplayer = minplayer || {};
+
+/**
+ * @constructor
+ * @extends minplayer.plugin
+ * @class Base class used to provide the display and options for any component
+ * deriving from this class.  Components who derive are expected to provide
+ * the elements that they define by implementing the getElements method.
+ *
+ * @param {string} name The name of this plugin.
+ * @param {object} context The jQuery context this component resides.
+ * @param {object} options The options for this component.
+ * @param {object} queue The event queue to pass events around.
+ */
+minplayer.display = function(name, context, options, queue) {
+
+  // Derive from plugin
+  minplayer.plugin.call(this, name, context, options, queue);
+};
+
+/** Derive from minplayer.plugin. */
+minplayer.display.prototype = new minplayer.plugin();
+
+/** Reset the constructor. */
+minplayer.display.prototype.constructor = minplayer.display;
+
+/**
+ * Returns the display for this component.
+ *
+ * @return {object} The jQuery context for this display.
+ */
+minplayer.display.prototype.getDisplay = function() {
+  return this.context;
+};
+
+/**
+ * @see minplayer.plugin.construct
+ */
+minplayer.display.prototype.construct = function() {
+
+  // Set the display.
+  this.display = this.getDisplay(this.context, this.options);
+
+  // Call the plugin constructor.
+  minplayer.plugin.prototype.construct.call(this);
+
+  // Set the plugin name within the options.
+  this.options.pluginName = 'display';
+
+  // Get the display elements.
+  this.elements = this.getElements();
+
+  // Only do this if they allow resize for this display.
+  if (this.onResize) {
+
+    // Set the resize timeout and this pointer.
+    var resizeTimeout = 0;
+
+    // Add a handler to trigger a resize event.
+    jQuery(window).resize((function(display) {
+      return function() {
+        clearTimeout(resizeTimeout);
+        resizeTimeout = setTimeout(function() {
+          display.onResize();
+        }, 200);
+      };
+    })(this));
+  }
+};
+
+/**
+ * Called when the window resizes.
+ */
+minplayer.display.prototype.onResize = false;
+
+/**
+ * Wrapper around hide that will always not show.
+ *
+ * @param {object} element The element you wish to hide.
+ */
+minplayer.display.prototype.hide = function(element) {
+  element = element || this.display;
+  if (element) {
+    element.forceHide = true;
+    element.unbind().hide();
+  }
+};
+
+/**
+ * Gets the full screen element.
+ *
+ * @return {object} The display to be used for full screen support.
+ */
+minplayer.display.prototype.fullScreenElement = function() {
+  return this.display;
+};
+
+/**
+ * Fix for the click function in jQuery to be cross platform.
+ *
+ * @param {object} element The element that will be clicked.
+ * @param {function} fn Called when the element is clicked.
+ * @return {object} The element that is to be clicked.
+ */
+minplayer.click = function(element, fn) {
+  var flag = false;
+  element = jQuery(element);
+  element.bind('touchstart click', function(event) {
+    if (!flag) {
+      flag = true;
+      setTimeout(function() {
+        flag = false;
+      }, 100);
+      fn.call(this, event);
+    }
+  });
+  return element;
+};
+
+/**
+ * Determines if the player is in focus or not.
+ *
+ * @param {boolean} focus If the player is in focus.
+ */
+minplayer.display.prototype.onFocus = function(focus) {
+  this.hasFocus = this.focus = focus;
+};
+
+/** Keep track of all the show hide elements. */
+minplayer.showHideElements = [];
+
+/**
+ * Show all the show hide elements.
+ */
+minplayer.showAll = function() {
+  var i = minplayer.showHideElements.length;
+  var obj = null;
+  while (i--) {
+    obj = minplayer.showHideElements[i];
+    minplayer.showThenHide(obj.element, obj.timeout, obj.callback);
+  }
+};
+
+/**
+ * Stops the whole show then hide from happening.
+ *
+ * @param {object} element The element you want the showThenHide to stop.
+ */
+minplayer.stopShowThenHide = function(element) {
+  element = jQuery(element);
+  if (element.showTimer) {
+    clearTimeout(element.showTimer);
+  }
+  element.stopShowThenHide = true;
+  element.shown = true;
+  element.show();
+};
+
+/**
+ * Called if you would like for your display item to show then hide.
+ *
+ * @param {object} element The element you would like to hide or show.
+ * @param {number} timeout The timeout to hide and show.
+ * @param {function} callback Called when something happens.
+ */
+minplayer.showThenHide = function(element, timeout, callback) {
+
+  // If no element exists, then just return.
+  if (!element) {
+    return;
+  }
+
+  // Ensure we have a timeout.
+  timeout = timeout || 5000;
+
+  // If this has not yet been configured.
+  if (!element.showTimer) {
+    element.shown = true;
+    element.stopShowThenHide = false;
+
+    // Add this to our showHideElements.
+    minplayer.showHideElements.push({
+      element: element,
+      timeout: timeout,
+      callback: callback
+    });
+
+    // Bind to a click event.
+    minplayer.click(document, function() {
+      if (!element.stopShowThenHide) {
+        minplayer.showThenHide(element, timeout, callback);
+      }
+    });
+
+    // Bind to the mousemove event.
+    jQuery(document).bind('mousemove', function() {
+      if (!element.stopShowThenHide) {
+        minplayer.showThenHide(element, timeout, callback);
+      }
+    });
+  }
+
+  // Clear the timeout, and then setup the show then hide functionality.
+  clearTimeout(element.showTimer);
+
+  // Show the display.
+  if (!element.shown && !element.forceHide) {
+    element.shown = true;
+    element.show();
+    if (callback) {
+      callback(true);
+    }
+  }
+
+  // Set a timer to hide it after the timeout.
+  element.showTimer = setTimeout(function() {
+    element.hide('slow', function() {
+      element.shown = false;
+      if (callback) {
+        callback(false);
+      }
+    });
+  }, timeout);
+};
+
+/**
+ * Make this display element go fullscreen.
+ *
+ * @param {boolean} full Tell the player to go into fullscreen or not.
+ */
+minplayer.display.prototype.fullscreen = function(full) {
+  var isFull = this.isFullScreen();
+  var element = this.fullScreenElement();
+  if (isFull && !full) {
+    element.removeClass('fullscreen');
+    if (screenfull) {
+      screenfull.exit();
+    }
+    this.trigger('fullscreen', false);
+  }
+  else if (!isFull && full) {
+    element.addClass('fullscreen');
+    if (screenfull) {
+      screenfull.request(element[0]);
+      screenfull.onchange = (function(display) {
+        return function(e) {
+          if (!screenfull.isFullscreen) {
+            display.fullscreen(false);
+          }
+        };
+      })(this);
+    }
+    this.trigger('fullscreen', true);
+  }
+};
+
+/**
+ * Toggle fullscreen.
+ */
+minplayer.display.prototype.toggleFullScreen = function() {
+  this.fullscreen(!this.isFullScreen());
+};
+
+/**
+ * Checks to see if we are in fullscreen mode.
+ *
+ * @return {boolean} TRUE - fullscreen, FALSE - otherwise.
+ */
+minplayer.display.prototype.isFullScreen = function() {
+  return this.fullScreenElement().hasClass('fullscreen');
+};
+
+/**
+ * Returns a scaled rectangle provided a ratio and the container rect.
+ *
+ * @param {number} ratio The width/height ratio of what is being scaled.
+ * @param {object} rect The bounding rectangle for scaling.
+ * @return {object} The Rectangle object of the scaled rectangle.
+ */
+minplayer.display.prototype.getScaledRect = function(ratio, rect) {
+  var scaledRect = {};
+  scaledRect.x = rect.x ? rect.x : 0;
+  scaledRect.y = rect.y ? rect.y : 0;
+  scaledRect.width = rect.width ? rect.width : 0;
+  scaledRect.height = rect.height ? rect.height : 0;
+  if (ratio) {
+    if ((rect.width / rect.height) > ratio) {
+      scaledRect.height = rect.height;
+      scaledRect.width = Math.floor(rect.height * ratio);
+    }
+    else {
+      scaledRect.height = Math.floor(rect.width / ratio);
+      scaledRect.width = rect.width;
+    }
+    scaledRect.x = Math.floor((rect.width - scaledRect.width) / 2);
+    scaledRect.y = Math.floor((rect.height - scaledRect.height) / 2);
+  }
+  return scaledRect;
+};
+
+/**
+ * Returns all the jQuery elements that this component uses.
+ *
+ * @return {object} An object which defines all the jQuery elements that
+ * this component uses.
+ */
+minplayer.display.prototype.getElements = function() {
+  return {};
+};
+
+/**
+ * From https://github.com/sindresorhus/screenfull.js
+ */
+/*global Element:true*/
+(function(window, document) {
+  'use strict';
+  var methods = (function() {
+    var methodMap = [
+      [
+        'requestFullscreen',
+        'exitFullscreen',
+        'fullscreenchange',
+        'fullscreen',
+        'fullscreenElement'
+      ],
+      [
+        'webkitRequestFullScreen',
+        'webkitCancelFullScreen',
+        'webkitfullscreenchange',
+        'webkitIsFullScreen',
+        'webkitCurrentFullScreenElement'
+      ],
+      [
+        'mozRequestFullScreen',
+        'mozCancelFullScreen',
+        'mozfullscreenchange',
+        'mozFullScreen',
+        'mozFullScreenElement'
+      ]
+    ];
+    for (var i = 0, l = methodMap.length; i < l; i++) {
+      if (methodMap.hasOwnProperty(i)) {
+        var val = methodMap[i];
+        if (val[1] in document) {
+          return val;
+        }
+      }
+    }
+  })();
+
+  if (!methods) {
+    return window.screenfull = false;
+  }
+
+  var keyboardAllowed = 'ALLOW_KEYBOARD_INPUT' in Element;
+
+  var screenfull = {
+    init: function() {
+      document.addEventListener(methods[2], function(e) {
+        screenfull.isFullscreen = document[methods[3]];
+        screenfull.element = document[methods[4]];
+        screenfull.onchange(e);
+      });
+      return this;
+    },
+    isFullscreen: document[methods[3]],
+    element: document[methods[4]],
+    request: function(elem) {
+      elem = elem || document.documentElement;
+      elem[methods[0]](keyboardAllowed && Element.ALLOW_KEYBOARD_INPUT);
+      // Work around Safari 5.1 bug: reports support for keyboard in fullscreen
+      // even though it doesn't.
+      if (!document.isFullscreen) {
+        elem[methods[0]]();
+      }
+    },
+    exit: function() {
+      document[methods[1]]();
+    },
+    toggle: function(elem) {
+      if (this.isFullscreen) {
+        this.exit();
+      } else {
+        this.request(elem);
+      }
+    },
+    onchange: function() {}
+  };
+
+  window.screenfull = screenfull.init();
+})(window, document);
diff --git a/public/admin/js/osmplayer/minplayer/src/minplayer.file.js b/public/admin/js/osmplayer/minplayer/src/minplayer.file.js
new file mode 100644
index 00000000000..8e7f8797a4c
--- /dev/null
+++ b/public/admin/js/osmplayer/minplayer/src/minplayer.file.js
@@ -0,0 +1,178 @@
+/** The minplayer namespace. */
+var minplayer = minplayer || {};
+
+/**
+ * @constructor
+ * @class A wrapper class used to provide all the data necessary to control an
+ * individual file within this media player.
+ *
+ * @param {object} file A media file object with minimal required information.
+ */
+minplayer.file = function(file) {
+
+  // If there isn't a file provided, then just return null.
+  if (!file) {
+    return null;
+  }
+
+  file = (typeof file === 'string') ? {path: file} : file;
+
+  // If we already are a minplayer file, then just return this file.
+  if (file.hasOwnProperty('isMinPlayerFile')) {
+    return file;
+  }
+
+  this.isMinPlayerFile = true;
+  this.duration = file.duration || 0;
+  this.bytesTotal = file.bytesTotal || 0;
+  this.quality = file.quality || 0;
+  this.stream = file.stream || '';
+  this.path = file.path || '';
+  this.codecs = file.codecs || '';
+
+  // These should be provided, but just in case...
+  this.extension = file.extension || this.getFileExtension();
+  this.mimetype = file.mimetype || file.filemime || this.getMimeType();
+  this.type = file.type || this.getType();
+
+  // Fail safe to try and guess the mimetype and media type.
+  if (!this.type) {
+    this.mimetype = this.getMimeType();
+    this.type = this.getType();
+  }
+
+  // Get the player.
+  this.player = minplayer.player || file.player || this.getBestPlayer();
+  this.priority = file.priority || this.getPriority();
+  this.id = file.id || this.getId();
+  if (!this.path) {
+    this.path = this.id;
+  }
+};
+
+/** Used to force the player for all media. */
+minplayer.player = '';
+
+/**
+ * Returns the best player for the job.
+ *
+ * @return {string} The best player to play the media file.
+ */
+minplayer.file.prototype.getBestPlayer = function() {
+  var bestplayer = null, bestpriority = 0;
+  jQuery.each(minplayer.players, (function(file) {
+    return function(name, player) {
+      var priority = player.getPriority();
+      if (player.canPlay(file) && (priority > bestpriority)) {
+        bestplayer = name;
+        bestpriority = priority;
+      }
+    };
+  })(this));
+  return bestplayer;
+};
+
+/**
+ * The priority of this file is determined by the priority of the best
+ * player multiplied by the priority of the mimetype.
+ *
+ * @return {integer} The priority of the media file.
+ */
+minplayer.file.prototype.getPriority = function() {
+  var priority = 1;
+  if (this.player) {
+    priority = minplayer.players[this.player].getPriority();
+  }
+  switch (this.mimetype) {
+    case 'video/x-webm':
+    case 'video/webm':
+    case 'application/octet-stream':
+      return priority * 10;
+    case 'video/mp4':
+    case 'audio/mp4':
+    case 'audio/mpeg':
+      return priority * 9;
+    case 'video/ogg':
+    case 'audio/ogg':
+    case 'video/quicktime':
+      return priority * 8;
+    default:
+      return priority * 5;
+  }
+};
+
+/**
+ * Returns the file extension of the file path.
+ *
+ * @return {string} The file extension.
+ */
+minplayer.file.prototype.getFileExtension = function() {
+  return this.path.substring(this.path.lastIndexOf('.') + 1).toLowerCase();
+};
+
+/**
+ * Returns the proper mimetype based off of the extension.
+ *
+ * @return {string} The mimetype of the file based off of extension.
+ */
+minplayer.file.prototype.getMimeType = function() {
+  switch (this.extension) {
+    case 'mp4': case 'm4v': case 'flv': case 'f4v':
+      return 'video/mp4';
+    case'webm':
+      return 'video/webm';
+    case 'ogg': case 'ogv':
+      return 'video/ogg';
+    case '3g2':
+      return 'video/3gpp2';
+    case '3gpp':
+    case '3gp':
+      return 'video/3gpp';
+    case 'mov':
+      return 'video/quicktime';
+    case'swf':
+      return 'application/x-shockwave-flash';
+    case 'oga':
+      return 'audio/ogg';
+    case 'mp3':
+      return 'audio/mpeg';
+    case 'm4a': case 'f4a':
+      return 'audio/mp4';
+    case 'aac':
+      return 'audio/aac';
+    case 'wav':
+      return 'audio/vnd.wave';
+    case 'wma':
+      return 'audio/x-ms-wma';
+    default:
+      return 'unknown';
+  }
+};
+
+/**
+ * The type of media this is: video or audio.
+ *
+ * @return {string} "video" or "audio" based on what the type of media this
+ * is.
+ */
+minplayer.file.prototype.getType = function() {
+  var type = this.mimetype.match(/([^\/]+)(\/)/);
+  type = (type && (type.length > 1)) ? type[1] : '';
+  if (type == 'video' || this.mimetype == 'application/octet-stream') {
+    return 'video';
+  }
+  if (type == 'audio') {
+    return 'audio';
+  }
+  return '';
+};
+
+/**
+ * Returns the ID for this media file.
+ *
+ * @return {string} The id for this media file which is provided by the player.
+ */
+minplayer.file.prototype.getId = function() {
+  var player = minplayer.players[this.player];
+  return (player && player.getMediaId) ? player.getMediaId(this) : '';
+};
diff --git a/public/admin/js/osmplayer/minplayer/src/minplayer.flags.js b/public/admin/js/osmplayer/minplayer/src/minplayer.flags.js
new file mode 100644
index 00000000000..4d97c3765a5
--- /dev/null
+++ b/public/admin/js/osmplayer/minplayer/src/minplayer.flags.js
@@ -0,0 +1,71 @@
+/** The minplayer namespace. */
+var minplayer = minplayer || {};
+
+/**
+ * @constructor
+ * @class This is a class used to keep track of flag states
+ * which is used to control the busy cursor, big play button, among other
+ * items in which multiple components can have an interest in hiding or
+ * showing a single element on the screen.
+ *
+ * <p>
+ * <strong>Usage:</strong>
+ * <pre><code>
+ *   // Declare a flags variable.
+ *   var flags = new minplayer.flags();
+ *
+ *   // Set the flag based on two components interested in the flag.
+ *   flags.setFlag("component1", true);
+ *   flags.setFlag("component2", true);
+ *
+ *   // Print out the value of the flags. ( Prints 3 )
+ *   console.log(flags.flags);
+ *
+ *   // Now unset a single components flag.
+ *   flags.setFlag("component1", false);
+ *
+ *   // Print out the value of the flags.
+ *   console.log(flags.flags);
+ *
+ *   // Unset the other components flag.
+ *   flags.setFlag("component2", false);
+ *
+ *   // Print out the value of the flags.
+ *   console.log(flags.flags);
+ * </code></pre>
+ * </p>
+ */
+minplayer.flags = function() {
+
+  /** The flag. */
+  this.flag = 0;
+
+  /** Id map to reference id with the flag index. */
+  this.ids = {};
+
+  /** The number of flags. */
+  this.numFlags = 0;
+};
+
+/**
+ * Sets a flag based on boolean logic operators.
+ *
+ * @param {string} id The id of the controller interested in this flag.
+ * @param {boolean} value The value of this flag ( true or false ).
+ */
+minplayer.flags.prototype.setFlag = function(id, value) {
+
+  // Define this id if it isn't present.
+  if (!this.ids.hasOwnProperty(id)) {
+    this.ids[id] = this.numFlags;
+    this.numFlags++;
+  }
+
+  // Use binary operations to keep track of the flag state
+  if (value) {
+    this.flag |= (1 << this.ids[id]);
+  }
+  else {
+    this.flag &= ~(1 << this.ids[id]);
+  }
+};
diff --git a/public/admin/js/osmplayer/minplayer/src/minplayer.image.js b/public/admin/js/osmplayer/minplayer/src/minplayer.image.js
new file mode 100644
index 00000000000..9ace48fed7d
--- /dev/null
+++ b/public/admin/js/osmplayer/minplayer/src/minplayer.image.js
@@ -0,0 +1,145 @@
+/** The minplayer namespace. */
+var minplayer = minplayer || {};
+
+/**
+ * @constructor
+ * @class A class to easily handle images.
+ * @param {object} context The jQuery context.
+ * @param {object} options This components options.
+ */
+minplayer.image = function(context, options) {
+
+  // Determine if the image is loaded.
+  this.loaded = false;
+
+  // The image loader.
+  this.loader = null;
+
+  // The ratio of the image.
+  this.ratio = 0;
+
+  // The image element.
+  this.img = null;
+
+  // Derive from display
+  minplayer.display.call(this, 'image', context, options);
+};
+
+/** Derive from minplayer.display. */
+minplayer.image.prototype = new minplayer.display();
+
+/** Reset the constructor. */
+minplayer.image.prototype.constructor = minplayer.image;
+
+/**
+ * @see minplayer.plugin.construct
+ */
+minplayer.image.prototype.construct = function() {
+
+  // Call the media display constructor.
+  minplayer.display.prototype.construct.call(this);
+
+  // Set the plugin name within the options.
+  this.options.pluginName = 'image';
+
+  // Set the container to not show any overflow...
+  this.display.css('overflow', 'hidden');
+
+  /** The loader for the image. */
+  this.loader = new Image();
+
+  /** Register for when the image is loaded within the loader. */
+  this.loader.onload = (function(image) {
+    return function() {
+      image.loaded = true;
+      image.ratio = (image.loader.width / image.loader.height);
+      image.resize();
+      image.trigger('loaded');
+    };
+  })(this);
+
+  // We are now ready.
+  this.ready();
+};
+
+/**
+ * Loads an image.
+ *
+ * @param {string} src The source of the image to load.
+ */
+minplayer.image.prototype.load = function(src) {
+
+  // First clear the previous image.
+  this.clear(function() {
+
+    // Create the new image, and append to the display.
+    this.display.empty();
+    this.img = jQuery(document.createElement('img')).attr({src: ''}).hide();
+    this.display.append(this.img);
+    this.loader.src = src;
+    this.img.attr('src', src);
+  });
+};
+
+/**
+ * Clears an image.
+ *
+ * @param {function} callback Called when the image is done clearing.
+ */
+minplayer.image.prototype.clear = function(callback) {
+  this.loaded = false;
+  if (this.img) {
+    this.img.fadeOut((function(image) {
+      return function() {
+        image.img.attr('src', '');
+        image.loader.src = '';
+        jQuery(this).remove();
+        callback.call(image);
+      };
+    })(this));
+  }
+  else {
+    callback.call(this);
+  }
+};
+
+/**
+ * Resize the image provided a width and height or nothing.
+ *
+ * @param {integer} width (optional) The width of the container.
+ * @param {integer} height (optional) The height of the container.
+ */
+minplayer.image.prototype.resize = function(width, height) {
+  width = width || this.display.parent().width();
+  height = height || this.display.parent().height();
+  if (width && height && this.loaded) {
+
+    // Get the scaled rectangle.
+    var rect = this.getScaledRect(this.ratio, {
+      width: width,
+      height: height
+    });
+
+    // Now set this image to the new size.
+    if (this.img) {
+      this.img.attr('src', this.loader.src).css({
+        marginLeft: rect.x,
+        marginTop: rect.y,
+        width: rect.width,
+        height: rect.height
+      });
+    }
+
+    // Show the container.
+    this.img.fadeIn();
+  }
+};
+
+/**
+ * @see minplayer.display#onResize
+ */
+minplayer.image.prototype.onResize = function() {
+
+  // Resize the image to fit.
+  this.resize();
+};
diff --git a/public/admin/js/osmplayer/minplayer/src/minplayer.js b/public/admin/js/osmplayer/minplayer/src/minplayer.js
new file mode 100644
index 00000000000..02b6c7c8874
--- /dev/null
+++ b/public/admin/js/osmplayer/minplayer/src/minplayer.js
@@ -0,0 +1,417 @@
+// Add a way to instanciate using jQuery prototype.
+if (!jQuery.fn.minplayer) {
+
+  /**
+   * @constructor
+   *
+   * Define a jQuery minplayer prototype.
+   *
+   * @param {object} options The options for this jQuery prototype.
+   * @return {Array} jQuery object.
+   */
+  jQuery.fn.minplayer = function(options) {
+    return jQuery(this).each(function() {
+      options = options || {};
+      options.id = options.id || jQuery(this).attr('id') || Math.random();
+      if (!minplayer.plugins[options.id]) {
+        options.template = options.template || 'default';
+        if (minplayer[options.template]) {
+          new minplayer[options.template](jQuery(this), options);
+        }
+        else {
+          new minplayer(jQuery(this), options);
+        }
+      }
+    });
+  };
+}
+
+/**
+ * @constructor
+ * @extends minplayer.display
+ * @class The core media player class which governs the media player
+ * functionality.
+ *
+ * <p><strong>Usage:</strong>
+ * <pre><code>
+ *
+ *   // Create a media player.
+ *   var player = jQuery("#player").minplayer({
+ *
+ *   });
+ *
+ * </code></pre>
+ * </p>
+ *
+ * @param {object} context The jQuery context.
+ * @param {object} options This components options.
+ */
+minplayer = jQuery.extend(function(context, options) {
+
+  // Derive from display
+  minplayer.display.call(this, 'player', context, options);
+}, minplayer);
+
+/** Derive from minplayer.display. */
+minplayer.prototype = new minplayer.display();
+
+/** Reset the constructor. */
+minplayer.prototype.constructor = minplayer;
+
+/**
+ * @see minplayer.plugin.construct
+ */
+minplayer.prototype.construct = function() {
+
+  // Allow them to provide arguments based off of the DOM attributes.
+  jQuery.each(this.context[0].attributes, (function(player) {
+    return function(index, attr) {
+      player.options[attr.name] = player.options[attr.name] || attr.value;
+    };
+  })(this));
+
+  // Make sure we provide default options...
+  this.options = jQuery.extend({
+    id: 'player',
+    build: false,
+    wmode: 'transparent',
+    preload: true,
+    autoplay: false,
+    autoload: true,
+    loop: false,
+    width: '100%',
+    height: '350px',
+    debug: false,
+    volume: 80,
+    files: null,
+    file: '',
+    preview: '',
+    attributes: {},
+    logo: '',
+    link: '',
+    width: '100%',
+    height: '100%'
+  }, this.options);
+
+  // Call the minplayer display constructor.
+  minplayer.display.prototype.construct.call(this);
+
+  // Set the plugin name within the options.
+  this.options.pluginName = 'player';
+
+  /** The controller for this player. */
+  this.controller = this.create('controller');
+
+  /** The play loader for this player. */
+  this.playLoader = this.create('playLoader');
+
+  // Set the focus of the element based on if they click in or outside of it.
+  minplayer.click(document, (function(player) {
+    return function(event) {
+      var target = jQuery(event.target);
+      var focus = !(target.closest('#' + player.options.id).length == 0);
+      minplayer.get.call(this, player.options.id, null, function(plugin) {
+        plugin.onFocus(focus);
+      });
+    };
+  })(this));
+
+  /** Add the logo for the player. */
+  if (this.options.logo && this.elements.logo) {
+
+    var code = '';
+    if (this.options.link) {
+      code += '<a target="_blank" href="' + this.options.link + '">';
+    }
+    code += '<img src="' + this.options.logo + '" >';
+    if (this.options.link) {
+      code += '</a>';
+    }
+    this.logo = this.elements.logo.append(code);
+  }
+
+  /** Variable to store the current media player. */
+  this.currentPlayer = 'html5';
+
+  // Add key events to the window.
+  this.addKeyEvents();
+
+  // Called to add events.
+  this.addEvents();
+
+  // Now load these files.
+  this.load(this.getFiles());
+
+  // The player is ready.
+  this.ready();
+};
+
+/**
+ * Called when an error occurs.
+ *
+ * @param {object} plugin The plugin you wish to bind to.
+ */
+minplayer.prototype.bindTo = function(plugin) {
+  plugin.bind('error', (function(player) {
+    return function(event, data) {
+      if (player.currentPlayer == 'html5') {
+        minplayer.player = 'minplayer';
+        player.options.file.player = 'minplayer';
+        player.loadPlayer();
+      }
+      else {
+        player.showError(data);
+      }
+    };
+  })(this));
+
+  // Bind to the fullscreen event.
+  plugin.bind('fullscreen', (function(player) {
+    return function(event, data) {
+      player.resize();
+    };
+  })(this));
+};
+
+/**
+ * We need to bind to events we are interested in.
+ */
+minplayer.prototype.addEvents = function() {
+  minplayer.get.call(this, this.options.id, null, (function(player) {
+    return function(plugin) {
+      player.bindTo(plugin);
+    };
+  })(this));
+};
+
+/**
+ * Sets an error on the player.
+ *
+ * @param {string} error The error to display on the player.
+ */
+minplayer.prototype.showError = function(error) {
+  if (typeof error !== 'object') {
+    error = error || '';
+    if (this.elements.error) {
+
+      // Set the error text.
+      this.elements.error.text(error);
+      if (error) {
+        // Show the error message.
+        this.elements.error.show();
+
+        // Only show this error for a time interval.
+        setTimeout((function(player) {
+          return function() {
+            player.elements.error.hide('slow');
+          };
+        })(this), 5000);
+      }
+      else {
+        this.elements.error.hide();
+      }
+    }
+  }
+};
+
+/**
+ * Adds key events to the player.
+ */
+minplayer.prototype.addKeyEvents = function() {
+  jQuery(document).bind('keydown', (function(player) {
+    return function(event) {
+      switch (event.keyCode) {
+        case 113: // ESC
+        case 27:  // Q
+          if (player.isFullScreen()) {
+            player.fullscreen(false);
+          }
+          break;
+      }
+    };
+  })(this));
+};
+
+/**
+ * Returns all the media files available for this player.
+ *
+ * @return {array} All the media files for this player.
+ */
+minplayer.prototype.getFiles = function() {
+
+  // If they provide the files in the options, use those first.
+  if (this.options.files) {
+    return this.options.files;
+  }
+
+  if (this.options.file) {
+    return this.options.file;
+  }
+
+  var files = [];
+  var mediaSrc = null;
+
+  // Get the files involved...
+  if (this.elements.media) {
+    mediaSrc = this.elements.media.attr('src');
+    if (mediaSrc) {
+      files.push({'path': mediaSrc});
+    }
+    jQuery('source', this.elements.media).each(function() {
+      files.push({
+        'path': jQuery(this).attr('src'),
+        'mimetype': jQuery(this).attr('type'),
+        'codecs': jQuery(this).attr('codecs')
+      });
+    });
+  }
+
+  return files;
+};
+
+/**
+ * Returns the full media player object.
+ *
+ * @param {array} files An array of files to chose from.
+ * @return {object} The best media file to play in the current browser.
+ */
+minplayer.getMediaFile = function(files) {
+
+  // If there are no files then return null.
+  if (!files) {
+    return null;
+  }
+
+  // If the file is already a file object then just return.
+  if ((typeof files === 'string') || files.path || files.id) {
+    return new minplayer.file(files);
+  }
+
+  // Add the files and get the best player to play.
+  var bestPriority = 0, mFile = null, file = null;
+  for (var i in files) {
+    if (files.hasOwnProperty(i)) {
+      file = new minplayer.file(files[i]);
+      if (file.player && (file.priority > bestPriority)) {
+        mFile = file;
+      }
+    }
+  }
+
+  // Return the best minplayer file.
+  return mFile;
+};
+
+/**
+ * Loads a media player based on the current file.
+ *
+ * @return {boolean} If a new player was loaded.
+ */
+minplayer.prototype.loadPlayer = function() {
+
+  // Do nothing if there isn't a file or anywhere to put it.
+  if (!this.options.file || (this.elements.display.length == 0)) {
+    return false;
+  }
+
+  // If no player is set, then also return false.
+  if (!this.options.file.player) {
+    return false;
+  }
+
+  // Reset the error.
+  this.showError();
+
+  // Only destroy if the current player is different than the new player.
+  var player = this.options.file.player.toString();
+
+  // If there isn't media or if the players are different.
+  if (!this.media || (player !== this.currentPlayer)) {
+
+    // Set the current media player.
+    this.currentPlayer = player;
+
+    // Do nothing if we don't have a display.
+    if (!this.elements.display) {
+      this.showError('No media display found.');
+      return;
+    }
+
+    // Destroy the current media.
+    var queue = {};
+    if (this.media) {
+      queue = this.media.queue;
+      this.media.destroy();
+    }
+
+    // Get the class name and create the new player.
+    pClass = minplayer.players[this.options.file.player];
+
+    // Create the new media player.
+    this.options.mediaelement = this.elements.media;
+    this.media = new pClass(this.elements.display, this.options, queue);
+
+    // Now get the media when it is ready.
+    this.get('media', (function(player) {
+      return function(media) {
+
+        // Load the media.
+        media.load(player.options.file);
+        player.display.addClass('minplayer-player-' + media.mediaFile.player);
+      };
+    })(this));
+
+    // Return that a new player is loaded.
+    return true;
+  }
+  // If the media object already exists...
+  else if (this.media) {
+
+    // Now load the different media file.
+    this.media.options = this.options;
+    this.display.removeClass('minplayer-player-' + this.media.mediaFile.player);
+    this.media.load(this.options.file);
+    this.display.addClass('minplayer-player-' + this.media.mediaFile.player);
+    return false;
+  }
+};
+
+/**
+ * Load a set of files or a single file for the media player.
+ *
+ * @param {array} files An array of files to chose from to load.
+ */
+minplayer.prototype.load = function(files) {
+
+  // Set the id and class.
+  var id = '', pClass = '';
+
+  // If no file was provided, then get it.
+  this.options.files = files || this.options.files;
+  this.options.file = minplayer.getMediaFile(this.options.files);
+
+  // Now load the player.
+  if (this.loadPlayer()) {
+
+    // Add the events since we now have a player.
+    this.bindTo(this.media);
+
+    // If the player isn't valid, then show an error.
+    if (this.options.file.mimetype && !this.options.file.player) {
+      this.showError('Cannot play media: ' + this.options.file.mimetype);
+    }
+  }
+};
+
+/**
+ * Called when the player is resized.
+ */
+minplayer.prototype.resize = function() {
+
+  // Call onRezie for each plugin.
+  this.get(function(plugin) {
+    if (plugin.onResize) {
+      plugin.onResize();
+    }
+  });
+};
diff --git a/public/admin/js/osmplayer/minplayer/src/minplayer.playLoader.js b/public/admin/js/osmplayer/minplayer/src/minplayer.playLoader.js
new file mode 100644
index 00000000000..14072373f45
--- /dev/null
+++ b/public/admin/js/osmplayer/minplayer/src/minplayer.playLoader.js
@@ -0,0 +1,220 @@
+/** The minplayer namespace. */
+var minplayer = minplayer || {};
+
+/**
+ * @constructor
+ * @extends minplayer.display
+ * @class The play loader base class, which is used to control the busy
+ * cursor, big play button, and the opaque background which shows when the
+ * player is paused.
+ *
+ * @param {object} context The jQuery context.
+ * @param {object} options This components options.
+ */
+minplayer.playLoader = function(context, options) {
+
+  // Define the flags that control the busy cursor.
+  this.busy = new minplayer.flags();
+
+  // Define the flags that control the big play button.
+  this.bigPlay = new minplayer.flags();
+
+  // Define the flags the control the preview.
+  this.previewFlag = new minplayer.flags();
+
+  /** The preview image. */
+  this.preview = null;
+
+  /** If the playLoader is enabled. */
+  this.enabled = true;
+
+  // Derive from display
+  minplayer.display.call(this, 'playLoader', context, options);
+};
+
+/** Derive from minplayer.display. */
+minplayer.playLoader.prototype = new minplayer.display();
+
+/** Reset the constructor. */
+minplayer.playLoader.prototype.constructor = minplayer.playLoader;
+
+/**
+ * The constructor.
+ */
+minplayer.playLoader.prototype.construct = function() {
+
+  // Call the media display constructor.
+  minplayer.display.prototype.construct.call(this);
+
+  // Set the plugin name within the options.
+  this.options.pluginName = 'playLoader';
+
+  // Get the media plugin.
+  this.initialize();
+
+  // We are now ready.
+  this.ready();
+};
+
+/**
+ * Initialize the playLoader.
+ */
+minplayer.playLoader.prototype.initialize = function() {
+
+  // Get the media plugin.
+  this.get('media', function(media) {
+
+    // Only bind if this player does not have its own play loader.
+    if (!media.hasPlayLoader(this.options.preview)) {
+
+      // Enable the playLoader.
+      this.enabled = true;
+
+      // Get the poster image.
+      if (!this.options.preview) {
+        this.options.preview = media.elements.media.attr('poster');
+      }
+
+      // Reset the media's poster image.
+      media.elements.media.attr('poster', '');
+
+      // Load the preview image.
+      this.loadPreview();
+
+      // Trigger a play event when someone clicks on the controller.
+      if (this.elements.bigPlay) {
+        minplayer.click(this.elements.bigPlay.unbind(), function(event) {
+          event.preventDefault();
+          minplayer.showAll();
+          jQuery(this).hide();
+          media.play();
+        });
+      }
+
+      // Bind to the player events to control the play loader.
+      media.unbind('loadstart').bind('loadstart', (function(playLoader) {
+        return function(event) {
+          playLoader.busy.setFlag('media', true);
+          playLoader.bigPlay.setFlag('media', true);
+          playLoader.previewFlag.setFlag('media', true);
+          playLoader.checkVisibility();
+        };
+      })(this));
+      media.bind('waiting', (function(playLoader) {
+        return function(event) {
+          playLoader.busy.setFlag('media', true);
+          playLoader.checkVisibility();
+        };
+      })(this));
+      media.bind('loadeddata', (function(playLoader) {
+        return function(event) {
+          playLoader.busy.setFlag('media', false);
+          playLoader.checkVisibility();
+        };
+      })(this));
+      media.bind('playing', (function(playLoader) {
+        return function(event) {
+          playLoader.busy.setFlag('media', false);
+          playLoader.bigPlay.setFlag('media', false);
+          if (media.mediaFile.type !== 'audio') {
+            playLoader.previewFlag.setFlag('media', false);
+          }
+          playLoader.checkVisibility();
+        };
+      })(this));
+      media.bind('pause', (function(playLoader) {
+        return function(event) {
+          playLoader.bigPlay.setFlag('media', true);
+          playLoader.checkVisibility();
+        };
+      })(this));
+    }
+    else {
+
+      // Hide the display.
+      this.enabled = false;
+      this.hide(this.elements.busy);
+      this.hide(this.elements.bigPlay);
+      this.hide(this.elements.preview);
+      this.hide();
+    }
+  });
+};
+
+/**
+ * Loads the preview image.
+ */
+minplayer.playLoader.prototype.loadPreview = function() {
+
+  // Ignore if disabled.
+  if (!this.enabled) {
+    return;
+  }
+
+  // If the preview element exists.
+  if (this.elements.preview) {
+
+    // If there is a preview to show...
+    if (this.options.preview) {
+
+      // Say that this has a preview.
+      this.elements.preview.addClass('has-preview').show();
+
+      // Create a new preview image.
+      this.preview = new minplayer.image(this.elements.preview, this.options);
+
+      // Create the image.
+      this.preview.load(this.options.preview);
+    }
+    else {
+
+      // Hide the preview.
+      this.elements.preview.hide();
+    }
+  }
+};
+
+/**
+ * Hide or show certain elements based on the state of the busy and big play
+ * button.
+ */
+minplayer.playLoader.prototype.checkVisibility = function() {
+
+  // Ignore if disabled.
+  if (!this.enabled) {
+    return;
+  }
+
+  // Hide or show the busy cursor based on the flags.
+  if (this.busy.flag) {
+    this.elements.busy.show();
+  }
+  else {
+    this.elements.busy.hide();
+  }
+
+  // Hide or show the big play button based on the flags.
+  if (this.bigPlay.flag) {
+    this.elements.bigPlay.show();
+  }
+  else {
+    this.elements.bigPlay.hide();
+  }
+
+  if (this.previewFlag.flag) {
+    this.elements.preview.show();
+  }
+  else {
+    this.elements.preview.hide();
+  }
+
+  // Show the control either flag is set.
+  if (this.bigPlay.flag || this.busy.flag || this.previewFlag.flag) {
+    this.display.show();
+  }
+
+  // Hide the whole control if both flags are 0.
+  if (!this.bigPlay.flag && !this.busy.flag && !this.previewFlag.flag) {
+    this.display.hide();
+  }
+};
diff --git a/public/admin/js/osmplayer/minplayer/src/minplayer.players.base.js b/public/admin/js/osmplayer/minplayer/src/minplayer.players.base.js
new file mode 100644
index 00000000000..2b885b88631
--- /dev/null
+++ b/public/admin/js/osmplayer/minplayer/src/minplayer.players.base.js
@@ -0,0 +1,653 @@
+/** The minplayer namespace. */
+var minplayer = minplayer || {};
+
+/** All the media player implementations */
+minplayer.players = minplayer.players || {};
+
+/**
+ * @constructor
+ * @extends minplayer.display
+ * @class The base media player class where all media players derive from.
+ *
+ * @param {object} context The jQuery context.
+ * @param {object} options This components options.
+ * @param {object} queue The event queue to pass events around.
+ */
+minplayer.players.base = function(context, options, queue) {
+
+  // Derive from display
+  minplayer.display.call(this, 'media', context, options, queue);
+};
+
+/** Derive from minplayer.display. */
+minplayer.players.base.prototype = new minplayer.display();
+
+/** Reset the constructor. */
+minplayer.players.base.prototype.constructor = minplayer.players.base;
+
+/**
+ * @see minplayer.display.getElements
+ * @this minplayer.players.base
+ * @return {object} The elements for this display.
+ */
+minplayer.players.base.prototype.getElements = function() {
+  var elements = minplayer.display.prototype.getElements.call(this);
+  return jQuery.extend(elements, {
+    media: this.options.mediaelement
+  });
+};
+
+/**
+ * Get the priority of this media player.
+ *
+ * @return {number} The priority of this media player.
+ */
+minplayer.players.base.getPriority = function() {
+  return 0;
+};
+
+/**
+ * Returns the ID for the media being played.
+ *
+ * @param {object} file A {@link minplayer.file} object.
+ * @return {string} The ID for the provided media.
+ */
+minplayer.players.base.getMediaId = function(file) {
+  return '';
+};
+
+/**
+ * Determine if we can play the media file.
+ *
+ * @param {object} file A {@link minplayer.file} object.
+ * @return {boolean} If this player can play this media type.
+ */
+minplayer.players.base.canPlay = function(file) {
+  return false;
+};
+
+/**
+ * @see minplayer.plugin.construct
+ * @this minplayer.players.base
+ */
+minplayer.players.base.prototype.construct = function() {
+
+  // Call the media display constructor.
+  minplayer.display.prototype.construct.call(this);
+
+  // Set the plugin name within the options.
+  this.options.pluginName = 'basePlayer';
+
+  /** The currently loaded media file. */
+  this.mediaFile = this.options.file;
+
+  // Clear the media player.
+  this.clear();
+
+  // Get the player display object.
+  if (!this.playerFound()) {
+
+    // Add the new player.
+    this.addPlayer();
+  }
+
+  // Get the player object...
+  this.player = this.getPlayer();
+
+  // Toggle playing if they click.
+  minplayer.click(this.display, (function(player) {
+    return function() {
+      minplayer.showAll();
+      if (player.playing) {
+        player.pause();
+      }
+      else {
+        player.play();
+      }
+    };
+  })(this));
+
+  // Bind to key events...
+  jQuery(document).bind('keydown', (function(player) {
+    return function(event) {
+      if (player.hasFocus) {
+        event.preventDefault();
+        switch (event.keyCode) {
+          case 32:  // SPACE
+          case 179: // GOOGLE play/pause button.
+            if (player.playing) {
+              player.pause();
+            }
+            else {
+              player.play();
+            }
+            break;
+          case 38:  // UP
+            player.setVolumeRelative(0.1);
+            break;
+          case 40:  // DOWN
+            player.setVolumeRelative(-0.1);
+            break;
+          case 37:  // LEFT
+          case 227: // GOOGLE TV REW
+            player.seekRelative(-0.05);
+            break;
+          case 39:  // RIGHT
+          case 228: // GOOGLE TV FW
+            player.seekRelative(0.05);
+            break;
+        }
+      }
+    };
+  })(this));
+};
+
+/**
+ * Adds the media player.
+ */
+minplayer.players.base.prototype.addPlayer = function() {
+
+  // Remove the media element if found
+  if (this.elements.media) {
+    this.elements.media.remove();
+  }
+
+  // Create a new media player element.
+  this.elements.media = jQuery(this.create());
+  this.display.html(this.elements.media);
+};
+
+/**
+ * @see minplayer.plugin.destroy.
+ */
+minplayer.players.base.prototype.destroy = function() {
+  minplayer.plugin.prototype.destroy.call(this);
+  this.clear();
+};
+
+/**
+ * Clears the media player.
+ */
+minplayer.players.base.prototype.clear = function() {
+
+  // Reset the ready flag.
+  this.playerReady = false;
+
+  // Reset the player.
+  this.reset();
+
+  // If the player exists, then unbind all events.
+  if (this.player) {
+    jQuery(this.player).unbind();
+  }
+};
+
+/**
+ * Resets all variables.
+ */
+minplayer.players.base.prototype.reset = function() {
+
+  // The duration of the player.
+  this.duration = new minplayer.async();
+
+  // The current play time of the player.
+  this.currentTime = new minplayer.async();
+
+  // The amount of bytes loaded in the player.
+  this.bytesLoaded = new minplayer.async();
+
+  // The total amount of bytes for the media.
+  this.bytesTotal = new minplayer.async();
+
+  // The bytes that the download started with.
+  this.bytesStart = new minplayer.async();
+
+  // The current volume of the player.
+  this.volume = new minplayer.async();
+
+  // Reset focus.
+  this.hasFocus = false;
+
+  // We are not playing.
+  this.playing = false;
+
+  // We are not loading.
+  this.loading = false;
+
+  // Tell everyone else we reset.
+  this.trigger('pause');
+  this.trigger('waiting');
+  this.trigger('progress', {loaded: 0, total: 0, start: 0});
+  this.trigger('timeupdate', {currentTime: 0, duration: 0});
+};
+
+/**
+ * Called when the player is ready to recieve events and commands.
+ */
+minplayer.players.base.prototype.onReady = function() {
+
+  // Only continue if we are not already ready.
+  if (this.playerReady) {
+    return;
+  }
+
+  // Set the ready flag.
+  this.playerReady = true;
+
+  // Set the volume to the default.
+  this.setVolume(this.options.volume / 100);
+
+  // Setup the progress interval.
+  this.loading = true;
+
+  // Create a poll to get the progress.
+  this.poll((function(player) {
+    return function() {
+
+      // Only do this if the play interval is set.
+      if (player.loading) {
+
+        // Get the bytes loaded asynchronously.
+        player.getBytesLoaded(function(bytesLoaded) {
+
+          // Get the bytes total asynchronously.
+          player.getBytesTotal(function(bytesTotal) {
+
+            // Trigger an event about the progress.
+            if (bytesLoaded || bytesTotal) {
+
+              // Get the bytes start, but don't require it.
+              var bytesStart = 0;
+              player.getBytesStart(function(val) {
+                bytesStart = val;
+              });
+
+              // Trigger a progress event.
+              player.trigger('progress', {
+                loaded: bytesLoaded,
+                total: bytesTotal,
+                start: bytesStart
+              });
+
+              // Say we are not longer loading if they are equal.
+              if (bytesLoaded >= bytesTotal) {
+                player.loading = false;
+              }
+            }
+          });
+        });
+      }
+
+      // Keep polling as long as its loading...
+      return player.loading;
+    };
+  })(this), 1000);
+
+  // We are now ready.
+  this.ready();
+
+  // Trigger that the load has started.
+  this.trigger('loadstart');
+};
+
+/**
+ * Should be called when the media is playing.
+ */
+minplayer.players.base.prototype.onPlaying = function() {
+
+  // Trigger an event that we are playing.
+  this.trigger('playing');
+
+  // Say that this player has focus.
+  this.hasFocus = true;
+
+  // Set the playInterval to true.
+  this.playing = true;
+
+  // Create a poll to get the timeupate.
+  this.poll((function(player) {
+    return function() {
+
+      // Only do this if the play interval is set.
+      if (player.playing) {
+
+        // Get the current time asyncrhonously.
+        player.getCurrentTime(function(currentTime) {
+
+          // Get the duration asynchronously.
+          player.getDuration(function(duration) {
+
+            // Convert these to floats.
+            currentTime = parseFloat(currentTime);
+            duration = parseFloat(duration);
+
+            // Trigger an event about the progress.
+            if (currentTime || duration) {
+
+              // Trigger an update event.
+              player.trigger('timeupdate', {
+                currentTime: currentTime,
+                duration: duration
+              });
+            }
+          });
+        });
+      }
+
+      // Keep polling as long as it is playing.
+      return player.playing;
+    };
+  })(this), 1000);
+};
+
+/**
+ * Should be called when the media is paused.
+ */
+minplayer.players.base.prototype.onPaused = function() {
+
+  // Trigger an event that we are paused.
+  this.trigger('pause');
+
+  // Remove focus.
+  this.hasFocus = false;
+
+  // Say we are not playing.
+  this.playing = false;
+};
+
+/**
+ * Should be called when the media is complete.
+ */
+minplayer.players.base.prototype.onComplete = function() {
+  if (this.playing) {
+    this.onPaused();
+  }
+
+  // Stop the intervals.
+  this.playing = false;
+  this.loading = false;
+  this.hasFocus = false;
+  this.trigger('ended');
+};
+
+/**
+ * Should be called when the media is done loading.
+ */
+minplayer.players.base.prototype.onLoaded = function() {
+
+  // If we should autoplay, then just play now.
+  if (this.options.autoplay) {
+    this.play();
+  }
+
+  this.trigger('loadeddata');
+};
+
+/**
+ * Should be called when the player is waiting.
+ */
+minplayer.players.base.prototype.onWaiting = function() {
+  this.trigger('waiting');
+};
+
+/**
+ * Called when an error occurs.
+ *
+ * @param {string} errorCode The error that was triggered.
+ */
+minplayer.players.base.prototype.onError = function(errorCode) {
+  this.hasFocus = false;
+  this.trigger('error', errorCode);
+};
+
+/**
+ * @see minplayer.players.base#isReady
+ * @return {boolean} Checks to see if the Flash is ready.
+ */
+minplayer.players.base.prototype.isReady = function() {
+
+  // Return that the player is set and the ready flag is good.
+  return (this.player && this.playerReady);
+};
+
+/**
+ * Determines if the player should show the playloader.
+ *
+ * @param {string} preview The preview image.
+ * @return {bool} If this player implements its own playLoader.
+ */
+minplayer.players.base.prototype.hasPlayLoader = function(preview) {
+  return false;
+};
+
+/**
+ * Determines if the player should show the controller.
+ *
+ * @return {bool} If this player implements its own controller.
+ */
+minplayer.players.base.prototype.hasController = function() {
+  return false;
+};
+
+/**
+ * Returns if the media player is already within the DOM.
+ *
+ * @return {boolean} TRUE - if the player is in the DOM, FALSE otherwise.
+ */
+minplayer.players.base.prototype.playerFound = function() {
+  return false;
+};
+
+/**
+ * Creates the media player and inserts it in the DOM.
+ *
+ * @return {object} The media player entity.
+ */
+minplayer.players.base.prototype.create = function() {
+  this.reset();
+  return null;
+};
+
+/**
+ * Returns the media player object.
+ *
+ * @return {object} The media player object.
+ */
+minplayer.players.base.prototype.getPlayer = function() {
+  return this.player;
+};
+
+/**
+ * Loads a new media player.
+ *
+ * @param {object} file A {@link minplayer.file} object.
+ * @return {boolean} If this action was performed.
+ */
+minplayer.players.base.prototype.load = function(file) {
+
+  // Store the media file for future lookup.
+  var isString = (typeof this.mediaFile == 'string');
+  var path = isString ? this.mediaFile : this.mediaFile.path;
+  if (file && this.isReady() && (file.path != path)) {
+    this.reset();
+    this.mediaFile = file;
+    return true;
+  }
+
+  return false;
+};
+
+/**
+ * Play the loaded media file.
+ * @return {boolean} If this action was performed.
+ */
+minplayer.players.base.prototype.play = function() {
+  return this.isReady();
+};
+
+/**
+ * Pause the loaded media file.
+ * @return {boolean} If this action was performed.
+ */
+minplayer.players.base.prototype.pause = function() {
+  return this.isReady();
+};
+
+/**
+ * Stop the loaded media file.
+ * @return {boolean} If this action was performed.
+ */
+minplayer.players.base.prototype.stop = function() {
+  this.playing = false;
+  this.loading = false;
+  this.hasFocus = false;
+  return this.isReady();
+};
+
+/**
+ * Seeks to relative position.
+ *
+ * @param {number} pos Relative position.  -1 to 1 (percent), > 1 (seconds).
+ */
+minplayer.players.base.prototype.seekRelative = function(pos) {
+
+  // Get the current time asyncrhonously.
+  this.getCurrentTime((function(player) {
+    return function(currentTime) {
+
+      // Get the duration asynchronously.
+      player.getDuration(function(duration) {
+
+        // Only do this if we have a duration.
+        if (duration) {
+
+          // Get the position.
+          var seekPos = 0;
+          if ((pos > -1) && (pos < 1)) {
+            seekPos = ((currentTime / duration) + parseFloat(pos)) * duration;
+          }
+          else {
+            seekPos = (currentTime + parseFloat(pos));
+          }
+
+          // Set the seek value.
+          player.seek(seekPos);
+        }
+      });
+    };
+  })(this));
+};
+
+/**
+ * Seek the loaded media.
+ *
+ * @param {number} pos The position to seek the minplayer. 0 to 1.
+ * @return {boolean} If this action was performed.
+ */
+minplayer.players.base.prototype.seek = function(pos) {
+  return this.isReady();
+};
+
+/**
+ * Gets a value from the player.
+ *
+ * @param {string} getter The getter method on the player.
+ * @param {function} callback The callback function.
+ */
+minplayer.players.base.prototype.getValue = function(getter, callback) {
+  if (this.isReady()) {
+    var value = this.player[getter]();
+    if ((value !== undefined) && (value !== null)) {
+      callback(value);
+    }
+  }
+};
+
+/**
+ * Set the volume of the loaded minplayer.
+ *
+ * @param {number} vol -1 to 1 - The relative amount to increase or decrease.
+ */
+minplayer.players.base.prototype.setVolumeRelative = function(vol) {
+
+  // Get the volume
+  this.getVolume((function(player) {
+    return function(newVol) {
+      newVol += parseFloat(vol);
+      newVol = (newVol < 0) ? 0 : newVol;
+      newVol = (newVol > 1) ? 1 : newVol;
+      player.setVolume(newVol);
+    };
+  })(this));
+};
+
+/**
+ * Set the volume of the loaded minplayer.
+ *
+ * @param {number} vol The volume to set the media. 0 to 1.
+ * @return {boolean} If this action was performed.
+ */
+minplayer.players.base.prototype.setVolume = function(vol) {
+  this.trigger('volumeupdate', vol);
+  return this.isReady();
+};
+
+/**
+ * Get the volume from the loaded media.
+ *
+ * @param {function} callback Called when the volume is determined.
+ * @return {number} The volume of the media; 0 to 1.
+ */
+minplayer.players.base.prototype.getVolume = function(callback) {
+  return this.volume.get(callback);
+};
+
+/**
+ * Get the current time for the media being played.
+ *
+ * @param {function} callback Called when the time is determined.
+ * @return {number} The volume of the media; 0 to 1.
+ */
+minplayer.players.base.prototype.getCurrentTime = function(callback) {
+  return this.currentTime.get(callback);
+};
+
+/**
+ * Return the duration of the loaded media.
+ *
+ * @param {function} callback Called when the duration is determined.
+ * @return {number} The duration of the loaded media.
+ */
+minplayer.players.base.prototype.getDuration = function(callback) {
+  return this.duration.get(callback);
+};
+
+/**
+ * Return the start bytes for the loaded media.
+ *
+ * @param {function} callback Called when the start bytes is determined.
+ * @return {int} The bytes that were started.
+ */
+minplayer.players.base.prototype.getBytesStart = function(callback) {
+  return this.bytesStart.get(callback);
+};
+
+/**
+ * Return the bytes of media loaded.
+ *
+ * @param {function} callback Called when the bytes loaded is determined.
+ * @return {int} The amount of bytes loaded.
+ */
+minplayer.players.base.prototype.getBytesLoaded = function(callback) {
+  return this.bytesLoaded.get(callback);
+};
+
+/**
+ * Return the total amount of bytes.
+ *
+ * @param {function} callback Called when the bytes total is determined.
+ * @return {int} The total amount of bytes for this media.
+ */
+minplayer.players.base.prototype.getBytesTotal = function(callback) {
+  return this.bytesTotal.get(callback);
+};
diff --git a/public/admin/js/osmplayer/minplayer/src/minplayer.players.flash.js b/public/admin/js/osmplayer/minplayer/src/minplayer.players.flash.js
new file mode 100644
index 00000000000..1a2a9a7d4ce
--- /dev/null
+++ b/public/admin/js/osmplayer/minplayer/src/minplayer.players.flash.js
@@ -0,0 +1,124 @@
+/** The minplayer namespace. */
+var minplayer = minplayer || {};
+
+/** All the media player implementations */
+minplayer.players = minplayer.players || {};
+
+/**
+ * @constructor
+ * @extends minplayer.display
+ * @class The Flash media player class to control the flash fallback.
+ *
+ * @param {object} context The jQuery context.
+ * @param {object} options This components options.
+ * @param {object} queue The event queue to pass events around.
+ */
+minplayer.players.flash = function(context, options, queue) {
+
+  // Derive from players base.
+  minplayer.players.base.call(this, context, options, queue);
+};
+
+/** Derive from minplayer.players.base. */
+minplayer.players.flash.prototype = new minplayer.players.base();
+
+/** Reset the constructor. */
+minplayer.players.flash.prototype.constructor = minplayer.players.flash;
+
+/**
+ * @see minplayer.plugin.construct
+ * @this minplayer.players.flash
+ */
+minplayer.players.flash.prototype.construct = function() {
+
+  // Call the players.base constructor.
+  minplayer.players.base.prototype.construct.call(this);
+
+  // Set the plugin name within the options.
+  this.options.pluginName = 'flash';
+};
+
+/**
+ * @see minplayer.players.base#getPriority
+ * @return {number} The priority of this media player.
+ */
+minplayer.players.flash.getPriority = function() {
+  return 0;
+};
+
+/**
+ * @see minplayer.players.base#canPlay
+ * @return {boolean} If this player can play this media type.
+ */
+minplayer.players.flash.canPlay = function(file) {
+  return false;
+};
+
+/**
+ * API to return the Flash player code provided params.
+ *
+ * @param {object} params The params used to populate the Flash code.
+ * @return {object} A Flash DOM element.
+ */
+minplayer.players.flash.prototype.getFlash = function(params) {
+  // Get the protocol.
+  var protocol = window.location.protocol;
+  if (protocol.charAt(protocol.length - 1) == ':') {
+    protocol = protocol.substring(0, protocol.length - 1);
+  }
+
+  // Insert the swfobject javascript.
+  var tag = document.createElement('script');
+  var src = protocol;
+  src += '://ajax.googleapis.com/ajax/libs/swfobject/2.2/swfobject.js';
+  tag.src = src;
+  var firstScriptTag = document.getElementsByTagName('script')[0];
+  firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);
+
+  // Create the swfobject.
+  setTimeout((function(player) {
+    return function tryAgain() {
+      if (typeof swfobject !== 'undefined') {
+        swfobject.embedSWF(
+          params.swf,
+          params.id,
+          params.width,
+          params.height,
+          '9.0.0',
+          false,
+          params.flashvars,
+          {
+            allowscriptaccess: 'always',
+            allowfullscreen: 'true',
+            wmode: params.wmode,
+            quality: 'high'
+          },
+          {
+            id: params.id,
+            name: params.id,
+            playerType: 'flash'
+          },
+          function(e) {
+            player.player = e.ref;
+          }
+        );
+      }
+      else {
+
+        // Try again after 200 ms.
+        setTimeout(tryAgain, 200);
+      }
+    };
+  })(this), 200);
+
+  // Return the div tag...
+  return '<div id="' + params.id + '"></div>';
+};
+
+/**
+ * @see minplayer.players.base#playerFound
+ * @return {boolean} TRUE - if the player is in the DOM, FALSE otherwise.
+ */
+minplayer.players.flash.prototype.playerFound = function() {
+  return (this.display.find('object[playerType="flash"]').length > 0);
+};
diff --git a/public/admin/js/osmplayer/minplayer/src/minplayer.players.html5.js b/public/admin/js/osmplayer/minplayer/src/minplayer.players.html5.js
new file mode 100644
index 00000000000..0376dd0098a
--- /dev/null
+++ b/public/admin/js/osmplayer/minplayer/src/minplayer.players.html5.js
@@ -0,0 +1,421 @@
+/** The minplayer namespace. */
+var minplayer = minplayer || {};
+
+/** All the media player implementations */
+minplayer.players = minplayer.players || {};
+
+/**
+ * @constructor
+ * @extends minplayer.display
+ * @class The HTML5 media player implementation.
+ *
+ * @param {object} context The jQuery context.
+ * @param {object} options This components options.
+ * @param {object} queue The event queue to pass events around.
+ */
+minplayer.players.html5 = function(context, options, queue) {
+
+  // Derive players base.
+  minplayer.players.base.call(this, context, options, queue);
+};
+
+/** Derive from minplayer.players.base. */
+minplayer.players.html5.prototype = new minplayer.players.base();
+
+/** Reset the constructor. */
+minplayer.players.html5.prototype.constructor = minplayer.players.html5;
+
+/**
+ * @see minplayer.players.base#getPriority
+ * @return {number} The priority of this media player.
+ */
+minplayer.players.html5.getPriority = function() {
+  return 10;
+};
+
+/**
+ * @see minplayer.players.base#canPlay
+ * @return {boolean} If this player can play this media type.
+ */
+minplayer.players.html5.canPlay = function(file) {
+  switch (file.mimetype) {
+    case 'video/ogg':
+      return !!minplayer.playTypes.videoOGG;
+    case 'video/mp4':
+    case 'video/x-mp4':
+    case 'video/m4v':
+    case 'video/x-m4v':
+      return !!minplayer.playTypes.videoH264;
+    case 'video/x-webm':
+    case 'video/webm':
+    case 'application/octet-stream':
+      return !!minplayer.playTypes.videoWEBM;
+    case 'audio/ogg':
+      return !!minplayer.playTypes.audioOGG;
+    case 'audio/mpeg':
+      return !!minplayer.playTypes.audioMP3;
+    case 'audio/mp4':
+      return !!minplayer.playTypes.audioMP4;
+    default:
+      return false;
+  }
+};
+
+/**
+ * @see minplayer.plugin.construct
+ */
+minplayer.players.html5.prototype.construct = function() {
+
+  // Call base constructor.
+  minplayer.players.base.prototype.construct.call(this);
+
+  // Set the plugin name within the options.
+  this.options.pluginName = 'html5';
+
+  // Add the player events.
+  this.addPlayerEvents();
+};
+
+/**
+ * Adds a new player event.
+ *
+ * @param {string} type The type of event being fired.
+ * @param {function} callback Called when the event is fired.
+ */
+minplayer.players.html5.prototype.addPlayerEvent = function(type, callback) {
+  if (this.player) {
+
+    // Add an event listener for this event type.
+    this.player.addEventListener(type, (function(player) {
+
+      // Get the function name.
+      var func = type + 'Event';
+
+      // If the callback already exists, then remove it from the player.
+      if (player[func]) {
+        player.player.removeEventListener(type, player[func], false);
+      }
+
+      // Create a new callback.
+      player[func] = function(event) {
+        callback.call(player, event);
+      };
+
+      // Return the callback.
+      return player[func];
+
+    })(this), false);
+  }
+};
+
+/**
+ * Add events.
+ * @return {boolean} If this action was performed.
+ */
+minplayer.players.html5.prototype.addPlayerEvents = function() {
+
+  // Check if the player exists.
+  if (this.player) {
+
+    this.addPlayerEvent('abort', function() {
+      this.trigger('abort');
+    });
+    this.addPlayerEvent('loadstart', function() {
+      this.onReady();
+    });
+    this.addPlayerEvent('loadeddata', function() {
+      this.onLoaded();
+    });
+    this.addPlayerEvent('loadedmetadata', function() {
+      this.onLoaded();
+    });
+    this.addPlayerEvent('canplaythrough', function() {
+      this.onLoaded();
+    });
+    this.addPlayerEvent('ended', function() {
+      this.onComplete();
+    });
+    this.addPlayerEvent('pause', function() {
+      this.onPaused();
+    });
+    this.addPlayerEvent('play', function() {
+      this.onPlaying();
+    });
+    this.addPlayerEvent('playing', function() {
+      this.onPlaying();
+    });
+
+    var errorSent = false;
+    this.addPlayerEvent('error', function() {
+      if (!errorSent) {
+        errorSent = true;
+        this.trigger('error', 'An error occured - ' + this.player.error.code);
+      }
+    });
+
+    this.addPlayerEvent('waiting', function() {
+      this.onWaiting();
+    });
+    this.addPlayerEvent('durationchange', function() {
+      this.duration.set(this.player.duration);
+      this.trigger('durationchange', {duration: this.player.duration});
+    });
+    this.addPlayerEvent('progress', function(event) {
+      this.bytesTotal.set(event.total);
+      this.bytesLoaded.set(event.loaded);
+    });
+    return true;
+  }
+
+  return false;
+};
+
+/**
+ * @see minplayer.players.base#onReady
+ */
+minplayer.players.html5.prototype.onReady = function() {
+  minplayer.players.base.prototype.onReady.call(this);
+
+  // Android just say we are loaded here.
+  if (minplayer.isAndroid) {
+    this.onLoaded();
+  }
+
+  // iOS devices are strange in that they don't autoload.
+  if (minplayer.isIDevice) {
+    this.play();
+    setTimeout((function(player) {
+      return function() {
+        player.pause();
+        player.onLoaded();
+      };
+    })(this), 1);
+  }
+};
+
+/**
+ * @see minplayer.players.base#playerFound
+ * @return {boolean} TRUE - if the player is in the DOM, FALSE otherwise.
+ */
+minplayer.players.html5.prototype.playerFound = function() {
+  return (this.display.find(this.mediaFile.type).length > 0);
+};
+
+/**
+ * @see minplayer.players.base#create
+ * @return {object} The media player entity.
+ */
+minplayer.players.html5.prototype.create = function() {
+  minplayer.players.base.prototype.create.call(this);
+  var element = jQuery(document.createElement(this.mediaFile.type))
+  .attr(this.options.attributes)
+  .append(
+    jQuery(document.createElement('source')).attr({
+      'src': this.mediaFile.path
+    })
+  );
+
+  // Fix the fluid width and height.
+  element.eq(0)[0].setAttribute('width', '100%');
+  element.eq(0)[0].setAttribute('height', '100%');
+  element.eq(0)[0].setAttribute('autobuffer', true);
+  var option = this.options.autoload ? 'auto' : 'metadata';
+  option = minplayer.isIDevice ? 'metadata' : option;
+  element.eq(0)[0].setAttribute('preload', option);
+  return element;
+};
+
+/**
+ * @see minplayer.players.base#getPlayer
+ * @return {object} The media player object.
+ */
+minplayer.players.html5.prototype.getPlayer = function() {
+  return this.elements.media.eq(0)[0];
+};
+
+/**
+ * @see minplayer.players.base#load
+ * @return {boolean} If this action was performed.
+ */
+minplayer.players.html5.prototype.load = function(file) {
+
+  // See if a load is even necessary.
+  if (minplayer.players.base.prototype.load.call(this, file)) {
+
+    // Get the current source.
+    var src = this.elements.media.attr('src');
+    if (!src) {
+      src = jQuery('source', this.elements.media).eq(0).attr('src');
+    }
+
+    // Only swap out if the new file is different from the source.
+    if (src != file.path) {
+
+      // Add a new player.
+      this.addPlayer();
+
+      // Set the new player.
+      this.player = this.getPlayer();
+
+      // Add the events again.
+      this.addPlayerEvents();
+
+      // Change the source...
+      var code = '<source src="' + file.path + '"></source>';
+      this.elements.media.removeAttr('src').empty().html(code);
+      return true;
+    }
+  }
+
+  return false;
+};
+
+/**
+ * @see minplayer.players.base#play
+ * @return {boolean} If this action was performed.
+ */
+minplayer.players.html5.prototype.play = function() {
+  if (minplayer.players.base.prototype.play.call(this)) {
+    this.player.play();
+    return true;
+  }
+
+  return false;
+};
+
+/**
+ * @see minplayer.players.base#pause
+ * @return {boolean} If this action was performed.
+ */
+minplayer.players.html5.prototype.pause = function() {
+  if (minplayer.players.base.prototype.pause.call(this)) {
+    this.player.pause();
+    return true;
+  }
+
+  return false;
+};
+
+/**
+ * @see minplayer.players.base#stop
+ * @return {boolean} If this action was performed.
+ */
+minplayer.players.html5.prototype.stop = function() {
+  if (minplayer.players.base.prototype.stop.call(this)) {
+    this.player.pause();
+    this.player.src = '';
+    return true;
+  }
+
+  return false;
+};
+
+/**
+ * @see minplayer.players.base#seek
+ * @return {boolean} If this action was performed.
+ */
+minplayer.players.html5.prototype.seek = function(pos) {
+  if (minplayer.players.base.prototype.seek.call(this, pos)) {
+    this.player.currentTime = pos;
+    return true;
+  }
+
+  return false;
+};
+
+/**
+ * @see minplayer.players.base#setVolume
+ * @return {boolean} If this action was performed.
+ */
+minplayer.players.html5.prototype.setVolume = function(vol) {
+  if (minplayer.players.base.prototype.setVolume.call(this, vol)) {
+    this.player.volume = vol;
+    return true;
+  }
+
+  return false;
+};
+
+/**
+ * @see minplayer.players.base#getVolume
+ */
+minplayer.players.html5.prototype.getVolume = function(callback) {
+  if (this.isReady()) {
+    callback(this.player.volume);
+  }
+};
+
+/**
+ * @see minplayer.players.base#getDuration
+ */
+minplayer.players.html5.prototype.getDuration = function(callback) {
+  if (this.isReady()) {
+    callback(this.player.duration);
+  }
+};
+
+/**
+ * @see minplayer.players.base#getCurrentTime
+ */
+minplayer.players.html5.prototype.getCurrentTime = function(callback) {
+  if (this.isReady()) {
+    callback(this.player.currentTime);
+  }
+};
+
+/**
+ * @see minplayer.players.base#getBytesLoaded
+ */
+minplayer.players.html5.prototype.getBytesLoaded = function(callback) {
+  if (this.isReady()) {
+    var loaded = 0;
+
+    // Check several different possibilities.
+    if (this.bytesLoaded.value) {
+      loaded = this.bytesLoaded.value;
+    }
+    else if (this.player.buffered &&
+        this.player.buffered.length > 0 &&
+        this.player.buffered.end &&
+        this.player.duration) {
+      loaded = this.player.buffered.end(0);
+    }
+    else if (this.player.bytesTotal != undefined &&
+             this.player.bytesTotal > 0 &&
+             this.player.bufferedBytes != undefined) {
+      loaded = this.player.bufferedBytes;
+    }
+
+    // Return the loaded amount.
+    callback(loaded);
+  }
+};
+
+/**
+ * @see minplayer.players.base#getBytesTotal
+ */
+minplayer.players.html5.prototype.getBytesTotal = function(callback) {
+  if (this.isReady()) {
+
+    var total = 0;
+
+    // Check several different possibilities.
+    if (this.bytesTotal.value) {
+      total = this.bytesTotal.value;
+    }
+    else if (this.player.buffered &&
+        this.player.buffered.length > 0 &&
+        this.player.buffered.end &&
+        this.player.duration) {
+      total = this.player.duration;
+    }
+    else if (this.player.bytesTotal != undefined &&
+             this.player.bytesTotal > 0 &&
+             this.player.bufferedBytes != undefined) {
+      total = this.player.bytesTotal;
+    }
+
+    // Return the loaded amount.
+    callback(total);
+  }
+};
diff --git a/public/admin/js/osmplayer/minplayer/src/minplayer.players.minplayer.js b/public/admin/js/osmplayer/minplayer/src/minplayer.players.minplayer.js
new file mode 100644
index 00000000000..38dcd2e7c41
--- /dev/null
+++ b/public/admin/js/osmplayer/minplayer/src/minplayer.players.minplayer.js
@@ -0,0 +1,317 @@
+/** The minplayer namespace. */
+var minplayer = minplayer || {};
+
+/** All the media player implementations */
+minplayer.players = minplayer.players || {};
+
+/**
+ * @constructor
+ * @extends minplayer.display
+ * @class The Flash media player class to control the flash fallback.
+ *
+ * @param {object} context The jQuery context.
+ * @param {object} options This components options.
+ * @param {object} queue The event queue to pass events around.
+ */
+minplayer.players.minplayer = function(context, options, queue) {
+
+  // Derive from players flash.
+  minplayer.players.flash.call(this, context, options, queue);
+};
+
+/** Derive from minplayer.players.flash. */
+minplayer.players.minplayer.prototype = new minplayer.players.flash();
+
+/** Reset the constructor. */
+minplayer.players.minplayer.prototype.constructor = minplayer.players.minplayer;
+
+/**
+ * @see minplayer.plugin.construct
+ * @this minplayer.players.minplayer
+ */
+minplayer.players.minplayer.prototype.construct = function() {
+
+  // Call the players.flash constructor.
+  minplayer.players.flash.prototype.construct.call(this);
+
+  // Set the plugin name within the options.
+  this.options.pluginName = 'minplayer';
+};
+
+/**
+ * Called when the Flash player is ready.
+ *
+ * @param {string} id The media player ID.
+ */
+window.onFlashPlayerReady = function(id) {
+  var media = minplayer.get(id, 'media');
+  var i = media.length;
+  while (i--) {
+    media[i].onReady();
+  }
+};
+
+/**
+ * Called when the Flash player updates.
+ *
+ * @param {string} id The media player ID.
+ * @param {string} eventType The event type that was triggered.
+ */
+window.onFlashPlayerUpdate = function(id, eventType) {
+  var media = minplayer.get(id, 'media');
+  var i = media.length;
+  while (i--) {
+    media[i].onMediaUpdate(eventType);
+  }
+};
+
+/**
+ * Used to debug from the Flash player to the browser console.
+ *
+ * @param {string} debug The debug string.
+ */
+window.onFlashPlayerDebug = function(debug) {
+  if (console && console.log) {
+    console.log(debug);
+  }
+};
+
+/**
+ * @see minplayer.players.base#getPriority
+ * @return {number} The priority of this media player.
+ */
+minplayer.players.minplayer.getPriority = function() {
+  return 1;
+};
+
+/**
+ * @see minplayer.players.base#canPlay
+ * @return {boolean} If this player can play this media type.
+ */
+minplayer.players.minplayer.canPlay = function(file) {
+  var isWEBM = jQuery.inArray(file.mimetype, ['video/x-webm',
+    'video/webm',
+    'application/octet-stream'
+  ]) >= 0;
+  return !isWEBM && (file.type == 'video' || file.type == 'audio');
+};
+
+/**
+ * @see minplayer.players.base#create
+ * @return {object} The media player entity.
+ */
+minplayer.players.minplayer.prototype.create = function() {
+
+  // Make sure we provide default options...
+  this.options = jQuery.extend({
+    swfplayer: 'flash/minplayer.swf'
+  }, this.options);
+
+  minplayer.players.flash.prototype.create.call(this);
+
+  // The flash variables for this flash player.
+  var flashVars = {
+    'id': this.options.id,
+    'debug': this.options.debug,
+    'config': 'nocontrols',
+    'file': this.mediaFile.path,
+    'autostart': this.options.autoplay,
+    'autoload': this.options.autoload
+  };
+
+  // Return a flash media player object.
+  return this.getFlash({
+    swf: this.options.swfplayer,
+    id: this.options.id + '_player',
+    width: '100%',
+    height: '100%',
+    flashvars: flashVars,
+    wmode: this.options.wmode
+  });
+};
+
+/**
+ * Called when the Flash player has an update.
+ *
+ * @param {string} eventType The event that was triggered in the player.
+ */
+minplayer.players.minplayer.prototype.onMediaUpdate = function(eventType) {
+  switch (eventType) {
+    case 'mediaMeta':
+      this.onLoaded();
+      break;
+    case 'mediaPlaying':
+      if (this.minplayerloaded) {
+        this.onPlaying();
+      }
+      break;
+    case 'mediaPaused':
+      this.minplayerloaded = true;
+      this.onPaused();
+      break;
+    case 'mediaComplete':
+      this.onComplete();
+      break;
+  }
+};
+
+/**
+ * Resets all variables.
+ */
+minplayer.players.minplayer.prototype.clear = function() {
+  minplayer.players.flash.prototype.clear.call(this);
+  this.minplayerloaded = this.options.autoplay;
+};
+
+/**
+ * @see minplayer.players.base#load
+ * @return {boolean} If this action was performed.
+ */
+minplayer.players.minplayer.prototype.load = function(file) {
+  if (minplayer.players.flash.prototype.load.call(this, file)) {
+    this.player.loadMedia(file.path, file.stream);
+    return true;
+  }
+
+  return false;
+};
+
+/**
+ * @see minplayer.players.base#play
+ * @return {boolean} If this action was performed.
+ */
+minplayer.players.minplayer.prototype.play = function() {
+  if (minplayer.players.flash.prototype.play.call(this)) {
+    this.player.playMedia();
+    return true;
+  }
+
+  return false;
+};
+
+/**
+ * @see minplayer.players.base#pause
+ * @return {boolean} If this action was performed.
+ */
+minplayer.players.minplayer.prototype.pause = function() {
+  if (minplayer.players.flash.prototype.pause.call(this)) {
+    this.player.pauseMedia();
+    return true;
+  }
+
+  return false;
+};
+
+/**
+ * @see minplayer.players.base#stop
+ * @return {boolean} If this action was performed.
+ */
+minplayer.players.minplayer.prototype.stop = function() {
+  if (minplayer.players.flash.prototype.stop.call(this)) {
+    this.player.stopMedia();
+    return true;
+  }
+
+  return false;
+};
+
+/**
+ * @see minplayer.players.base#seek
+ * @return {boolean} If this action was performed.
+ */
+minplayer.players.minplayer.prototype.seek = function(pos) {
+  if (minplayer.players.flash.prototype.seek.call(this, pos)) {
+    this.player.seekMedia(pos);
+    return true;
+  }
+
+  return false;
+};
+
+/**
+ * @see minplayer.players.base#setVolume
+ * @return {boolean} If this action was performed.
+ */
+minplayer.players.minplayer.prototype.setVolume = function(vol) {
+  if (minplayer.players.flash.prototype.setVolume.call(this, vol)) {
+    this.player.setVolume(vol);
+    return true;
+  }
+
+  return false;
+};
+
+/**
+ * @see minplayer.players.base#getVolume
+ */
+minplayer.players.minplayer.prototype.getVolume = function(callback) {
+  if (this.isReady()) {
+    var vol = 0;
+    var tries = 5;
+    setTimeout((function(player) {
+      return function tryAgain() {
+        vol = player.player.getVolume();
+        if (!vol && (tries-- > 0)) {
+          setTimeout(tryAgain, 200);
+        }
+        else {
+          callback(vol);
+        }
+      };
+    })(this), 200);
+  }
+};
+
+/**
+ * @see minplayer.players.flash#getDuration
+ */
+minplayer.players.minplayer.prototype.getDuration = function(callback) {
+  if (this.isReady()) {
+
+    // Check to see if it is immediately available.
+    var duration = this.player.getDuration();
+    if (duration) {
+      callback(duration);
+    }
+    else {
+
+      // If not, then poll every second for the duration.
+      this.poll((function(player) {
+        return function() {
+          duration = player.player.getDuration();
+          if (duration) {
+            callback(duration);
+          }
+          return !duration;
+        };
+      })(this), 1000);
+    }
+  }
+};
+
+/**
+ * @see minplayer.players.base#getCurrentTime
+ */
+minplayer.players.minplayer.prototype.getCurrentTime = function(callback) {
+  if (this.isReady()) {
+    callback(this.player.getCurrentTime());
+  }
+};
+
+/**
+ * @see minplayer.players.base#getBytesLoaded
+ */
+minplayer.players.minplayer.prototype.getBytesLoaded = function(callback) {
+  if (this.isReady()) {
+    callback(this.player.getMediaBytesLoaded());
+  }
+};
+
+/**
+ * @see minplayer.players.base#getBytesTotal.
+ */
+minplayer.players.minplayer.prototype.getBytesTotal = function(callback) {
+  if (this.isReady()) {
+    callback(this.player.getMediaBytesTotal());
+  }
+};
diff --git a/public/admin/js/osmplayer/minplayer/src/minplayer.players.vimeo.js b/public/admin/js/osmplayer/minplayer/src/minplayer.players.vimeo.js
new file mode 100644
index 00000000000..2fcd5a43a23
--- /dev/null
+++ b/public/admin/js/osmplayer/minplayer/src/minplayer.players.vimeo.js
@@ -0,0 +1,347 @@
+/** The minplayer namespace. */
+var minplayer = minplayer || {};
+
+/** All the media player implementations */
+minplayer.players = minplayer.players || {};
+
+/**
+ * @constructor
+ * @extends minplayer.players.base
+ * @class The vimeo media player.
+ *
+ * @param {object} context The jQuery context.
+ * @param {object} options This components options.
+ * @param {object} queue The event queue to pass events around.
+ */
+minplayer.players.vimeo = function(context, options, queue) {
+
+  // Derive from players base.
+  minplayer.players.base.call(this, context, options, queue);
+};
+
+/** Derive from minplayer.players.base. */
+minplayer.players.vimeo.prototype = new minplayer.players.base();
+
+/** Reset the constructor. */
+minplayer.players.vimeo.prototype.constructor = minplayer.players.vimeo;
+
+/**
+ * @see minplayer.plugin.construct
+ * @this minplayer.players.vimeo
+ */
+minplayer.players.vimeo.prototype.construct = function() {
+
+  // Call the players.flash constructor.
+  minplayer.players.base.prototype.construct.call(this);
+
+  // Set the plugin name within the options.
+  this.options.pluginName = 'vimeo';
+};
+
+/**
+ * @see minplayer.players.base#getPriority
+ * @return {number} The priority of this media player.
+ */
+minplayer.players.vimeo.getPriority = function() {
+  return 10;
+};
+
+/**
+ * @see minplayer.players.base#canPlay
+ * @return {boolean} If this player can play this media type.
+ */
+minplayer.players.vimeo.canPlay = function(file) {
+
+  // Check for the mimetype for vimeo.
+  if (file.mimetype === 'video/vimeo') {
+    return true;
+  }
+
+  // If the path is a vimeo path, then return true.
+  return (file.path.search(/^http(s)?\:\/\/(www\.)?vimeo\.com/i) === 0);
+};
+
+/**
+ * Determines if the player should show the playloader.
+ *
+ * @param {string} preview The preview image.
+ * @return {bool} If this player implements its own playLoader.
+ */
+minplayer.players.vimeo.prototype.hasPlayLoader = function(preview) {
+  return minplayer.hasTouch || !preview;
+};
+
+/**
+ * Determines if the player should show the playloader.
+ *
+ * @return {bool} If this player implements its own playLoader.
+ */
+minplayer.players.vimeo.prototype.hasController = function() {
+  return minplayer.hasTouch;
+};
+
+/**
+ * Return the ID for a provided media file.
+ *
+ * @param {object} file A {@link minplayer.file} object.
+ * @return {string} The ID for the provided media.
+ */
+minplayer.players.vimeo.getMediaId = function(file) {
+  var regex = /^http[s]?\:\/\/(www\.)?vimeo\.com\/(\?v\=)?([0-9]+)/i;
+  if (file.path.search(regex) === 0) {
+    return file.path.match(regex)[3];
+  }
+  else {
+    return file.path;
+  }
+};
+
+/**
+ * Returns a preview image for this media player.
+ *
+ * @param {object} file A {@link minplayer.file} object.
+ * @param {string} type The type of image.
+ * @param {function} callback Called when the image is retrieved.
+ */
+minplayer.players.vimeo.getImage = function(file, type, callback) {
+  jQuery.ajax({
+    url: 'http://vimeo.com/api/v2/video/' + file.id + '.json',
+    dataType: 'jsonp',
+    success: function(data) {
+      callback(data[0].thumbnail_large);
+    }
+  });
+};
+
+/**
+ * @see minplayer.players.base#reset
+ */
+minplayer.players.vimeo.prototype.reset = function() {
+
+  // Reset the flash variables..
+  minplayer.players.base.prototype.reset.call(this);
+};
+
+/**
+ * @see minplayer.players.base#create
+ * @return {object} The media player entity.
+ */
+minplayer.players.vimeo.prototype.create = function() {
+  minplayer.players.base.prototype.create.call(this);
+
+  // Insert the Vimeo Froogaloop player.
+  var tag = document.createElement('script');
+  tag.src = 'http://a.vimeocdn.com/js/froogaloop2.min.js';
+  var firstScriptTag = document.getElementsByTagName('script')[0];
+  firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);
+
+  // Create the iframe for this player.
+  var iframe = document.createElement('iframe');
+  iframe.setAttribute('id', this.options.id + '-player');
+  iframe.setAttribute('type', 'text/html');
+  iframe.setAttribute('width', '100%');
+  iframe.setAttribute('height', '100%');
+  iframe.setAttribute('frameborder', '0');
+  jQuery(iframe).addClass('vimeo-player');
+
+  // Get the source.
+  var src = 'http://player.vimeo.com/video/';
+  src += this.mediaFile.id + '?';
+
+  // Add the parameters to the src.
+  src += jQuery.param({
+    'wmode': 'opaque',
+    'api': 1,
+    'player_id': this.options.id + '-player',
+    'title': 0,
+    'byline': 0,
+    'portrait': 0,
+    'autoplay': this.options.autoplay,
+    'loop': this.options.loop
+  });
+
+  // Set the source of the iframe.
+  iframe.setAttribute('src', src);
+
+  // Now register this player when the froogaloop code is loaded.
+  this.poll((function(player) {
+    return function() {
+      if (window.Froogaloop) {
+        player.player = window.Froogaloop(iframe);
+        var playerTimeout = 0;
+        player.player.addEvent('ready', function() {
+          clearTimeout(playerTimeout);
+          player.onReady();
+          player.onError('');
+        });
+        playerTimeout = setTimeout(function() {
+          player.onReady();
+          player.onError('Unable to play video.');
+        }, 2000);
+      }
+      return !window.Froogaloop;
+    };
+  })(this), 200);
+
+  // Trigger that the load has started.
+  this.trigger('loadstart');
+
+  // Return the player.
+  return iframe;
+};
+
+/**
+ * @see minplayer.players.base#onReady
+ */
+minplayer.players.vimeo.prototype.onReady = function(player_id) {
+
+  // Add the other listeners.
+  this.player.addEvent('loadProgress', (function(player) {
+    return function(progress) {
+      player.duration.set(parseFloat(progress.duration));
+      player.bytesLoaded.set(progress.bytesLoaded);
+      player.bytesTotal.set(progress.bytesTotal);
+    };
+  })(this));
+
+  this.player.addEvent('playProgress', (function(player) {
+    return function(progress) {
+      player.duration.set(parseFloat(progress.duration));
+      player.currentTime.set(parseFloat(progress.seconds));
+    };
+  })(this));
+
+  this.player.addEvent('play', (function(player) {
+    return function() {
+      player.onPlaying();
+    };
+  })(this));
+
+  this.player.addEvent('pause', (function(player) {
+    return function() {
+      player.onPaused();
+    };
+  })(this));
+
+  this.player.addEvent('finish', (function(player) {
+    return function() {
+      player.onComplete();
+    };
+  })(this));
+
+  minplayer.players.base.prototype.onReady.call(this);
+  this.onLoaded();
+};
+
+/**
+ * Clears the media player.
+ */
+minplayer.players.vimeo.prototype.clear = function() {
+  if (this.player) {
+    this.player.api('unload');
+  }
+  minplayer.players.base.prototype.clear.call(this);
+};
+
+/**
+ * @see minplayer.players.base#load
+ * @return {boolean} If this action was performed.
+ */
+minplayer.players.vimeo.prototype.load = function(file) {
+  if (minplayer.players.base.prototype.load.call(this, file)) {
+    this.construct();
+    return true;
+  }
+  return false;
+};
+
+/**
+ * @see minplayer.players.base#play
+ * @return {boolean} If this action was performed.
+ */
+minplayer.players.vimeo.prototype.play = function() {
+  if (minplayer.players.base.prototype.play.call(this)) {
+    this.player.api('play');
+    return true;
+  }
+
+  return false;
+};
+
+/**
+ * @see minplayer.players.base#pause
+ * @return {boolean} If this action was performed.
+ */
+minplayer.players.vimeo.prototype.pause = function() {
+  if (minplayer.players.base.prototype.pause.call(this)) {
+    this.player.api('pause');
+    return true;
+  }
+
+  return false;
+};
+
+/**
+ * @see minplayer.players.base#stop
+ * @return {boolean} If this action was performed.
+ */
+minplayer.players.vimeo.prototype.stop = function() {
+  if (minplayer.players.base.prototype.stop.call(this)) {
+    this.player.api('unload');
+    return true;
+  }
+
+  return false;
+};
+
+/**
+ * @see minplayer.players.base#seek
+ * @return {boolean} If this action was performed.
+ */
+minplayer.players.vimeo.prototype.seek = function(pos) {
+  if (minplayer.players.base.prototype.seek.call(this, pos)) {
+    this.player.api('seekTo', pos);
+    return true;
+  }
+
+  return false;
+};
+
+/**
+ * @see minplayer.players.base#setVolume
+ * @return {boolean} If this action was performed.
+ */
+minplayer.players.vimeo.prototype.setVolume = function(vol) {
+  if (minplayer.players.base.prototype.setVolume.call(this, vol)) {
+    this.volume.set(vol);
+    this.player.api('setVolume', vol);
+    return true;
+  }
+
+  return false;
+};
+
+/**
+ * @see minplayer.players.base#getVolume
+ */
+minplayer.players.vimeo.prototype.getVolume = function(callback) {
+  this.player.api('getVolume', function(vol) {
+    callback(vol);
+  });
+};
+
+/**
+ * @see minplayer.players.base#getDuration.
+ */
+minplayer.players.vimeo.prototype.getDuration = function(callback) {
+  if (this.isReady()) {
+    if (this.duration.value) {
+      callback(this.duration.value);
+    }
+    else {
+      this.player.api('getDuration', function(duration) {
+        callback(duration);
+      });
+    }
+  }
+};
diff --git a/public/admin/js/osmplayer/minplayer/src/minplayer.players.youtube.js b/public/admin/js/osmplayer/minplayer/src/minplayer.players.youtube.js
new file mode 100644
index 00000000000..edaf8b55b88
--- /dev/null
+++ b/public/admin/js/osmplayer/minplayer/src/minplayer.players.youtube.js
@@ -0,0 +1,376 @@
+/** The minplayer namespace. */
+var minplayer = minplayer || {};
+
+/** All the media player implementations */
+minplayer.players = minplayer.players || {};
+
+/**
+ * @constructor
+ * @extends minplayer.players.base
+ * @class The YouTube media player.
+ *
+ * @param {object} context The jQuery context.
+ * @param {object} options This components options.
+ * @param {object} queue The event queue to pass events around.
+ */
+minplayer.players.youtube = function(context, options, queue) {
+
+  /** The quality of the YouTube stream. */
+  this.quality = 'default';
+
+  // Derive from players base.
+  minplayer.players.base.call(this, context, options, queue);
+};
+
+/** Derive from minplayer.players.base. */
+minplayer.players.youtube.prototype = new minplayer.players.base();
+
+/** Reset the constructor. */
+minplayer.players.youtube.prototype.constructor = minplayer.players.youtube;
+
+/**
+ * @see minplayer.plugin.construct
+ * @this minplayer.players.youtube
+ */
+minplayer.players.youtube.prototype.construct = function() {
+
+  // Call the players.flash constructor.
+  minplayer.players.base.prototype.construct.call(this);
+
+  // Set the plugin name within the options.
+  this.options.pluginName = 'youtube';
+};
+
+/**
+ * @see minplayer.players.base#getPriority
+ * @return {number} The priority of this media player.
+ */
+minplayer.players.youtube.getPriority = function() {
+  return 10;
+};
+
+/**
+ * @see minplayer.players.base#canPlay
+ * @return {boolean} If this player can play this media type.
+ */
+minplayer.players.youtube.canPlay = function(file) {
+
+  // Check for the mimetype for youtube.
+  if (file.mimetype === 'video/youtube') {
+    return true;
+  }
+
+  // If the path is a YouTube path, then return true.
+  return (file.path.search(/^http(s)?\:\/\/(www\.)?youtube\.com/i) === 0);
+};
+
+/**
+ * Return the ID for a provided media file.
+ *
+ * @param {object} file A {@link minplayer.file} object.
+ * @return {string} The ID for the provided media.
+ */
+minplayer.players.youtube.getMediaId = function(file) {
+  var reg = /^http[s]?\:\/\/(www\.)?youtube\.com\/watch\?v=([a-zA-Z0-9_\-]+)/i;
+  if (file.path.search(reg) === 0) {
+    return file.path.match(reg)[2];
+  }
+  else {
+    return file.path;
+  }
+};
+
+/**
+ * Returns a preview image for this media player.
+ *
+ * @param {object} file A {@link minplayer.file} object.
+ * @param {string} type The type of image.
+ * @param {function} callback Called when the image is retrieved.
+ */
+minplayer.players.youtube.getImage = function(file, type, callback) {
+  type = (type == 'thumbnail') ? '1' : '0';
+  callback('http://img.youtube.com/vi/' + file.id + '/' + type + '.jpg');
+};
+
+/**
+ * Translates the player state for the YouTube API player.
+ *
+ * @param {number} playerState The YouTube player state.
+ */
+minplayer.players.youtube.prototype.setPlayerState = function(playerState) {
+  switch (playerState) {
+    case YT.PlayerState.CUED:
+      break;
+    case YT.PlayerState.BUFFERING:
+      this.onWaiting();
+      break;
+    case YT.PlayerState.PAUSED:
+      this.onPaused();
+      break;
+    case YT.PlayerState.PLAYING:
+      this.onPlaying();
+      break;
+    case YT.PlayerState.ENDED:
+      this.onComplete();
+      break;
+    default:
+      break;
+  }
+};
+
+/**
+ * Called when an error occurs.
+ *
+ * @param {string} event The onReady event that was triggered.
+ */
+minplayer.players.youtube.prototype.onReady = function(event) {
+  minplayer.players.base.prototype.onReady.call(this);
+  if (!this.options.autoplay) {
+    this.pause();
+  }
+  this.onLoaded();
+};
+
+/**
+ * Checks to see if this player can be found.
+ * @return {bool} TRUE - Player is found, FALSE - otherwise.
+ */
+minplayer.players.youtube.prototype.playerFound = function() {
+  var id = 'iframe#' + this.options.id + '-player.youtube-player';
+  var iframe = this.display.find(id);
+  return (iframe.length > 0);
+};
+
+/**
+ * Called when the player state changes.
+ *
+ * @param {object} event A JavaScript Event.
+ */
+minplayer.players.youtube.prototype.onPlayerStateChange = function(event) {
+  this.setPlayerState(event.data);
+};
+
+/**
+ * Called when the player quality changes.
+ *
+ * @param {string} newQuality The new quality for the change.
+ */
+minplayer.players.youtube.prototype.onQualityChange = function(newQuality) {
+  this.quality = newQuality.data;
+};
+
+/**
+ * Determines if the player should show the playloader.
+ *
+ * @param {string} preview The preview image.
+ * @return {bool} If this player implements its own playLoader.
+ */
+minplayer.players.youtube.prototype.hasPlayLoader = function(preview) {
+  return minplayer.hasTouch || !preview;
+};
+
+/**
+ * Determines if the player should show the controller.
+ *
+ * @return {bool} If this player implements its own playLoader.
+ */
+minplayer.players.youtube.prototype.hasController = function() {
+  return minplayer.isIDevice;
+};
+
+/**
+ * @see minplayer.players.base#create
+ * @return {object} The media player entity.
+ */
+minplayer.players.youtube.prototype.create = function() {
+  minplayer.players.base.prototype.create.call(this);
+
+  // Insert the YouTube iframe API player.
+  var tag = document.createElement('script');
+  tag.src = 'https://www.youtube.com/player_api';
+  var firstScriptTag = document.getElementsByTagName('script')[0];
+  firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);
+
+  // Get the player ID.
+  this.playerId = this.options.id + '-player';
+
+  // Poll until the YouTube API is ready.
+  this.poll((function(player) {
+    return function() {
+      var ready = jQuery('#' + player.playerId).length > 0;
+      ready = ready && ('YT' in window);
+      ready = ready && (typeof YT.Player == 'function');
+      if (ready) {
+        // Determine the origin of this script.
+        jQuery('#' + player.playerId).addClass('youtube-player');
+        var origin = location.protocol;
+        origin += '//' + location.hostname;
+        origin += (location.port && ':' + location.port);
+
+        var playerVars = {};
+        if (minplayer.isIDevice) {
+          playerVars.origin = origin;
+        }
+        else {
+          playerVars = {
+            enablejsapi: minplayer.isIDevice ? 0 : 1,
+            origin: origin,
+            wmode: 'opaque',
+            controls: minplayer.isAndroid ? 1 : 0
+          };
+        }
+
+        // Create the player.
+        player.player = new YT.Player(player.playerId, {
+          height: '100%',
+          width: '100%',
+          frameborder: 0,
+          videoId: player.mediaFile.id,
+          playerVars: playerVars,
+          events: {
+            'onReady': function(event) {
+              player.onReady(event);
+            },
+            'onStateChange': function(event) {
+              player.onPlayerStateChange(event);
+            },
+            'onPlaybackQualityChange': function(newQuality) {
+              player.onQualityChange(newQuality);
+            },
+            'onError': function(errorCode) {
+              player.onError(errorCode);
+            }
+          }
+        });
+      }
+      return !ready;
+    };
+  })(this), 200);
+
+  // Return the player.
+  return jQuery(document.createElement('div')).attr({
+    id: this.playerId
+  });
+};
+
+/**
+ * @see minplayer.players.base#load
+ * @return {boolean} If this action was performed.
+ */
+minplayer.players.youtube.prototype.load = function(file) {
+  if (minplayer.players.base.prototype.load.call(this, file)) {
+    this.player.loadVideoById(file.id, 0, this.quality);
+    return true;
+  }
+
+  return false;
+};
+
+/**
+ * @see minplayer.players.base#play
+ * @return {boolean} If this action was performed.
+ */
+minplayer.players.youtube.prototype.play = function() {
+  if (minplayer.players.base.prototype.play.call(this)) {
+    this.onWaiting();
+    this.player.playVideo();
+    return true;
+  }
+
+  return false;
+};
+
+/**
+ * @see minplayer.players.base#pause
+ * @return {boolean} If this action was performed.
+ */
+minplayer.players.youtube.prototype.pause = function() {
+  if (minplayer.players.base.prototype.pause.call(this)) {
+    this.player.pauseVideo();
+    return true;
+  }
+
+  return false;
+};
+
+/**
+ * @see minplayer.players.base#stop
+ * @return {boolean} If this action was performed.
+ */
+minplayer.players.youtube.prototype.stop = function() {
+  if (minplayer.players.base.prototype.stop.call(this)) {
+    this.player.stopVideo();
+    return true;
+  }
+
+  return false;
+};
+
+/**
+ * @see minplayer.players.base#seek
+ * @return {boolean} If this action was performed.
+ */
+minplayer.players.youtube.prototype.seek = function(pos) {
+  if (minplayer.players.base.prototype.seek.call(this, pos)) {
+    this.onWaiting();
+    this.player.seekTo(pos, true);
+    return true;
+  }
+
+  return false;
+};
+
+/**
+ * @see minplayer.players.base#setVolume
+ * @return {boolean} If this action was performed.
+ */
+minplayer.players.youtube.prototype.setVolume = function(vol) {
+  if (minplayer.players.base.prototype.setVolume.call(this, vol)) {
+    this.player.setVolume(vol * 100);
+    return true;
+  }
+
+  return false;
+};
+
+/**
+ * @see minplayer.players.base#getVolume
+ */
+minplayer.players.youtube.prototype.getVolume = function(callback) {
+  this.getValue('getVolume', callback);
+};
+
+/**
+ * @see minplayer.players.base#getDuration.
+ */
+minplayer.players.youtube.prototype.getDuration = function(callback) {
+  this.getValue('getDuration', callback);
+};
+
+/**
+ * @see minplayer.players.base#getCurrentTime
+ */
+minplayer.players.youtube.prototype.getCurrentTime = function(callback) {
+  this.getValue('getCurrentTime', callback);
+};
+
+/**
+ * @see minplayer.players.base#getBytesStart.
+ */
+minplayer.players.youtube.prototype.getBytesStart = function(callback) {
+  this.getValue('getVideoStartBytes', callback);
+};
+
+/**
+ * @see minplayer.players.base#getBytesLoaded.
+ */
+minplayer.players.youtube.prototype.getBytesLoaded = function(callback) {
+  this.getValue('getVideoBytesLoaded', callback);
+};
+
+/**
+ * @see minplayer.players.base#getBytesTotal.
+ */
+minplayer.players.youtube.prototype.getBytesTotal = function(callback) {
+  this.getValue('getVideoBytesTotal', callback);
+};
diff --git a/public/admin/js/osmplayer/minplayer/src/minplayer.plugin.js b/public/admin/js/osmplayer/minplayer/src/minplayer.plugin.js
new file mode 100644
index 00000000000..d3e9fa9141c
--- /dev/null
+++ b/public/admin/js/osmplayer/minplayer/src/minplayer.plugin.js
@@ -0,0 +1,631 @@
+/** The minplayer namespace. */
+minplayer = minplayer || {};
+
+/** Static array to keep track of all plugins. */
+minplayer.plugins = minplayer.plugins || {};
+
+/** Static array to keep track of queues. */
+minplayer.queue = minplayer.queue || [];
+
+/** Mutex lock to keep multiple triggers from occuring. */
+minplayer.lock = false;
+
+/**
+ * @constructor
+ * @class The base class for all plugins.
+ *
+ * @param {string} name The name of this plugin.
+ * @param {object} context The jQuery context.
+ * @param {object} options This components options.
+ * @param {object} queue The event queue to pass events around.
+ */
+minplayer.plugin = function(name, context, options, queue) {
+
+  /** The name of this plugin. */
+  this.name = name;
+
+  /** The ready flag. */
+  this.pluginReady = false;
+
+  /** The options for this plugin. */
+  this.options = options || {};
+
+  /** The event queue. */
+  this.queue = queue || {};
+
+  /** Keep track of already triggered events. */
+  this.triggered = {};
+
+  /** Create a queue lock. */
+  this.lock = false;
+
+  // Only call the constructor if we have a context.
+  if (context) {
+
+    /** Say that we are active. */
+    this.active = true;
+
+    /** Keep track of the context. */
+    this.context = jQuery(context);
+
+    // Construct this plugin.
+    this.construct();
+  }
+};
+
+/**
+ * The constructor which is called once the context is set.
+ * Any class deriving from the plugin class should place all context
+ * dependant functionality within this function instead of the standard
+ * constructor function since it is called on object derivation as well
+ * as object creation.
+ */
+minplayer.plugin.prototype.construct = function() {
+
+  // Adds this as a plugin.
+  this.addPlugin();
+};
+
+/**
+ * Destructor.
+ */
+minplayer.plugin.prototype.destroy = function() {
+
+  // Unbind all events.
+  this.active = false;
+  this.unbind();
+};
+
+/**
+ * Creates a new plugin within this context.
+ *
+ * @param {string} name The name of the plugin you wish to create.
+ * @param {object} base The base object for this plugin.
+ * @param {object} context The context which you would like to create.
+ * @return {object} The new plugin object.
+ */
+minplayer.plugin.prototype.create = function(name, base, context) {
+  var plugin = null;
+
+  // Make sure we have a base object.
+  base = base || 'minplayer';
+  if (!window[base][name]) {
+    base = 'minplayer';
+  }
+
+  // Make sure there is a context.
+  context = context || this.display;
+
+  // See if this plugin exists within this object.
+  if (window[base][name]) {
+
+    // Set the plugin.
+    plugin = window[base][name];
+
+    // See if a template version of the plugin exists.
+    if (plugin[this.options.template]) {
+
+      plugin = plugin[this.options.template];
+    }
+
+    // Make sure the plugin is a function.
+    if (typeof plugin !== 'function') {
+      plugin = window['minplayer'][name];
+    }
+
+    // Make sure it is a function.
+    if (typeof plugin === 'function') {
+      return new plugin(context, this.options);
+    }
+  }
+
+  return null;
+};
+
+/**
+ * Plugins should call this method when they are ready.
+ */
+minplayer.plugin.prototype.ready = function() {
+
+  // Keep this plugin from triggering multiple ready events.
+  if (!this.pluginReady) {
+
+    // Set the ready flag.
+    this.pluginReady = true;
+
+    // Now trigger that I am ready.
+    this.trigger('ready');
+
+    // Check the queue.
+    this.checkQueue();
+  }
+};
+
+/**
+ * Returns if this component is valid.
+ *
+ * @return {boolean} TRUE if the plugin display is valid.
+ */
+minplayer.plugin.prototype.isValid = function() {
+  return !!this.options.id && this.active;
+};
+
+/**
+ * Adds a new plugin to this player.
+ *
+ * @param {string} name The name of this plugin.
+ * @param {object} plugin A new plugin object, derived from media.plugin.
+ */
+minplayer.plugin.prototype.addPlugin = function(name, plugin) {
+  name = name || this.name;
+  plugin = plugin || this;
+
+  // Make sure the plugin is valid.
+  if (plugin.isValid()) {
+
+    // If the plugins for this instance do not exist.
+    if (!minplayer.plugins[this.options.id]) {
+
+      // Initialize the plugins.
+      minplayer.plugins[this.options.id] = {};
+    }
+
+    if (!minplayer.plugins[this.options.id][name]) {
+
+      // Add the plugins array.
+      minplayer.plugins[this.options.id][name] = [];
+    }
+
+    // Add this plugin.
+    minplayer.plugins[this.options.id][name].push(plugin);
+
+    // Now check the queue for this plugin.
+    this.checkQueue(plugin);
+  }
+};
+
+/**
+ * Create a polling timer.
+ *
+ * @param {function} callback The function to call when you poll.
+ * @param {integer} interval The interval you would like to poll.
+ */
+minplayer.plugin.prototype.poll = function(callback, interval) {
+  setTimeout((function(context) {
+    return function callLater() {
+      if (callback.call(context)) {
+        setTimeout(callLater, interval);
+      }
+    };
+  })(this), interval);
+};
+
+/**
+ * Gets a plugin by name and calls callback when it is ready.
+ *
+ * @param {string} plugin The plugin of the plugin.
+ * @param {function} callback Called when the plugin is ready.
+ * @return {object} The plugin if no callback is provided.
+ */
+minplayer.plugin.prototype.get = function(plugin, callback) {
+
+  // If they pass just a callback, then return all plugins when ready.
+  if (typeof plugin === 'function') {
+    callback = plugin;
+    plugin = null;
+  }
+
+  // Return the minplayer.get equivalent.
+  return minplayer.get.call(this, this.options.id, plugin, callback);
+};
+
+/**
+ * Check the queue and execute it.
+ *
+ * @param {object} plugin The plugin object to check the queue against.
+ */
+minplayer.plugin.prototype.checkQueue = function(plugin) {
+
+  // Initialize our variables.
+  var q = null, i = 0, check = false, newqueue = [];
+
+  // Normalize the plugin variable.
+  plugin = plugin || this;
+
+  // Set the lock.
+  minplayer.lock = true;
+
+  // Iterate through all the queues.
+  var length = minplayer.queue.length;
+  for (i = 0; i < length; i++) {
+    if (minplayer.queue.hasOwnProperty(i)) {
+      // Get the queue.
+      q = minplayer.queue[i];
+
+      // Now check to see if this queue is about us.
+      check = !q.id && !q.plugin;
+      check |= (q.plugin == plugin.name);
+      check &= (!q.id || (q.id == this.options.id));
+
+      // If the check passes...
+      if (check) {
+        check = minplayer.bind.call(
+          q.context,
+          q.event,
+          this.options.id,
+          plugin.name,
+          q.callback
+        );
+      }
+
+      // Add the queue back if it doesn't check out.
+      if (!check) {
+
+        // Add this back to the queue.
+        newqueue.push(q);
+      }
+    }
+  }
+
+  // Set the old queue to the new queue.
+  minplayer.queue = newqueue;
+
+  // Release the lock.
+  minplayer.lock = false;
+};
+
+/**
+ * Trigger a media event.
+ *
+ * @param {string} type The event type.
+ * @param {object} data The event data object.
+ * @return {object} The plugin object.
+ */
+minplayer.plugin.prototype.trigger = function(type, data) {
+
+  // Don't trigger if this plugin is inactive.
+  if (!this.active) {
+    return this;
+  }
+
+  // Add this to our triggered array.
+  this.triggered[type] = data;
+
+  // Check to make sure the queue for this type exists.
+  if (this.queue.hasOwnProperty(type)) {
+
+    var i = 0, queue = {}, queuetype = this.queue[type];
+
+    // Iterate through all the callbacks in this queue.
+    for (i in queuetype) {
+
+      // Check to make sure the queue index exists.
+      if (queuetype.hasOwnProperty(i)) {
+
+        // Setup the event object, and call the callback.
+        queue = queuetype[i];
+        queue.callback({target: this, data: queue.data}, data);
+      }
+    }
+  }
+
+  // Return the plugin object.
+  return this;
+};
+
+/**
+ * Bind to a media event.
+ *
+ * @param {string} type The event type.
+ * @param {object} data The data to bind with the event.
+ * @param {function} fn The callback function.
+ * @return {object} The plugin object.
+ **/
+minplayer.plugin.prototype.bind = function(type, data, fn) {
+
+  // Only bind if active.
+  if (!this.active) {
+    return this;
+  }
+
+  // Allow the data to be the callback.
+  if (typeof data === 'function') {
+    fn = data;
+    data = null;
+  }
+
+  // You must bind to a specific event and have a callback.
+  if (!type || !fn) {
+    return;
+  }
+
+  // Initialize the queue for this type.
+  this.queue[type] = this.queue[type] || [];
+
+  // Unbind any existing equivalent events.
+  this.unbind(type, fn);
+
+  // Now add this event to the queue.
+  this.queue[type].push({
+    callback: fn,
+    data: data
+  });
+
+  // Now see if this event has already been triggered.
+  if (this.triggered.hasOwnProperty(type)) {
+
+    // Go ahead and trigger the event.
+    fn({target: this, data: data}, this.triggered[type]);
+  }
+
+  // Return the plugin.
+  return this;
+};
+
+/**
+ * Unbind a media event.
+ *
+ * @param {string} type The event type.
+ * @param {function} fn The callback function.
+ * @return {object} The plugin object.
+ **/
+minplayer.plugin.prototype.unbind = function(type, fn) {
+
+  // If this is locked then try again after 10ms.
+  if (this.lock) {
+    setTimeout((function(plugin) {
+      return function() {
+        plugin.unbind(type, fn);
+      };
+    })(this), 10);
+  }
+
+  // Set the lock.
+  this.lock = true;
+
+  // Get the queue type.
+  var queuetype = this.queue.hasOwnProperty(type) ? this.queue[type] : null;
+
+  if (!type) {
+    this.queue = {};
+  }
+  else if (!fn) {
+    this.queue[type] = [];
+  }
+  else if (queuetype) {
+    // Iterate through all the callbacks and search for equal callbacks.
+    var i = 0, queue = {};
+    for (i in queuetype) {
+      if (queuetype.hasOwnProperty(i)) {
+        if (queuetype[i].callback === fn) {
+          queue = this.queue[type].splice(i, 1);
+          delete queue;
+        }
+      }
+    }
+  }
+
+  // Reset the lock.
+  this.lock = false;
+
+  // Return the plugin.
+  return this;
+};
+
+/**
+ * Adds an item to the queue.
+ *
+ * @param {object} context The context which this is called within.
+ * @param {string} event The event to trigger on.
+ * @param {string} id The player ID.
+ * @param {string} plugin The name of the plugin.
+ * @param {function} callback Called when the event occurs.
+ */
+minplayer.addQueue = function(context, event, id, plugin, callback) {
+
+  // See if it is locked...
+  if (!minplayer.lock) {
+    minplayer.queue.push({
+      context: context,
+      id: id,
+      event: event,
+      plugin: plugin,
+      callback: callback
+    });
+  }
+  else {
+
+    // If so, then try again after 10 milliseconds.
+    setTimeout(function() {
+      minplayer.addQueue(context, id, event, plugin, callback);
+    }, 10);
+  }
+};
+
+/**
+ * Binds an event to a plugin instance, and if it doesn't exist, then caches
+ * it for a later time.
+ *
+ * @param {string} event The event to trigger on.
+ * @param {string} id The player ID.
+ * @param {string} plugin The name of the plugin.
+ * @param {function} callback Called when the event occurs.
+ * @return {boolean} If the bind was successful.
+ * @this The object in context who called this method.
+ */
+minplayer.bind = function(event, id, plugin, callback) {
+
+  // If no callback exists, then just return false.
+  if (!callback) {
+    return false;
+  }
+
+  // Get the plugins.
+  var plugins = minplayer.plugins;
+
+  // Determine the selected plugins.
+  var selected = [];
+
+  // Create a quick add.
+  var addSelected = function(id, plugin) {
+    if (plugins.hasOwnProperty(id) && plugins[id].hasOwnProperty(plugin)) {
+      var i = plugins[id][plugin].length;
+      while (i--) {
+        selected.push(plugins[id][plugin][i]);
+      }
+    }
+  };
+
+  // If they provide id && plugin
+  if (id && plugin) {
+    addSelected(id, plugin);
+  }
+
+  // If they provide no id but a plugin.
+  else if (!id && plugin) {
+    for (var id in plugins) {
+      addSelected(id, plugin);
+    }
+  }
+
+  // If they provide an id but no plugin.
+  else if (id && !plugin && plugins[id]) {
+    for (var plugin in plugins[id]) {
+      addSelected(id, plugin);
+    }
+  }
+
+  // If they provide niether an id or a plugin.
+  else if (!id && !plugin) {
+    for (var id in plugins) {
+      for (var plugin in plugins[id]) {
+        addSelected(id, plugin);
+      }
+    }
+  }
+
+  // Iterate through the selected plugins and bind.
+  var i = selected.length;
+  while (i--) {
+    selected[i].bind(event, (function(context) {
+      return function(event) {
+        callback.call(context, event.target);
+      };
+    })(this));
+  }
+
+  // Add it to the queue for post bindings...
+  minplayer.addQueue(this, event, id, plugin, callback);
+
+  // Return that this wasn't handled.
+  return (selected.length > 0);
+};
+
+/**
+ * The main API for minPlayer.
+ *
+ * Provided that this function takes three parameters, there are 8 different
+ * ways to use this api.
+ *
+ *   id (0x100) - You want a specific player.
+ *   plugin (0x010) - You want a specific plugin.
+ *   callback (0x001) - You only want it when it is ready.
+ *
+ *   000 - You want all plugins from all players, ready or not.
+ *
+ *          var plugins = minplayer.get();
+ *
+ *   001 - You want all plugins from all players, but only when ready.
+ *
+ *          minplayer.get(function(plugin) {
+ *            // Code goes here.
+ *          });
+ *
+ *   010 - You want a specific plugin from all players, ready or not...
+ *
+ *          var medias = minplayer.get(null, 'media');
+ *
+ *   011 - You want a specific plugin from all players, but only when ready.
+ *
+ *          minplayer.get('player', function(player) {
+ *            // Code goes here.
+ *          });
+ *
+ *   100 - You want all plugins from a specific player, ready or not.
+ *
+ *          var plugins = minplayer.get('player_id');
+ *
+ *   101 - You want all plugins from a specific player, but only when ready.
+ *
+ *          minplayer.get('player_id', null, function(plugin) {
+ *            // Code goes here.
+ *          });
+ *
+ *   110 - You want a specific plugin from a specific player, ready or not.
+ *
+ *          var plugin = minplayer.get('player_id', 'media');
+ *
+ *   111 - You want a specific plugin from a specific player, only when ready.
+ *
+ *          minplayer.get('player_id', 'media', function(media) {
+ *            // Code goes here.
+ *          });
+ *
+ * @this The context in which this function was called.
+ * @param {string} id The ID of the widget to get the plugins from.
+ * @param {string} plugin The name of the plugin.
+ * @param {function} callback Called when the plugin is ready.
+ * @return {object} The plugin object if it is immediately available.
+ */
+minplayer.get = function(id, plugin, callback) {
+
+  // Normalize the arguments for a better interface.
+  if (typeof id === 'function') {
+    callback = id;
+    plugin = id = null;
+  }
+
+  if (typeof plugin === 'function') {
+    callback = plugin;
+    plugin = id;
+    id = null;
+  }
+
+  // Make sure the callback is a callback.
+  callback = (typeof callback === 'function') ? callback : null;
+
+  // If a callback was provided, then just go ahead and bind.
+  if (callback) {
+    minplayer.bind.call(this, 'ready', id, plugin, callback);
+    return;
+  }
+
+  // Get the plugins.
+  var plugins = minplayer.plugins;
+
+  // 0x000
+  if (!id && !plugin && !callback) {
+    return plugins;
+  }
+  // 0x100
+  else if (id && !plugin && !callback) {
+    return plugins[id];
+  }
+  // 0x110
+  else if (id && plugin && !callback) {
+    return plugins[id][plugin];
+  }
+  // 0x010
+  else if (!id && plugin && !callback) {
+    var plugin_types = [];
+    for (var id in plugins) {
+      if (plugins.hasOwnProperty(id) && plugins[id].hasOwnProperty(plugin)) {
+        var i = plugins[id][plugin].length;
+        while (i--) {
+          plugin_types.push(plugins[id][plugin][i]);
+        }
+      }
+    }
+    return plugin_types;
+  }
+};
diff --git a/public/admin/js/osmplayer/minplayer/stylesheets/pygment_trac.css b/public/admin/js/osmplayer/minplayer/stylesheets/pygment_trac.css
new file mode 100644
index 00000000000..e65cedff6e7
--- /dev/null
+++ b/public/admin/js/osmplayer/minplayer/stylesheets/pygment_trac.css
@@ -0,0 +1,70 @@
+.highlight .hll { background-color: #ffffcc }
+.highlight  { background: #f0f3f3; }
+.highlight .c { color: #0099FF; font-style: italic } /* Comment */
+.highlight .err { color: #AA0000; background-color: #FFAAAA } /* Error */
+.highlight .k { color: #006699; font-weight: bold } /* Keyword */
+.highlight .o { color: #555555 } /* Operator */
+.highlight .cm { color: #0099FF; font-style: italic } /* Comment.Multiline */
+.highlight .cp { color: #009999 } /* Comment.Preproc */
+.highlight .c1 { color: #0099FF; font-style: italic } /* Comment.Single */
+.highlight .cs { color: #0099FF; font-weight: bold; font-style: italic } /* Comment.Special */
+.highlight .gd { background-color: #FFCCCC; border: 1px solid #CC0000 } /* Generic.Deleted */
+.highlight .ge { font-style: italic } /* Generic.Emph */
+.highlight .gr { color: #FF0000 } /* Generic.Error */
+.highlight .gh { color: #003300; font-weight: bold } /* Generic.Heading */
+.highlight .gi { background-color: #CCFFCC; border: 1px solid #00CC00 } /* Generic.Inserted */
+.highlight .go { color: #AAAAAA } /* Generic.Output */
+.highlight .gp { color: #000099; font-weight: bold } /* Generic.Prompt */
+.highlight .gs { font-weight: bold } /* Generic.Strong */
+.highlight .gu { color: #003300; font-weight: bold } /* Generic.Subheading */
+.highlight .gt { color: #99CC66 } /* Generic.Traceback */
+.highlight .kc { color: #006699; font-weight: bold } /* Keyword.Constant */
+.highlight .kd { color: #006699; font-weight: bold } /* Keyword.Declaration */
+.highlight .kn { color: #006699; font-weight: bold } /* Keyword.Namespace */
+.highlight .kp { color: #006699 } /* Keyword.Pseudo */
+.highlight .kr { color: #006699; font-weight: bold } /* Keyword.Reserved */
+.highlight .kt { color: #007788; font-weight: bold } /* Keyword.Type */
+.highlight .m { color: #FF6600 } /* Literal.Number */
+.highlight .s { color: #CC3300 } /* Literal.String */
+.highlight .na { color: #330099 } /* Name.Attribute */
+.highlight .nb { color: #336666 } /* Name.Builtin */
+.highlight .nc { color: #00AA88; font-weight: bold } /* Name.Class */
+.highlight .no { color: #336600 } /* Name.Constant */
+.highlight .nd { color: #9999FF } /* Name.Decorator */
+.highlight .ni { color: #999999; font-weight: bold } /* Name.Entity */
+.highlight .ne { color: #CC0000; font-weight: bold } /* Name.Exception */
+.highlight .nf { color: #CC00FF } /* Name.Function */
+.highlight .nl { color: #9999FF } /* Name.Label */
+.highlight .nn { color: #00CCFF; font-weight: bold } /* Name.Namespace */
+.highlight .nt { color: #330099; font-weight: bold } /* Name.Tag */
+.highlight .nv { color: #003333 } /* Name.Variable */
+.highlight .ow { color: #000000; font-weight: bold } /* Operator.Word */
+.highlight .w { color: #bbbbbb } /* Text.Whitespace */
+.highlight .mf { color: #FF6600 } /* Literal.Number.Float */
+.highlight .mh { color: #FF6600 } /* Literal.Number.Hex */
+.highlight .mi { color: #FF6600 } /* Literal.Number.Integer */
+.highlight .mo { color: #FF6600 } /* Literal.Number.Oct */
+.highlight .sb { color: #CC3300 } /* Literal.String.Backtick */
+.highlight .sc { color: #CC3300 } /* Literal.String.Char */
+.highlight .sd { color: #CC3300; font-style: italic } /* Literal.String.Doc */
+.highlight .s2 { color: #CC3300 } /* Literal.String.Double */
+.highlight .se { color: #CC3300; font-weight: bold } /* Literal.String.Escape */
+.highlight .sh { color: #CC3300 } /* Literal.String.Heredoc */
+.highlight .si { color: #AA0000 } /* Literal.String.Interpol */
+.highlight .sx { color: #CC3300 } /* Literal.String.Other */
+.highlight .sr { color: #33AAAA } /* Literal.String.Regex */
+.highlight .s1 { color: #CC3300 } /* Literal.String.Single */
+.highlight .ss { color: #FFCC33 } /* Literal.String.Symbol */
+.highlight .bp { color: #336666 } /* Name.Builtin.Pseudo */
+.highlight .vc { color: #003333 } /* Name.Variable.Class */
+.highlight .vg { color: #003333 } /* Name.Variable.Global */
+.highlight .vi { color: #003333 } /* Name.Variable.Instance */
+.highlight .il { color: #FF6600 } /* Literal.Number.Integer.Long */
+
+.type-csharp .highlight .k { color: #0000FF }
+.type-csharp .highlight .kt { color: #0000FF }
+.type-csharp .highlight .nf { color: #000000; font-weight: normal }
+.type-csharp .highlight .nc { color: #2B91AF }
+.type-csharp .highlight .nn { color: #000000 }
+.type-csharp .highlight .s { color: #A31515 }
+.type-csharp .highlight .sc { color: #A31515 }
diff --git a/public/admin/js/osmplayer/minplayer/stylesheets/stylesheet.css b/public/admin/js/osmplayer/minplayer/stylesheets/stylesheet.css
new file mode 100644
index 00000000000..418975160d7
--- /dev/null
+++ b/public/admin/js/osmplayer/minplayer/stylesheets/stylesheet.css
@@ -0,0 +1,431 @@
+/*******************************************************************************
+Slate Theme for Github Pages
+by Jason Costello, @jsncostello
+*******************************************************************************/
+
+@import url(pygment_trac.css);
+
+/*******************************************************************************
+MeyerWeb Reset
+*******************************************************************************/
+
+html, body, div, span, applet, object, iframe,
+h1, h2, h3, h4, h5, h6, p, blockquote, pre,
+a, abbr, acronym, address, big, cite, code,
+del, dfn, em, img, ins, kbd, q, s, samp,
+small, strike, strong, sub, sup, tt, var,
+b, u, i, center,
+dl, dt, dd, ol, ul, li,
+fieldset, form, label, legend,
+table, caption, tbody, tfoot, thead, tr, th, td,
+article, aside, canvas, details, embed,
+figure, figcaption, footer, header, hgroup,
+menu, nav, output, ruby, section, summary,
+time, mark, audio, video {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font: inherit;
+  vertical-align: baseline;
+}
+
+/* HTML5 display-role reset for older browsers */
+article, aside, details, figcaption, figure,
+footer, header, hgroup, menu, nav, section {
+  display: block;
+}
+
+ol, ul {
+  list-style: none;
+}
+
+blockquote, q {
+}
+
+table {
+  border-collapse: collapse;
+  border-spacing: 0;
+}
+
+a:focus {
+  outline: none;
+}
+
+/*******************************************************************************
+Theme Styles
+*******************************************************************************/
+
+body {
+  box-sizing: border-box;
+  color:#373737;
+  background: #212121;
+  font-size: 16px;
+  font-family: 'Myriad Pro', Calibri, Helvetica, Arial, sans-serif;
+  line-height: 1.5;
+  -webkit-font-smoothing: antialiased;
+}
+
+h1, h2, h3, h4, h5, h6 {
+  margin: 10px 0;
+  font-weight: 700;
+  color:#222222;
+  font-family: 'Lucida Grande', 'Calibri', Helvetica, Arial, sans-serif;
+  letter-spacing: -1px;
+}
+
+h1 {
+  font-size: 36px;
+  font-weight: 700;
+}
+
+h2 {
+  padding-bottom: 10px;
+  font-size: 32px;
+  background: url('../images/bg_hr.png') repeat-x bottom;
+}
+
+h3 {
+  font-size: 24px;
+}
+
+h4 {
+  font-size: 21px;
+}
+
+h5 {
+  font-size: 18px;
+}
+
+h6 {
+  font-size: 16px;
+}
+
+p {
+  margin: 10px 0 15px 0;
+}
+
+footer p {
+  color: #f2f2f2;
+}
+
+a {
+  text-decoration: none;
+  color: #007edf;
+  text-shadow: none;
+
+  transition: color 0.5s ease;
+  transition: text-shadow 0.5s ease;
+  -webkit-transition: color 0.5s ease;
+  -webkit-transition: text-shadow 0.5s ease;
+  -moz-transition: color 0.5s ease;
+  -moz-transition: text-shadow 0.5s ease;
+  -o-transition: color 0.5s ease;
+  -o-transition: text-shadow 0.5s ease;
+  -ms-transition: color 0.5s ease;
+  -ms-transition: text-shadow 0.5s ease;
+}
+
+#main_content a:hover {
+  color: #0069ba;
+  text-shadow: #0090ff 0px 0px 2px;
+}
+
+footer a:hover {
+  color: #43adff;
+  text-shadow: #0090ff 0px 0px 2px;
+}
+
+em {
+  font-style: italic;
+}
+
+strong {
+  font-weight: bold;
+}
+
+img {
+  position: relative;
+  margin: 0 auto;
+  max-width: 739px;
+  padding: 5px;
+  margin: 10px 0 10px 0;
+  border: 1px solid #ebebeb;
+
+  box-shadow: 0 0 5px #ebebeb;
+  -webkit-box-shadow: 0 0 5px #ebebeb;
+  -moz-box-shadow: 0 0 5px #ebebeb;
+  -o-box-shadow: 0 0 5px #ebebeb;
+  -ms-box-shadow: 0 0 5px #ebebeb;
+}
+
+pre, code {
+  width: 100%;
+  color: #222;
+  background-color: #fff;
+
+  font-family: Monaco, "Bitstream Vera Sans Mono", "Lucida Console", Terminal, monospace;
+  font-size: 14px;
+
+  border-radius: 2px;
+  -moz-border-radius: 2px;
+  -webkit-border-radius: 2px;
+
+
+
+}
+
+pre {
+  width: 100%;
+  padding: 10px;
+  box-shadow: 0 0 10px rgba(0,0,0,.1);
+  overflow: auto;
+}
+
+code {
+  padding: 3px;
+  margin: 0 3px;
+  box-shadow: 0 0 10px rgba(0,0,0,.1);
+}
+
+pre code {
+  display: block;
+  box-shadow: none;
+}
+
+blockquote {
+  color: #666;
+  margin-bottom: 20px;
+  padding: 0 0 0 20px;
+  border-left: 3px solid #bbb;
+}
+
+ul, ol, dl {
+  margin-bottom: 15px
+}
+
+ul li {
+  list-style: inside;
+  padding-left: 20px;
+}
+
+ol li {
+  list-style: decimal inside;
+  padding-left: 20px;
+}
+
+dl dt {
+  font-weight: bold;
+}
+
+dl dd {
+  padding-left: 20px;
+  font-style: italic;
+}
+
+dl p {
+  padding-left: 20px;
+  font-style: italic;
+}
+
+hr {
+  height: 1px;
+  margin-bottom: 5px;
+  border: none;
+  background: url('../images/bg_hr.png') repeat-x center;
+}
+
+table {
+  border: 1px solid #373737;
+  margin-bottom: 20px;
+  text-align: left;
+ }
+
+th {
+  font-family: 'Lucida Grande', 'Helvetica Neue', Helvetica, Arial, sans-serif;
+  padding: 10px;
+  background: #373737;
+  color: #fff;
+ }
+
+td {
+  padding: 10px;
+  border: 1px solid #373737;
+ }
+
+form {
+  background: #f2f2f2;
+  padding: 20px;
+}
+
+img {
+  width: 100%;
+  max-width: 100%;
+}
+
+/*******************************************************************************
+Full-Width Styles
+*******************************************************************************/
+
+.outer {
+  width: 100%;
+}
+
+.inner {
+  position: relative;
+  max-width: 640px;
+  padding: 20px 10px;
+  margin: 0 auto;
+}
+
+#forkme_banner {
+  display: block;
+  position: absolute;
+  top:0;
+  right: 10px;
+  z-index: 10;
+  padding: 10px 50px 10px 10px;
+  color: #fff;
+  background: url('../images/blacktocat.png') #0090ff no-repeat 95% 50%;
+  font-weight: 700;
+  box-shadow: 0 0 10px rgba(0,0,0,.5);
+  border-bottom-left-radius: 2px;
+  border-bottom-right-radius: 2px;
+}
+
+#header_wrap {
+  background: #212121;
+  background: -moz-linear-gradient(top, #373737, #212121);
+  background: -webkit-linear-gradient(top, #373737, #212121);
+  background: -ms-linear-gradient(top, #373737, #212121);
+  background: -o-linear-gradient(top, #373737, #212121);
+  background: linear-gradient(top, #373737, #212121);
+}
+
+#header_wrap .inner {
+  padding: 50px 10px 30px 10px;
+}
+
+#project_title {
+  margin: 0;
+  color: #fff;
+  font-size: 42px;
+  font-weight: 700;
+  text-shadow: #111 0px 0px 10px;
+}
+
+#project_tagline {
+  color: #fff;
+  font-size: 24px;
+  font-weight: 300;
+  background: none;
+  text-shadow: #111 0px 0px 10px;
+}
+
+#downloads {
+  position: absolute;
+  width: 210px;
+  z-index: 10;
+  bottom: -40px;
+  right: 0;
+  height: 70px;
+  background: url('../images/icon_download.png') no-repeat 0% 90%;
+}
+
+.zip_download_link {
+  display: block;
+  float: right;
+  width: 90px;
+  height:70px;
+  text-indent: -5000px;
+  overflow: hidden;
+  background: url(../images/sprite_download.png) no-repeat bottom left;
+}
+
+.tar_download_link {
+  display: block;
+  float: right;
+  width: 90px;
+  height:70px;
+  text-indent: -5000px;
+  overflow: hidden;
+  background: url(../images/sprite_download.png) no-repeat bottom right;
+  margin-left: 10px;
+}
+
+.zip_download_link:hover {
+  background: url(../images/sprite_download.png) no-repeat top left;
+}
+
+.tar_download_link:hover {
+  background: url(../images/sprite_download.png) no-repeat top right;
+}
+
+#main_content_wrap {
+  background: #f2f2f2;
+  border-top: 1px solid #111;
+  border-bottom: 1px solid #111;
+}
+
+#main_content {
+  padding-top: 40px;
+}
+
+#footer_wrap {
+  background: #212121;
+}
+
+
+
+/*******************************************************************************
+Small Device Styles
+*******************************************************************************/
+
+@media screen and (max-width: 480px) {
+  body {
+    font-size:14px;
+  }
+
+  #downloads {
+    display: none;
+  }
+
+  .inner {
+    min-width: 320px;
+    max-width: 480px;
+  }
+
+  #project_title {
+  font-size: 32px;
+  }
+
+  h1 {
+    font-size: 28px;
+  }
+
+  h2 {
+    font-size: 24px;
+  }
+
+  h3 {
+    font-size: 21px;
+  }
+
+  h4 {
+    font-size: 18px;
+  }
+
+  h5 {
+    font-size: 14px;
+  }
+
+  h6 {
+    font-size: 12px;
+  }
+
+  code, pre {
+    min-width: 320px;
+    max-width: 480px;
+    font-size: 11px;
+  }
+
+}
diff --git a/public/admin/js/osmplayer/minplayer/templates/default/css/images/loader.gif b/public/admin/js/osmplayer/minplayer/templates/default/css/images/loader.gif
new file mode 100644
index 0000000000000000000000000000000000000000..5e2d16730415c52b18d085af4b497b6f9d009666
GIT binary patch
literal 404
zcmZ?wbhEHb)Mnsj_{hL8bLPynw6yyAdLXIzpWDwhB-q(8z|~04fSHkjfkE+~lygyP
zVo7R>LV0FMhC*UiVnt4VVv1g7URpkb;!hS%E}$wMAZ7p=$iQUO(#LUn+RYoypO11$
z-wXSEy7hrsTSVl-H1*nhv-U0LN!Rtf-hN8&*OARX?RG3sF!B)vT7qee?Gd0c3jB%5
z8)vl~UsLmWM&iBiJt;G0%s;iz%h{_yX9s)s*^O&os_<=MOcjyJkN8yEcgpYbqggsh
zLC4o)HxcA81E7g3XJtj-$$!MpCA_`zVP(&fD+^Za;#<aj=(SI>S?BYU=U)B{nl)pM
z=^29__fs!F%><gbVjWf!9iU#FF=ZFKblt{ZJ5zmDn9O&V3)Cu6Ke}$^Z@!IYv$xLe
m|GVk&#1!Y)x6ib_%1*cn3+zcyIwv6di%Eom!5S29U;qH8Zk3+^

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/minplayer/templates/default/css/minplayer_default.css b/public/admin/js/osmplayer/minplayer/templates/default/css/minplayer_default.css
new file mode 100644
index 00000000000..dd0c4860352
--- /dev/null
+++ b/public/admin/js/osmplayer/minplayer/templates/default/css/minplayer_default.css
@@ -0,0 +1,436 @@
+/* base styles */
+.minplayer-default {
+  position: relative;
+  font-family:"Trebuchet MS", Helvetica, sans-serif;
+  -moz-box-shadow:0px 5px 10px #333;/*no-important moz*/
+  -webkit-box-shadow:0px 5px 10px #333;/*no-important chrome*/
+}
+
+.player-ui .minplayer-default-error {
+  display:none;
+  color: #eee;
+  position: absolute;
+  top: 80%;
+  left: 50%;
+  width: 320px;
+  height: 40px;
+  line-height: 40px;
+  margin: -20px 0 0 -160px;
+  text-align: center;
+  vertical-align: center;
+  border: none;
+  z-index:1000;
+  opacity: 0.9;
+  border-radius: 10px;
+  -webkit-border-radius: 10px;
+  -moz-border-radius: 10px;
+  background: rgba(23, 35, 34, 0.9);
+  box-shadow: 2px 2px 4px #000;
+  -webkit-box-shadow: 2px 2px 4px #000;
+  -moz-box-shadow: 2px 2px 4px #000;
+}
+
+.player-ui .minplayer-default-display {
+  width:100%;
+  height:100%;
+}
+
+.player-ui .minplayer-default-display video {
+  width: 100%;
+  height: 100%;
+}
+
+.player-ui .minplayer-default-preview {
+  width:100%;
+  height:100%;
+  position:absolute;
+  z-index:1;
+}
+
+.player-ui .minplayer-default-loader-wrapper {
+  width:100%;
+  height:100%;
+  position:absolute;
+  z-index:2;
+  background: rgb(0, 0, 0);
+  background: rgba(0, 0, 0, 0.3);
+  filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#55000000, endColorstr=#55000000);
+  -ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorstr=#55000000, endColorstr=#55000000)";
+}
+
+.player-ui .minplayer-default-loader {
+  width:42px;
+  height:10px;
+  position: absolute;
+  z-index: 4;
+  top: 50%;
+  left: 50%;
+  margin: -5px 0 0 -21px;
+  text-align:center;
+  vertical-align:center;
+  background: url(images/loader.gif) no-repeat;
+}
+
+/* Big play button */
+.player-ui .minplayer-default-big-play {
+  position: absolute;
+  top: 50%;
+  left: 50%;
+  width: 80px;
+  height: 80px;
+  margin: -40px 0 0 -40px;
+  text-align: center;
+  vertical-align: center;
+  cursor: pointer !important;
+  border: none;
+  opacity: 0.9;
+  z-index:3;
+  border-radius: 10px;
+  -webkit-border-radius: 10px;
+  -moz-border-radius: 10px;
+  background: rgba(23, 35, 34, 0.746094);
+  box-shadow: 2px 2px 4px #000;
+  -webkit-box-shadow: 2px 2px 4px #000;
+  -moz-box-shadow: 2px 2px 4px #000;
+}
+
+.player-ui .minplayer-default-big-play span {
+  margin: 22px 0 0 48px;
+  border-left: 36px solid white;
+  border-top: 18px solid transparent;
+  border-bottom: 18px solid transparent;
+}
+
+.player-ui .minplayer-default-big-play span {
+  display: block;
+  font-size: 0;
+  line-height: 0;
+  width: 0;
+  height: 0;
+  margin: 20px 0 0 23px;
+  border-left: 40px solid white;
+  border-top: 20px solid transparent;
+  border-bottom: 20px solid transparent;
+}
+
+.player-ui .minplayer-default.fullscreen, .player-ui .minplayer-default.fullscreen .minplayer-default-display, .player-ui .minplayer-default.fullscreen .minplayer-default-loader-wrapper {
+  position: fixed;
+  left: 0;
+  top: 0;
+  right: 0;
+  bottom: 0;
+  overflow: hidden;
+  z-index:1000;
+  width: 100% !important;
+  height: 100% !important;
+}
+
+.player-ui .minplayer-default.fullscreen .minplayer-default-play-loader {
+  z-index:1001;
+}
+
+.player-ui .minplayer-default-controls {
+  position: absolute;
+  display: block;
+  z-index:3;
+  bottom:0px;
+  left:0px;
+  right:0px;
+  height:30px;
+}
+
+.player-ui .minplayer-default-controls-left {
+  float:left;
+  width:29px;
+  margin: 3px;
+  border-right:1px solid #888;
+}
+
+.player-ui .minplayer-default.fullscreen .minplayer-default-controls-left {
+  width:40px;
+  border:none;
+}
+
+.player-ui .minplayer-default-controls-right {
+  float:right;
+  width:120px;
+  height:30px;
+  margin: 3px;
+}
+
+.player-ui .minplayer-default.fullscreen .minplayer-default-controls-right {
+  width:110px;
+}
+
+.player-ui .minplayer-default-controls-mid {
+  position:absolute;
+  left:40px;
+  right:130px;
+  height:30px;
+  margin: 3px;
+}
+
+.player-ui .minplayer-default.fullscreen .minplayer-default-controls-mid {
+  left:50px;
+}
+
+.player-ui .minplayer-default-play, .minplayer-default-volume, .player-ui .minplayer-default-timer, .player-ui .minplayer-default-mute, .player-ui .minplayer-default-unmute {
+  float: left;
+}
+
+.player-ui .minplayer-default-play, .minplayer-default-fullscreen, .minplayer-default-mute, .minplayer-default-unmute {
+  cursor: pointer;
+}
+
+.player-ui .minplayer-default-timer {
+  cursor: default;
+}
+
+/* play, pause */
+.player-ui .minplayer-default-button {
+  display: block;
+  width: 24px;
+  height: 24px;
+  opacity: 0.7;
+  -moz-transition: all 0.2s ease-in-out; /* Firefox */
+  -webkit-transition: all 0.2s ease-in-out; /* Safari and Chrome */
+  -o-transition: all 0.2s ease-in-out;  /* Opera */
+  transition: all 0.2s ease-in-out;
+}
+
+.player-ui .minplayer-default-button:hover {
+  opacity: 1;
+}
+
+.player-ui .minplayer-default-button span {
+  margin: 4px 0 0 4px;
+}
+
+.player-ui .minplayer-default-pause {
+  display:none;
+}
+
+/* seek */
+.player-ui .minplayer-default-seek {
+  position:relative;
+  height: 10px;
+  margin-top: 7px;
+  -moz-border-radius:4px;
+  -webkit-border-radius:4px;
+  border-radius:4px;
+  background: #535353;
+  background-image: -moz-linear-gradient(top, #535353, #333333);
+  background-image: -webkit-gradient(linear,left top,left bottom,color-stop(0, #535353),color-stop(1, #333333));
+  box-shadow: inset 0 -3px 3px #333333;
+}
+
+.player-ui .minplayer-default-seek .ui-slider-handle {
+  position: absolute;
+  width: 16px;
+  height: 16px;
+  border: 1px solid #333;
+  z-index:20;
+  -moz-border-radius:10px;
+  -webkit-border-radius:10px;
+  border-radius:10px;
+  background: #e6e6e6;
+  background-image: -moz-linear-gradient(top, #e6e6e6, #d5d5d5);
+  background-image: -webkit-gradient(linear,left top,left bottom,color-stop(0, #e6e6e6),color-stop(1, #d5d5d5));
+  box-shadow: inset 0 -3px 3px #d5d5d5;
+}
+
+.player-ui .minplayer-default-seek .ui-slider-handle.ui-state-hover {
+  background: #fff;
+}
+
+.player-ui .minplayer-default-seek .ui-slider-range {
+  position: absolute;
+  height: 10px;
+  -moz-border-radius:15px;
+  -webkit-border-radius:15px;
+  z-index:10px;
+  border-radius:15px;
+}
+
+.player-ui .minplayer-default-progress {
+  position: absolute;
+  width:0px;
+  height:10px;
+  -moz-border-radius:15px;
+  -webkit-border-radius:15px;
+  z-index:8px;
+  border-radius:15px;
+  border: 0 !important;
+}
+
+/* timer */
+.player-ui .minplayer-default-timer {
+  position:relative;
+  height: 22px;
+  float:left;
+  padding-top:3px;
+  padding-right:6px;
+  font-size: 16px;
+  font-weight: bold;
+  border-right:1px solid #888;
+}
+
+.player-ui .minplayer-default.fullscreen .minplayer-default-timer {
+  border:none;
+}
+
+/* volume */
+.player-ui .minplayer-default-volume {
+  position: absolute;
+  right:38px;
+  bottom:1px;
+  overflow: hidden;
+  width: 26px;
+  height: 26px;
+  -moz-transition: all 0.1s ease-in-out; /* Firefox */
+  -webkit-transition: all 0.1s ease-in-out; /* Safari and Chrome */
+  -o-transition: all 0.2s ease-in-out;  /* Opera */
+  transition: all 0.1s ease-in-out;
+}
+
+.player-ui .minplayer-default.fullscreen .minplayer-default-volume {
+  right:44px;
+  bottom:12px;
+}
+
+.player-ui .minplayer-default-volume:hover {
+  height: 135px;
+}
+
+
+.player-ui .minplayer-default-volume:hover .minplayer-default-volume-slider {
+  position: relative;
+  visibility: visible;
+  opacity: 1;
+}
+
+.player-ui .minplayer-default-volume-slider {
+  position: relative;
+  height: 100px;
+  width: 7px;
+  left: 8px;
+  visiblity: hidden;
+  opacity: 0;
+  border: 1px solid #444;
+  -moz-border-radius:15px;
+  -webkit-border-radius:15px;
+  border-radius:15px;
+  -moz-transition: all 0.1s ease-in-out; /* Firefox */
+  -webkit-transition: all 0.1s ease-in-out; /* Safari and Chrome */
+  -o-transition: all 0.1s ease-in-out;  /* Opera */
+  transition: all 0.1s ease-in-out;
+}
+
+.player-ui .minplayer-default-volume-slider .ui-slider-handle {
+  position: absolute;
+  z-index: 20;
+  width: 12px;
+  height: 12px;
+  left: -4px;
+  margin-bottom:-0.6em;
+  margin-left:0;
+  border: 1px solid #333;
+  -moz-border-radius:10px;
+  -webkit-border-radius:10px;
+  border-radius:10px;
+  background: #e6e6e6;
+  background-image: -moz-linear-gradient(top, #e6e6e6, #d5d5d5);
+  background-image: -webkit-gradient(linear,left top,left bottom,color-stop(0, #e6e6e6),color-stop(1, #d5d5d5));
+  box-shadow: inset 0 3px 3px #d5d5d5;
+}
+
+.player-ui .minplayer-default-volume-slider .ui-slider-handle.ui-state-hover {
+  background: #fff;
+}
+
+.player-ui .minplayer-default-volume-slider .ui-slider-range {
+  position: absolute;
+  bottom: 0;
+  left: 0;
+  width: 100%;
+  z-index: 1;
+  -moz-border-radius:15px;
+  -webkit-border-radius:15px;
+  border-radius:15px;
+}
+
+/* volume button */
+.player-ui .minplayer-default-volume-mute, .player-ui .minplayer-default-volume-unmute {
+  position: absolute;
+  bottom: 0px;
+}
+
+.player-ui .minplayer-default-volume-unmute {
+  display: none;
+}
+
+/* Fullscreen button */
+.player-ui .minplayer-default-fullscreen {
+  position: absolute;
+  right:6px;
+  bottom:7px;
+  width: 22px;
+  height: 14px;
+}
+
+.player-ui .minplayer-default.fullscreen .minplayer-default-fullscreen {
+  right:14px;
+  bottom:16px;
+}
+
+.player-ui .minplayer-default-fullscreen-inner, .player-ui .minplayer-default.fullscreen .minplayer-default-fullscreen:hover .minplayer-default-fullscreen-inner {
+  position:absolute;
+  bottom:0;
+  width:16px;
+  height:8px;
+  -moz-transition: all 0.1s ease-in-out; /* Firefox */
+  -webkit-transition: all 0.1s ease-in-out; /* Safari and Chrome */
+  -o-transition: all 0.1s ease-in-out;  /* Opera */
+  transition: all 0.1s ease-in-out;
+}
+
+.player-ui .minplayer-default-fullscreen:hover .minplayer-default-fullscreen-inner, .player-ui .minplayer-default.fullscreen .minplayer-default-fullscreen-inner {
+  width:20px;
+  height:12px;
+}
+
+.player-ui .minplayer-default.fullscreen .minplayer-default-controls {
+  position: absolute;
+  z-index:1002;
+  width:500px;
+  left: 50%;
+  bottom:10px;
+  margin: 0 0 0 -260px;
+  padding: 10px;
+  border: 1px solid #2E2E2E;
+  -moz-border-radius: 5px; /* FF1+ */
+  -webkit-border-radius: 5px; /* Saf3+, Chrome */
+  border-radius: 5px; /* Opera 10.5, IE 9 */
+  -moz-transition: all 0.1s ease-in-out; /* Firefox */
+  -webkit-transition: all 0.1s ease-in-out; /* Safari and Chrome */
+  -o-transition: all 0.1s ease-in-out;  /* Opera */
+  transition: all 0.1s ease-in-out;
+}
+
+.player-ui .minplayer-default-logo {
+  z-index: 200;
+  line-height: 0px;
+  position: absolute;
+  bottom: 3px;
+  left: 3px;
+}
+
+.player-ui .minplayer-default.fullscreen .minplayer-default-logo {
+  z-index: 1002;
+}
+
+.with-controller .minplayer-default-logo {
+  bottom: 34px;
+}
+
+.player-ui .ui-slider-horizontal .ui-slider-handle { top: -.3em; margin-left: -.6em; }
diff --git a/public/admin/js/osmplayer/minplayer/templates/default/js/minplayer.controller.default.js b/public/admin/js/osmplayer/minplayer/templates/default/js/minplayer.controller.default.js
new file mode 100644
index 00000000000..e6951c5be63
--- /dev/null
+++ b/public/admin/js/osmplayer/minplayer/templates/default/js/minplayer.controller.default.js
@@ -0,0 +1,96 @@
+/** The minplayer namespace. */
+var minplayer = minplayer || {};
+
+// Define the controller object.
+minplayer.controller = minplayer.controller || {};
+
+/**
+ * Constructor for the minplayer.controller
+ */
+minplayer.controller["default"] = function(context, options) {
+
+  // Derive from base controller
+  minplayer.controller.call(this, context, options);
+};
+
+/** Derive from controller. */
+minplayer.controller["default"].prototype = new minplayer.controller();
+minplayer.controller["default"].prototype.constructor = minplayer.controller["default"];
+
+/**
+ * @see minplayer.plugin#construct
+ */
+minplayer.controller["default"].prototype.construct = function() {
+  minplayer.controller.prototype.construct.call(this);
+  this.get('player', function(player) {
+    minplayer.showThenHide(this.display, 5000, function(shown) {
+      var op = shown ? 'addClass' : 'removeClass';
+      player.display[op]('with-controller');
+    });
+  });
+}
+
+/**
+ * Return the display for this plugin.
+ */
+minplayer.controller["default"].prototype.getDisplay = function() {
+
+  // See if we need to build out the controller.
+  if (this.options.build) {
+
+    // Prepend the control template.
+    this.context.prepend('\
+    <div class="minplayer-default-controls ui-widget-header">\
+      <div class="minplayer-default-controls-left">\
+        <a class="minplayer-default-play minplayer-default-button ui-state-default ui-corner-all" title="Play">\
+          <span class="ui-icon ui-icon-play"></span>\
+        </a>\
+        <a class="minplayer-default-pause minplayer-default-button ui-state-default ui-corner-all" title="Pause">\
+          <span class="ui-icon ui-icon-pause"></span>\
+        </a>\
+      </div>\
+      <div class="minplayer-default-controls-right">\
+        <div class="minplayer-default-timer">00:00</div>\
+        <div class="minplayer-default-fullscreen ui-widget-content">\
+          <div class="minplayer-default-fullscreen-inner ui-state-default"></div>\
+        </div>\
+        <div class="minplayer-default-volume">\
+          <div class="minplayer-default-volume-slider"></div>\
+          <a class="minplayer-default-volume-mute minplayer-default-button ui-state-default ui-corner-all" title="Mute">\
+            <span class="ui-icon ui-icon-volume-on"></span>\
+          </a>\
+          <a class="minplayer-default-volume-unmute minplayer-default-button ui-state-default ui-corner-all" title="Unmute">\
+            <span class="ui-icon ui-icon-volume-off"></span>\
+          </a>\
+        </div>\
+      </div>\
+      <div class="minplayer-default-controls-mid">\
+        <div class="minplayer-default-seek">\
+          <div class="minplayer-default-progress ui-state-default"></div>\
+        </div>\
+      </div>\
+    </div>');
+  }
+
+  // Let our template know we have a controller.
+  this.context.addClass('with-controller');
+
+  return jQuery('.minplayer-default-controls', this.context);
+}
+
+// Return the elements
+minplayer.controller["default"].prototype.getElements = function() {
+  var elements = minplayer.controller.prototype.getElements.call(this);
+  var timer = jQuery(".minplayer-default-timer", this.display);
+  return jQuery.extend(elements, {
+    play: jQuery(".minplayer-default-play", this.display),
+    pause: jQuery(".minplayer-default-pause", this.display),
+    fullscreen: jQuery(".minplayer-default-fullscreen", this.display),
+    seek: jQuery(".minplayer-default-seek", this.display),
+    progress: jQuery(".minplayer-default-progress", this.display),
+    volume: jQuery(".minplayer-default-volume-slider", this.display),
+    mute: jQuery('.minplayer-default-volume-mute', this.display),
+    timer:timer,
+    duration:timer
+  });
+};
diff --git a/public/admin/js/osmplayer/minplayer/templates/default/js/minplayer.default.js b/public/admin/js/osmplayer/minplayer/templates/default/js/minplayer.default.js
new file mode 100644
index 00000000000..9f9e6dc8087
--- /dev/null
+++ b/public/admin/js/osmplayer/minplayer/templates/default/js/minplayer.default.js
@@ -0,0 +1,66 @@
+/** The minplayer namespace. */
+var minplayer = minplayer || {};
+
+// Default player.
+minplayer["default"] = function(context, options) {
+
+  // Derive from minplayer.
+  minplayer.call(this, context, options);
+};
+
+/**
+ * Define this template prototype.
+ */
+minplayer["default"].prototype = new minplayer();
+minplayer["default"].prototype.constructor = minplayer["default"];
+
+/**
+ * Return the display for this plugin.
+ */
+minplayer["default"].prototype.getDisplay = function() {
+
+  // If this is the bottom element, then build the player.
+  if (this.context.children().length == 0) {
+
+    // Build out the player provided the base tag.
+    this.context = this.context.attr({
+      'id': this.options.id + '-player',
+      'class': 'minplayer-default-media'
+    })
+    .wrap(jQuery(document.createElement('div')).attr({
+      'class': 'minplayer-default-display ui-widget-content'
+    })).parent('.minplayer-default-display')
+    .wrap(jQuery(document.createElement('div')).attr({
+      'id': this.options.id,
+      'class': 'minplayer-default player-ui'
+    })).parent('.minplayer-default')
+    .append('\
+      <div class="minplayer-default-logo"></div>\
+      <div class="minplayer-default-error"></div>'
+    );
+
+    // Mark a flag that says this display needs to be built.
+    this.options.build = true;
+  }
+
+  // Return the display.
+  return this.context;
+}
+
+// Get the elements for this player.
+minplayer["default"].prototype.getElements = function() {
+  var elements = minplayer.prototype.getElements.call(this);
+
+  // Set the width and height of this element.
+  this.display.width(this.options.width);
+  this.display.height(this.options.height);
+
+  // Return the jQuery elements.
+  return jQuery.extend(elements, {
+    player:this.display,
+    display:jQuery(".minplayer-default-display", this.display),
+    media:jQuery(".minplayer-default-media", this.display),
+    error:jQuery('.minplayer-default-error', this.display),
+    logo:jQuery('.minplayer-default-logo', this.display)
+  });
+};
diff --git a/public/admin/js/osmplayer/minplayer/templates/default/js/minplayer.playLoader.default.js b/public/admin/js/osmplayer/minplayer/templates/default/js/minplayer.playLoader.default.js
new file mode 100644
index 00000000000..6fce70fcc5d
--- /dev/null
+++ b/public/admin/js/osmplayer/minplayer/templates/default/js/minplayer.playLoader.default.js
@@ -0,0 +1,46 @@
+/** The minplayer namespace. */
+var minplayer = minplayer || {};
+
+// Define the busy object.
+minplayer.playLoader = minplayer.playLoader || {};
+
+// constructor.
+minplayer.playLoader["default"] = function(context, options) {
+
+  // Derive from busy
+  minplayer.playLoader.call(this, context, options);
+};
+
+// Define the prototype for all controllers.
+minplayer.playLoader["default"].prototype = new minplayer.playLoader();
+minplayer.playLoader["default"].prototype.constructor = minplayer.playLoader["default"];
+
+/**
+ * Return the display for this plugin.
+ */
+minplayer.playLoader["default"].prototype.getDisplay = function() {
+
+  // See if we need to build out the controller.
+  if (this.options.build) {
+
+    // Prepend the playloader template.
+    this.context.prepend('\
+    <div class="minplayer-default-loader-wrapper">\
+      <div class="minplayer-default-big-play ui-state-default"><span></span></div>\
+      <div class="minplayer-default-loader">&nbsp;</div>\
+      <div class="minplayer-default-preview ui-widget-content"></div>\
+    </div>');
+  }
+
+  return jQuery('.minplayer-default-loader-wrapper', this.context);
+}
+
+// Return the elements
+minplayer.playLoader["default"].prototype.getElements = function() {
+  var elements = minplayer.playLoader.prototype.getElements.call(this);
+  return jQuery.extend(elements, {
+    busy:jQuery(".minplayer-default-loader", this.display),
+    bigPlay:jQuery(".minplayer-default-big-play", this.display),
+    preview:jQuery(".minplayer-default-preview", this.display)
+  });
+};
diff --git a/public/admin/js/osmplayer/minplayer/templates/default/minplayer_default.tpl.php b/public/admin/js/osmplayer/minplayer/templates/default/minplayer_default.tpl.php
new file mode 100644
index 00000000000..8aceaae0f57
--- /dev/null
+++ b/public/admin/js/osmplayer/minplayer/templates/default/minplayer_default.tpl.php
@@ -0,0 +1,40 @@
+<div id="<?php print $params['id']; ?>" class="minplayer-default player-ui">
+  <div class="minplayer-default-loader-wrapper">
+    <div class="minplayer-default-big-play ui-state-default"><span></span></div>
+    <div class="minplayer-default-loader">&nbsp;</div>
+    <div class="minplayer-default-preview ui-widget-content"></div>
+  </div>
+  <div class="minplayer-default-controls ui-widget-header">
+    <div class="minplayer-default-controls-left">
+      <a class="minplayer-default-play minplayer-default-button ui-state-default ui-corner-all" title="Play">
+        <span class="ui-icon ui-icon-play"></span>
+      </a>
+      <a class="minplayer-default-pause minplayer-default-button ui-state-default ui-corner-all" title="Pause">
+        <span class="ui-icon ui-icon-pause"></span>
+      </a>
+    </div>
+    <div class="minplayer-default-controls-right">
+      <div class="minplayer-default-timer">00:00</div>
+      <div class="minplayer-default-fullscreen ui-widget-content">
+        <div class="minplayer-default-fullscreen-inner ui-state-default"></div>
+      </div>
+      <div class="minplayer-default-volume">
+        <div class="minplayer-default-volume-slider"></div>
+        <a class="minplayer-default-volume-mute minplayer-default-button ui-state-default ui-corner-all" title="Mute">
+          <span class="ui-icon ui-icon-volume-on"></span>
+        </a>
+        <a class="minplayer-default-volume-unmute minplayer-default-button ui-state-default ui-corner-all" title="Unmute">
+          <span class="ui-icon ui-icon-volume-off"></span>
+        </a>
+      </div>
+    </div>
+    <div class="minplayer-default-controls-mid">
+      <div class="minplayer-default-seek">
+        <div class="minplayer-default-progress ui-state-default"></div>
+      </div>
+    </div>
+  </div>
+  <div class="minplayer-default-logo"></div>
+  <div class="minplayer-default-error"></div>
+  <div class="minplayer-default-display ui-widget-content"></div>
+</div>
\ No newline at end of file
diff --git a/public/admin/js/osmplayer/playlist.xml b/public/admin/js/osmplayer/playlist.xml
new file mode 100644
index 00000000000..dc921addf81
--- /dev/null
+++ b/public/admin/js/osmplayer/playlist.xml
@@ -0,0 +1,61 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<playlist version="1" xmlns="http://xspf.org/ns/0/">
+   <trackList>
+      <track>
+         <title>The Dark Knight Rises</title>
+         <!--<location>http://progressive.totaleclips.com.edgesuite.net/105/e105947_257.mp4</location>-->
+         <location>http://www.youtube.com/watch?v=g8evyE9TuYk</location>
+         <image>http://www.movieposter.com/posters/archive/main/141/MPW-70758</image>
+      </track>
+      <track>
+         <title>The Amazing Spiderman</title>
+         <location>http://progressive.totaleclips.com.edgesuite.net/108/e108011_257.mp4</location>
+         <image>http://www.movieposter.com/posters/archive/main/143/MPW-71679</image>
+      </track>
+      <track>
+         <title>Matagascar III</title>
+         <location>http://progressive.totaleclips.com.edgesuite.net/105/e105598_257.mp4</location>
+         <image>http://www.movieposter.com/posters/archive/main/143/MPW-71686</image>
+      </track>
+      <track>
+         <title>Snow White and the Huntsman</title>
+         <location>http://progressive.totaleclips.com.edgesuite.net/103/e103981_257.mp4</location>
+         <image>http://www.movieposter.com/posters/archive/main/142/MPW-71148</image>
+      </track>
+      <track>
+         <title>Men in Black III</title>
+         <location>http://progressive.totaleclips.com.edgesuite.net/105/e105857_257.mp4</location>
+         <image>http://www.movieposter.com/posters/archive/main/146/MPW-73434</image>
+      </track>
+      <track>
+         <title>The Three Stooges</title>
+         <location>http://progressive.totaleclips.com.edgesuite.net/105/e105408_227.mp4</location>
+         <image>http://www.movieposter.com/posters/archive/main/143/MPW-71689</image>
+      </track>
+      <track>
+         <title>The Hunger Games</title>
+         <location>http://progressive.totaleclips.com.edgesuite.net/107/e107950_227.mp4</location>
+         <image>http://collider.com/wp-content/uploads/the-hunger-games-poster1.jpg</image>
+      </track>
+      <track>
+         <title>Se7en</title>
+         <location>http://progressive.totaleclips.com.edgesuite.net/102/e10278_301.mp4</location>
+         <image>http://www.movieposter.com/posters/archive/main/84/MPW-42060</image>
+      </track>
+      <track>
+         <title>The Matrix</title>
+         <location>http://progressive.totaleclips.com.edgesuite.net/445/e44573_301.mp4</location>
+         <image>http://www.movieposter.com/posters/archive/main/9/A70-4902</image>
+      </track>
+      <track>
+         <title>Amelie</title>
+         <location>http://progressive.totaleclips.com.edgesuite.net/203/e20379_301.mp4</location>
+         <image>http://www.movieposter.com/posters/archive/main/91/MPW-45860</image>
+      </track>
+      <track>
+         <title>The Prestige</title>
+         <location>http://progressive.totaleclips.com.edgesuite.net/308/e30871_257.mp4</location>
+         <image>http://www.movieposter.com/posters/archive/main/76/MPW-38403</image>
+      </track>
+   </trackList>
+</playlist>
diff --git a/public/admin/js/osmplayer/src/iscroll/README.md b/public/admin/js/osmplayer/src/iscroll/README.md
new file mode 100644
index 00000000000..baa4edfaca8
--- /dev/null
+++ b/public/admin/js/osmplayer/src/iscroll/README.md
@@ -0,0 +1,36 @@
+iScroll v4.1.9 - 2011-09-22
+===========================
+
+The overflow:scroll for mobile webkit. Project started because webkit for iPhone does not provide a native way to scroll content inside a fixed size (width/height) div. So basically it was impossible to have a fixed header/footer and a scrolling central area. Until now. Read more at [cubiq.org](http://cubiq.org).
+
+## Ender support
+Using [Ender](http://ender.no.de), add it to your existing build
+
+    $ ender add iscroll
+
+Use it like this:
+
+``` js
+var myScroll = $('#doc').iScroll(options)
+```
+
+## Credits and Special thanks
+iScroll is evolving thank to the help of all those who sent suggestions, bug reports and ideas on [github](https://github.com/cubiq/iscroll), my [blog](http://cubiq.org) and [googlecode](http://code.google.com/p/iscroll-js/). This is by no means the work of a sole man.
+
+In completely random order:
+
+- All Github [contributors](https://github.com/cubiq/iscroll/contributors)
+- [beedesk](http://beedesk.com) for bug squashing in the pull to refresh feature
+- [Daniel J. Pinter](http://twitter.com/#!/HeadDZombie) for continued support, bug reports and for killing zombies
+- [Aseem Kishore](http://about.me/aseemk) for help with the zoom functionality
+- [Alex Gibson](http://miniapps.co.uk/) for continued support and bug reports
+- [Christoph Pojer](http://cpojer.net) for ideas, suggestions and bug reports
+- [Shimon Dookdin](https://github.com/shimondoodkin) for help with wheel support
+- [Will Bailey](http://blog.thirtymontgomery.com/) for commonJS compatibility
+- [Aaron Infidel](https://github.com/lifeiscontent) for bug reports and continued support
+- [David Haslem](https://github.com/therabidbanana) for suggestions and bug reports
+- [gingertom](https://github.com/gingertom) for suggestions and bug reports
+- [David Alan Hjelle](https://github.com/dahjelle) for bug squashing
+- [iangilman](https://github.com/iangilman) for help with the zoom functionality
+- All those who supported, linked, loved the iScroll
+- I'm sure I'm missing someone, sorry about that. If you helped in the script development and you don't see your name here, please drop me a line
diff --git a/public/admin/js/osmplayer/src/iscroll/bin/make-dist b/public/admin/js/osmplayer/src/iscroll/bin/make-dist
new file mode 100755
index 00000000000..47cba908003
--- /dev/null
+++ b/public/admin/js/osmplayer/src/iscroll/bin/make-dist
@@ -0,0 +1,4 @@
+#!/bin/sh
+
+java -jar /usr/local/bin/yuicompressor-2.4.6.jar -v --charset utf-8 ../src/iscroll.js -o ../dist/iscroll-min.js
+java -jar /usr/local/bin/yuicompressor-2.4.6.jar -v --charset utf-8 ../src/iscroll-lite.js -o ../dist/iscroll-lite-min.js
diff --git a/public/admin/js/osmplayer/src/iscroll/examples/carousel/index.html b/public/admin/js/osmplayer/src/iscroll/examples/carousel/index.html
new file mode 100644
index 00000000000..a975797a96e
--- /dev/null
+++ b/public/admin/js/osmplayer/src/iscroll/examples/carousel/index.html
@@ -0,0 +1,170 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=0, minimum-scale=1.0, maximum-scale=1.0">
+<meta name="apple-mobile-web-app-capable" content="yes">
+<meta name="apple-mobile-web-app-status-bar-style" content="black">
+<title>iScroll demo: Carousel</title>
+
+<script type="text/javascript" src="../../src/iscroll.js"></script>
+
+<script type="text/javascript">
+var myScroll;
+
+function loaded() {
+	myScroll = new iScroll('wrapper', {
+		snap: true,
+		momentum: false,
+		hScrollbar: false,
+		onScrollEnd: function () {
+			document.querySelector('#indicator > li.active').className = '';
+			document.querySelector('#indicator > li:nth-child(' + (this.currPageX+1) + ')').className = 'active';
+		}
+	 });
+}
+
+document.addEventListener('DOMContentLoaded', loaded, false);
+</script>
+
+<style type="text/css" media="all">
+body,ul,li {
+	padding:10px;
+	margin:0;
+}
+
+body {
+	font-size:12px;
+	-webkit-user-select:none;
+    -webkit-text-size-adjust:none;
+	font-family:helvetica;
+}
+
+#wrapper {
+	width:300px;
+	height:160px;
+
+	float:left;
+	position:relative;	/* On older OS versions "position" and "z-index" must be defined, */
+	z-index:1;			/* it seems that recent webkit is less picky and works anyway. */
+	overflow:hidden;
+
+	background:#aaa;
+	-webkit-border-radius:10px;
+	-moz-border-radius:10px;
+	-o-border-radius:10px;
+	border-radius:10px;
+	background:#e3e3e3;
+}
+
+#scroller {
+	width:2100px;
+	height:100%;
+	float:left;
+	padding:0;
+}
+
+#scroller ul {
+	list-style:none;
+	display:block;
+	float:left;
+	width:100%;
+	height:100%;
+	padding:0;
+	margin:0;
+	text-align:left;
+}
+
+#scroller li {
+	-webkit-box-sizing:border-box;
+	-moz-box-sizing:border-box;
+	-o-box-sizing:border-box;
+	box-sizing:border-box;
+	display:block; float:left;
+	width:300px; height:160px;
+	text-align:center;
+	font-family:georgia;
+	font-size:18px;
+	line-height:140%;
+}
+
+#nav {
+	width:300px;
+	float:left;
+}
+
+#prev, #next {
+	float:left;
+	font-weight:bold;
+	font-size:14px;
+	padding:5px 0;
+	width:80px;
+}
+
+#next {
+	float:right;
+	text-align:right;
+}
+
+#indicator, #indicator > li {
+	display:block; float:left;
+	list-style:none;
+	padding:0; margin:0;
+}
+
+#indicator {
+	width:110px;
+	padding:12px 0 0 30px;
+}
+
+#indicator > li {
+	text-indent:-9999em;
+	width:8px; height:8px;
+	-webkit-border-radius:4px;
+	-moz-border-radius:4px;
+	-o-border-radius:4px;
+	border-radius:4px;
+	background:#ddd;
+	overflow:hidden;
+	margin-right:4px;
+}
+
+#indicator > li.active {
+	background:#888;
+}
+
+#indicator > li:last-child {
+	margin:0;
+}
+
+</style>
+</head>
+<body>
+<div id="wrapper">
+	<div id="scroller">
+		<ul id="thelist">
+			<li><strong>1.</strong> <em>A robot may not injure a human being or, through inaction, allow a human being to come to harm.</em></li>
+			<li><strong>2.</strong> <em>A robot must obey any orders given to it by human beings, except where such orders would conflict with the First Law.</em></li>
+			<li><strong>3.</strong> <em>A robot must protect its own existence as long as such protection does not conflict with the First or Second Law.</em></li>
+			<li><strong>Zeroth Law:</strong> <em>A robot may not harm humanity, or, by inaction, allow humanity to come to harm.</em></li>
+			<li><strong>Lyuben Dilov's Forth law:</strong> <em>A robot must establish its identity as a robot in all cases.</em></li>
+			<li><strong>Harry Harrison's Forth law:</strong> <em>A robot must reproduce. As long as such reproduction does not interfere with the First or Second or Third Law.</em></li>
+			<li><strong>Nikola Kesarovski's Fifth law:</strong> <em>A robot must know it is a robot.</em></li>
+		</ul>
+	</div>
+</div>
+<div id="nav">
+	<div id="prev" onclick="myScroll.scrollToPage('prev', 0);return false">&larr; prev</div>
+	<ul id="indicator">
+		<li class="active">1</li>
+		<li>2</li>
+		<li>3</li>
+		<li>4</li>
+		<li>5</li>
+		<li>6</li>
+		<li>7</li>
+	</ul>
+	<div id="next" onclick="myScroll.scrollToPage('next', 0);return false">next &rarr;</div>
+</div>
+</body>
+</html>
\ No newline at end of file
diff --git a/public/admin/js/osmplayer/src/iscroll/examples/check-dom-changes/index.html b/public/admin/js/osmplayer/src/iscroll/examples/check-dom-changes/index.html
new file mode 100644
index 00000000000..0895bc78e28
--- /dev/null
+++ b/public/admin/js/osmplayer/src/iscroll/examples/check-dom-changes/index.html
@@ -0,0 +1,172 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=0, minimum-scale=1.0, maximum-scale=1.0">
+<meta name="apple-mobile-web-app-capable" content="yes">
+<meta name="apple-mobile-web-app-status-bar-style" content="black">
+<title>iScroll demo: Check DOM Changes</title>
+
+<script type="text/javascript" src="../../src/iscroll.js"></script>
+
+<script type="text/javascript">
+
+var myScroll;
+function loaded() {
+	myScroll = new iScroll('wrapper', { checkDOMChanges: true });
+	
+	setInterval(function () {
+		if (myScroll.isReady())
+			document.getElementById('thelist').innerHTML += '<li>new row</li>';
+	}, 2000);
+}
+
+document.addEventListener('touchmove', function (e) { e.preventDefault(); }, false);
+document.addEventListener('DOMContentLoaded', loaded, false);
+
+</script>
+
+<style type="text/css" media="all">
+body,ul,li {
+	padding:0;
+	margin:0;
+	border:0;
+}
+
+body {
+	font-size:12px;
+	-webkit-user-select:none;
+    -webkit-text-size-adjust:none;
+	font-family:helvetica;
+}
+
+#header {
+	position:absolute; z-index:2;
+	top:0; left:0;
+	width:100%;
+	height:45px;
+	line-height:45px;
+	background-color:#d51875;
+	background-image:-webkit-gradient(linear, 0 0, 0 100%, color-stop(0, #fe96c9), color-stop(0.05, #d51875), color-stop(1, #7b0a2e));
+	background-image:-moz-linear-gradient(top, #fe96c9, #d51875 5%, #7b0a2e);
+	background-image:-o-linear-gradient(top, #fe96c9, #d51875 5%, #7b0a2e);
+	padding:0;
+	color:#eee;
+	font-size:20px;
+	text-align:center;
+}
+
+#header a {
+	color:#f3f3f3;
+	text-decoration:none;
+	font-weight:bold;
+	text-shadow:0 -1px 0 rgba(0,0,0,0.5);
+}
+
+#footer {
+	position:absolute; z-index:2;
+	bottom:0; left:0;
+	width:100%;
+	height:48px;
+	background-color:#222;
+	background-image:-webkit-gradient(linear, 0 0, 0 100%, color-stop(0, #999), color-stop(0.02, #666), color-stop(1, #222));
+	background-image:-moz-linear-gradient(top, #999, #666 2%, #222);
+	background-image:-o-linear-gradient(top, #999, #666 2%, #222);
+	padding:0;
+	border-top:1px solid #444;
+}
+
+#wrapper {
+	position:absolute; z-index:1;
+	top:45px; bottom:48px; left:0;
+	width:100%;
+	background:#aaa;
+	overflow:auto;
+}
+
+#scroller {
+	position:absolute; z-index:1;
+/*	-webkit-touch-callout:none;*/
+	-webkit-tap-highlight-color:rgba(0,0,0,0);
+	width:100%;
+	padding:0;
+}
+
+#scroller ul {
+	list-style:none;
+	padding:0;
+	margin:0;
+	width:100%;
+	text-align:left;
+}
+
+#scroller li {
+	padding:0 10px;
+	height:40px;
+	line-height:40px;
+	border-bottom:1px solid #ccc;
+	border-top:1px solid #fff;
+	background-color:#fafafa;
+	font-size:14px;
+}
+
+#myFrame {
+	position:absolute;
+	top:0; left:0;
+}
+
+</style>
+</head>
+<body>
+
+<div id="header"><a href="http://cubiq.org/iscroll">iScroll</a></div>
+<div id="wrapper">
+	<div id="scroller">
+		<ul id="thelist">
+			<li>Pretty row 1</li>
+			<li>Pretty row 2</li>
+			<li>Pretty row 3</li>
+			<li>Pretty row 4</li>
+			<li>Pretty row 5</li>
+			<li>Pretty row 6</li>
+			<li>Pretty row 7</li>
+			<li>Pretty row 8</li>
+			<li>Pretty row 9</li>
+			<li>Pretty row 10</li>
+			<li>Pretty row 11</li>
+			<li>Pretty row 12</li>
+			<li>Pretty row 13</li>
+			<li>Pretty row 14</li>
+			<li>Pretty row 15</li>
+			<li>Pretty row 16</li>
+			<li>Pretty row 17</li>
+			<li>Pretty row 18</li>
+			<li>Pretty row 19</li>
+			<li>Pretty row 20</li>
+			<li>Pretty row 21</li>
+			<li>Pretty row 22</li>
+			<li>Pretty row 23</li>
+			<li>Pretty row 24</li>
+			<li>Pretty row 25</li>
+			<li>Pretty row 26</li>
+			<li>Pretty row 27</li>
+			<li>Pretty row 28</li>
+			<li>Pretty row 29</li>
+			<li>Pretty row 30</li>
+			<li>Pretty row 31</li>
+			<li>Pretty row 32</li>
+			<li>Pretty row 33</li>
+			<li>Pretty row 34</li>
+			<li>Pretty row 35</li>
+			<li>Pretty row 36</li>
+			<li>Pretty row 37</li>
+			<li>Pretty row 38</li>
+			<li>Pretty row 39</li>
+			<li>Pretty row 40</li>
+		</ul>
+	</div>
+</div>
+<div id="footer"></div>
+
+</body>
+</html>
diff --git a/public/admin/js/osmplayer/src/iscroll/examples/custom-scrollbar/index.html b/public/admin/js/osmplayer/src/iscroll/examples/custom-scrollbar/index.html
new file mode 100644
index 00000000000..6cfff61b22e
--- /dev/null
+++ b/public/admin/js/osmplayer/src/iscroll/examples/custom-scrollbar/index.html
@@ -0,0 +1,172 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=0, minimum-scale=1.0, maximum-scale=1.0">
+<meta name="apple-mobile-web-app-capable" content="yes">
+<meta name="apple-mobile-web-app-status-bar-style" content="black">
+<title>iScroll demo: custom scrollbar</title>
+
+<link rel="stylesheet" type="text/css" href="scrollbar.css">
+
+<script type="application/javascript" src="../../src/iscroll.js?v4"></script>
+
+<script type="text/javascript">
+
+var myScroll;
+function loaded() {
+	myScroll = new iScroll('wrapper', { scrollbarClass: 'myScrollbar' });
+}
+
+document.addEventListener('touchmove', function (e) { e.preventDefault(); }, false);
+
+document.addEventListener('DOMContentLoaded', loaded, false);
+
+</script>
+
+<style type="text/css" media="all">
+body,ul,li {
+	padding:0;
+	margin:0;
+	border:0;
+}
+
+body {
+	font-size:12px;
+	-webkit-user-select:none;
+    -webkit-text-size-adjust:none;
+	font-family:helvetica;
+}
+
+#header {
+	position:absolute;
+	top:0; left:0;
+	width:100%;
+	height:45px;
+	line-height:45px;
+	background-color:#d51875;
+	background-image:-webkit-gradient(linear, 0 0, 0 100%, color-stop(0, #fe96c9), color-stop(0.05, #d51875), color-stop(1, #7b0a2e));
+	background-image:-moz-linear-gradient(top, #fe96c9, #d51875 5%, #7b0a2e);
+	background-image:-o-linear-gradient(top, #fe96c9, #d51875 5%, #7b0a2e);
+	padding:0;
+	color:#eee;
+	font-size:20px;
+	text-align:center;
+}
+
+#header a {
+	color:#f3f3f3;
+	text-decoration:none;
+	font-weight:bold;
+	text-shadow:0 -1px 0 rgba(0,0,0,0.5);
+}
+
+#footer {
+	position:absolute;
+	bottom:0; left:0;
+	width:100%;
+	height:48px;
+	background-color:#222;
+	background-image:-webkit-gradient(linear, 0 0, 0 100%, color-stop(0, #999), color-stop(0.02, #666), color-stop(1, #222));
+	background-image:-moz-linear-gradient(top, #999, #666 2%, #222);
+	background-image:-o-linear-gradient(top, #999, #666 2%, #222);
+	padding:0;
+	border-top:1px solid #444;
+}
+
+#wrapper {
+	position:absolute; z-index:1;
+	top:45px; bottom:48px; left:0;
+	width:100%;
+	background:#aaa;
+	overflow:auto;
+}
+
+#scroller {
+	position:relative;
+/*	-webkit-touch-callout:none;*/
+	-webkit-tap-highlight-color:rgba(0,0,0,0);
+
+	float:left;
+	width:100%;
+	padding:0;
+}
+
+#scroller ul {
+	position:relative;
+	list-style:none;
+	padding:0;
+	margin:0;
+	width:100%;
+	text-align:left;
+}
+
+#scroller li {
+	padding:0 10px;
+	height:40px;
+	line-height:40px;
+	border-bottom:1px solid #ccc;
+	border-top:1px solid #fff;
+	background-color:#fafafa;
+	font-size:14px;
+}
+
+#scroller li > a {
+	display:block;
+}
+
+</style>
+</head>
+<body>
+<div id="header"><a href="http://cubiq.org/iscroll">iScroll</a></div>
+<div id="wrapper">
+	<div id="scroller">
+		<ul id="thelist">
+			<li>Pretty row 1</li>
+			<li id="aaa">Pretty row 2</li>
+			<li>Pretty row 3</li>
+			<li>Pretty row 4</li>
+			<li>Pretty row 5</li>
+			<li>Pretty row 6</li>
+			<li>Pretty row 7</li>
+			<li>Pretty row 8</li>
+			<li>Pretty row 9</li>
+			<li>Pretty row 10</li>
+			<li>Pretty row 11</li>
+			<li>Pretty row 12</li>
+			<li>Pretty row 13</li>
+			<li>Pretty row 14</li>
+			<li>Pretty row 15</li>
+			<li>Pretty row 16</li>
+			<li>Pretty row 17</li>
+			<li>Pretty row 18</li>
+			<li>Pretty row 19</li>
+			<li>Pretty row 20</li>
+			<li>Pretty row 21</li>
+			<li>Pretty row 22</li>
+			<li>Pretty row 23</li>
+			<li>Pretty row 24</li>
+			<li>Pretty row 25</li>
+			<li>Pretty row 26</li>
+			<li>Pretty row 27</li>
+			<li>Pretty row 28</li>
+			<li>Pretty row 29</li>
+			<li>Pretty row 30</li>
+			<li>Pretty row 31</li>
+			<li>Pretty row 32</li>
+			<li>Pretty row 33</li>
+			<li>Pretty row 34</li>
+			<li>Pretty row 35</li>
+			<li>Pretty row 36</li>
+			<li>Pretty row 37</li>
+			<li>Pretty row 38</li>
+			<li>Pretty row 39</li>
+			<li>Pretty row 40</li>
+		</ul>
+	</div>
+</div>
+
+<div id="footer"></div>
+
+</body>
+</html>
\ No newline at end of file
diff --git a/public/admin/js/osmplayer/src/iscroll/examples/custom-scrollbar/scrollbar.css b/public/admin/js/osmplayer/src/iscroll/examples/custom-scrollbar/scrollbar.css
new file mode 100644
index 00000000000..a5384818845
--- /dev/null
+++ b/public/admin/js/osmplayer/src/iscroll/examples/custom-scrollbar/scrollbar.css
@@ -0,0 +1,91 @@
+
+/**
+ *
+ * Horizontal Scrollbar
+ *
+ */
+.myScrollbarH {
+	position:absolute;
+	z-index:100;
+	height:8px;
+	bottom:1px;
+	left:2px;
+	right:7px
+}
+
+.myScrollbarH > div {
+	position:absolute;
+	z-index:100;
+	height:100%;
+
+	/* The following is probably what you want to customize */
+	background-image:-webkit-gradient(linear, 0 0, 100% 0, from(#a00), to(#f00));
+	background-image:-moz-linear-gradient(top, #f00, #900);
+	background-image:-o-linear-gradient(top, #f00, #900);
+
+	border:1px solid #900;
+	-webkit-background-clip:padding-box;
+	-moz-background-clip:padding-box;
+	-o-background-clip:padding-box;
+	background-clip:padding-box;
+	
+	-webkit-box-sizing:border-box;
+	-moz-box-sizing:border-box;
+	-o-box-sizing:border-box;
+	box-sizing:border-box;
+	
+	-webkit-border-radius:4px;
+	-moz-border-radius:4px;
+	-o-border-radius:4px;
+	border-radius:4px;
+	
+	-webkit-box-shadow:inset 1px 1px 0 rgba(255,255,255,0.5);
+	-moz-box-shadow:inset 1px 1px 0 rgba(255,255,255,0.5);
+	-o-box-shadow:inset 1px 1px 0 rgba(255,255,255,0.5);
+	box-shadow:inset 1px 1px 0 rgba(255,255,255,0.5);
+}
+
+
+/**
+ *
+ * Vertical Scrollbar
+ *
+ */
+.myScrollbarV {
+	position:absolute;
+	z-index:100;
+	width:8px;bottom:7px;top:2px;right:1px
+}
+
+.myScrollbarV > div {
+	position:absolute;
+	z-index:100;
+	width:100%;
+
+	/* The following is probably what you want to customize */
+	background:-webkit-gradient(linear, 0 0, 100% 0, from(#f00), to(#900));
+	background-image:-moz-linear-gradient(top, #f00, #900);
+	background-image:-o-linear-gradient(top, #f00, #900);
+
+	border:1px solid #900;
+
+	-webkit-background-clip:padding-box;
+	-moz-background-clip:padding-box;
+	-o-background-clip:padding-box;
+	background-clip:padding-box;
+	
+	-webkit-box-sizing:border-box;
+	-moz-box-sizing:border-box;
+	-o-box-sizing:border-box;
+	box-sizing:border-box;
+	
+	-webkit-border-radius:4px;
+	-moz-border-radius:4px;
+	-o-border-radius:4px;
+	border-radius:4px;
+	
+	-webkit-box-shadow:inset 1px 1px 0 rgba(255,255,255,0.5);
+	-moz-box-shadow:inset 1px 1px 0 rgba(255,255,255,0.5);
+	-o-box-shadow:inset 1px 1px 0 rgba(255,255,255,0.5);
+	box-shadow:inset 1px 1px 0 rgba(255,255,255,0.5);
+}
diff --git a/public/admin/js/osmplayer/src/iscroll/examples/ender/ender.js b/public/admin/js/osmplayer/src/iscroll/examples/ender/ender.js
new file mode 100644
index 00000000000..bb99e0c0d03
--- /dev/null
+++ b/public/admin/js/osmplayer/src/iscroll/examples/ender/ender.js
@@ -0,0 +1,1602 @@
+/*!
+  * =============================================================
+  * Ender: open module JavaScript framework (https://ender.no.de)
+  * Build: ender build qwery domready ../../
+  * =============================================================
+  */
+
+/*!
+  * Ender-JS: open module JavaScript framework (client-lib)
+  * copyright Dustin Diaz & Jacob Thornton 2011 (@ded @fat)
+  * https://ender.no.de
+  * License MIT
+  */
+!function (context) {
+
+  // a global object for node.js module compatiblity
+  // ============================================
+
+  context['global'] = context;
+
+  // Implements simple module system
+  // losely based on CommonJS Modules spec v1.1.1
+  // ============================================
+
+  var modules = {};
+
+  function require (identifier) {
+    var module = modules[identifier] || window[identifier];
+    if (!module) throw new Error("Requested module '" + identifier + "' has not been defined.");
+    return module;
+  }
+
+  function provide (name, what) {
+    return modules[name] = what;
+  }
+
+  context['provide'] = provide;
+  context['require'] = require;
+
+  // Implements Ender's $ global access object
+  // =========================================
+
+  function aug(o, o2) {
+    for (var k in o2) {
+      k != 'noConflict' && k != '_VERSION' && (o[k] = o2[k]);
+    }
+    return o;
+  }
+
+  function boosh(s, r, els) {
+                          // string || node || nodelist || window
+    if (ender._select && (typeof s == 'string' || s.nodeName || s.length && 'item' in s || s == window)) {
+      els = ender._select(s, r);
+      els.selector = s;
+    } else {
+      els = isFinite(s.length) ? s : [s];
+    }
+    return aug(els, boosh);
+  }
+
+  function ender(s, r) {
+    return boosh(s, r);
+  }
+
+  aug(ender, {
+    _VERSION: '0.2.5',
+    ender: function (o, chain) {
+      aug(chain ? boosh : ender, o);
+    },
+    fn: context.$ && context.$.fn || {} // for easy compat to jQuery plugins
+  });
+
+  aug(boosh, {
+    forEach: function (fn, scope, i) {
+      // opt out of native forEach so we can intentionally call our own scope
+      // defaulting to the current item and be able to return self
+      for (i = 0, l = this.length; i < l; ++i) {
+        i in this && fn.call(scope || this[i], this[i], i, this);
+      }
+      // return self for chaining
+      return this;
+    },
+    $: ender // handy reference to self
+  });
+
+  var old = context.$;
+  ender.noConflict = function () {
+    context.$ = old;
+    return this;
+  };
+
+  (typeof module !== 'undefined') && module.exports && (module.exports = ender);
+  // use subscript notation as extern for Closure compilation
+  context['ender'] = context['$'] = context['ender'] || ender;
+
+}(this);
+
+!function () {
+
+  var module = { exports: {} }, exports = module.exports;
+
+  /*!
+    * Qwery - A Blazing Fast query selector engine
+    * https://github.com/ded/qwery
+    * copyright Dustin Diaz & Jacob Thornton 2011
+    * MIT License
+    */
+  
+  !function (name, definition) {
+    if (typeof define == 'function') define(definition)
+    else if (typeof module != 'undefined') module.exports = definition()
+    else this[name] = definition()
+  }('qwery', function () {
+    var context = this
+      , doc = document
+      , c, i, j, k, l, m, o, p, r, v
+      , el, node, found, classes, item, items, token
+      , html = doc.documentElement
+      , id = /#([\w\-]+)/
+      , clas = /\.[\w\-]+/g
+      , idOnly = /^#([\w\-]+$)/
+      , classOnly = /^\.([\w\-]+)$/
+      , tagOnly = /^([\w\-]+)$/
+      , tagAndOrClass = /^([\w]+)?\.([\w\-]+)$/
+      , normalizr = /\s*([\s\+\~>])\s*/g
+      , splitters = /[\s\>\+\~]/
+      , splittersMore = /(?![\s\w\-\/\?\&\=\:\.\(\)\!,@#%<>\{\}\$\*\^'"]*\]|[\s\w\+\-]*\))/
+      , specialChars = /([.*+?\^=!:${}()|\[\]\/\\])/g
+      , simple = /^([a-z0-9]+)?(?:([\.\#]+[\w\-\.#]+)?)/
+      , attr = /\[([\w\-]+)(?:([\|\^\$\*\~]?\=)['"]?([ \w\-\/\?\&\=\:\.\(\)\!,@#%<>\{\}\$\*\^]+)["']?)?\]/
+      , pseudo = /:([\w\-]+)(\(['"]?([\s\w\+\-]+)['"]?\))?/
+      , dividers = new RegExp('(' + splitters.source + ')' + splittersMore.source, 'g')
+      , tokenizr = new RegExp(splitters.source + splittersMore.source)
+      , chunker = new RegExp(simple.source + '(' + attr.source + ')?' + '(' + pseudo.source + ')?')
+      , walker = {
+        ' ': function (node) {
+          return node && node !== html && node.parentNode
+        }
+      , '>': function (node, contestant) {
+          return node && node.parentNode == contestant.parentNode && node.parentNode;
+        }
+      , '~': function (node) {
+          return node && node.previousSibling;
+        }
+      , '+': function (node, contestant, p1, p2) {
+          if (!node) {
+            return false;
+          }
+          p1 = previous(node);
+          p2 = previous(contestant);
+          return p1 && p2 && p1 == p2 && p1;
+        }
+    }
+    function cache() {
+      this.c = {}
+    }
+    cache.prototype = {
+        g: function (k) {
+          return this.c[k] || undefined
+        }
+      , s: function (k, v) {
+          this.c[k] = v
+          return v
+        }
+    }
+  
+    var classCache = new cache()
+      , cleanCache = new cache()
+      , attrCache = new cache()
+      , tokenCache = new cache()
+  
+    function flatten(ar) {
+      r = []
+      for (i = 0, l = ar.length; i < l; i++) {
+        if (arrayLike(ar[i])) {
+          r = r.concat(ar[i])
+        } else {
+          r.push(ar[i])
+        }
+      }
+      return r
+    }
+  
+    function previous(n) {
+      while (n = n.previousSibling) {
+        if (n.nodeType == 1) {
+          break;
+        }
+      }
+      return n
+    }
+  
+    function q(query) {
+      return query.match(chunker)
+    }
+  
+    // this next method expect at most these args
+    // given => div.hello[title="world"]:foo('bar')
+  
+    // div.hello[title="world"]:foo('bar'), div, .hello, [title="world"], title, =, world, :foo('bar'), foo, ('bar'), bar]
+  
+    function interpret(whole, tag, idsAndClasses, wholeAttribute, attribute, qualifier, value, wholePseudo, pseudo, wholePseudoVal, pseudoVal) {
+      var m, c, k;
+      if (tag && this.tagName.toLowerCase() !== tag) {
+        return false
+      }
+      if (idsAndClasses && (m = idsAndClasses.match(id)) && m[1] !== this.id) {
+        return false
+      }
+      if (idsAndClasses && (classes = idsAndClasses.match(clas))) {
+        for (i = classes.length; i--;) {
+          c = classes[i].slice(1)
+          if (!(classCache.g(c) || classCache.s(c, new RegExp('(^|\\s+)' + c + '(\\s+|$)'))).test(this.className)) {
+            return false
+          }
+        }
+      }
+      if (pseudo && qwery.pseudos[pseudo] && !qwery.pseudos[pseudo](this, pseudoVal)) {
+        return false
+      }
+      if (wholeAttribute && !value) {
+        o = this.attributes
+        for (k in o) {
+          if (Object.prototype.hasOwnProperty.call(o, k) && (o[k].name || k) == attribute) {
+            return this
+          }
+        }
+      }
+      if (wholeAttribute && !checkAttr(qualifier, this.getAttribute(attribute) || '', value)) {
+        return false
+      }
+      return this
+    }
+  
+    function clean(s) {
+      return cleanCache.g(s) || cleanCache.s(s, s.replace(specialChars, '\\$1'))
+    }
+  
+    function checkAttr(qualify, actual, val) {
+      switch (qualify) {
+      case '=':
+        return actual == val
+      case '^=':
+        return actual.match(attrCache.g('^=' + val) || attrCache.s('^=' + val, new RegExp('^' + clean(val))))
+      case '$=':
+        return actual.match(attrCache.g('$=' + val) || attrCache.s('$=' + val, new RegExp(clean(val) + '$')))
+      case '*=':
+        return actual.match(attrCache.g(val) || attrCache.s(val, new RegExp(clean(val))))
+      case '~=':
+        return actual.match(attrCache.g('~=' + val) || attrCache.s('~=' + val, new RegExp('(?:^|\\s+)' + clean(val) + '(?:\\s+|$)')))
+      case '|=':
+        return actual.match(attrCache.g('|=' + val) || attrCache.s('|=' + val, new RegExp('^' + clean(val) + '(-|$)')))
+      }
+      return 0
+    }
+  
+    function _qwery(selector) {
+      var r = [], ret = [], i, j = 0, k, l, m, p, token, tag, els, root, intr, item, children
+        , tokens = tokenCache.g(selector) || tokenCache.s(selector, selector.split(tokenizr))
+        , dividedTokens = selector.match(dividers), dividedToken
+      tokens = tokens.slice(0) // this makes a copy of the array so the cached original is not effected
+  
+      if (!tokens.length) return r
+  
+      token = tokens.pop()
+      root = tokens.length && (m = tokens[tokens.length - 1].match(idOnly)) ? doc.getElementById(m[1]) : doc
+  
+      if (!root) return r
+  
+      intr = q(token)
+      els = dividedTokens && /^[+~]$/.test(dividedTokens[dividedTokens.length - 1]) ? function (r) {
+          while (root = root.nextSibling) {
+            root.nodeType == 1 && (intr[1] ? intr[1] == root.tagName.toLowerCase() : 1) && r.push(root)
+          }
+          return r
+        }([]) :
+        root.getElementsByTagName(intr[1] || '*')
+      for (i = 0, l = els.length; i < l; i++) if (item = interpret.apply(els[i], intr)) r[j++] = item
+      if (!tokens.length) return r
+  
+      // loop through all descendent tokens
+      for (j = 0, l = r.length, k = 0; j < l; j++) {
+        p = r[j]
+        // loop through each token backwards crawling up tree
+        for (i = tokens.length; i--;) {
+          // loop through parent nodes
+          while (p = walker[dividedTokens[i]](p, r[j])) {
+            if (found = interpret.apply(p, q(tokens[i]))) break;
+          }
+        }
+        found && (ret[k++] = r[j])
+      }
+      return ret
+    }
+  
+    function isNode(el) {
+      return (el && el.nodeType && (el.nodeType == 1 || el.nodeType == 9))
+    }
+  
+    function uniq(ar) {
+      var a = [], i, j;
+      label:
+      for (i = 0; i < ar.length; i++) {
+        for (j = 0; j < a.length; j++) {
+          if (a[j] == ar[i]) {
+            continue label;
+          }
+        }
+        a[a.length] = ar[i]
+      }
+      return a
+    }
+  
+    function arrayLike(o) {
+      return (typeof o === 'object' && isFinite(o.length))
+    }
+  
+    function normalizeRoot(root) {
+      if (!root) return doc
+      if (typeof root == 'string') return qwery(root)[0]
+      if (arrayLike(root)) return root[0]
+      return root
+    }
+  
+    function qwery(selector, _root) {
+      var root = normalizeRoot(_root)
+  
+      if (!root || !selector) return []
+      if (selector === window || isNode(selector)) {
+        return !_root || (selector !== window && isNode(root) && isAncestor(selector, root)) ? [selector] : []
+      }
+      if (selector && arrayLike(selector)) return flatten(selector)
+      if (m = selector.match(idOnly)) return (el = doc.getElementById(m[1])) ? [el] : []
+      if (m = selector.match(tagOnly)) return flatten(root.getElementsByTagName(m[1]))
+      return select(selector, root)
+    }
+  
+    var isAncestor = 'compareDocumentPosition' in html ?
+      function (element, container) {
+        return (container.compareDocumentPosition(element) & 16) == 16;
+      } : 'contains' in html ?
+      function (element, container) {
+        container = container == doc || container == window ? html : container
+        return container !== element && container.contains(element)
+      } :
+      function (element, container) {
+        while (element = element.parentNode) if (element === container) return 1
+        return 0
+      },
+  
+    supportsCSS3 = function () {
+      if (!doc.querySelector || !doc.querySelectorAll) return false
+  
+      try { return (doc.querySelectorAll(':nth-of-type(1)').length > 0) }
+      catch (e) { return false }
+    }(),
+  
+    select = supportsCSS3 ?
+      function (selector, root) {
+        if (doc.getElementsByClassName && (m = selector.match(classOnly))) {
+          return flatten((root).getElementsByClassName(m[1]));
+        }
+        return flatten((root).querySelectorAll(selector))
+      } :
+      function (selector, root) {
+        selector = selector.replace(normalizr, '$1')
+        var result = [], element, collection, collections = [], i
+        if (m = selector.match(tagAndOrClass)) {
+          items = root.getElementsByTagName(m[1] || '*');
+          r = classCache.g(m[2]) || classCache.s(m[2], new RegExp('(^|\\s+)' + m[2] + '(\\s+|$)'));
+          for (i = 0, l = items.length, j = 0; i < l; i++) {
+            r.test(items[i].className) && (result[j++] = items[i]);
+          }
+          return result
+        }
+        for (i = 0, items = selector.split(','), l = items.length; i < l; i++) {
+          collections[i] = _qwery(items[i])
+        }
+        for (i = 0, l = collections.length; i < l && (collection = collections[i]); i++) {
+          var ret = collection
+          if (root !== doc) {
+            ret = []
+            for (j = 0, m = collection.length; j < m && (element = collection[j]); j++) {
+              // make sure element is a descendent of root
+              isAncestor(element, root) && ret.push(element)
+            }
+          }
+          result = result.concat(ret)
+        }
+        return uniq(result)
+      }
+  
+    qwery.uniq = uniq
+    qwery.pseudos = {}
+  
+    var old = context.qwery
+    qwery.noConflict = function () {
+      context.qwery = old
+      return this
+    }
+  
+    return qwery
+  })
+
+  provide("qwery", module.exports);
+
+  !function (doc, $) {
+    var q = require('qwery')
+      , table = 'table'
+      , nodeMap = {
+            thead: table
+          , tbody: table
+          , tfoot: table
+          , tr: 'tbody'
+          , th: 'tr'
+          , td: 'tr'
+          , fieldset: 'form'
+          , option: 'select'
+        }
+    function create(node, root) {
+      var tag = /^<([^\s>]+)/.exec(node)[1]
+        , el = (root || doc).createElement(nodeMap[tag] || 'div'), els = []
+      el.innerHTML = node
+      var nodes = el.childNodes
+      el = el.firstChild
+      els.push(el)
+      while (el = el.nextSibling) (el.nodeType == 1) && els.push(el)
+      return els
+    }
+  
+    $._select = function (s, r) {
+      return /^\s*</.test(s) ? create(s, r) : q(s, r)
+    }
+  
+    $.pseudos = q.pseudos
+  
+    $.ender({
+      find: function (s) {
+        var r = [], i, l, j, k, els
+        for (i = 0, l = this.length; i < l; i++) {
+          els = q(s, this[i])
+          for (j = 0, k = els.length; j < k; j++) r.push(els[j])
+        }
+        return $(q.uniq(r))
+      }
+      , and: function (s) {
+        var plus = $(s)
+        for (var i = this.length, j = 0, l = this.length + plus.length; i < l; i++, j++) {
+          this[i] = plus[j]
+        }
+        return this
+      }
+    }, true)
+  }(document, ender);
+  
+
+}();
+
+!function () {
+
+  var module = { exports: {} }, exports = module.exports;
+
+  !function (context, doc) {
+    var fns = [], ready, ol, fn, f = false,
+        testEl = doc.documentElement,
+        hack = testEl.doScroll,
+        domContentLoaded = 'DOMContentLoaded',
+        addEventListener = 'addEventListener',
+        onreadystatechange = 'onreadystatechange',
+        loaded = /^loade|c/.test(doc.readyState);
+  
+    function flush(i) {
+      loaded = 1;
+      while (i = fns.shift()) { i() }
+    }
+    doc[addEventListener] && doc[addEventListener](domContentLoaded, fn = function () {
+      doc.removeEventListener(domContentLoaded, fn, f);
+      flush();
+    }, f);
+  
+  
+    hack && doc.attachEvent(onreadystatechange, (ol = function () {
+      if (/^c/.test(doc.readyState)) {
+        doc.detachEvent(onreadystatechange, ol);
+        flush();
+      }
+    }));
+  
+    ready = hack ?
+      function (fn) {
+        self != top ?
+          loaded ? fn() : fns.push(fn) :
+          function () {
+            try {
+              testEl.doScroll('left');
+            } catch (e) {
+              return setTimeout(function() { ready(fn) }, 50);
+            }
+            fn();
+          }()
+      } :
+      function (fn) {
+        loaded ? fn() : fns.push(fn);
+      };
+  
+   (typeof module !== 'undefined') ?
+      (module.exports = ready) :
+      (context['domReady'] = ready);
+  
+  }(this, document);
+  
+
+  provide("domready", module.exports);
+
+  !function ($) {
+    var ready = require('domready')
+    $.ender({domReady: ready})
+    $.ender({
+      ready: function (f) {
+        ready(f)
+        return this
+      }
+    }, true)
+  }(ender);
+
+}();
+
+!function () {
+
+  var module = { exports: {} }, exports = module.exports;
+
+  /*!
+   * iScroll v4.1.9 ~ Copyright (c) 2011 Matteo Spinelli, http://cubiq.org
+   * Released under MIT license, http://cubiq.org/license
+   */
+  
+  (function(){
+  var m = Math,
+  	vendor = (/webkit/i).test(navigator.appVersion) ? 'webkit' :
+  		(/firefox/i).test(navigator.userAgent) ? 'Moz' :
+  		'opera' in window ? 'O' : '',
+  
+  	// Browser capabilities
+  	has3d = 'WebKitCSSMatrix' in window && 'm11' in new WebKitCSSMatrix(),
+  	hasTouch = 'ontouchstart' in window,
+  	hasTransform = vendor + 'Transform' in document.documentElement.style,
+  	isAndroid = (/android/gi).test(navigator.appVersion),
+  	isIDevice = (/iphone|ipad/gi).test(navigator.appVersion),
+  	isPlaybook = (/playbook/gi).test(navigator.appVersion),
+  	hasTransitionEnd = isIDevice || isPlaybook,
+  	nextFrame = (function() {
+  	    return window.requestAnimationFrame
+  			|| window.webkitRequestAnimationFrame
+  			|| window.mozRequestAnimationFrame
+  			|| window.oRequestAnimationFrame
+  			|| window.msRequestAnimationFrame
+  			|| function(callback) { return setTimeout(callback, 1); }
+  	})(),
+  	cancelFrame = (function () {
+  	    return window.cancelRequestAnimationFrame
+  			|| window.webkitCancelRequestAnimationFrame
+  			|| window.mozCancelRequestAnimationFrame
+  			|| window.oCancelRequestAnimationFrame
+  			|| window.msCancelRequestAnimationFrame
+  			|| clearTimeout
+  	})(),
+  
+  	// Events
+  	RESIZE_EV = 'onorientationchange' in window ? 'orientationchange' : 'resize',
+  	START_EV = hasTouch ? 'touchstart' : 'mousedown',
+  	MOVE_EV = hasTouch ? 'touchmove' : 'mousemove',
+  	END_EV = hasTouch ? 'touchend' : 'mouseup',
+  	CANCEL_EV = hasTouch ? 'touchcancel' : 'mouseup',
+  	WHEEL_EV = vendor == 'Moz' ? 'DOMMouseScroll' : 'mousewheel',
+  
+  	// Helpers
+  	trnOpen = 'translate' + (has3d ? '3d(' : '('),
+  	trnClose = has3d ? ',0)' : ')',
+  
+  	// Constructor
+  	iScroll = function (el, options) {
+  		var that = this,
+  			doc = document,
+  			i;
+  
+  		that.wrapper = typeof el == 'object' ? el : doc.getElementById(el);
+  		that.wrapper.style.overflow = 'hidden';
+  		that.scroller = that.wrapper.children[0];
+  
+  		// Default options
+  		that.options = {
+  			hScroll: true,
+  			vScroll: true,
+  			x: 0,
+  			y: 0,
+  			bounce: true,
+  			bounceLock: false,
+  			momentum: true,
+  			lockDirection: true,
+  			useTransform: true,
+  			useTransition: false,
+  			topOffset: 0,
+  			checkDOMChanges: false,		// Experimental
+  
+  			// Scrollbar
+  			hScrollbar: true,
+  			vScrollbar: true,
+  			fixedScrollbar: isAndroid,
+  			hideScrollbar: isIDevice,
+  			fadeScrollbar: isIDevice && has3d,
+  			scrollbarClass: '',
+  
+  			// Zoom
+  			zoom: false,
+  			zoomMin: 1,
+  			zoomMax: 4,
+  			doubleTapZoom: 2,
+  			wheelAction: 'scroll',
+  
+  			// Snap
+  			snap: false,
+  			snapThreshold: 1,
+  
+  			// Events
+  			onRefresh: null,
+  			onBeforeScrollStart: function (e) { e.preventDefault(); },
+  			onScrollStart: null,
+  			onBeforeScrollMove: null,
+  			onScrollMove: null,
+  			onBeforeScrollEnd: null,
+  			onScrollEnd: null,
+  			onTouchEnd: null,
+  			onDestroy: null,
+  			onZoomStart: null,
+  			onZoom: null,
+  			onZoomEnd: null
+  		};
+  
+  		// User defined options
+  		for (i in options) that.options[i] = options[i];
+  		
+  		// Set starting position
+  		that.x = that.options.x;
+  		that.y = that.options.y;
+  
+  		// Normalize options
+  		that.options.useTransform = hasTransform ? that.options.useTransform : false;
+  		that.options.hScrollbar = that.options.hScroll && that.options.hScrollbar;
+  		that.options.vScrollbar = that.options.vScroll && that.options.vScrollbar;
+  		that.options.zoom = that.options.useTransform && that.options.zoom;
+  		that.options.useTransition = hasTransitionEnd && that.options.useTransition;
+  		
+  		// Set some default styles
+  		that.scroller.style[vendor + 'TransitionProperty'] = that.options.useTransform ? '-' + vendor.toLowerCase() + '-transform' : 'top left';
+  		that.scroller.style[vendor + 'TransitionDuration'] = '0';
+  		that.scroller.style[vendor + 'TransformOrigin'] = '0 0';
+  		if (that.options.useTransition) that.scroller.style[vendor + 'TransitionTimingFunction'] = 'cubic-bezier(0.33,0.66,0.66,1)';
+  		
+  		if (that.options.useTransform) that.scroller.style[vendor + 'Transform'] = trnOpen + that.x + 'px,' + that.y + 'px' + trnClose;
+  		else that.scroller.style.cssText += ';position:absolute;top:' + that.y + 'px;left:' + that.x + 'px';
+  
+  		if (that.options.useTransition) that.options.fixedScrollbar = true;
+  
+  		that.refresh();
+  
+  		that._bind(RESIZE_EV, window);
+  		that._bind(START_EV);
+  		if (!hasTouch) {
+  			that._bind('mouseout', that.wrapper);
+  			that._bind(WHEEL_EV);
+  		}
+  
+  		if (that.options.checkDOMChanges) that.checkDOMTime = setInterval(function () {
+  			that._checkDOMChanges();
+  		}, 500);
+  	};
+  
+  // Prototype
+  iScroll.prototype = {
+  	enabled: true,
+  	x: 0,
+  	y: 0,
+  	steps: [],
+  	scale: 1,
+  	currPageX: 0, currPageY: 0,
+  	pagesX: [], pagesY: [],
+  	aniTime: null,
+  	wheelZoomCount: 0,
+  	
+  	handleEvent: function (e) {
+  		var that = this;
+  		switch(e.type) {
+  			case START_EV:
+  				if (!hasTouch && e.button !== 0) return;
+  				that._start(e);
+  				break;
+  			case MOVE_EV: that._move(e); break;
+  			case END_EV:
+  			case CANCEL_EV: that._end(e); break;
+  			case RESIZE_EV: that._resize(); break;
+  			case WHEEL_EV: that._wheel(e); break;
+  			case 'mouseout': that._mouseout(e); break;
+  			case 'webkitTransitionEnd': that._transitionEnd(e); break;
+  		}
+  	},
+  	
+  	_checkDOMChanges: function () {
+  		if (this.moved || this.zoomed || this.animating ||
+  			(this.scrollerW == this.scroller.offsetWidth * this.scale && this.scrollerH == this.scroller.offsetHeight * this.scale)) return;
+  
+  		this.refresh();
+  	},
+  	
+  	_scrollbar: function (dir) {
+  		var that = this,
+  			doc = document,
+  			bar;
+  
+  		if (!that[dir + 'Scrollbar']) {
+  			if (that[dir + 'ScrollbarWrapper']) {
+  				if (hasTransform) that[dir + 'ScrollbarIndicator'].style[vendor + 'Transform'] = '';
+  				that[dir + 'ScrollbarWrapper'].parentNode.removeChild(that[dir + 'ScrollbarWrapper']);
+  				that[dir + 'ScrollbarWrapper'] = null;
+  				that[dir + 'ScrollbarIndicator'] = null;
+  			}
+  
+  			return;
+  		}
+  
+  		if (!that[dir + 'ScrollbarWrapper']) {
+  			// Create the scrollbar wrapper
+  			bar = doc.createElement('div');
+  
+  			if (that.options.scrollbarClass) bar.className = that.options.scrollbarClass + dir.toUpperCase();
+  			else bar.style.cssText = 'position:absolute;z-index:100;' + (dir == 'h' ? 'height:7px;bottom:1px;left:2px;right:' + (that.vScrollbar ? '7' : '2') + 'px' : 'width:7px;bottom:' + (that.hScrollbar ? '7' : '2') + 'px;top:2px;right:1px');
+  
+  			bar.style.cssText += ';pointer-events:none;-' + vendor + '-transition-property:opacity;-' + vendor + '-transition-duration:' + (that.options.fadeScrollbar ? '350ms' : '0') + ';overflow:hidden;opacity:' + (that.options.hideScrollbar ? '0' : '1');
+  
+  			that.wrapper.appendChild(bar);
+  			that[dir + 'ScrollbarWrapper'] = bar;
+  
+  			// Create the scrollbar indicator
+  			bar = doc.createElement('div');
+  			if (!that.options.scrollbarClass) {
+  				bar.style.cssText = 'position:absolute;z-index:100;background:rgba(0,0,0,0.5);border:1px solid rgba(255,255,255,0.9);-' + vendor + '-background-clip:padding-box;-' + vendor + '-box-sizing:border-box;' + (dir == 'h' ? 'height:100%' : 'width:100%') + ';-' + vendor + '-border-radius:3px;border-radius:3px';
+  			}
+  			bar.style.cssText += ';pointer-events:none;-' + vendor + '-transition-property:-' + vendor + '-transform;-' + vendor + '-transition-timing-function:cubic-bezier(0.33,0.66,0.66,1);-' + vendor + '-transition-duration:0;-' + vendor + '-transform:' + trnOpen + '0,0' + trnClose;
+  			if (that.options.useTransition) bar.style.cssText += ';-' + vendor + '-transition-timing-function:cubic-bezier(0.33,0.66,0.66,1)';
+  
+  			that[dir + 'ScrollbarWrapper'].appendChild(bar);
+  			that[dir + 'ScrollbarIndicator'] = bar;
+  		}
+  
+  		if (dir == 'h') {
+  			that.hScrollbarSize = that.hScrollbarWrapper.clientWidth;
+  			that.hScrollbarIndicatorSize = m.max(m.round(that.hScrollbarSize * that.hScrollbarSize / that.scrollerW), 8);
+  			that.hScrollbarIndicator.style.width = that.hScrollbarIndicatorSize + 'px';
+  			that.hScrollbarMaxScroll = that.hScrollbarSize - that.hScrollbarIndicatorSize;
+  			that.hScrollbarProp = that.hScrollbarMaxScroll / that.maxScrollX;
+  		} else {
+  			that.vScrollbarSize = that.vScrollbarWrapper.clientHeight;
+  			that.vScrollbarIndicatorSize = m.max(m.round(that.vScrollbarSize * that.vScrollbarSize / that.scrollerH), 8);
+  			that.vScrollbarIndicator.style.height = that.vScrollbarIndicatorSize + 'px';
+  			that.vScrollbarMaxScroll = that.vScrollbarSize - that.vScrollbarIndicatorSize;
+  			that.vScrollbarProp = that.vScrollbarMaxScroll / that.maxScrollY;
+  		}
+  
+  		// Reset position
+  		that._scrollbarPos(dir, true);
+  	},
+  	
+  	_resize: function () {
+  		var that = this;
+  		setTimeout(function () { that.refresh(); }, isAndroid ? 200 : 0);
+  	},
+  	
+  	_pos: function (x, y) {
+  		x = this.hScroll ? x : 0;
+  		y = this.vScroll ? y : 0;
+  
+  		if (this.options.useTransform) {
+  			this.scroller.style[vendor + 'Transform'] = trnOpen + x + 'px,' + y + 'px' + trnClose + ' scale(' + this.scale + ')';
+  		} else {
+  			x = m.round(x);
+  			y = m.round(y);
+  			this.scroller.style.left = x + 'px';
+  			this.scroller.style.top = y + 'px';
+  		}
+  
+  		this.x = x;
+  		this.y = y;
+  
+  		this._scrollbarPos('h');
+  		this._scrollbarPos('v');
+  	},
+  
+  	_scrollbarPos: function (dir, hidden) {
+  		var that = this,
+  			pos = dir == 'h' ? that.x : that.y,
+  			size;
+  
+  		if (!that[dir + 'Scrollbar']) return;
+  
+  		pos = that[dir + 'ScrollbarProp'] * pos;
+  
+  		if (pos < 0) {
+  			if (!that.options.fixedScrollbar) {
+  				size = that[dir + 'ScrollbarIndicatorSize'] + m.round(pos * 3);
+  				if (size < 8) size = 8;
+  				that[dir + 'ScrollbarIndicator'].style[dir == 'h' ? 'width' : 'height'] = size + 'px';
+  			}
+  			pos = 0;
+  		} else if (pos > that[dir + 'ScrollbarMaxScroll']) {
+  			if (!that.options.fixedScrollbar) {
+  				size = that[dir + 'ScrollbarIndicatorSize'] - m.round((pos - that[dir + 'ScrollbarMaxScroll']) * 3);
+  				if (size < 8) size = 8;
+  				that[dir + 'ScrollbarIndicator'].style[dir == 'h' ? 'width' : 'height'] = size + 'px';
+  				pos = that[dir + 'ScrollbarMaxScroll'] + (that[dir + 'ScrollbarIndicatorSize'] - size);
+  			} else {
+  				pos = that[dir + 'ScrollbarMaxScroll'];
+  			}
+  		}
+  
+  		that[dir + 'ScrollbarWrapper'].style[vendor + 'TransitionDelay'] = '0';
+  		that[dir + 'ScrollbarWrapper'].style.opacity = hidden && that.options.hideScrollbar ? '0' : '1';
+  		that[dir + 'ScrollbarIndicator'].style[vendor + 'Transform'] = trnOpen + (dir == 'h' ? pos + 'px,0' : '0,' + pos + 'px') + trnClose;
+  	},
+  	
+  	_start: function (e) {
+  		var that = this,
+  			point = hasTouch ? e.touches[0] : e,
+  			matrix, x, y,
+  			c1, c2;
+  
+  		if (!that.enabled) return;
+  
+  		if (that.options.onBeforeScrollStart) that.options.onBeforeScrollStart.call(that, e);
+  
+  		if (that.options.useTransition || that.options.zoom) that._transitionTime(0);
+  
+  		that.moved = false;
+  		that.animating = false;
+  		that.zoomed = false;
+  		that.distX = 0;
+  		that.distY = 0;
+  		that.absDistX = 0;
+  		that.absDistY = 0;
+  		that.dirX = 0;
+  		that.dirY = 0;
+  
+  		// Gesture start
+  		if (that.options.zoom && hasTouch && e.touches.length > 1) {
+  			c1 = m.abs(e.touches[0].pageX-e.touches[1].pageX);
+  			c2 = m.abs(e.touches[0].pageY-e.touches[1].pageY);
+  			that.touchesDistStart = m.sqrt(c1 * c1 + c2 * c2);
+  
+  			that.originX = m.abs(e.touches[0].pageX + e.touches[1].pageX - that.wrapperOffsetLeft * 2) / 2 - that.x;
+  			that.originY = m.abs(e.touches[0].pageY + e.touches[1].pageY - that.wrapperOffsetTop * 2) / 2 - that.y;
+  
+  			if (that.options.onZoomStart) that.options.onZoomStart.call(that, e);
+  		}
+  
+  		if (that.options.momentum) {
+  			if (that.options.useTransform) {
+  				// Very lame general purpose alternative to CSSMatrix
+  				matrix = getComputedStyle(that.scroller, null)[vendor + 'Transform'].replace(/[^0-9-.,]/g, '').split(',');
+  				x = matrix[4] * 1;
+  				y = matrix[5] * 1;
+  			} else {
+  				x = getComputedStyle(that.scroller, null).left.replace(/[^0-9-]/g, '') * 1;
+  				y = getComputedStyle(that.scroller, null).top.replace(/[^0-9-]/g, '') * 1;
+  			}
+  			
+  			if (x != that.x || y != that.y) {
+  				if (that.options.useTransition) that._unbind('webkitTransitionEnd');
+  				else cancelFrame(that.aniTime);
+  				that.steps = [];
+  				that._pos(x, y);
+  			}
+  		}
+  
+  		that.absStartX = that.x;	// Needed by snap threshold
+  		that.absStartY = that.y;
+  
+  		that.startX = that.x;
+  		that.startY = that.y;
+  		that.pointX = point.pageX;
+  		that.pointY = point.pageY;
+  
+  		that.startTime = e.timeStamp || Date.now();
+  
+  		if (that.options.onScrollStart) that.options.onScrollStart.call(that, e);
+  
+  		that._bind(MOVE_EV);
+  		that._bind(END_EV);
+  		that._bind(CANCEL_EV);
+  	},
+  	
+  	_move: function (e) {
+  		var that = this,
+  			point = hasTouch ? e.touches[0] : e,
+  			deltaX = point.pageX - that.pointX,
+  			deltaY = point.pageY - that.pointY,
+  			newX = that.x + deltaX,
+  			newY = that.y + deltaY,
+  			c1, c2, scale,
+  			timestamp = e.timeStamp || Date.now();
+  
+  		if (that.options.onBeforeScrollMove) that.options.onBeforeScrollMove.call(that, e);
+  
+  		// Zoom
+  		if (that.options.zoom && hasTouch && e.touches.length > 1) {
+  			c1 = m.abs(e.touches[0].pageX - e.touches[1].pageX);
+  			c2 = m.abs(e.touches[0].pageY - e.touches[1].pageY);
+  			that.touchesDist = m.sqrt(c1*c1+c2*c2);
+  
+  			that.zoomed = true;
+  
+  			scale = 1 / that.touchesDistStart * that.touchesDist * this.scale;
+  
+  			if (scale < that.options.zoomMin) scale = 0.5 * that.options.zoomMin * Math.pow(2.0, scale / that.options.zoomMin);
+  			else if (scale > that.options.zoomMax) scale = 2.0 * that.options.zoomMax * Math.pow(0.5, that.options.zoomMax / scale);
+  
+  			that.lastScale = scale / this.scale;
+  
+  			newX = this.originX - this.originX * that.lastScale + this.x,
+  			newY = this.originY - this.originY * that.lastScale + this.y;
+  
+  			this.scroller.style[vendor + 'Transform'] = trnOpen + newX + 'px,' + newY + 'px' + trnClose + ' scale(' + scale + ')';
+  
+  			if (that.options.onZoom) that.options.onZoom.call(that, e);
+  			return;
+  		}
+  
+  		that.pointX = point.pageX;
+  		that.pointY = point.pageY;
+  
+  		// Slow down if outside of the boundaries
+  		if (newX > 0 || newX < that.maxScrollX) {
+  			newX = that.options.bounce ? that.x + (deltaX / 2) : newX >= 0 || that.maxScrollX >= 0 ? 0 : that.maxScrollX;
+  		}
+  		if (newY > that.minScrollY || newY < that.maxScrollY) { 
+  			newY = that.options.bounce ? that.y + (deltaY / 2) : newY >= that.minScrollY || that.maxScrollY >= 0 ? that.minScrollY : that.maxScrollY;
+  		}
+  
+  		if (that.absDistX < 6 && that.absDistY < 6) {
+  			that.distX += deltaX;
+  			that.distY += deltaY;
+  			that.absDistX = m.abs(that.distX);
+  			that.absDistY = m.abs(that.distY);
+  
+  			return;
+  		}
+  
+  		// Lock direction
+  		if (that.options.lockDirection) {
+  			if (that.absDistX > that.absDistY + 5) {
+  				newY = that.y;
+  				deltaY = 0;
+  			} else if (that.absDistY > that.absDistX + 5) {
+  				newX = that.x;
+  				deltaX = 0;
+  			}
+  		}
+  
+  		that.moved = true;
+  		that._pos(newX, newY);
+  		that.dirX = deltaX > 0 ? -1 : deltaX < 0 ? 1 : 0;
+  		that.dirY = deltaY > 0 ? -1 : deltaY < 0 ? 1 : 0;
+  
+  		if (timestamp - that.startTime > 300) {
+  			that.startTime = timestamp;
+  			that.startX = that.x;
+  			that.startY = that.y;
+  		}
+  		
+  		if (that.options.onScrollMove) that.options.onScrollMove.call(that, e);
+  	},
+  	
+  	_end: function (e) {
+  		if (hasTouch && e.touches.length != 0) return;
+  
+  		var that = this,
+  			point = hasTouch ? e.changedTouches[0] : e,
+  			target, ev,
+  			momentumX = { dist:0, time:0 },
+  			momentumY = { dist:0, time:0 },
+  			duration = (e.timeStamp || Date.now()) - that.startTime,
+  			newPosX = that.x,
+  			newPosY = that.y,
+  			distX, distY,
+  			newDuration,
+  			snap,
+  			scale;
+  
+  		that._unbind(MOVE_EV);
+  		that._unbind(END_EV);
+  		that._unbind(CANCEL_EV);
+  
+  		if (that.options.onBeforeScrollEnd) that.options.onBeforeScrollEnd.call(that, e);
+  
+  		if (that.zoomed) {
+  			scale = that.scale * that.lastScale;
+  			scale = Math.max(that.options.zoomMin, scale);
+  			scale = Math.min(that.options.zoomMax, scale);
+  			that.lastScale = scale / that.scale;
+  			that.scale = scale;
+  
+  			that.x = that.originX - that.originX * that.lastScale + that.x;
+  			that.y = that.originY - that.originY * that.lastScale + that.y;
+  			
+  			that.scroller.style[vendor + 'TransitionDuration'] = '200ms';
+  			that.scroller.style[vendor + 'Transform'] = trnOpen + that.x + 'px,' + that.y + 'px' + trnClose + ' scale(' + that.scale + ')';
+  			
+  			that.zoomed = false;
+  			that.refresh();
+  
+  			if (that.options.onZoomEnd) that.options.onZoomEnd.call(that, e);
+  			return;
+  		}
+  
+  		if (!that.moved) {
+  			if (hasTouch) {
+  				if (that.doubleTapTimer && that.options.zoom) {
+  					// Double tapped
+  					clearTimeout(that.doubleTapTimer);
+  					that.doubleTapTimer = null;
+  					if (that.options.onZoomStart) that.options.onZoomStart.call(that, e);
+  					that.zoom(that.pointX, that.pointY, that.scale == 1 ? that.options.doubleTapZoom : 1);
+  					if (that.options.onZoomEnd) {
+  						setTimeout(function() {
+  							that.options.onZoomEnd.call(that, e);
+  						}, 200); // 200 is default zoom duration
+  					}
+  				} else {
+  					that.doubleTapTimer = setTimeout(function () {
+  						that.doubleTapTimer = null;
+  
+  						// Find the last touched element
+  						target = point.target;
+  						while (target.nodeType != 1) target = target.parentNode;
+  
+  						if (target.tagName != 'SELECT' && target.tagName != 'INPUT' && target.tagName != 'TEXTAREA') {
+  							ev = document.createEvent('MouseEvents');
+  							ev.initMouseEvent('click', true, true, e.view, 1,
+  								point.screenX, point.screenY, point.clientX, point.clientY,
+  								e.ctrlKey, e.altKey, e.shiftKey, e.metaKey,
+  								0, null);
+  							ev._fake = true;
+  							target.dispatchEvent(ev);
+  						}
+  					}, that.options.zoom ? 250 : 0);
+  				}
+  			}
+  
+  			that._resetPos(200);
+  
+  			if (that.options.onTouchEnd) that.options.onTouchEnd.call(that, e);
+  			return;
+  		}
+  
+  		if (duration < 300 && that.options.momentum) {
+  			momentumX = newPosX ? that._momentum(newPosX - that.startX, duration, -that.x, that.scrollerW - that.wrapperW + that.x, that.options.bounce ? that.wrapperW : 0) : momentumX;
+  			momentumY = newPosY ? that._momentum(newPosY - that.startY, duration, -that.y, (that.maxScrollY < 0 ? that.scrollerH - that.wrapperH + that.y - that.minScrollY : 0), that.options.bounce ? that.wrapperH : 0) : momentumY;
+  
+  			newPosX = that.x + momentumX.dist;
+  			newPosY = that.y + momentumY.dist;
+  
+   			if ((that.x > 0 && newPosX > 0) || (that.x < that.maxScrollX && newPosX < that.maxScrollX)) momentumX = { dist:0, time:0 };
+   			if ((that.y > that.minScrollY && newPosY > that.minScrollY) || (that.y < that.maxScrollY && newPosY < that.maxScrollY)) momentumY = { dist:0, time:0 };
+  		}
+  
+  		if (momentumX.dist || momentumY.dist) {
+  			newDuration = m.max(m.max(momentumX.time, momentumY.time), 10);
+  
+  			// Do we need to snap?
+  			if (that.options.snap) {
+  				distX = newPosX - that.absStartX;
+  				distY = newPosY - that.absStartY;
+  				if (m.abs(distX) < that.options.snapThreshold && m.abs(distY) < that.options.snapThreshold) { that.scrollTo(that.absStartX, that.absStartY, 200); }
+  				else {
+  					snap = that._snap(newPosX, newPosY);
+  					newPosX = snap.x;
+  					newPosY = snap.y;
+  					newDuration = m.max(snap.time, newDuration);
+  				}
+  			}
+  
+  			that.scrollTo(m.round(newPosX), m.round(newPosY), newDuration);
+  
+  			if (that.options.onTouchEnd) that.options.onTouchEnd.call(that, e);
+  			return;
+  		}
+  
+  		// Do we need to snap?
+  		if (that.options.snap) {
+  			distX = newPosX - that.absStartX;
+  			distY = newPosY - that.absStartY;
+  			if (m.abs(distX) < that.options.snapThreshold && m.abs(distY) < that.options.snapThreshold) that.scrollTo(that.absStartX, that.absStartY, 200);
+  			else {
+  				snap = that._snap(that.x, that.y);
+  				if (snap.x != that.x || snap.y != that.y) that.scrollTo(snap.x, snap.y, snap.time);
+  			}
+  
+  			if (that.options.onTouchEnd) that.options.onTouchEnd.call(that, e);
+  			return;
+  		}
+  
+  		that._resetPos(200);
+  		if (that.options.onTouchEnd) that.options.onTouchEnd.call(that, e);
+  	},
+  	
+  	_resetPos: function (time) {
+  		var that = this,
+  			resetX = that.x >= 0 ? 0 : that.x < that.maxScrollX ? that.maxScrollX : that.x,
+  			resetY = that.y >= that.minScrollY || that.maxScrollY > 0 ? that.minScrollY : that.y < that.maxScrollY ? that.maxScrollY : that.y;
+  
+  		if (resetX == that.x && resetY == that.y) {
+  			if (that.moved) {
+  				that.moved = false;
+  				if (that.options.onScrollEnd) that.options.onScrollEnd.call(that);		// Execute custom code on scroll end
+  			}
+  
+  			if (that.hScrollbar && that.options.hideScrollbar) {
+  				if (vendor == 'webkit') that.hScrollbarWrapper.style[vendor + 'TransitionDelay'] = '300ms';
+  				that.hScrollbarWrapper.style.opacity = '0';
+  			}
+  			if (that.vScrollbar && that.options.hideScrollbar) {
+  				if (vendor == 'webkit') that.vScrollbarWrapper.style[vendor + 'TransitionDelay'] = '300ms';
+  				that.vScrollbarWrapper.style.opacity = '0';
+  			}
+  
+  			return;
+  		}
+  
+  		that.scrollTo(resetX, resetY, time || 0);
+  	},
+  
+  	_wheel: function (e) {
+  		var that = this,
+  			wheelDeltaX, wheelDeltaY,
+  			deltaX, deltaY,
+  			deltaScale;
+  
+  		if ('wheelDeltaX' in e) {
+  			wheelDeltaX = e.wheelDeltaX / 12;
+  			wheelDeltaY = e.wheelDeltaY / 12;
+  		} else if ('detail' in e) {
+  			wheelDeltaX = wheelDeltaY = -e.detail * 3;
+  		} else {
+  			wheelDeltaX = wheelDeltaY = -e.wheelDelta;
+  		}
+  		
+  		if (that.options.wheelAction == 'zoom') {
+  			deltaScale = that.scale * Math.pow(2, 1/3 * (wheelDeltaY ? wheelDeltaY / Math.abs(wheelDeltaY) : 0));
+  			if (deltaScale < that.options.zoomMin) deltaScale = that.options.zoomMin;
+  			if (deltaScale > that.options.zoomMax) deltaScale = that.options.zoomMax;
+  			
+  			if (deltaScale != that.scale) {
+  				if (!that.wheelZoomCount && that.options.onZoomStart) that.options.onZoomStart.call(that, e);
+  				that.wheelZoomCount++;
+  				
+  				that.zoom(e.pageX, e.pageY, deltaScale, 400);
+  				
+  				setTimeout(function() {
+  					that.wheelZoomCount--;
+  					if (!that.wheelZoomCount && that.options.onZoomEnd) that.options.onZoomEnd.call(that, e);
+  				}, 400);
+  			}
+  			
+  			return;
+  		}
+  		
+  		deltaX = that.x + wheelDeltaX;
+  		deltaY = that.y + wheelDeltaY;
+  
+  		if (deltaX > 0) deltaX = 0;
+  		else if (deltaX < that.maxScrollX) deltaX = that.maxScrollX;
+  
+  		if (deltaY > that.minScrollY) deltaY = that.minScrollY;
+  		else if (deltaY < that.maxScrollY) deltaY = that.maxScrollY;
+  
+  		that.scrollTo(deltaX, deltaY, 0);
+  	},
+  	
+  	_mouseout: function (e) {
+  		var t = e.relatedTarget;
+  
+  		if (!t) {
+  			this._end(e);
+  			return;
+  		}
+  
+  		while (t = t.parentNode) if (t == this.wrapper) return;
+  		
+  		this._end(e);
+  	},
+  
+  	_transitionEnd: function (e) {
+  		var that = this;
+  
+  		if (e.target != that.scroller) return;
+  
+  		that._unbind('webkitTransitionEnd');
+  		
+  		that._startAni();
+  	},
+  
+  
+  	/**
+  	 *
+  	 * Utilities
+  	 *
+  	 */
+  	_startAni: function () {
+  		var that = this,
+  			startX = that.x, startY = that.y,
+  			startTime = Date.now(),
+  			step, easeOut,
+  			animate;
+  
+  		if (that.animating) return;
+  		
+  		if (!that.steps.length) {
+  			that._resetPos(400);
+  			return;
+  		}
+  		
+  		step = that.steps.shift();
+  		
+  		if (step.x == startX && step.y == startY) step.time = 0;
+  
+  		that.animating = true;
+  		that.moved = true;
+  		
+  		if (that.options.useTransition) {
+  			that._transitionTime(step.time);
+  			that._pos(step.x, step.y);
+  			that.animating = false;
+  			if (step.time) that._bind('webkitTransitionEnd');
+  			else that._resetPos(0);
+  			return;
+  		}
+  
+  		animate = function () {
+  			var now = Date.now(),
+  				newX, newY;
+  
+  			if (now >= startTime + step.time) {
+  				that._pos(step.x, step.y);
+  				that.animating = false;
+  				if (that.options.onAnimationEnd) that.options.onAnimationEnd.call(that);			// Execute custom code on animation end
+  				that._startAni();
+  				return;
+  			}
+  
+  			now = (now - startTime) / step.time - 1;
+  			easeOut = m.sqrt(1 - now * now);
+  			newX = (step.x - startX) * easeOut + startX;
+  			newY = (step.y - startY) * easeOut + startY;
+  			that._pos(newX, newY);
+  			if (that.animating) that.aniTime = nextFrame(animate);
+  		};
+  
+  		animate();
+  	},
+  
+  	_transitionTime: function (time) {
+  		time += 'ms';
+  		this.scroller.style[vendor + 'TransitionDuration'] = time;
+  		if (this.hScrollbar) this.hScrollbarIndicator.style[vendor + 'TransitionDuration'] = time;
+  		if (this.vScrollbar) this.vScrollbarIndicator.style[vendor + 'TransitionDuration'] = time;
+  	},
+  
+  	_momentum: function (dist, time, maxDistUpper, maxDistLower, size) {
+  		var deceleration = 0.0006,
+  			speed = m.abs(dist) / time,
+  			newDist = (speed * speed) / (2 * deceleration),
+  			newTime = 0, outsideDist = 0;
+  
+  		// Proportinally reduce speed if we are outside of the boundaries 
+  		if (dist > 0 && newDist > maxDistUpper) {
+  			outsideDist = size / (6 / (newDist / speed * deceleration));
+  			maxDistUpper = maxDistUpper + outsideDist;
+  			speed = speed * maxDistUpper / newDist;
+  			newDist = maxDistUpper;
+  		} else if (dist < 0 && newDist > maxDistLower) {
+  			outsideDist = size / (6 / (newDist / speed * deceleration));
+  			maxDistLower = maxDistLower + outsideDist;
+  			speed = speed * maxDistLower / newDist;
+  			newDist = maxDistLower;
+  		}
+  
+  		newDist = newDist * (dist < 0 ? -1 : 1);
+  		newTime = speed / deceleration;
+  
+  		return { dist: newDist, time: m.round(newTime) };
+  	},
+  
+  	_offset: function (el) {
+  		var left = -el.offsetLeft,
+  			top = -el.offsetTop;
+  			
+  		while (el = el.offsetParent) {
+  			left -= el.offsetLeft;
+  			top -= el.offsetTop;
+  		}
+  		
+  		if (el != this.wrapper) {
+  			left *= this.scale;
+  			top *= this.scale;
+  		}
+  
+  		return { left: left, top: top };
+  	},
+  
+  	_snap: function (x, y) {
+  		var that = this,
+  			i, l,
+  			page, time,
+  			sizeX, sizeY;
+  
+  		// Check page X
+  		page = that.pagesX.length - 1;
+  		for (i=0, l=that.pagesX.length; i<l; i++) {
+  			if (x >= that.pagesX[i]) {
+  				page = i;
+  				break;
+  			}
+  		}
+  		if (page == that.currPageX && page > 0 && that.dirX < 0) page--;
+  		x = that.pagesX[page];
+  		sizeX = m.abs(x - that.pagesX[that.currPageX]);
+  		sizeX = sizeX ? m.abs(that.x - x) / sizeX * 500 : 0;
+  		that.currPageX = page;
+  
+  		// Check page Y
+  		page = that.pagesY.length-1;
+  		for (i=0; i<page; i++) {
+  			if (y >= that.pagesY[i]) {
+  				page = i;
+  				break;
+  			}
+  		}
+  		if (page == that.currPageY && page > 0 && that.dirY < 0) page--;
+  		y = that.pagesY[page];
+  		sizeY = m.abs(y - that.pagesY[that.currPageY]);
+  		sizeY = sizeY ? m.abs(that.y - y) / sizeY * 500 : 0;
+  		that.currPageY = page;
+  
+  		// Snap with constant speed (proportional duration)
+  		time = m.round(m.max(sizeX, sizeY)) || 200;
+  
+  		return { x: x, y: y, time: time };
+  	},
+  
+  	_bind: function (type, el, bubble) {
+  		(el || this.scroller).addEventListener(type, this, !!bubble);
+  	},
+  
+  	_unbind: function (type, el, bubble) {
+  		(el || this.scroller).removeEventListener(type, this, !!bubble);
+  	},
+  
+  
+  	/**
+  	 *
+  	 * Public methods
+  	 *
+  	 */
+  	destroy: function () {
+  		var that = this;
+  
+  		that.scroller.style[vendor + 'Transform'] = '';
+  
+  		// Remove the scrollbars
+  		that.hScrollbar = false;
+  		that.vScrollbar = false;
+  		that._scrollbar('h');
+  		that._scrollbar('v');
+  
+  		// Remove the event listeners
+  		that._unbind(RESIZE_EV, window);
+  		that._unbind(START_EV);
+  		that._unbind(MOVE_EV);
+  		that._unbind(END_EV);
+  		that._unbind(CANCEL_EV);
+  		
+  		if (that.options.hasTouch) {
+  			that._unbind('mouseout', that.wrapper);
+  			that._unbind(WHEEL_EV);
+  		}
+  		
+  		if (that.options.useTransition) that._unbind('webkitTransitionEnd');
+  		
+  		if (that.options.checkDOMChanges) clearInterval(that.checkDOMTime);
+  		
+  		if (that.options.onDestroy) that.options.onDestroy.call(that);
+  	},
+  
+  	refresh: function () {
+  		var that = this,
+  			offset,
+  			i, l,
+  			els,
+  			pos = 0,
+  			page = 0;
+  
+  		if (that.scale < that.options.zoomMin) that.scale = that.options.zoomMin;
+  		that.wrapperW = that.wrapper.clientWidth || 1;
+  		that.wrapperH = that.wrapper.clientHeight || 1;
+  
+  		that.minScrollY = -that.options.topOffset || 0;
+  		that.scrollerW = m.round(that.scroller.offsetWidth * that.scale);
+  		that.scrollerH = m.round((that.scroller.offsetHeight + that.minScrollY) * that.scale);
+  		that.maxScrollX = that.wrapperW - that.scrollerW;
+  		that.maxScrollY = that.wrapperH - that.scrollerH + that.minScrollY;
+  		that.dirX = 0;
+  		that.dirY = 0;
+  
+  		if (that.options.onRefresh) that.options.onRefresh.call(that);
+  
+  		that.hScroll = that.options.hScroll && that.maxScrollX < 0;
+  		that.vScroll = that.options.vScroll && (!that.options.bounceLock && !that.hScroll || that.scrollerH > that.wrapperH);
+  
+  		that.hScrollbar = that.hScroll && that.options.hScrollbar;
+  		that.vScrollbar = that.vScroll && that.options.vScrollbar && that.scrollerH > that.wrapperH;
+  
+  		offset = that._offset(that.wrapper);
+  		that.wrapperOffsetLeft = -offset.left;
+  		that.wrapperOffsetTop = -offset.top;
+  
+  		// Prepare snap
+  		if (typeof that.options.snap == 'string') {
+  			that.pagesX = [];
+  			that.pagesY = [];
+  			els = that.scroller.querySelectorAll(that.options.snap);
+  			for (i=0, l=els.length; i<l; i++) {
+  				pos = that._offset(els[i]);
+  				pos.left += that.wrapperOffsetLeft;
+  				pos.top += that.wrapperOffsetTop;
+  				that.pagesX[i] = pos.left < that.maxScrollX ? that.maxScrollX : pos.left * that.scale;
+  				that.pagesY[i] = pos.top < that.maxScrollY ? that.maxScrollY : pos.top * that.scale;
+  			}
+  		} else if (that.options.snap) {
+  			that.pagesX = [];
+  			while (pos >= that.maxScrollX) {
+  				that.pagesX[page] = pos;
+  				pos = pos - that.wrapperW;
+  				page++;
+  			}
+  			if (that.maxScrollX%that.wrapperW) that.pagesX[that.pagesX.length] = that.maxScrollX - that.pagesX[that.pagesX.length-1] + that.pagesX[that.pagesX.length-1];
+  
+  			pos = 0;
+  			page = 0;
+  			that.pagesY = [];
+  			while (pos >= that.maxScrollY) {
+  				that.pagesY[page] = pos;
+  				pos = pos - that.wrapperH;
+  				page++;
+  			}
+  			if (that.maxScrollY%that.wrapperH) that.pagesY[that.pagesY.length] = that.maxScrollY - that.pagesY[that.pagesY.length-1] + that.pagesY[that.pagesY.length-1];
+  		}
+  
+  		// Prepare the scrollbars
+  		that._scrollbar('h');
+  		that._scrollbar('v');
+  
+  		if (!that.zoomed) {
+  			that.scroller.style[vendor + 'TransitionDuration'] = '0';
+  			that._resetPos(200);
+  		}
+  	},
+  
+  	scrollTo: function (x, y, time, relative) {
+  		var that = this,
+  			step = x,
+  			i, l;
+  
+  		that.stop();
+  
+  		if (!step.length) step = [{ x: x, y: y, time: time, relative: relative }];
+  		
+  		for (i=0, l=step.length; i<l; i++) {
+  			if (step[i].relative) { step[i].x = that.x - step[i].x; step[i].y = that.y - step[i].y; }
+  			that.steps.push({ x: step[i].x, y: step[i].y, time: step[i].time || 0 });
+  		}
+  
+  		that._startAni();
+  	},
+  
+  	scrollToElement: function (el, time) {
+  		var that = this, pos;
+  		el = el.nodeType ? el : that.scroller.querySelector(el);
+  		if (!el) return;
+  
+  		pos = that._offset(el);
+  		pos.left += that.wrapperOffsetLeft;
+  		pos.top += that.wrapperOffsetTop;
+  
+  		pos.left = pos.left > 0 ? 0 : pos.left < that.maxScrollX ? that.maxScrollX : pos.left;
+  		pos.top = pos.top > that.minScrollY ? that.minScrollY : pos.top < that.maxScrollY ? that.maxScrollY : pos.top;
+  		time = time === undefined ? m.max(m.abs(pos.left)*2, m.abs(pos.top)*2) : time;
+  
+  		that.scrollTo(pos.left, pos.top, time);
+  	},
+  
+  	scrollToPage: function (pageX, pageY, time) {
+  		var that = this, x, y;
+  
+  		if (that.options.onScrollStart) that.options.onScrollStart.call(that);
+  
+  		if (that.options.snap) {
+  			pageX = pageX == 'next' ? that.currPageX+1 : pageX == 'prev' ? that.currPageX-1 : pageX;
+  			pageY = pageY == 'next' ? that.currPageY+1 : pageY == 'prev' ? that.currPageY-1 : pageY;
+  
+  			pageX = pageX < 0 ? 0 : pageX > that.pagesX.length-1 ? that.pagesX.length-1 : pageX;
+  			pageY = pageY < 0 ? 0 : pageY > that.pagesY.length-1 ? that.pagesY.length-1 : pageY;
+  
+  			that.currPageX = pageX;
+  			that.currPageY = pageY;
+  			x = that.pagesX[pageX];
+  			y = that.pagesY[pageY];
+  		} else {
+  			x = -that.wrapperW * pageX;
+  			y = -that.wrapperH * pageY;
+  			if (x < that.maxScrollX) x = that.maxScrollX;
+  			if (y < that.maxScrollY) y = that.maxScrollY;
+  		}
+  
+  		that.scrollTo(x, y, time || 400);
+  	},
+  
+  	disable: function () {
+  		this.stop();
+  		this._resetPos(0);
+  		this.enabled = false;
+  
+  		// If disabled after touchstart we make sure that there are no left over events
+  		this._unbind(MOVE_EV);
+  		this._unbind(END_EV);
+  		this._unbind(CANCEL_EV);
+  	},
+  	
+  	enable: function () {
+  		this.enabled = true;
+  	},
+  	
+  	stop: function () {
+  		if (this.options.useTransition) this._unbind('webkitTransitionEnd');
+  		else cancelFrame(this.aniTime);
+  		this.steps = [];
+  		this.moved = false;
+  		this.animating = false;
+  	},
+  	
+  	zoom: function (x, y, scale, time) {
+  		var that = this,
+  			relScale = scale / that.scale;
+  
+  		if (!that.options.useTransform) return;
+  
+  		that.zoomed = true;
+  		time = time === undefined ? 200 : time;
+  		x = x - that.wrapperOffsetLeft - that.x;
+  		y = y - that.wrapperOffsetTop - that.y;
+  		that.x = x - x * relScale + that.x;
+  		that.y = y - y * relScale + that.y;
+  
+  		that.scale = scale;
+  		that.refresh();
+  
+  		that.x = that.x > 0 ? 0 : that.x < that.maxScrollX ? that.maxScrollX : that.x;
+  		that.y = that.y > that.minScrollY ? that.minScrollY : that.y < that.maxScrollY ? that.maxScrollY : that.y;
+  
+  		that.scroller.style[vendor + 'TransitionDuration'] = time + 'ms';
+  		that.scroller.style[vendor + 'Transform'] = trnOpen + that.x + 'px,' + that.y + 'px' + trnClose + ' scale(' + scale + ')';
+  		that.zoomed = false;
+  	},
+  	
+  	isReady: function () {
+  		return !this.moved && !this.zoomed && !this.animating;
+  	}
+  };
+  
+  if (typeof exports !== 'undefined') exports.iScroll = iScroll;
+  else window.iScroll = iScroll;
+  
+  })();
+  
+
+  provide("iscroll", module.exports);
+
+  !function ($, iScroll) {
+    $.ender({
+      iScroll: function (options) {
+        return new iScroll(this[0], options)
+      }
+    }, true)
+  }(ender, require('iscroll').iScroll)
+
+}();
\ No newline at end of file
diff --git a/public/admin/js/osmplayer/src/iscroll/examples/ender/ender.min.js b/public/admin/js/osmplayer/src/iscroll/examples/ender/ender.min.js
new file mode 100644
index 00000000000..c7fcaff487f
--- /dev/null
+++ b/public/admin/js/osmplayer/src/iscroll/examples/ender/ender.min.js
@@ -0,0 +1,27 @@
+/*!
+  * =============================================================
+  * Ender: open module JavaScript framework (https://ender.no.de)
+  * Build: ender build qwery domready ../../
+  * =============================================================
+  */
+
+
+/*!
+  * Ender-JS: open module JavaScript framework (client-lib)
+  * copyright Dustin Diaz & Jacob Thornton 2011 (@ded @fat)
+  * https://ender.no.de
+  * License MIT
+  */
+!function(a){function c(a){var c=b[a]||window[a];if(!c)throw new Error("Requested module '"+a+"' has not been defined.");return c}function d(a,c){return b[a]=c}function e(a,b){for(var c in b)c!="noConflict"&&c!="_VERSION"&&(a[c]=b[c]);return a}function f(a,b,c){return g._select&&(typeof a=="string"||a.nodeName||a.length&&"item"in a||a==window)?(c=g._select(a,b),c.selector=a):c=isFinite(a.length)?a:[a],e(c,f)}function g(a,b){return f(a,b)}a.global=a;var b={};a.provide=d,a.require=c,e(g,{_VERSION:"0.2.5",ender:function(a,b){e(b?f:g,a)},fn:a.$&&a.$.fn||{}}),e(f,{forEach:function(a,b,c){for(c=0,l=this.length;c<l;++c)c in this&&a.call(b||this[c],this[c],c,this);return this},$:g});var h=a.$;g.noConflict=function(){return a.$=h,this},typeof module!="undefined"&&module.exports&&(module.exports=g),a.ender=a.$=a.ender||g}(this),!function(){var a={exports:{}},b=a.exports;
+/*!
+    * Qwery - A Blazing Fast query selector engine
+    * https://github.com/ded/qwery
+    * copyright Dustin Diaz & Jacob Thornton 2011
+    * MIT License
+    */
+!function(b,c){typeof define=="function"?define(c):typeof a!="undefined"?a.exports=c():this[b]=c()}("qwery",function(){function L(){this.c={}}function Q(a){k=[];for(d=0,g=a.length;d<g;d++)Z(a[d])?k=k.concat(a[d]):k.push(a[d]);return k}function R(a){while(a=a.previousSibling)if(a.nodeType==1)break;return a}function S(a){return a.match(J)}function T(a,b,c,e,f,g,h,j,k,l,m){var n,o,q;if(b&&this.tagName.toLowerCase()!==b)return!1;if(c&&(n=c.match(u))&&n[1]!==this.id)return!1;if(c&&(p=c.match(v)))for(d=p.length;d--;){o=p[d].slice(1);if(!(M.g(o)||M.s(o,new RegExp("(^|\\s+)"+o+"(\\s+|$)"))).test(this.className))return!1}if(k&&_.pseudos[k]&&!_.pseudos[k](this,m))return!1;if(e&&!h){i=this.attributes;for(q in i)if(Object.prototype.hasOwnProperty.call(i,q)&&(i[q].name||q)==f)return this}return e&&!V(g,this.getAttribute(f)||"",h)?!1:this}function U(a){return N.g(a)||N.s(a,a.replace(D,"\\$1"))}function V(a,b,c){switch(a){case"=":return b==c;case"^=":return b.match(O.g("^="+c)||O.s("^="+c,new RegExp("^"+U(c))));case"$=":return b.match(O.g("$="+c)||O.s("$="+c,new RegExp(U(c)+"$")));case"*=":return b.match(O.g(c)||O.s(c,new RegExp(U(c))));case"~=":return b.match(O.g("~="+c)||O.s("~="+c,new RegExp("(?:^|\\s+)"+U(c)+"(?:\\s+|$)")));case"|=":return b.match(O.g("|="+c)||O.s("|="+c,new RegExp("^"+U(c)+"(-|$)")))}return 0}function W(a){var c=[],d=[],e,f=0,g,h,i,j,k,l,m,n,p,q,r,s=P.g(a)||P.s(a,a.split(I)),t=a.match(H),u;s=s.slice(0);if(!s.length)return c;k=s.pop(),n=s.length&&(i=s[s.length-1].match(w))?b.getElementById(i[1]):b;if(!n)return c;p=S(k),m=t&&/^[+~]$/.test(t[t.length-1])?function(a){while(n=n.nextSibling)n.nodeType==1&&(p[1]?p[1]==n.tagName.toLowerCase():1)&&a.push(n);return a}([]):n.getElementsByTagName(p[1]||"*");for(e=0,h=m.length;e<h;e++)if(q=T.apply(m[e],p))c[f++]=q;if(!s.length)return c;for(f=0,h=c.length,g=0;f<h;f++){j=c[f];for(e=s.length;e--;)while(j=K[t[e]](j,c[f]))if(o=T.apply(j,S(s[e])))break;o&&(d[g++]=c[f])}return d}function X(a){return a&&a.nodeType&&(a.nodeType==1||a.nodeType==9)}function Y(a){var b=[],c,d;e:for(c=0;c<a.length;c++){for(d=0;d<b.length;d++)if(b[d]==a[c])continue e;b[b.length]=a[c]}return b}function Z(a){return typeof a=="object"&&isFinite(a.length)}function $(a){return a?typeof a=="string"?_(a)[0]:Z(a)?a[0]:a:b}function _(a,c){var d=$(c);return!d||!a?[]:a===window||X(a)?!c||a!==window&&X(d)&&ba(a,d)?[a]:[]:a&&Z(a)?Q(a):(h=a.match(w))?(m=b.getElementById(h[1]))?[m]:[]:(h=a.match(y))?Q(d.getElementsByTagName(h[1])):bc(a,d)}var a=this,b=document,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t=b.documentElement,u=/#([\w\-]+)/,v=/\.[\w\-]+/g,w=/^#([\w\-]+$)/,x=/^\.([\w\-]+)$/,y=/^([\w\-]+)$/,z=/^([\w]+)?\.([\w\-]+)$/,A=/\s*([\s\+\~>])\s*/g,B=/[\s\>\+\~]/,C=/(?![\s\w\-\/\?\&\=\:\.\(\)\!,@#%<>\{\}\$\*\^'"]*\]|[\s\w\+\-]*\))/,D=/([.*+?\^=!:${}()|\[\]\/\\])/g,E=/^([a-z0-9]+)?(?:([\.\#]+[\w\-\.#]+)?)/,F=/\[([\w\-]+)(?:([\|\^\$\*\~]?\=)['"]?([ \w\-\/\?\&\=\:\.\(\)\!,@#%<>\{\}\$\*\^]+)["']?)?\]/,G=/:([\w\-]+)(\(['"]?([\s\w\+\-]+)['"]?\))?/,H=new RegExp("("+B.source+")"+C.source,"g"),I=new RegExp(B.source+C.source),J=new RegExp(E.source+"("+F.source+")?"+"("+G.source+")?"),K={" ":function(a){return a&&a!==t&&a.parentNode},">":function(a,b){return a&&a.parentNode==b.parentNode&&a.parentNode},"~":function(a){return a&&a.previousSibling},"+":function(a,b,c,d){return a?(c=R(a),d=R(b),c&&d&&c==d&&c):!1}};L.prototype={g:function(a){return this.c[a]||undefined},s:function(a,b){return this.c[a]=b,b}};var M=new L,N=new L,O=new L,P=new L,ba="compareDocumentPosition"in t?function(a,b){return(b.compareDocumentPosition(a)&16)==16}:"contains"in t?function(a,c){return c=c==b||c==window?t:c,c!==a&&c.contains(a)}:function(a,b){while(a=a.parentNode)if(a===b)return 1;return 0},bb=function(){if(!b.querySelector||!b.querySelectorAll)return!1;try{return b.querySelectorAll(":nth-of-type(1)").length>0}catch(a){return!1}}(),bc=bb?function(a,c){return b.getElementsByClassName&&(h=a.match(x))?Q(c.getElementsByClassName(h[1])):Q(c.querySelectorAll(a))}:function(a,c){a=a.replace(A,"$1");var d=[],f,i,j=[],l;if(h=a.match(z)){r=c.getElementsByTagName(h[1]||"*"),k=M.g(h[2])||M.s(h[2],new RegExp("(^|\\s+)"+h[2]+"(\\s+|$)"));for(l=0,g=r.length,e=0;l<g;l++)k.test(r[l].className)&&(d[e++]=r[l]);return d}for(l=0,r=a.split(","),g=r.length;l<g;l++)j[l]=W(r[l]);for(l=0,g=j.length;l<g&&(i=j[l]);l++){var m=i;if(c!==b){m=[];for(e=0,h=i.length;e<h&&(f=i[e]);e++)ba(f,c)&&m.push(f)}d=d.concat(m)}return Y(d)};_.uniq=Y,_.pseudos={};var bd=a.qwery;return _.noConflict=function(){return a.qwery=bd,this},_}),provide("qwery",a.exports),!function(a,b){function f(b,c){var d=/^<([^\s>]+)/.exec(b)[1],f=(c||a).createElement(e[d]||"div"),g=[];f.innerHTML=b;var h=f.childNodes;f=f.firstChild,g.push(f);while(f=f.nextSibling)f.nodeType==1&&g.push(f);return g}var c=require("qwery"),d="table",e={thead:d,tbody:d,tfoot:d,tr:"tbody",th:"tr",td:"tr",fieldset:"form",option:"select"};b._select=function(a,b){return/^\s*</.test(a)?f(a,b):c(a,b)},b.pseudos=c.pseudos,b.ender({find:function(a){var d=[],e,f,g,h,i;for(e=0,f=this.length;e<f;e++){i=c(a,this[e]);for(g=0,h=i.length;g<h;g++)d.push(i[g])}return b(c.uniq(d))},and:function(a){var c=b(a);for(var d=this.length,e=0,f=this.length+c.length;d<f;d++,e++)this[d]=c[e];return this}},!0)}(document,ender)}(),!function(){var a={exports:{}},b=a.exports;!function(b,c){function o(a){n=1;while(a=d.shift())a()}var d=[],e,f,g,h=!1,i=c.documentElement,j=i.doScroll,k="DOMContentLoaded",l="addEventListener",m="onreadystatechange",n=/^loade|c/.test(c.readyState);c[l]&&c[l](k,g=function(){c.removeEventListener(k,g,h),o()},h),j&&c.attachEvent(m,f=function(){/^c/.test(c.readyState)&&(c.detachEvent(m,f),o())}),e=j?function(a){self!=top?n?a():d.push(a):function(){try{i.doScroll("left")}catch(b){return setTimeout(function(){e(a)},50)}a()}()}:function(a){n?a():d.push(a)},typeof a!="undefined"?a.exports=e:b.domReady=e}(this,document),provide("domready",a.exports),!function(a){var b=require("domready");a.ender({domReady:b}),a.ender({ready:function(a){return b(a),this}},!0)}(ender)}(),!function(){var a={exports:{}},b=a.exports;
+/*!
+   * iScroll v4.1.9 ~ Copyright (c) 2011 Matteo Spinelli, http://cubiq.org
+   * Released under MIT license, http://cubiq.org/license
+   */
+function(){var a=Math,c=/webkit/i.test(navigator.appVersion)?"webkit":/firefox/i.test(navigator.userAgent)?"Moz":"opera"in window?"O":"",d="WebKitCSSMatrix"in window&&"m11"in new WebKitCSSMatrix,e="ontouchstart"in window,f=c+"Transform"in document.documentElement.style,g=/android/gi.test(navigator.appVersion),h=/iphone|ipad/gi.test(navigator.appVersion),i=/playbook/gi.test(navigator.appVersion),j=h||i,k=function(){return window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame||function(a){return setTimeout(a,1)}}(),l=function(){return window.cancelRequestAnimationFrame||window.webkitCancelRequestAnimationFrame||window.mozCancelRequestAnimationFrame||window.oCancelRequestAnimationFrame||window.msCancelRequestAnimationFrame||clearTimeout}(),m="onorientationchange"in window?"orientationchange":"resize",n=e?"touchstart":"mousedown",o=e?"touchmove":"mousemove",p=e?"touchend":"mouseup",q=e?"touchcancel":"mouseup",r=c=="Moz"?"DOMMouseScroll":"mousewheel",s="translate"+(d?"3d(":"("),t=d?",0)":")",u=function(a,b){var i=this,k=document,l;i.wrapper=typeof a=="object"?a:k.getElementById(a),i.wrapper.style.overflow="hidden",i.scroller=i.wrapper.children[0],i.options={hScroll:!0,vScroll:!0,x:0,y:0,bounce:!0,bounceLock:!1,momentum:!0,lockDirection:!0,useTransform:!0,useTransition:!1,topOffset:0,checkDOMChanges:!1,hScrollbar:!0,vScrollbar:!0,fixedScrollbar:g,hideScrollbar:h,fadeScrollbar:h&&d,scrollbarClass:"",zoom:!1,zoomMin:1,zoomMax:4,doubleTapZoom:2,wheelAction:"scroll",snap:!1,snapThreshold:1,onRefresh:null,onBeforeScrollStart:function(a){a.preventDefault()},onScrollStart:null,onBeforeScrollMove:null,onScrollMove:null,onBeforeScrollEnd:null,onScrollEnd:null,onTouchEnd:null,onDestroy:null,onZoomStart:null,onZoom:null,onZoomEnd:null};for(l in b)i.options[l]=b[l];i.x=i.options.x,i.y=i.options.y,i.options.useTransform=f?i.options.useTransform:!1,i.options.hScrollbar=i.options.hScroll&&i.options.hScrollbar,i.options.vScrollbar=i.options.vScroll&&i.options.vScrollbar,i.options.zoom=i.options.useTransform&&i.options.zoom,i.options.useTransition=j&&i.options.useTransition,i.scroller.style[c+"TransitionProperty"]=i.options.useTransform?"-"+c.toLowerCase()+"-transform":"top left",i.scroller.style[c+"TransitionDuration"]="0",i.scroller.style[c+"TransformOrigin"]="0 0",i.options.useTransition&&(i.scroller.style[c+"TransitionTimingFunction"]="cubic-bezier(0.33,0.66,0.66,1)"),i.options.useTransform?i.scroller.style[c+"Transform"]=s+i.x+"px,"+i.y+"px"+t:i.scroller.style.cssText+=";position:absolute;top:"+i.y+"px;left:"+i.x+"px",i.options.useTransition&&(i.options.fixedScrollbar=!0),i.refresh(),i._bind(m,window),i._bind(n),e||(i._bind("mouseout",i.wrapper),i._bind(r)),i.options.checkDOMChanges&&(i.checkDOMTime=setInterval(function(){i._checkDOMChanges()},500))};u.prototype={enabled:!0,x:0,y:0,steps:[],scale:1,currPageX:0,currPageY:0,pagesX:[],pagesY:[],aniTime:null,wheelZoomCount:0,handleEvent:function(a){var b=this;switch(a.type){case n:if(!e&&a.button!==0)return;b._start(a);break;case o:b._move(a);break;case p:case q:b._end(a);break;case m:b._resize();break;case r:b._wheel(a);break;case"mouseout":b._mouseout(a);break;case"webkitTransitionEnd":b._transitionEnd(a)}},_checkDOMChanges:function(){if(this.moved||this.zoomed||this.animating||this.scrollerW==this.scroller.offsetWidth*this.scale&&this.scrollerH==this.scroller.offsetHeight*this.scale)return;this.refresh()},_scrollbar:function(b){var d=this,e=document,g;if(!d[b+"Scrollbar"]){d[b+"ScrollbarWrapper"]&&(f&&(d[b+"ScrollbarIndicator"].style[c+"Transform"]=""),d[b+"ScrollbarWrapper"].parentNode.removeChild(d[b+"ScrollbarWrapper"]),d[b+"ScrollbarWrapper"]=null,d[b+"ScrollbarIndicator"]=null);return}d[b+"ScrollbarWrapper"]||(g=e.createElement("div"),d.options.scrollbarClass?g.className=d.options.scrollbarClass+b.toUpperCase():g.style.cssText="position:absolute;z-index:100;"+(b=="h"?"height:7px;bottom:1px;left:2px;right:"+(d.vScrollbar?"7":"2")+"px":"width:7px;bottom:"+(d.hScrollbar?"7":"2")+"px;top:2px;right:1px"),g.style.cssText+=";pointer-events:none;-"+c+"-transition-property:opacity;-"+c+"-transition-duration:"+(d.options.fadeScrollbar?"350ms":"0")+";overflow:hidden;opacity:"+(d.options.hideScrollbar?"0":"1"),d.wrapper.appendChild(g),d[b+"ScrollbarWrapper"]=g,g=e.createElement("div"),d.options.scrollbarClass||(g.style.cssText="position:absolute;z-index:100;background:rgba(0,0,0,0.5);border:1px solid rgba(255,255,255,0.9);-"+c+"-background-clip:padding-box;-"+c+"-box-sizing:border-box;"+(b=="h"?"height:100%":"width:100%")+";-"+c+"-border-radius:3px;border-radius:3px"),g.style.cssText+=";pointer-events:none;-"+c+"-transition-property:-"+c+"-transform;-"+c+"-transition-timing-function:cubic-bezier(0.33,0.66,0.66,1);-"+c+"-transition-duration:0;-"+c+"-transform:"+s+"0,0"+t,d.options.useTransition&&(g.style.cssText+=";-"+c+"-transition-timing-function:cubic-bezier(0.33,0.66,0.66,1)"),d[b+"ScrollbarWrapper"].appendChild(g),d[b+"ScrollbarIndicator"]=g),b=="h"?(d.hScrollbarSize=d.hScrollbarWrapper.clientWidth,d.hScrollbarIndicatorSize=a.max(a.round(d.hScrollbarSize*d.hScrollbarSize/d.scrollerW),8),d.hScrollbarIndicator.style.width=d.hScrollbarIndicatorSize+"px",d.hScrollbarMaxScroll=d.hScrollbarSize-d.hScrollbarIndicatorSize,d.hScrollbarProp=d.hScrollbarMaxScroll/d.maxScrollX):(d.vScrollbarSize=d.vScrollbarWrapper.clientHeight,d.vScrollbarIndicatorSize=a.max(a.round(d.vScrollbarSize*d.vScrollbarSize/d.scrollerH),8),d.vScrollbarIndicator.style.height=d.vScrollbarIndicatorSize+"px",d.vScrollbarMaxScroll=d.vScrollbarSize-d.vScrollbarIndicatorSize,d.vScrollbarProp=d.vScrollbarMaxScroll/d.maxScrollY),d._scrollbarPos(b,!0)},_resize:function(){var a=this;setTimeout(function(){a.refresh()},g?200:0)},_pos:function(b,d){b=this.hScroll?b:0,d=this.vScroll?d:0,this.options.useTransform?this.scroller.style[c+"Transform"]=s+b+"px,"+d+"px"+t+" scale("+this.scale+")":(b=a.round(b),d=a.round(d),this.scroller.style.left=b+"px",this.scroller.style.top=d+"px"),this.x=b,this.y=d,this._scrollbarPos("h"),this._scrollbarPos("v")},_scrollbarPos:function(b,d){var e=this,f=b=="h"?e.x:e.y,g;if(!e[b+"Scrollbar"])return;f=e[b+"ScrollbarProp"]*f,f<0?(e.options.fixedScrollbar||(g=e[b+"ScrollbarIndicatorSize"]+a.round(f*3),g<8&&(g=8),e[b+"ScrollbarIndicator"].style[b=="h"?"width":"height"]=g+"px"),f=0):f>e[b+"ScrollbarMaxScroll"]&&(e.options.fixedScrollbar?f=e[b+"ScrollbarMaxScroll"]:(g=e[b+"ScrollbarIndicatorSize"]-a.round((f-e[b+"ScrollbarMaxScroll"])*3),g<8&&(g=8),e[b+"ScrollbarIndicator"].style[b=="h"?"width":"height"]=g+"px",f=e[b+"ScrollbarMaxScroll"]+(e[b+"ScrollbarIndicatorSize"]-g))),e[b+"ScrollbarWrapper"].style[c+"TransitionDelay"]="0",e[b+"ScrollbarWrapper"].style.opacity=d&&e.options.hideScrollbar?"0":"1",e[b+"ScrollbarIndicator"].style[c+"Transform"]=s+(b=="h"?f+"px,0":"0,"+f+"px")+t},_start:function(b){var d=this,f=e?b.touches[0]:b,g,h,i,j,k;if(!d.enabled)return;d.options.onBeforeScrollStart&&d.options.onBeforeScrollStart.call(d,b),(d.options.useTransition||d.options.zoom)&&d._transitionTime(0),d.moved=!1,d.animating=!1,d.zoomed=!1,d.distX=0,d.distY=0,d.absDistX=0,d.absDistY=0,d.dirX=0,d.dirY=0,d.options.zoom&&e&&b.touches.length>1&&(j=a.abs(b.touches[0].pageX-b.touches[1].pageX),k=a.abs(b.touches[0].pageY-b.touches[1].pageY),d.touchesDistStart=a.sqrt(j*j+k*k),d.originX=a.abs(b.touches[0].pageX+b.touches[1].pageX-d.wrapperOffsetLeft*2)/2-d.x,d.originY=a.abs(b.touches[0].pageY+b.touches[1].pageY-d.wrapperOffsetTop*2)/2-d.y,d.options.onZoomStart&&d.options.onZoomStart.call(d,b));if(d.options.momentum){d.options.useTransform?(g=getComputedStyle(d.scroller,null)[c+"Transform"].replace(/[^0-9-.,]/g,"").split(","),h=g[4]*1,i=g[5]*1):(h=getComputedStyle(d.scroller,null).left.replace(/[^0-9-]/g,"")*1,i=getComputedStyle(d.scroller,null).top.replace(/[^0-9-]/g,"")*1);if(h!=d.x||i!=d.y)d.options.useTransition?d._unbind("webkitTransitionEnd"):l(d.aniTime),d.steps=[],d._pos(h,i)}d.absStartX=d.x,d.absStartY=d.y,d.startX=d.x,d.startY=d.y,d.pointX=f.pageX,d.pointY=f.pageY,d.startTime=b.timeStamp||Date.now(),d.options.onScrollStart&&d.options.onScrollStart.call(d,b),d._bind(o),d._bind(p),d._bind(q)},_move:function(b){var d=this,f=e?b.touches[0]:b,g=f.pageX-d.pointX,h=f.pageY-d.pointY,i=d.x+g,j=d.y+h,k,l,m,n=b.timeStamp||Date.now();d.options.onBeforeScrollMove&&d.options.onBeforeScrollMove.call(d,b);if(d.options.zoom&&e&&b.touches.length>1){k=a.abs(b.touches[0].pageX-b.touches[1].pageX),l=a.abs(b.touches[0].pageY-b.touches[1].pageY),d.touchesDist=a.sqrt(k*k+l*l),d.zoomed=!0,m=1/d.touchesDistStart*d.touchesDist*this.scale,m<d.options.zoomMin?m=.5*d.options.zoomMin*Math.pow(2,m/d.options.zoomMin):m>d.options.zoomMax&&(m=2*d.options.zoomMax*Math.pow(.5,d.options.zoomMax/m)),d.lastScale=m/this.scale,i=this.originX-this.originX*d.lastScale+this.x,j=this.originY-this.originY*d.lastScale+this.y,this.scroller.style[c+"Transform"]=s+i+"px,"+j+"px"+t+" scale("+m+")",d.options.onZoom&&d.options.onZoom.call(d,b);return}d.pointX=f.pageX,d.pointY=f.pageY;if(i>0||i<d.maxScrollX)i=d.options.bounce?d.x+g/2:i>=0||d.maxScrollX>=0?0:d.maxScrollX;if(j>d.minScrollY||j<d.maxScrollY)j=d.options.bounce?d.y+h/2:j>=d.minScrollY||d.maxScrollY>=0?d.minScrollY:d.maxScrollY;if(d.absDistX<6&&d.absDistY<6){d.distX+=g,d.distY+=h,d.absDistX=a.abs(d.distX),d.absDistY=a.abs(d.distY);return}d.options.lockDirection&&(d.absDistX>d.absDistY+5?(j=d.y,h=0):d.absDistY>d.absDistX+5&&(i=d.x,g=0)),d.moved=!0,d._pos(i,j),d.dirX=g>0?-1:g<0?1:0,d.dirY=h>0?-1:h<0?1:0,n-d.startTime>300&&(d.startTime=n,d.startX=d.x,d.startY=d.y),d.options.onScrollMove&&d.options.onScrollMove.call(d,b)},_end:function(b){if(e&&b.touches.length!=0)return;var d=this,f=e?b.changedTouches[0]:b,g,h,i={dist:0,time:0},j={dist:0,time:0},k=(b.timeStamp||Date.now())-d.startTime,l=d.x,m=d.y,n,r,u,v,w;d._unbind(o),d._unbind(p),d._unbind(q),d.options.onBeforeScrollEnd&&d.options.onBeforeScrollEnd.call(d,b);if(d.zoomed){w=d.scale*d.lastScale,w=Math.max(d.options.zoomMin,w),w=Math.min(d.options.zoomMax,w),d.lastScale=w/d.scale,d.scale=w,d.x=d.originX-d.originX*d.lastScale+d.x,d.y=d.originY-d.originY*d.lastScale+d.y,d.scroller.style[c+"TransitionDuration"]="200ms",d.scroller.style[c+"Transform"]=s+d.x+"px,"+d.y+"px"+t+" scale("+d.scale+")",d.zoomed=!1,d.refresh(),d.options.onZoomEnd&&d.options.onZoomEnd.call(d,b);return}if(!d.moved){e&&(d.doubleTapTimer&&d.options.zoom?(clearTimeout(d.doubleTapTimer),d.doubleTapTimer=null,d.options.onZoomStart&&d.options.onZoomStart.call(d,b),d.zoom(d.pointX,d.pointY,d.scale==1?d.options.doubleTapZoom:1),d.options.onZoomEnd&&setTimeout(function(){d.options.onZoomEnd.call(d,b)},200)):d.doubleTapTimer=setTimeout(function(){d.doubleTapTimer=null,g=f.target;while(g.nodeType!=1)g=g.parentNode;g.tagName!="SELECT"&&g.tagName!="INPUT"&&g.tagName!="TEXTAREA"&&(h=document.createEvent("MouseEvents"),h.initMouseEvent("click",!0,!0,b.view,1,f.screenX,f.screenY,f.clientX,f.clientY,b.ctrlKey,b.altKey,b.shiftKey,b.metaKey,0,null),h._fake=!0,g.dispatchEvent(h))},d.options.zoom?250:0)),d._resetPos(200),d.options.onTouchEnd&&d.options.onTouchEnd.call(d,b);return}if(k<300&&d.options.momentum){i=l?d._momentum(l-d.startX,k,-d.x,d.scrollerW-d.wrapperW+d.x,d.options.bounce?d.wrapperW:0):i,j=m?d._momentum(m-d.startY,k,-d.y,d.maxScrollY<0?d.scrollerH-d.wrapperH+d.y-d.minScrollY:0,d.options.bounce?d.wrapperH:0):j,l=d.x+i.dist,m=d.y+j.dist;if(d.x>0&&l>0||d.x<d.maxScrollX&&l<d.maxScrollX)i={dist:0,time:0};if(d.y>d.minScrollY&&m>d.minScrollY||d.y<d.maxScrollY&&m<d.maxScrollY)j={dist:0,time:0}}if(i.dist||j.dist){u=a.max(a.max(i.time,j.time),10),d.options.snap&&(n=l-d.absStartX,r=m-d.absStartY,a.abs(n)<d.options.snapThreshold&&a.abs(r)<d.options.snapThreshold?d.scrollTo(d.absStartX,d.absStartY,200):(v=d._snap(l,m),l=v.x,m=v.y,u=a.max(v.time,u))),d.scrollTo(a.round(l),a.round(m),u),d.options.onTouchEnd&&d.options.onTouchEnd.call(d,b);return}if(d.options.snap){n=l-d.absStartX,r=m-d.absStartY,a.abs(n)<d.options.snapThreshold&&a.abs(r)<d.options.snapThreshold?d.scrollTo(d.absStartX,d.absStartY,200):(v=d._snap(d.x,d.y),(v.x!=d.x||v.y!=d.y)&&d.scrollTo(v.x,v.y,v.time)),d.options.onTouchEnd&&d.options.onTouchEnd.call(d,b);return}d._resetPos(200),d.options.onTouchEnd&&d.options.onTouchEnd.call(d,b)},_resetPos:function(a){var b=this,d=b.x>=0?0:b.x<b.maxScrollX?b.maxScrollX:b.x,e=b.y>=b.minScrollY||b.maxScrollY>0?b.minScrollY:b.y<b.maxScrollY?b.maxScrollY:b.y;if(d==b.x&&e==b.y){b.moved&&(b.moved=!1,b.options.onScrollEnd&&b.options.onScrollEnd.call(b)),b.hScrollbar&&b.options.hideScrollbar&&(c=="webkit"&&(b.hScrollbarWrapper.style[c+"TransitionDelay"]="300ms"),b.hScrollbarWrapper.style.opacity="0"),b.vScrollbar&&b.options.hideScrollbar&&(c=="webkit"&&(b.vScrollbarWrapper.style[c+"TransitionDelay"]="300ms"),b.vScrollbarWrapper.style.opacity="0");return}b.scrollTo(d,e,a||0)},_wheel:function(a){var b=this,c,d,e,f,g;"wheelDeltaX"in a?(c=a.wheelDeltaX/12,d=a.wheelDeltaY/12):"detail"in a?c=d=-a.detail*3:c=d=-a.wheelDelta;if(b.options.wheelAction=="zoom"){g=b.scale*Math.pow(2,1/3*(d?d/Math.abs(d):0)),g<b.options.zoomMin&&(g=b.options.zoomMin),g>b.options.zoomMax&&(g=b.options.zoomMax),g!=b.scale&&(!b.wheelZoomCount&&b.options.onZoomStart&&b.options.onZoomStart.call(b,a),b.wheelZoomCount++,b.zoom(a.pageX,a.pageY,g,400),setTimeout(function(){b.wheelZoomCount--,!b.wheelZoomCount&&b.options.onZoomEnd&&b.options.onZoomEnd.call(b,a)},400));return}e=b.x+c,f=b.y+d,e>0?e=0:e<b.maxScrollX&&(e=b.maxScrollX),f>b.minScrollY?f=b.minScrollY:f<b.maxScrollY&&(f=b.maxScrollY),b.scrollTo(e,f,0)},_mouseout:function(a){var b=a.relatedTarget;if(!b){this._end(a);return}while(b=b.parentNode)if(b==this.wrapper)return;this._end(a)},_transitionEnd:function(a){var b=this;if(a.target!=b.scroller)return;b._unbind("webkitTransitionEnd"),b._startAni()},_startAni:function(){var b=this,c=b.x,d=b.y,e=Date.now(),f,g,h;if(b.animating)return;if(!b.steps.length){b._resetPos(400);return}f=b.steps.shift(),f.x==c&&f.y==d&&(f.time=0),b.animating=!0,b.moved=!0;if(b.options.useTransition){b._transitionTime(f.time),b._pos(f.x,f.y),b.animating=!1,f.time?b._bind("webkitTransitionEnd"):b._resetPos(0);return}h=function(){var i=Date.now(),j,l;if(i>=e+f.time){b._pos(f.x,f.y),b.animating=!1,b.options.onAnimationEnd&&b.options.onAnimationEnd.call(b),b._startAni();return}i=(i-e)/f.time-1,g=a.sqrt(1-i*i),j=(f.x-c)*g+c,l=(f.y-d)*g+d,b._pos(j,l),b.animating&&(b.aniTime=k(h))},h()},_transitionTime:function(a){a+="ms",this.scroller.style[c+"TransitionDuration"]=a,this.hScrollbar&&(this.hScrollbarIndicator.style[c+"TransitionDuration"]=a),this.vScrollbar&&(this.vScrollbarIndicator.style[c+"TransitionDuration"]=a)},_momentum:function(b,c,d,e,f){var g=6e-4,h=a.abs(b)/c,i=h*h/(2*g),j=0,k=0;return b>0&&i>d?(k=f/(6/(i/h*g)),d=d+k,h=h*d/i,i=d):b<0&&i>e&&(k=f/(6/(i/h*g)),e=e+k,h=h*e/i,i=e),i=i*(b<0?-1:1),j=h/g,{dist:i,time:a.round(j)}},_offset:function(a){var b=-a.offsetLeft,c=-a.offsetTop;while(a=a.offsetParent)b-=a.offsetLeft,c-=a.offsetTop;return a!=this.wrapper&&(b*=this.scale,c*=this.scale),{left:b,top:c}},_snap:function(b,c){var d=this,e,f,g,h,i,j;g=d.pagesX.length-1;for(e=0,f=d.pagesX.length;e<f;e++)if(b>=d.pagesX[e]){g=e;break}g==d.currPageX&&g>0&&d.dirX<0&&g--,b=d.pagesX[g],i=a.abs(b-d.pagesX[d.currPageX]),i=i?a.abs(d.x-b)/i*500:0,d.currPageX=g,g=d.pagesY.length-1;for(e=0;e<g;e++)if(c>=d.pagesY[e]){g=e;break}return g==d.currPageY&&g>0&&d.dirY<0&&g--,c=d.pagesY[g],j=a.abs(c-d.pagesY[d.currPageY]),j=j?a.abs(d.y-c)/j*500:0,d.currPageY=g,h=a.round(a.max(i,j))||200,{x:b,y:c,time:h}},_bind:function(a,b,c){(b||this.scroller).addEventListener(a,this,!!c)},_unbind:function(a,b,c){(b||this.scroller).removeEventListener(a,this,!!c)},destroy:function(){var a=this;a.scroller.style[c+"Transform"]="",a.hScrollbar=!1,a.vScrollbar=!1,a._scrollbar("h"),a._scrollbar("v"),a._unbind(m,window),a._unbind(n),a._unbind(o),a._unbind(p),a._unbind(q),a.options.hasTouch&&(a._unbind("mouseout",a.wrapper),a._unbind(r)),a.options.useTransition&&a._unbind("webkitTransitionEnd"),a.options.checkDOMChanges&&clearInterval(a.checkDOMTime),a.options.onDestroy&&a.options.onDestroy.call(a)},refresh:function(){var b=this,d,e,f,g,h=0,i=0;b.scale<b.options.zoomMin&&(b.scale=b.options.zoomMin),b.wrapperW=b.wrapper.clientWidth||1,b.wrapperH=b.wrapper.clientHeight||1,b.minScrollY=-b.options.topOffset||0,b.scrollerW=a.round(b.scroller.offsetWidth*b.scale),b.scrollerH=a.round((b.scroller.offsetHeight+b.minScrollY)*b.scale),b.maxScrollX=b.wrapperW-b.scrollerW,b.maxScrollY=b.wrapperH-b.scrollerH+b.minScrollY,b.dirX=0,b.dirY=0,b.options.onRefresh&&b.options.onRefresh.call(b),b.hScroll=b.options.hScroll&&b.maxScrollX<0,b.vScroll=b.options.vScroll&&(!b.options.bounceLock&&!b.hScroll||b.scrollerH>b.wrapperH),b.hScrollbar=b.hScroll&&b.options.hScrollbar,b.vScrollbar=b.vScroll&&b.options.vScrollbar&&b.scrollerH>b.wrapperH,d=b._offset(b.wrapper),b.wrapperOffsetLeft=-d.left,b.wrapperOffsetTop=-d.top;if(typeof b.options.snap=="string"){b.pagesX=[],b.pagesY=[],g=b.scroller.querySelectorAll(b.options.snap);for(e=0,f=g.length;e<f;e++)h=b._offset(g[e]),h.left+=b.wrapperOffsetLeft,h.top+=b.wrapperOffsetTop,b.pagesX[e]=h.left<b.maxScrollX?b.maxScrollX:h.left*b.scale,b.pagesY[e]=h.top<b.maxScrollY?b.maxScrollY:h.top*b.scale}else if(b.options.snap){b.pagesX=[];while(h>=b.maxScrollX)b.pagesX[i]=h,h=h-b.wrapperW,i++;b.maxScrollX%b.wrapperW&&(b.pagesX[b.pagesX.length]=b.maxScrollX-b.pagesX[b.pagesX.length-1]+b.pagesX[b.pagesX.length-1]),h=0,i=0,b.pagesY=[];while(h>=b.maxScrollY)b.pagesY[i]=h,h=h-b.wrapperH,i++;b.maxScrollY%b.wrapperH&&(b.pagesY[b.pagesY.length]=b.maxScrollY-b.pagesY[b.pagesY.length-1]+b.pagesY[b.pagesY.length-1])}b._scrollbar("h"),b._scrollbar("v"),b.zoomed||(b.scroller.style[c+"TransitionDuration"]="0",b._resetPos(200))},scrollTo:function(a,b,c,d){var e=this,f=a,g,h;e.stop(),f.length||(f=[{x:a,y:b,time:c,relative:d}]);for(g=0,h=f.length;g<h;g++)f[g].relative&&(f[g].x=e.x-f[g].x,f[g].y=e.y-f[g].y),e.steps.push({x:f[g].x,y:f[g].y,time:f[g].time||0});e._startAni()},scrollToElement:function(b,c){var d=this,e;b=b.nodeType?b:d.scroller.querySelector(b);if(!b)return;e=d._offset(b),e.left+=d.wrapperOffsetLeft,e.top+=d.wrapperOffsetTop,e.left=e.left>0?0:e.left<d.maxScrollX?d.maxScrollX:e.left,e.top=e.top>d.minScrollY?d.minScrollY:e.top<d.maxScrollY?d.maxScrollY:e.top,c=c===undefined?a.max(a.abs(e.left)*2,a.abs(e.top)*2):c,d.scrollTo(e.left,e.top,c)},scrollToPage:function(a,b,c){var d=this,e,f;d.options.onScrollStart&&d.options.onScrollStart.call(d),d.options.snap?(a=a=="next"?d.currPageX+1:a=="prev"?d.currPageX-1:a,b=b=="next"?d.currPageY+1:b=="prev"?d.currPageY-1:b,a=a<0?0:a>d.pagesX.length-1?d.pagesX.length-1:a,b=b<0?0:b>d.pagesY.length-1?d.pagesY.length-1:b,d.currPageX=a,d.currPageY=b,e=d.pagesX[a],f=d.pagesY[b]):(e=-d.wrapperW*a,f=-d.wrapperH*b,e<d.maxScrollX&&(e=d.maxScrollX),f<d.maxScrollY&&(f=d.maxScrollY)),d.scrollTo(e,f,c||400)},disable:function(){this.stop(),this._resetPos(0),this.enabled=!1,this._unbind(o),this._unbind(p),this._unbind(q)},enable:function(){this.enabled=!0},stop:function(){this.options.useTransition?this._unbind("webkitTransitionEnd"):l(this.aniTime),this.steps=[],this.moved=!1,this.animating=!1},zoom:function(a,b,d,e){var f=this,g=d/f.scale;if(!f.options.useTransform)return;f.zoomed=!0,e=e===undefined?200:e,a=a-f.wrapperOffsetLeft-f.x,b=b-f.wrapperOffsetTop-f.y,f.x=a-a*g+f.x,f.y=b-b*g+f.y,f.scale=d,f.refresh(),f.x=f.x>0?0:f.x<f.maxScrollX?f.maxScrollX:f.x,f.y=f.y>f.minScrollY?f.minScrollY:f.y<f.maxScrollY?f.maxScrollY:f.y,f.scroller.style[c+"TransitionDuration"]=e+"ms",f.scroller.style[c+"Transform"]=s+f.x+"px,"+f.y+"px"+t+" scale("+d+")",f.zoomed=!1},isReady:function(){return!this.moved&&!this.zoomed&&!this.animating}},typeof b!="undefined"?b.iScroll=u:window.iScroll=u}(),provide("iscroll",a.exports),!function(a,b){a.ender({iScroll:function(a){return new b(this[0],a)}},!0)}(ender,require("iscroll").iScroll)}()
\ No newline at end of file
diff --git a/public/admin/js/osmplayer/src/iscroll/examples/ender/index.html b/public/admin/js/osmplayer/src/iscroll/examples/ender/index.html
new file mode 100644
index 00000000000..f4115c920c8
--- /dev/null
+++ b/public/admin/js/osmplayer/src/iscroll/examples/ender/index.html
@@ -0,0 +1,166 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=0, minimum-scale=1.0, maximum-scale=1.0">
+<meta name="apple-mobile-web-app-capable" content="yes">
+<meta name="apple-mobile-web-app-status-bar-style" content="black">
+<title>iScroll demo: Carousel</title>
+
+<script src="ender.js"></script>
+<script type="text/javascript">
+$(document).ready(function () {
+  this.myScroll = $('#wrapper').iScroll({
+    snap: true,
+    momentum: false,
+    hScrollbar: false,
+    onScrollEnd: function () {
+      document.querySelector('#indicator > li.active').className = '';
+      document.querySelector('#indicator > li:nth-child(' + (this.currPageX+1) + ')').className = 'active';
+    }
+   })
+})
+
+</script>
+
+<style type="text/css" media="all">
+body,ul,li {
+  padding:10px;
+  margin:0;
+}
+
+body {
+  font-size:12px;
+  -webkit-user-select:none;
+    -webkit-text-size-adjust:none;
+  font-family:helvetica;
+}
+
+#wrapper {
+  width:300px;
+  height:160px;
+
+  float:left;
+  position:relative;
+  z-index:1;
+  overflow:hidden;
+
+  background:#aaa;
+  -webkit-border-radius:10px;
+  -moz-border-radius:10px;
+  -o-border-radius:10px;
+  border-radius:10px;
+  background:#e3e3e3;
+}
+
+#scroller {
+  width:2100px;
+  height:100%;
+  float:left;
+  padding:0;
+}
+
+#scroller ul {
+  list-style:none;
+  display:block;
+  float:left;
+  width:100%;
+  height:100%;
+  padding:0;
+  margin:0;
+  text-align:left;
+}
+
+#scroller li {
+  -webkit-box-sizing:border-box;
+  -moz-box-sizing:border-box;
+  -o-box-sizing:border-box;
+  box-sizing:border-box;
+  display:block; float:left;
+  width:300px; height:160px;
+  text-align:center;
+  font-family:georgia;
+  font-size:18px;
+  line-height:140%;
+}
+
+#nav {
+  width:300px;
+  float:left;
+}
+
+#prev, #next {
+  float:left;
+  font-weight:bold;
+  font-size:14px;
+  padding:5px 0;
+  width:80px;
+}
+
+#next {
+  float:right;
+  text-align:right;
+}
+
+#indicator, #indicator > li {
+  display:block; float:left;
+  list-style:none;
+  padding:0; margin:0;
+}
+
+#indicator {
+  width:110px;
+  padding:12px 0 0 30px;
+}
+
+#indicator > li {
+  text-indent:-9999em;
+  width:8px; height:8px;
+  -webkit-border-radius:4px;
+  -moz-border-radius:4px;
+  -o-border-radius:4px;
+  border-radius:4px;
+  background:#ddd;
+  overflow:hidden;
+  margin-right:4px;
+}
+
+#indicator > li.active {
+  background:#888;
+}
+
+#indicator > li:last-child {
+  margin:0;
+}
+
+</style>
+</head>
+<body>
+<div id="wrapper">
+  <div id="scroller">
+    <ul id="thelist">
+      <li><strong>1.</strong> <em>A robot may not injure a human being or, through inaction, allow a human being to come to harm.</em></li>
+      <li><strong>2.</strong> <em>A robot must obey any orders given to it by human beings, except where such orders would conflict with the First Law.</em></li>
+      <li><strong>3.</strong> <em>A robot must protect its own existence as long as such protection does not conflict with the First or Second Law.</em></li>
+      <li><strong>Zeroth Law:</strong> <em>A robot may not harm humanity, or, by inaction, allow humanity to come to harm.</em></li>
+      <li><strong>Lyuben Dilov's Forth law:</strong> <em>A robot must establish its identity as a robot in all cases.</em></li>
+      <li><strong>Harry Harrison's Forth law:</strong> <em>A robot must reproduce. As long as such reproduction does not interfere with the First or Second or Third Law.</em></li>
+      <li><strong>Nikola Kesarovski's Fifth law:</strong> <em>A robot must know it is a robot.</em></li>
+    </ul>
+  </div>
+</div>
+<div id="nav">
+  <div id="prev" onclick="myScroll.scrollToPage('prev', 0);return false">&larr; prev</div>
+  <ul id="indicator">
+    <li class="active">1</li>
+    <li>2</li>
+    <li>3</li>
+    <li>4</li>
+    <li>5</li>
+    <li>6</li>
+    <li>7</li>
+  </ul>
+  <div id="next" onclick="myScroll.scrollToPage('next', 0);return false">next &rarr;</div>
+</div>
+</body>
+</html>
\ No newline at end of file
diff --git a/public/admin/js/osmplayer/src/iscroll/examples/form-fields/index.html b/public/admin/js/osmplayer/src/iscroll/examples/form-fields/index.html
new file mode 100644
index 00000000000..8d456417fba
--- /dev/null
+++ b/public/admin/js/osmplayer/src/iscroll/examples/form-fields/index.html
@@ -0,0 +1,176 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=0, minimum-scale=1.0, maximum-scale=1.0">
+<meta name="apple-mobile-web-app-capable" content="yes">
+<meta name="apple-mobile-web-app-status-bar-style" content="black">
+<title>iScroll demo: simple</title>
+
+<script type="text/javascript" src="../../src/iscroll.js"></script>
+
+<script type="text/javascript">
+
+var myScroll;
+function loaded() {
+	myScroll = new iScroll('wrapper', {
+		useTransform: false,
+		onBeforeScrollStart: function (e) {
+			var target = e.target;
+			while (target.nodeType != 1) target = target.parentNode;
+
+			if (target.tagName != 'SELECT' && target.tagName != 'INPUT' && target.tagName != 'TEXTAREA')
+				e.preventDefault();
+		}
+	});
+}
+
+document.addEventListener('touchmove', function (e) { e.preventDefault(); }, false);
+document.addEventListener('DOMContentLoaded', loaded, false);
+
+</script>
+
+<style type="text/css" media="all">
+body,ul,li {
+	padding:0;
+	margin:0;
+	border:0;
+}
+
+body {
+	font-size:12px;
+	-webkit-user-select:none;
+    -webkit-text-size-adjust:none;
+	font-family:helvetica;
+}
+
+#header {
+	position:absolute; z-index:2;
+	top:0; left:0;
+	width:100%;
+	height:45px;
+	line-height:45px;
+	background-color:#d51875;
+	background-image:-webkit-gradient(linear, 0 0, 0 100%, color-stop(0, #fe96c9), color-stop(0.05, #d51875), color-stop(1, #7b0a2e));
+	background-image:-moz-linear-gradient(top, #fe96c9, #d51875 5%, #7b0a2e);
+	background-image:-o-linear-gradient(top, #fe96c9, #d51875 5%, #7b0a2e);
+	padding:0;
+	color:#eee;
+	font-size:20px;
+	text-align:center;
+}
+
+#header a {
+	color:#f3f3f3;
+	text-decoration:none;
+	font-weight:bold;
+	text-shadow:0 -1px 0 rgba(0,0,0,0.5);
+}
+
+#footer {
+	position:absolute; z-index:2;
+	bottom:0; left:0;
+	width:100%;
+	height:48px;
+	background-color:#222;
+	background-image:-webkit-gradient(linear, 0 0, 0 100%, color-stop(0, #999), color-stop(0.02, #666), color-stop(1, #222));
+	background-image:-moz-linear-gradient(top, #999, #666 2%, #222);
+	background-image:-o-linear-gradient(top, #999, #666 2%, #222);
+	padding:0;
+	border-top:1px solid #444;
+}
+
+#wrapper {
+	position:absolute; z-index:1;
+	top:45px; bottom:48px; left:0;
+	width:100%;
+	background:#aaa;
+	overflow:auto;
+}
+
+#scroller {
+	position:absolute; z-index:1;
+/*	-webkit-touch-callout:none;*/
+	-webkit-tap-highlight-color:rgba(0,0,0,0);
+	width:100%;
+	padding:0;
+}
+
+#scroller ul {
+	list-style:none;
+	padding:0;
+	margin:0;
+	width:100%;
+	text-align:left;
+}
+
+#scroller li {
+	padding:0 10px;
+	height:40px;
+	line-height:40px;
+	border-bottom:1px solid #ccc;
+	border-top:1px solid #fff;
+	background-color:#fafafa;
+	font-size:14px;
+}
+
+#myFrame {
+	position:absolute;
+	top:0; left:0;
+}
+
+</style>
+</head>
+<body>
+
+<div id="header"><a href="http://cubiq.org/iscroll">iScroll</a></div>
+<div id="wrapper">
+	<div id="scroller">
+		<ul id="thelist">
+			<li><input type="text"></li>
+			<li>Pretty row 2</li>
+			<li><input type="radio"></li>
+			<li>Pretty row 4</li>
+			<li><input type="checkbox"></li>
+			<li>Pretty row 6</li>
+			<li><select><option>opt</option></select></li>
+			<li>Pretty row 8</li>
+			<li>Pretty row 9</li>
+			<li>Pretty row 10</li>
+			<li>Pretty row 11</li>
+			<li>Pretty row 12</li>
+			<li>Pretty row 13</li>
+			<li>Pretty row 14</li>
+			<li>Pretty row 15</li>
+			<li>Pretty row 16</li>
+			<li>Pretty row 17</li>
+			<li>Pretty row 18</li>
+			<li>Pretty row 19</li>
+			<li>Pretty row 20</li>
+			<li>Pretty row 21</li>
+			<li>Pretty row 22</li>
+			<li>Pretty row 23</li>
+			<li>Pretty row 24</li>
+			<li>Pretty row 25</li>
+			<li>Pretty row 26</li>
+			<li>Pretty row 27</li>
+			<li>Pretty row 28</li>
+			<li>Pretty row 29</li>
+			<li>Pretty row 30</li>
+			<li>Pretty row 31</li>
+			<li>Pretty row 32</li>
+			<li>Pretty row 33</li>
+			<li>Pretty row 34</li>
+			<li>Pretty row 35</li>
+			<li>Pretty row 36</li>
+			<li>Pretty row 37</li>
+			<li>Pretty row 38</li>
+			<li>Pretty row 39</li>
+			<li>Pretty row 40</li>
+		</ul>
+	</div>
+</div>
+<div id="footer"></div>
+
+</body>
+</html>
diff --git a/public/admin/js/osmplayer/src/iscroll/examples/horizontal-scroll/index.html b/public/admin/js/osmplayer/src/iscroll/examples/horizontal-scroll/index.html
new file mode 100644
index 00000000000..269500d52e3
--- /dev/null
+++ b/public/admin/js/osmplayer/src/iscroll/examples/horizontal-scroll/index.html
@@ -0,0 +1,134 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=0, minimum-scale=1.0, maximum-scale=1.0">
+<meta name="apple-mobile-web-app-capable" content="yes">
+<meta name="apple-mobile-web-app-status-bar-style" content="black">
+<title>iScroll demo: horizontal scroll</title>
+
+<script type="application/javascript" src="../../src/iscroll.js"></script>
+
+<script type="text/javascript">
+
+var myScroll;
+function loaded() {
+	myScroll = new iScroll('wrapper');
+}
+
+document.addEventListener('touchmove', function (e) { e.preventDefault(); }, false);
+
+document.addEventListener('DOMContentLoaded', loaded, false);
+
+</script>
+
+<style type="text/css" media="all">
+body,ul,li {
+	padding:0;
+	margin:0;
+}
+
+body {
+	font-size:12px;
+	-webkit-user-select:none;
+    -webkit-text-size-adjust:none;
+/*	-webkit-box-sizing:border-box;*/
+	font-family:helvetica;
+/*	padding-bottom:45px;	/*	This prevents the scroller to lock if the user swipes down outside of the screen.
+							 	NOT needed if in home screen mode. */
+}
+
+#header {
+	position:absolute; z-index:2;
+	top:0; left:0;
+	width:100%;
+	height:45px;
+	line-height:45px;
+	background-image:-webkit-gradient(linear, 0 0, 0 100%, color-stop(0, #fe96c9), color-stop(0.05, #d51875), color-stop(1, #7b0a2e));
+	background-image:-moz-linear-gradient(top, #fe96c9, #d51875 5%, #7b0a2e);
+	background-image:-o-linear-gradient(top, #fe96c9, #d51875 5%, #7b0a2e);
+	padding:0;
+	color:#eee;
+	font-size:20px;
+	text-align:center;
+}
+
+#header a {
+	color:#f3f3f3;
+	text-decoration:none;
+	font-weight:bold;
+	text-shadow:0 -1px 0 rgba(0,0,0,0.5);
+}
+
+#wrapper {
+	position:absolute; z-index:1;
+	top:45px; bottom:0; left:0;
+	width:100%;
+	background:#aaa;
+	overflow:auto;
+}
+
+#scroller {
+	width:2040px;
+	height:100%;
+	float:left;
+	padding:0;
+}
+
+#scroller ul {
+	list-style:none;
+	display:block;
+	float:left;
+	width:100%;
+	height:100%;
+	padding:0;
+	margin:0;
+	text-align:left;
+}
+
+#scroller li {
+	display:block;
+	vertical-align:middle;
+	float:left;
+	padding:0 10px;
+	width:80px;
+	height:100%;
+	border-left:1px solid #ccc;
+	border-right:1px solid #fff;
+	background-color:#fafafa;
+	font-size:14px;
+}
+</style>
+</head>
+<body>
+<div id="header"><a href="http://cubiq.org/iscroll">iScroll</a></div>
+
+<div id="wrapper">
+	<div id="scroller">
+		<ul id="thelist">
+			<li>Pretty col 1</li>
+			<li>Pretty col 2</li>
+			<li>Pretty col 3</li>
+			<li>Pretty col 4</li>
+			<li>Pretty col 5</li>
+			<li>Pretty col 6</li>
+			<li>Pretty col 7</li>
+			<li>Pretty col 8</li>
+			<li>Pretty col 9</li>
+			<li>Pretty col 10</li>
+			<li>Pretty col 11</li>
+			<li>Pretty col 12</li>
+			<li>Pretty col 13</li>
+			<li>Pretty col 14</li>
+			<li>Pretty col 15</li>
+			<li>Pretty col 16</li>
+			<li>Pretty col 17</li>
+			<li>Pretty col 18</li>
+			<li>Pretty col 19</li>
+			<li>Pretty col 20</li>
+		</ul>
+	</div>
+</div>
+
+</body>
+</html>
\ No newline at end of file
diff --git a/public/admin/js/osmplayer/src/iscroll/examples/hover/index.html b/public/admin/js/osmplayer/src/iscroll/examples/hover/index.html
new file mode 100644
index 00000000000..8969623efba
--- /dev/null
+++ b/public/admin/js/osmplayer/src/iscroll/examples/hover/index.html
@@ -0,0 +1,199 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=0, minimum-scale=1.0, maximum-scale=1.0">
+<meta name="apple-mobile-web-app-capable" content="yes">
+<meta name="apple-mobile-web-app-status-bar-style" content="black">
+<title>iScroll demo: Hover Example</title>
+
+<script type="text/javascript" src="../../src/iscroll.js"></script>
+
+<script type="text/javascript">
+
+var myScroll,
+	hoverClassRegEx = new RegExp('(^|\\s)iScrollHover(\\s|$)'),
+	removeClass = function () {
+		if (this.hoverTarget) {
+			clearTimeout(this.hoverTimeout);
+			this.hoverTarget.className = this.hoverTarget.className.replace(hoverClassRegEx, '');
+			this.target = null;
+		}
+	};
+
+function loaded() {
+	myScroll = new iScroll('wrapper', {
+		onBeforeScrollStart: function (e) {
+			var target = e.target;
+
+			clearTimeout(this.hoverTimeout);
+
+			while (target.nodeType != 1) target = target.parentNode;
+
+			this.hoverTimeout = setTimeout(function () {
+				if (!hoverClassRegEx.test(target.className)) target.className = target.className ? target.className + ' iScrollHover' : 'iScrollHover';
+			}, 80);
+
+			this.hoverTarget = target;
+			
+			e.preventDefault();
+		},
+		onScrollMove: removeClass,
+		onBeforeScrollEnd: removeClass
+	});
+}
+
+document.addEventListener('touchmove', function (e) { e.preventDefault(); }, false);
+document.addEventListener('DOMContentLoaded', loaded, false);
+
+</script>
+
+<style type="text/css" media="all">
+.iScrollHover {
+	background:#444 !important;
+	color:#eee !important;
+}
+
+body,ul,li {
+	padding:0;
+	margin:0;
+	border:0;
+}
+
+body {
+	font-size:12px;
+	-webkit-user-select:none;
+    -webkit-text-size-adjust:none;
+	font-family:helvetica;
+}
+
+#header {
+	position:absolute; z-index:2;
+	top:0; left:0;
+	width:100%;
+	height:45px;
+	line-height:45px;
+	background-color:#d51875;
+	background-image:-webkit-gradient(linear, 0 0, 0 100%, color-stop(0, #fe96c9), color-stop(0.05, #d51875), color-stop(1, #7b0a2e));
+	background-image:-moz-linear-gradient(top, #fe96c9, #d51875 5%, #7b0a2e);
+	background-image:-o-linear-gradient(top, #fe96c9, #d51875 5%, #7b0a2e);
+	padding:0;
+	color:#eee;
+	font-size:20px;
+	text-align:center;
+}
+
+#header a {
+	color:#f3f3f3;
+	text-decoration:none;
+	font-weight:bold;
+	text-shadow:0 -1px 0 rgba(0,0,0,0.5);
+}
+
+#footer {
+	position:absolute; z-index:2;
+	bottom:0; left:0;
+	width:100%;
+	height:48px;
+	background-color:#222;
+	background-image:-webkit-gradient(linear, 0 0, 0 100%, color-stop(0, #999), color-stop(0.02, #666), color-stop(1, #222));
+	background-image:-moz-linear-gradient(top, #999, #666 2%, #222);
+	background-image:-o-linear-gradient(top, #999, #666 2%, #222);
+	padding:0;
+	border-top:1px solid #444;
+}
+
+#wrapper {
+	position:absolute; z-index:1;
+	top:45px; bottom:48px; left:0;
+	width:100%;
+	background:#aaa;
+	overflow:auto;
+}
+
+#scroller {
+	position:absolute; z-index:1;
+/*	-webkit-touch-callout:none;*/
+	-webkit-tap-highlight-color:rgba(0,0,0,0);
+	width:100%;
+	padding:0;
+}
+
+#scroller ul {
+	list-style:none;
+	padding:0;
+	margin:0;
+	width:100%;
+	text-align:left;
+}
+
+#scroller li {
+	padding:0 10px;
+	height:40px;
+	line-height:40px;
+	border-bottom:1px solid #ccc;
+	border-top:1px solid #fff;
+	background-color:#fafafa;
+	font-size:14px;
+}
+
+#myFrame {
+	position:absolute;
+	top:0; left:0;
+}
+
+</style>
+</head>
+<body>
+
+<div id="header"><a href="http://cubiq.org/iscroll">iScroll</a></div>
+<div id="wrapper">
+	<div id="scroller">
+		<ul id="thelist">
+			<li>Pretty row 1</li>
+			<li>Pretty row 2</li>
+			<li>Pretty row 3</li>
+			<li>Pretty row 4</li>
+			<li>Pretty row 5</li>
+			<li>Pretty row 6</li>
+			<li>Pretty row 7</li>
+			<li>Pretty row 8</li>
+			<li>Pretty row 9</li>
+			<li>Pretty row 10</li>
+			<li>Pretty row 11</li>
+			<li>Pretty row 12</li>
+			<li>Pretty row 13</li>
+			<li>Pretty row 14</li>
+			<li>Pretty row 15</li>
+			<li>Pretty row 16</li>
+			<li>Pretty row 17</li>
+			<li>Pretty row 18</li>
+			<li>Pretty row 19</li>
+			<li>Pretty row 20</li>
+			<li>Pretty row 21</li>
+			<li>Pretty row 22</li>
+			<li>Pretty row 23</li>
+			<li>Pretty row 24</li>
+			<li>Pretty row 25</li>
+			<li>Pretty row 26</li>
+			<li>Pretty row 27</li>
+			<li>Pretty row 28</li>
+			<li>Pretty row 29</li>
+			<li>Pretty row 30</li>
+			<li>Pretty row 31</li>
+			<li>Pretty row 32</li>
+			<li>Pretty row 33</li>
+			<li>Pretty row 34</li>
+			<li>Pretty row 35</li>
+			<li>Pretty row 36</li>
+			<li>Pretty row 37</li>
+			<li>Pretty row 38</li>
+			<li>Pretty row 39</li>
+			<li>Pretty row 40</li>
+		</ul>
+	</div>
+</div>
+<div id="footer"></div>
+
+</body>
+</html>
diff --git a/public/admin/js/osmplayer/src/iscroll/examples/ios-perfect-scrollbar/index.html b/public/admin/js/osmplayer/src/iscroll/examples/ios-perfect-scrollbar/index.html
new file mode 100644
index 00000000000..b3f73e7af4c
--- /dev/null
+++ b/public/admin/js/osmplayer/src/iscroll/examples/ios-perfect-scrollbar/index.html
@@ -0,0 +1,170 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=0, minimum-scale=1.0, maximum-scale=1.0">
+<meta name="apple-mobile-web-app-capable" content="yes">
+<meta name="apple-mobile-web-app-status-bar-style" content="black">
+<title>iScroll demo: iOS Perfect Scrollbar</title>
+
+<link rel="stylesheet" type="text/css" href="scrollbar.css">
+
+<script type="application/javascript" src="../../src/iscroll.js"></script>
+
+<script type="text/javascript">
+
+var myScroll;
+function loaded() {
+	myScroll = new iScroll('wrapper', { scrollbarClass: 'myScrollbar' });
+}
+
+document.addEventListener('touchmove', function (e) { e.preventDefault(); }, false);
+
+document.addEventListener('DOMContentLoaded', loaded, false);
+
+</script>
+
+<style type="text/css" media="all">
+body,ul,li {
+	padding:0;
+	margin:0;
+	border:0;
+}
+
+body {
+	font-size:12px;
+	-webkit-user-select:none;
+    -webkit-text-size-adjust:none;
+	font-family:helvetica;
+}
+
+#header {
+	position:absolute;
+	top:0; left:0;
+	width:100%;
+	height:45px;
+	line-height:45px;
+	background-image:-webkit-gradient(linear, 0 0, 0 100%, color-stop(0, #fe96c9), color-stop(0.05, #d51875), color-stop(1, #7b0a2e));
+	background-image:-moz-linear-gradient(top, #fe96c9, #d51875 5%, #7b0a2e);
+	background-image:-o-linear-gradient(top, #fe96c9, #d51875 5%, #7b0a2e);
+	padding:0;
+	color:#eee;
+	font-size:20px;
+	text-align:center;
+}
+
+#header a {
+	color:#f3f3f3;
+	text-decoration:none;
+	font-weight:bold;
+	text-shadow:0 -1px 0 rgba(0,0,0,0.5);
+}
+
+#footer {
+	position:absolute;
+	bottom:0; left:0;
+	width:100%;
+	height:48px;
+	background-image:-webkit-gradient(linear, 0 0, 0 100%, color-stop(0, #999), color-stop(0.02, #666), color-stop(1, #222));
+	background-image:-moz-linear-gradient(top, #999, #666 2%, #222);
+	background-image:-o-linear-gradient(top, #999, #666 2%, #222);
+	padding:0;
+	border-top:1px solid #444;
+}
+
+#wrapper {
+	position:absolute; z-index:1;
+	top:45px; bottom:48px; left:0;
+	width:100%;
+	background:#555;
+	overflow:auto;
+}
+
+#scroller {
+	position:relative;
+/*	-webkit-touch-callout:none;*/
+	-webkit-tap-highlight-color:rgba(0,0,0,0);
+
+	float:left;
+	width:100%;
+	padding:0;
+}
+
+#scroller ul {
+	position:relative;
+	list-style:none;
+	padding:0;
+	margin:0;
+	width:100%;
+	text-align:left;
+}
+
+#scroller li {
+	padding:0 10px;
+	height:40px;
+	line-height:40px;
+	border-bottom:1px solid #ccc;
+	border-top:1px solid #fff;
+	background-color:#fafafa;
+	font-size:14px;
+}
+
+#scroller li > a {
+	display:block;
+}
+
+</style>
+</head>
+<body>
+<div id="header"><a href="http://cubiq.org/iscroll">iScroll</a></div>
+<div id="wrapper">
+	<div id="scroller">
+		<ul id="thelist">
+			<li>Pretty row 1</li>
+			<li id="aaa">Pretty row 2</li>
+			<li>Pretty row 3</li>
+			<li>Pretty row 4</li>
+			<li>Pretty row 5</li>
+			<li>Pretty row 6</li>
+			<li>Pretty row 7</li>
+			<li>Pretty row 8</li>
+			<li>Pretty row 9</li>
+			<li>Pretty row 10</li>
+			<li>Pretty row 11</li>
+			<li>Pretty row 12</li>
+			<li>Pretty row 13</li>
+			<li>Pretty row 14</li>
+			<li>Pretty row 15</li>
+			<li>Pretty row 16</li>
+			<li>Pretty row 17</li>
+			<li>Pretty row 18</li>
+			<li>Pretty row 19</li>
+			<li>Pretty row 20</li>
+			<li>Pretty row 21</li>
+			<li>Pretty row 22</li>
+			<li>Pretty row 23</li>
+			<li>Pretty row 24</li>
+			<li>Pretty row 25</li>
+			<li>Pretty row 26</li>
+			<li>Pretty row 27</li>
+			<li>Pretty row 28</li>
+			<li>Pretty row 29</li>
+			<li>Pretty row 30</li>
+			<li>Pretty row 31</li>
+			<li>Pretty row 32</li>
+			<li>Pretty row 33</li>
+			<li>Pretty row 34</li>
+			<li>Pretty row 35</li>
+			<li>Pretty row 36</li>
+			<li>Pretty row 37</li>
+			<li>Pretty row 38</li>
+			<li>Pretty row 39</li>
+			<li>Pretty row 40</li>
+		</ul>
+	</div>
+</div>
+
+<div id="footer"></div>
+
+</body>
+</html>
\ No newline at end of file
diff --git a/public/admin/js/osmplayer/src/iscroll/examples/ios-perfect-scrollbar/scrollbar.css b/public/admin/js/osmplayer/src/iscroll/examples/ios-perfect-scrollbar/scrollbar.css
new file mode 100644
index 00000000000..36579cf506a
--- /dev/null
+++ b/public/admin/js/osmplayer/src/iscroll/examples/ios-perfect-scrollbar/scrollbar.css
@@ -0,0 +1,57 @@
+/**
+ *
+ * Horizontal Scrollbar
+ *
+ */
+.myScrollbarH {
+	position:absolute;
+	z-index:100;
+	height:7px;
+	bottom:1px;
+	left:2px;
+	right:7px
+}
+
+.myScrollbarH > div {
+	height:100%;
+}
+
+
+/**
+ *
+ * Vertical Scrollbar
+ *
+ */
+.myScrollbarV {
+	position:absolute;
+	z-index:100;
+	width:7px;bottom:7px;top:2px;right:1px
+}
+
+.myScrollbarV > div {
+	width:100%;
+}
+
+
+/**
+ *
+ * Both Scrollbars
+ *
+ */
+.myScrollbarH > div,
+.myScrollbarV > div {
+	position:absolute;
+	z-index:100;
+
+	/* The following is probably what you want to customize */
+	-webkit-box-sizing:border-box;
+	-moz-box-sizing:border-box;
+	-o-box-sizing:border-box;
+	box-sizing:border-box;
+	
+	border-width:3px;
+	-webkit-border-image:url(scrollbar.png) 6 6 6 6;
+	-moz-border-image:url(scrollbar.png) 6 6 6 6;
+	-o-border-image:url(scrollbar.png) 6 6 6 6;
+	border-image:url(scrollbar.png) 6 6 6 6;
+}
diff --git a/public/admin/js/osmplayer/src/iscroll/examples/ios-perfect-scrollbar/scrollbar.png b/public/admin/js/osmplayer/src/iscroll/examples/ios-perfect-scrollbar/scrollbar.png
new file mode 100644
index 0000000000000000000000000000000000000000..08fb99719e12ea7af6d15a0201e4a2ea5bcc404e
GIT binary patch
literal 199
zcmeAS@N?(olHy`uVBq!ia0vp^d?3uh1|;P@bT0y_K2I0NkcwM#C)sixP~dShPW!}i
zF7}Sh+&wKNZ|`w?ERTy>6Yr_m8l-rbxqe@Jp!42xUj9D{Jd*@cdP~E+Pb>IG+*{<a
zc56&_Y;w=;;&%)Z$-LE3ZAbb;yl!^9_`_7~l{V?u`^f@7m?Z^mk2G+4&FVbSA)%n=
xQ!syKM^DE|omt+d_I*FC*YGCfTNY1_FZG$Y;pc{O0ieqmJYD@<);T3K0RZmgN=N_z

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/src/iscroll/examples/ipad/index.html b/public/admin/js/osmplayer/src/iscroll/examples/ipad/index.html
new file mode 100644
index 00000000000..62872e460c6
--- /dev/null
+++ b/public/admin/js/osmplayer/src/iscroll/examples/ipad/index.html
@@ -0,0 +1,167 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=0, minimum-scale=1.0, maximum-scale=1.0">
+<meta name="apple-mobile-web-app-capable" content="yes">
+<meta name="apple-mobile-web-app-status-bar-style" content="black">
+<title>iScroll demo: iPad</title>
+
+<script type="application/javascript" src="../../src/iscroll.js"></script>
+
+<script type="text/javascript">
+
+var scrollContent,
+	scrollNav;
+
+function loaded() {
+	scrollContent = new iScroll('contentWrapper');
+	scrollNav = new iScroll('navWrapper');
+}
+
+document.addEventListener('touchmove', function (e) { e.preventDefault(); }, false);
+
+document.addEventListener('DOMContentLoaded', loaded, false);
+
+</script>
+
+<style type="text/css" media="all">
+html,body {
+	height:100%;
+}
+
+body,ul,li,header,nav,aside,section,article,p {
+	padding:0;
+	margin:0;
+	border:0;
+}
+
+body {
+	font-size:12px;
+	-webkit-user-select:none;
+    -webkit-text-size-adjust:none;
+	font-family:helvetica;
+	background:#424242;
+}
+
+p {
+	margin-bottom:1.5em;
+	line-height:150%;
+}
+
+header,nav,aside,section,article {
+	display:block;
+}
+
+#page {
+	width:100%; height:100%;
+	position:relative;
+	display:-webkit-box;
+	display:-moz-box;
+	display:-o-box;
+	display:box;
+	
+	-webkit-box-orient:horizontal;
+	-moz-box-orient:horizontal;
+	-o-box-orient:horizontal;
+	box-orient:horizontal;
+	
+	background:#424242;
+}
+
+#sidebar {
+	width:300px;
+	margin-right:1px;
+}
+
+#content {
+	-webkit-box-flex:1;
+	-moz-box-flex:1;
+	-o-box-flex:1;
+	box-flex:1;
+}
+
+#sidebar, #content {
+	position:relative;
+	height:100%;
+}
+
+header {
+	height:43px; line-height:43px;
+	border-bottom:1px solid #838a9a;
+	background-color:#424242;
+	background-image:-webkit-gradient(linear, 0 0, 0 100, from(#f4f5f7), to(#999da9));
+	background-image:-moz-linear-gradient(top, #f4f5f7, #999da9);
+	background-image:-o-linear-gradient(top, #f4f5f7, #999da9);
+	
+	color:#717880;
+	font-size:18px; font-weight:bold;
+	text-align:center;
+	text-shadow:0 1px 0 #fff;
+	-webkit-border-top-left-radius:4px;
+	-moz-border-top-left-radius:4px;
+	-o-border-top-left-radius:4px;
+	border-top-left-radius:4px;
+	
+	-webkit-border-top-right-radius:4px;
+	-moz-border-top-right-radius:4px;
+	-o-border-top-right-radius:4px;
+	border-top-right-radius:4px;
+}
+
+#navScroller > li {
+	padding:0 10px;
+	border-bottom:1px solid #ccc;
+	height:40px; line-height:40px;
+}
+
+#contentScroller {
+	-webkit-box-sizing:border-box;
+	-moz-box-sizing:border-box;
+	-o-box-sizing:border-box;
+	box-sizing:border-box;
+	padding:20px;
+}
+
+nav, article {
+	position:absolute;
+	top:44px; bottom:0; left:0; right:0;
+	font-size:15px;
+	background:#fff;
+	
+}
+</style>
+</head>
+<body>
+
+<div id="page">
+	<div id="sidebar">
+		<header>Navigation</header>
+		<nav id="navWrapper">
+			<ul id="navScroller">
+				<li>Option 1</li>
+				<li>Option 2</li>
+				<li>Option 3</li>
+				<li>Option 4</li>
+				<li>Option 5</li>
+				<li>Option 6</li>
+			</ul>
+		</nav>
+	</div>
+
+	<div id="content">
+		<header>Main Content Area</header>
+		<article id="contentWrapper">
+			<div id="contentScroller">
+				<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
+				<p>Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo. Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit aut fugit, sed quia consequuntur magni dolores eos qui ratione voluptatem sequi nesciunt. Neque porro quisquam est, qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit, sed quia non numquam eius modi tempora incidunt ut labore et dolore magnam aliquam quaerat voluptatem. Ut enim ad minima veniam, quis nostrum exercitationem ullam corporis suscipit laboriosam, nisi ut aliquid ex ea commodi consequatur? Quis autem vel eum iure reprehenderit qui in ea voluptate velit esse quam nihil molestiae consequatur, vel illum qui dolorem eum fugiat quo voluptas nulla pariatur?</p>
+				<p>At vero eos et accusamus et iusto odio dignissimos ducimus qui blanditiis praesentium voluptatum deleniti atque corrupti quos dolores et quas molestias excepturi sint occaecati cupiditate non provident, similique sunt in culpa qui officia deserunt mollitia animi, id est laborum et dolorum fuga. Et harum quidem rerum facilis est et expedita distinctio. Nam libero tempore, cum soluta nobis est eligendi optio cumque nihil impedit quo minus id quod maxime placeat facere possimus, omnis voluptas assumenda est, omnis dolor repellendus. Temporibus autem quibusdam et aut officiis debitis aut rerum necessitatibus saepe eveniet ut et voluptates repudiandae sint et molestiae non recusandae. Itaque earum rerum hic tenetur a sapiente delectus, ut aut reiciendis voluptatibus maiores alias consequatur aut perferendis doloribus asperiores repellat.</p>
+			<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
+			<p>Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo. Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit aut fugit, sed quia consequuntur magni dolores eos qui ratione voluptatem sequi nesciunt. Neque porro quisquam est, qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit, sed quia non numquam eius modi tempora incidunt ut labore et dolore magnam aliquam quaerat voluptatem. Ut enim ad minima veniam, quis nostrum exercitationem ullam corporis suscipit laboriosam, nisi ut aliquid ex ea commodi consequatur? Quis autem vel eum iure reprehenderit qui in ea voluptate velit esse quam nihil molestiae consequatur, vel illum qui dolorem eum fugiat quo voluptas nulla pariatur?</p>
+			</div>
+		</article>
+	</div>
+</div>
+
+</body>
+</html>
\ No newline at end of file
diff --git a/public/admin/js/osmplayer/src/iscroll/examples/lite/index.html b/public/admin/js/osmplayer/src/iscroll/examples/lite/index.html
new file mode 100644
index 00000000000..ddc16060b3d
--- /dev/null
+++ b/public/admin/js/osmplayer/src/iscroll/examples/lite/index.html
@@ -0,0 +1,161 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=0, minimum-scale=1.0, maximum-scale=1.0">
+<meta name="apple-mobile-web-app-capable" content="yes">
+<meta name="apple-mobile-web-app-status-bar-style" content="black">
+<title>iScroll demo: lite edition</title>
+
+<script type="application/javascript" src="../../src/iscroll-lite.js?v4"></script>
+
+<script type="text/javascript">
+
+var myScroll;
+function loaded() {
+	myScroll = new iScroll('wrapper');
+}
+
+document.addEventListener('touchmove', function (e) { e.preventDefault(); }, false);
+
+document.addEventListener('DOMContentLoaded', loaded, false);
+
+</script>
+
+<style type="text/css" media="all">
+body,ul,li {
+	padding:0;
+	margin:0;
+	border:0;
+}
+
+body {
+	font-size:12px;
+	-webkit-user-select:none;
+    -webkit-text-size-adjust:none;
+	font-family:helvetica;
+}
+
+#header {
+	position:absolute; z-index:2;
+	top:0; left:0;
+	width:100%;
+	height:45px;
+	line-height:45px;
+	background-image:-webkit-gradient(linear, 0 0, 0 100%, color-stop(0, #fe96c9), color-stop(0.05, #d51875), color-stop(1, #7b0a2e));
+	background-image:-moz-linear-gradient(top, #fe96c9, #d51875 5%, #7b0a2e);
+	background-image:-o-linear-gradient(top, #fe96c9, #d51875 5%, #7b0a2e);
+	padding:0;
+	color:#eee;
+	font-size:20px;
+	text-align:center;
+}
+
+#header a {
+	color:#f3f3f3;
+	text-decoration:none;
+	font-weight:bold;
+	text-shadow:0 -1px 0 rgba(0,0,0,0.5);
+}
+
+#footer {
+	position:absolute; z-index:2;
+	bottom:0; left:0;
+	width:100%;
+	height:48px;
+	background-image:-webkit-gradient(linear, 0 0, 0 100%, color-stop(0, #999), color-stop(0.02, #666), color-stop(1, #222));
+	background-image:-moz-linear-gradient(top, #999, #666 2%, #222);
+	background-image:-o-linear-gradient(top, #999, #666 2%, #222);
+	padding:0;
+	border-top:1px solid #444;
+}
+
+#wrapper {
+	position:absolute; z-index:1;
+	top:45px; bottom:48px; left:0;
+	width:100%;
+	background:#aaa;
+	overflow:auto;
+}
+
+#scroller {
+	position:absolute; z-index:1;
+/*	-webkit-touch-callout:none;*/
+	-webkit-tap-highlight-color:rgba(0,0,0,0);
+	width:100%;
+	padding:0;
+}
+
+#scroller ul {
+	list-style:none;
+	padding:0;
+	margin:0;
+	width:100%;
+	text-align:left;
+}
+
+#scroller li {
+	padding:0 10px;
+	height:40px;
+	line-height:40px;
+	border-bottom:1px solid #ccc;
+	border-top:1px solid #fff;
+	background-color:#fafafa;
+	font-size:14px;
+}
+
+</style>
+</head>
+<body>
+<div id="header"><a href="http://cubiq.org/iscroll">iScroll</a></div>
+<div id="wrapper">
+	<div id="scroller">
+		<ul id="thelist">
+			<li>Pretty row 1</li>
+			<li>Pretty row 2</li>
+			<li>Pretty row 3</li>
+			<li>Pretty row 4</li>
+			<li>Pretty row 5</li>
+			<li>Pretty row 6</li>
+			<li>Pretty row 7</li>
+			<li>Pretty row 8</li>
+			<li>Pretty row 9</li>
+			<li>Pretty row 10</li>
+			<li>Pretty row 11</li>
+			<li>Pretty row 12</li>
+			<li>Pretty row 13</li>
+			<li>Pretty row 14</li>
+			<li>Pretty row 15</li>
+			<li>Pretty row 16</li>
+			<li>Pretty row 17</li>
+			<li>Pretty row 18</li>
+			<li>Pretty row 19</li>
+			<li>Pretty row 20</li>
+			<li>Pretty row 21</li>
+			<li>Pretty row 22</li>
+			<li>Pretty row 23</li>
+			<li>Pretty row 24</li>
+			<li>Pretty row 25</li>
+			<li>Pretty row 26</li>
+			<li>Pretty row 27</li>
+			<li>Pretty row 28</li>
+			<li>Pretty row 29</li>
+			<li>Pretty row 30</li>
+			<li>Pretty row 31</li>
+			<li>Pretty row 32</li>
+			<li>Pretty row 33</li>
+			<li>Pretty row 34</li>
+			<li>Pretty row 35</li>
+			<li>Pretty row 36</li>
+			<li>Pretty row 37</li>
+			<li>Pretty row 38</li>
+			<li>Pretty row 39</li>
+			<li>Pretty row 40</li>
+		</ul>
+	</div>
+</div>
+
+<div id="footer"></div>
+
+</body>
+</html>
\ No newline at end of file
diff --git a/public/admin/js/osmplayer/src/iscroll/examples/pull-to-refresh/index.html b/public/admin/js/osmplayer/src/iscroll/examples/pull-to-refresh/index.html
new file mode 100644
index 00000000000..a624efe6193
--- /dev/null
+++ b/public/admin/js/osmplayer/src/iscroll/examples/pull-to-refresh/index.html
@@ -0,0 +1,313 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=0, minimum-scale=1.0, maximum-scale=1.0">
+<meta name="apple-mobile-web-app-capable" content="yes">
+<meta name="apple-mobile-web-app-status-bar-style" content="black">
+<title>iScroll demo: simple</title>
+
+<script type="text/javascript" src="../../src/iscroll.js"></script>
+
+<script type="text/javascript">
+
+var myScroll,
+	pullDownEl, pullDownOffset,
+	pullUpEl, pullUpOffset,
+	generatedCount = 0;
+
+function pullDownAction () {
+	setTimeout(function () {	// <-- Simulate network congestion, remove setTimeout from production!
+		var el, li, i;
+		el = document.getElementById('thelist');
+
+		for (i=0; i<3; i++) {
+			li = document.createElement('li');
+			li.innerText = 'Generated row ' + (++generatedCount);
+			el.insertBefore(li, el.childNodes[0]);
+		}
+		
+		myScroll.refresh();		// Remember to refresh when contents are loaded (ie: on ajax completion)
+	}, 1000);	// <-- Simulate network congestion, remove setTimeout from production!
+}
+
+function pullUpAction () {
+	setTimeout(function () {	// <-- Simulate network congestion, remove setTimeout from production!
+		var el, li, i;
+		el = document.getElementById('thelist');
+
+		for (i=0; i<3; i++) {
+			li = document.createElement('li');
+			li.innerText = 'Generated row ' + (++generatedCount);
+			el.appendChild(li, el.childNodes[0]);
+		}
+		
+		myScroll.refresh();		// Remember to refresh when contents are loaded (ie: on ajax completion)
+	}, 1000);	// <-- Simulate network congestion, remove setTimeout from production!
+}
+
+function loaded() {
+	pullDownEl = document.getElementById('pullDown');
+	pullDownOffset = pullDownEl.offsetHeight;
+	pullUpEl = document.getElementById('pullUp');	
+	pullUpOffset = pullUpEl.offsetHeight;
+	
+	myScroll = new iScroll('wrapper', {
+		useTransition: true,
+		topOffset: pullDownOffset,
+		onRefresh: function () {
+			if (pullDownEl.className.match('loading')) {
+				pullDownEl.className = '';
+				pullDownEl.querySelector('.pullDownLabel').innerHTML = 'Pull down to refresh...';
+			} else if (pullUpEl.className.match('loading')) {
+				pullUpEl.className = '';
+				pullUpEl.querySelector('.pullUpLabel').innerHTML = 'Pull up to load more...';
+			}
+		},
+		onScrollMove: function () {
+			if (this.y > 5 && !pullDownEl.className.match('flip')) {
+				pullDownEl.className = 'flip';
+				pullDownEl.querySelector('.pullDownLabel').innerHTML = 'Release to refresh...';
+				this.minScrollY = 0;
+			} else if (this.y < 5 && pullDownEl.className.match('flip')) {
+				pullDownEl.className = '';
+				pullDownEl.querySelector('.pullDownLabel').innerHTML = 'Pull down to refresh...';
+				this.minScrollY = -pullDownOffset;
+			} else if (this.y < (this.maxScrollY - 5) && !pullUpEl.className.match('flip')) {
+				pullUpEl.className = 'flip';
+				pullUpEl.querySelector('.pullUpLabel').innerHTML = 'Release to refresh...';
+				this.maxScrollY = this.maxScrollY;
+			} else if (this.y > (this.maxScrollY + 5) && pullUpEl.className.match('flip')) {
+				pullUpEl.className = '';
+				pullUpEl.querySelector('.pullUpLabel').innerHTML = 'Pull up to load more...';
+				this.maxScrollY = pullUpOffset;
+			}
+		},
+		onScrollEnd: function () {
+			if (pullDownEl.className.match('flip')) {
+				pullDownEl.className = 'loading';
+				pullDownEl.querySelector('.pullDownLabel').innerHTML = 'Loading...';				
+				pullDownAction();	// Execute custom function (ajax call?)
+			} else if (pullUpEl.className.match('flip')) {
+				pullUpEl.className = 'loading';
+				pullUpEl.querySelector('.pullUpLabel').innerHTML = 'Loading...';				
+				pullUpAction();	// Execute custom function (ajax call?)
+			}
+		}
+	});
+	
+	setTimeout(function () { document.getElementById('wrapper').style.left = '0'; }, 800);
+}
+
+document.addEventListener('touchmove', function (e) { e.preventDefault(); }, false);
+
+document.addEventListener('DOMContentLoaded', function () { setTimeout(loaded, 200); }, false);
+</script>
+
+<style type="text/css" media="all">
+body,ul,li {
+	padding:0;
+	margin:0;
+	border:0;
+}
+
+body {
+	font-size:12px;
+	-webkit-user-select:none;
+    -webkit-text-size-adjust:none;
+	font-family:helvetica;
+}
+
+#header {
+	position:absolute; z-index:2;
+	top:0; left:0;
+	width:100%;
+	height:45px;
+	line-height:45px;
+	background-color:#d51875;
+	background-image:-webkit-gradient(linear, 0 0, 0 100%, color-stop(0, #fe96c9), color-stop(0.05, #d51875), color-stop(1, #7b0a2e));
+	background-image:-moz-linear-gradient(top, #fe96c9, #d51875 5%, #7b0a2e);
+	background-image:-o-linear-gradient(top, #fe96c9, #d51875 5%, #7b0a2e);
+	padding:0;
+	color:#eee;
+	font-size:20px;
+	text-align:center;
+}
+
+#header a {
+	color:#f3f3f3;
+	text-decoration:none;
+	font-weight:bold;
+	text-shadow:0 -1px 0 rgba(0,0,0,0.5);
+}
+
+#footer {
+	position:absolute; z-index:2;
+	bottom:0; left:0;
+	width:100%;
+	height:48px;
+	background-color:#222;
+	background-image:-webkit-gradient(linear, 0 0, 0 100%, color-stop(0, #999), color-stop(0.02, #666), color-stop(1, #222));
+	background-image:-moz-linear-gradient(top, #999, #666 2%, #222);
+	background-image:-o-linear-gradient(top, #999, #666 2%, #222);
+	padding:0;
+	border-top:1px solid #444;
+}
+
+#wrapper {
+	position:absolute; z-index:1;
+	top:45px; bottom:48px; left:-9999px;
+	width:100%;
+	background:#aaa;
+	overflow:auto;
+}
+
+#scroller {
+	position:absolute; z-index:1;
+/*	-webkit-touch-callout:none;*/
+	-webkit-tap-highlight-color:rgba(0,0,0,0);
+	width:100%;
+	padding:0;
+}
+
+#scroller ul {
+	list-style:none;
+	padding:0;
+	margin:0;
+	width:100%;
+	text-align:left;
+}
+
+#scroller li {
+	padding:0 10px;
+	height:40px;
+	line-height:40px;
+	border-bottom:1px solid #ccc;
+	border-top:1px solid #fff;
+	background-color:#fafafa;
+	font-size:14px;
+}
+
+#myFrame {
+	position:absolute;
+	top:0; left:0;
+}
+
+
+
+/**
+ *
+ * Pull down styles
+ *
+ */
+#pullDown, #pullUp {
+	background:#fff;
+	height:40px;
+	line-height:40px;
+	padding:5px 10px;
+	border-bottom:1px solid #ccc;
+	font-weight:bold;
+	font-size:14px;
+	color:#888;
+}
+#pullDown .pullDownIcon, #pullUp .pullUpIcon  {
+	display:block; float:left;
+	width:40px; height:40px;
+	background:url(pull-icon@2x.png) 0 0 no-repeat;
+	-webkit-background-size:40px 80px; background-size:40px 80px;
+	-webkit-transition-property:-webkit-transform;
+	-webkit-transition-duration:250ms;	
+}
+#pullDown .pullDownIcon {
+	-webkit-transform:rotate(0deg) translateZ(0);
+}
+#pullUp .pullUpIcon  {
+	-webkit-transform:rotate(-180deg) translateZ(0);
+}
+
+#pullDown.flip .pullDownIcon {
+	-webkit-transform:rotate(-180deg) translateZ(0);
+}
+
+#pullUp.flip .pullUpIcon {
+	-webkit-transform:rotate(0deg) translateZ(0);
+}
+
+#pullDown.loading .pullDownIcon, #pullUp.loading .pullUpIcon {
+	background-position:0 100%;
+	-webkit-transform:rotate(0deg) translateZ(0);
+	-webkit-transition-duration:0ms;
+
+	-webkit-animation-name:loading;
+	-webkit-animation-duration:2s;
+	-webkit-animation-iteration-count:infinite;
+	-webkit-animation-timing-function:linear;
+}
+
+@-webkit-keyframes loading {
+	from { -webkit-transform:rotate(0deg) translateZ(0); }
+	to { -webkit-transform:rotate(360deg) translateZ(0); }
+}
+
+</style>
+</head>
+<body>
+
+<div id="header"><a href="http://cubiq.org/iscroll">iScroll</a></div>
+<div id="wrapper">
+	<div id="scroller">
+		<div id="pullDown">
+			<span class="pullDownIcon"></span><span class="pullDownLabel">Pull down to refresh...</span>
+		</div>
+
+		<ul id="thelist">
+			<li>Pretty row 1</li>
+			<li>Pretty row 2</li>
+			<li>Pretty row 3</li>
+			<li>Pretty row 4</li>
+			<li>Pretty row 5</li>
+			<li>Pretty row 6</li>
+			<li>Pretty row 7</li>
+			<li>Pretty row 8</li>
+			<li>Pretty row 9</li>
+			<li>Pretty row 10</li>
+			<li>Pretty row 11</li>
+			<li>Pretty row 12</li>
+			<li>Pretty row 13</li>
+			<li>Pretty row 14</li>
+			<li>Pretty row 15</li>
+			<li>Pretty row 16</li>
+			<li>Pretty row 17</li>
+			<li>Pretty row 18</li>
+			<li>Pretty row 19</li>
+			<li>Pretty row 20</li>
+			<li>Pretty row 21</li>
+			<li>Pretty row 22</li>
+			<li>Pretty row 23</li>
+			<li>Pretty row 24</li>
+			<li>Pretty row 25</li>
+			<li>Pretty row 26</li>
+			<li>Pretty row 27</li>
+			<li>Pretty row 28</li>
+			<li>Pretty row 29</li>
+			<li>Pretty row 30</li>
+			<li>Pretty row 31</li>
+			<li>Pretty row 32</li>
+			<li>Pretty row 33</li>
+			<li>Pretty row 34</li>
+			<li>Pretty row 35</li>
+			<li>Pretty row 36</li>
+			<li>Pretty row 37</li>
+			<li>Pretty row 38</li>
+			<li>Pretty row 39</li>
+			<li>Pretty row 40</li>
+		</ul>
+		<div id="pullUp">
+			<span class="pullUpIcon"></span><span class="pullUpLabel">Pull up to refresh...</span>
+		</div>
+	</div>
+</div>
+<div id="footer"></div>
+
+</body>
+</html>
\ No newline at end of file
diff --git a/public/admin/js/osmplayer/src/iscroll/examples/pull-to-refresh/pull-icon@2x.png b/public/admin/js/osmplayer/src/iscroll/examples/pull-to-refresh/pull-icon@2x.png
new file mode 100755
index 0000000000000000000000000000000000000000..97c8bda3987158498ac50863eb6b3aae24f7383c
GIT binary patch
literal 850
zcmeAS@N?(olHy`uVBq!ia0vp^0YJQfgBeJ!iIr{xQriQ3LR|m<|9^A{0&CBxCqOUQ
zlmz(&GcbJaJ+9E>_F=Jc=Fe|D_xS(hY>cwJ!D-OGntADy+eJ>^X}h%QMAcniJr9?d
zFMaiJ<KCI)ZIUatJQPZZ(b0Iuz`(@k>Eakt5%+e+^*kd-o>t@AieH4H>Nu8spSS<*
zZ~O2Tr$b7@ImeSZ73XW~@y*|IeBPs*pA{#c6rHj@bmxN`yb5~EdHGY<@~_S1$#7tn
zy3oKj=bipmIg1FXb({zCRF`Laoh)#A&YK~*ZRMVJLEalHE>}!1zoIog(=hJB?PabH
zZ7=<vAoBQf2lJ8SJ-Z5d6y%aWpD1jo=vn?}tIeGw)@3ybxqocmU%$!UurA(}=?T+a
z9?l88CG8#!ISFqQk{fCkSVsyce-1SY+vE5kU!C!g#D5D;fnz_u&u8ICUQ_aP@y-8A
z1&@-i?T-C)>m2)r^8Y7So9|(`Te*Q_!<+0qZ)+H$|2=#9+%o^gAI56^O1pKQ4F<=u
z?!OmyOn)}RVe-ioqldq9rQ9OLT3`Oz&Ymzwr|+UdXD!3ypnpq)-Z0L1!m3)7ASKf1
zsKwUyv&*T_cX4O}i|v_NX{!(LR7IG!I=o1{DpF_kWkVKM_n|e`|H{MeddhRy&Tg5`
zP&LD0&%_z?d$wC`*4WX0(`-lk^&30dcYi79FF4#T_i!SMt##GEM|FW$cF5<mUD3}9
zztgX;aYaA+(+>H&Q+Cvq+;;hU%i*Vbwz%s(vs1mg@m0TOH`n~WmGx3S=u>jY{{_?I
zUBBpie|kOVUu$rk>b3n_P9Nv`d(ho(*2#AFzaPWw8eZEAdWbLnXUx6)-7o*pU;UZ8
eEB?*$c^~9cTESU9TLYNF7(8A5T-G@yGywoyz{IWq

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/src/iscroll/examples/simple/index.html b/public/admin/js/osmplayer/src/iscroll/examples/simple/index.html
new file mode 100644
index 00000000000..fad4e9606a1
--- /dev/null
+++ b/public/admin/js/osmplayer/src/iscroll/examples/simple/index.html
@@ -0,0 +1,189 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=0, minimum-scale=1.0, maximum-scale=1.0">
+<meta name="apple-mobile-web-app-capable" content="yes">
+<meta name="apple-mobile-web-app-status-bar-style" content="black">
+<title>iScroll demo: simple</title>
+
+<script type="text/javascript" src="../../src/iscroll.js"></script>
+
+<script type="text/javascript">
+
+var myScroll;
+function loaded() {
+	myScroll = new iScroll('wrapper');
+}
+
+document.addEventListener('touchmove', function (e) { e.preventDefault(); }, false);
+
+/* * * * * * * *
+ *
+ * Use this for high compatibility (iDevice + Android)
+ *
+ */
+document.addEventListener('DOMContentLoaded', function () { setTimeout(loaded, 200); }, false);
+/*
+ * * * * * * * */
+
+
+/* * * * * * * *
+ *
+ * Use this for iDevice only
+ *
+ */
+//document.addEventListener('DOMContentLoaded', loaded, false);
+/*
+ * * * * * * * */
+
+
+/* * * * * * * *
+ *
+ * Use this if nothing else works
+ *
+ */
+//window.addEventListener('load', setTimeout(function () { loaded(); }, 200), false);
+/*
+ * * * * * * * */
+
+</script>
+
+<style type="text/css" media="all">
+body,ul,li {
+	padding:0;
+	margin:0;
+	border:0;
+}
+
+body {
+	font-size:12px;
+	-webkit-user-select:none;
+    -webkit-text-size-adjust:none;
+	font-family:helvetica;
+}
+
+#header {
+	position:absolute; z-index:2;
+	top:0; left:0;
+	width:100%;
+	height:45px;
+	line-height:45px;
+	background-color:#d51875;
+	background-image:-webkit-gradient(linear, 0 0, 0 100%, color-stop(0, #fe96c9), color-stop(0.05, #d51875), color-stop(1, #7b0a2e));
+	background-image:-moz-linear-gradient(top, #fe96c9, #d51875 5%, #7b0a2e);
+	background-image:-o-linear-gradient(top, #fe96c9, #d51875 5%, #7b0a2e);
+	padding:0;
+	color:#eee;
+	font-size:20px;
+	text-align:center;
+}
+
+#header a {
+	color:#f3f3f3;
+	text-decoration:none;
+	font-weight:bold;
+	text-shadow:0 -1px 0 rgba(0,0,0,0.5);
+}
+
+#footer {
+	position:absolute; z-index:2;
+	bottom:0; left:0;
+	width:100%;
+	height:48px;
+	background-color:#222;
+	background-image:-webkit-gradient(linear, 0 0, 0 100%, color-stop(0, #999), color-stop(0.02, #666), color-stop(1, #222));
+	background-image:-moz-linear-gradient(top, #999, #666 2%, #222);
+	background-image:-o-linear-gradient(top, #999, #666 2%, #222);
+	padding:0;
+	border-top:1px solid #444;
+}
+
+#wrapper {
+	position:absolute; z-index:1;
+	top:45px; bottom:48px; left:0;
+	width:100%;
+	background:#aaa;
+	overflow:auto;
+}
+
+#scroller {
+	position:absolute; z-index:1;
+/*	-webkit-touch-callout:none;*/
+	-webkit-tap-highlight-color:rgba(0,0,0,0);
+	width:100%;
+	padding:0;
+}
+
+#scroller ul {
+	list-style:none;
+	padding:0;
+	margin:0;
+	width:100%;
+	text-align:left;
+}
+
+#scroller li {
+	padding:0 10px;
+	height:40px;
+	line-height:40px;
+	border-bottom:1px solid #ccc;
+	border-top:1px solid #fff;
+	background-color:#fafafa;
+	font-size:14px;
+}
+</style>
+</head>
+<body>
+
+<div id="header"><a href="http://cubiq.org/iscroll">iScroll</a></div>
+<div id="wrapper">
+	<div id="scroller">
+		<ul id="thelist">
+			<li>Pretty row 1</li>
+			<li>Pretty row 2</li>
+			<li>Pretty row 3</li>
+			<li>Pretty row 4</li>
+			<li>Pretty row 5</li>
+			<li>Pretty row 6</li>
+			<li>Pretty row 7</li>
+			<li>Pretty row 8</li>
+			<li>Pretty row 9</li>
+			<li>Pretty row 10</li>
+			<li>Pretty row 11</li>
+			<li>Pretty row 12</li>
+			<li>Pretty row 13</li>
+			<li>Pretty row 14</li>
+			<li>Pretty row 15</li>
+			<li>Pretty row 16</li>
+			<li>Pretty row 17</li>
+			<li>Pretty row 18</li>
+			<li>Pretty row 19</li>
+			<li>Pretty row 20</li>
+			<li>Pretty row 21</li>
+			<li>Pretty row 22</li>
+			<li>Pretty row 23</li>
+			<li>Pretty row 24</li>
+			<li>Pretty row 25</li>
+			<li>Pretty row 26</li>
+			<li>Pretty row 27</li>
+			<li>Pretty row 28</li>
+			<li>Pretty row 29</li>
+			<li>Pretty row 30</li>
+			<li>Pretty row 31</li>
+			<li>Pretty row 32</li>
+			<li>Pretty row 33</li>
+			<li>Pretty row 34</li>
+			<li>Pretty row 35</li>
+			<li>Pretty row 36</li>
+			<li>Pretty row 37</li>
+			<li>Pretty row 38</li>
+			<li>Pretty row 39</li>
+			<li>Pretty row 40</li>
+		</ul>
+	</div>
+</div>
+<div id="footer"></div>
+
+</body>
+</html>
diff --git a/public/admin/js/osmplayer/src/iscroll/examples/snap-to-element/index.html b/public/admin/js/osmplayer/src/iscroll/examples/snap-to-element/index.html
new file mode 100644
index 00000000000..ef8a2f41c5b
--- /dev/null
+++ b/public/admin/js/osmplayer/src/iscroll/examples/snap-to-element/index.html
@@ -0,0 +1,133 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=0, minimum-scale=1.0, maximum-scale=1.0">
+<meta name="apple-mobile-web-app-capable" content="yes">
+<meta name="apple-mobile-web-app-status-bar-style" content="black">
+<title>iScroll demo: Snap to element</title>
+
+<script type="text/javascript" src="../../src/iscroll.js"></script>
+
+<script type="text/javascript">
+var myScroll;
+
+function loaded() {
+	myScroll = new iScroll('wrapper', {
+		snap: 'li',
+		momentum: false,
+		hScrollbar: false,
+		vScrollbar: false
+	 });
+}
+
+document.addEventListener('DOMContentLoaded', loaded, false);
+</script>
+
+<style type="text/css" media="all">
+body,ul,li {
+	padding:0;
+	margin:0;
+	border:0;
+}
+
+body {
+	font-size:12px;
+	-webkit-user-select:none;
+    -webkit-text-size-adjust:none;
+	font-family:helvetica;
+}
+
+#header {
+	position:absolute;
+	top:0; left:0;
+	width:100%;
+	height:45px;
+	line-height:45px;
+	background-image:-webkit-gradient(linear, 0 0, 0 100%, color-stop(0, #fe96c9), color-stop(0.05, #d51875), color-stop(1, #7b0a2e));
+	background-image:-moz-linear-gradient(top, #fe96c9, #d51875 5%, #7b0a2e);
+	background-image:-o-linear-gradient(top, #fe96c9, #d51875 5%, #7b0a2e);
+	padding:0;
+	color:#eee;
+	font-size:20px;
+	text-align:center;
+}
+
+#header a {
+	color:#f3f3f3;
+	text-decoration:none;
+	font-weight:bold;
+	text-shadow:0 -1px 0 rgba(0,0,0,0.5);
+}
+
+#wrapper {
+	position:absolute; z-index:1;
+	top:45px; bottom:0; left:0;
+	width:100%;
+	overflow:auto;
+	background:#eee;
+}
+
+#scroller {
+	width:800px;
+	float:left;
+	padding:0;
+}
+
+#scroller ul {
+	list-style:none;
+	display:block;
+	float:left;
+	width:100%;
+	height:100%;
+	padding:0;
+	margin:0;
+	border:1px solid #aaa;
+}
+
+#scroller li {
+	display:block; float:left;
+	width:78px; height:78px; line-height:78px;
+	text-align:center;
+	border:1px solid #aaa;
+	background:#ccc;
+}
+
+</style>
+</head>
+<body>
+<div id="header"><a href="http://cubiq.org/iscroll">iScroll</a></div>
+
+<div id="wrapper">
+	<div id="scroller">
+		<ul id="thelist">
+			<li>cell</li> <li>cell</li> <li>cell</li> <li>cell</li> <li>cell</li>
+			<li>cell</li> <li>cell</li> <li>cell</li> <li>cell</li> <li>cell</li>
+			<li>cell</li> <li>cell</li> <li>cell</li> <li>cell</li> <li>cell</li>
+			<li>cell</li> <li>cell</li> <li>cell</li> <li>cell</li> <li>cell</li>
+
+			<li>cell</li> <li>cell</li> <li>cell</li> <li>cell</li> <li>cell</li>
+			<li>cell</li> <li>cell</li> <li>cell</li> <li>cell</li> <li>cell</li>
+			<li>cell</li> <li>cell</li> <li>cell</li> <li>cell</li> <li>cell</li>
+			<li>cell</li> <li>cell</li> <li>cell</li> <li>cell</li> <li>cell</li>
+
+			<li>cell</li> <li>cell</li> <li>cell</li> <li>cell</li> <li>cell</li>
+			<li>cell</li> <li>cell</li> <li>cell</li> <li>cell</li> <li>cell</li>
+			<li>cell</li> <li>cell</li> <li>cell</li> <li>cell</li> <li>cell</li>
+			<li>cell</li> <li>cell</li> <li>cell</li> <li>cell</li> <li>cell</li>
+
+			<li>cell</li> <li>cell</li> <li>cell</li> <li>cell</li> <li>cell</li>
+			<li>cell</li> <li>cell</li> <li>cell</li> <li>cell</li> <li>cell</li>
+			<li>cell</li> <li>cell</li> <li>cell</li> <li>cell</li> <li>cell</li>
+			<li>cell</li> <li>cell</li> <li>cell</li> <li>cell</li> <li>cell</li>
+
+			<li>cell</li> <li>cell</li> <li>cell</li> <li>cell</li> <li>cell</li>
+			<li>cell</li> <li>cell</li> <li>cell</li> <li>cell</li> <li>cell</li>
+			<li>cell</li> <li>cell</li> <li>cell</li> <li>cell</li> <li>cell</li>
+			<li>cell</li> <li>cell</li> <li>cell</li> <li>cell</li> <li>cell</li>
+		</ul>
+	</div>
+</div>
+
+</body>
+</html>
\ No newline at end of file
diff --git a/public/admin/js/osmplayer/src/iscroll/examples/use-transition/index.html b/public/admin/js/osmplayer/src/iscroll/examples/use-transition/index.html
new file mode 100644
index 00000000000..cd93e4405f5
--- /dev/null
+++ b/public/admin/js/osmplayer/src/iscroll/examples/use-transition/index.html
@@ -0,0 +1,186 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=0, minimum-scale=1.0, maximum-scale=1.0">
+<meta name="apple-mobile-web-app-capable" content="yes">
+<meta name="apple-mobile-web-app-status-bar-style" content="black">
+<title>iScroll demo: Use transition</title>
+
+<script type="text/javascript" src="../../src/iscroll.js"></script>
+
+<script type="text/javascript">
+
+var scroll1, scroll2;
+function loaded() {
+	scroll1 = new iScroll('standard');
+	scroll2 = new iScroll('transition', { useTransition:true });
+}
+
+document.addEventListener('touchmove', function (e) { e.preventDefault(); }, false);
+document.addEventListener('DOMContentLoaded', loaded, false);
+
+</script>
+
+<style type="text/css" media="all">
+ul,li {
+	padding:0;
+	margin:0;
+	border:0;
+}
+
+body {
+	font-size:12px;
+	-webkit-user-select:none;
+    -webkit-text-size-adjust:none;
+	font-family:helvetica;
+	padding:20px;
+}
+
+#standard, #transition {
+	position:relative; z-index:1;
+	display:block; float:left;
+	width:300px; height:400px;
+	background:#aaa;
+	overflow:auto;
+	border:1px solid #aaa;
+}
+
+#standard {
+	margin-right:20px;
+}
+
+.scroller {
+	position:absolute; z-index:1;
+/*	-webkit-touch-callout:none;*/
+	-webkit-tap-highlight-color:rgba(0,0,0,0);
+	width:100%;
+	padding:0;
+}
+
+.scroller ul {
+	list-style:none;
+	padding:0;
+	margin:0;
+	width:100%;
+	text-align:left;
+}
+
+.scroller li {
+	padding:0 10px;
+	height:40px;
+	line-height:40px;
+	border-bottom:1px solid #ccc;
+	border-top:1px solid #fff;
+	background-color:#fafafa;
+	font-size:14px;
+}
+
+#myFrame {
+	position:absolute;
+	top:0; left:0;
+}
+
+</style>
+</head>
+<body>
+<h1>Open this page on iPad to test the difference between standard iScroll and iScroll in "transition mode"</h1>
+
+<div id="standard">
+	<div class="scroller">
+		<ul>
+			<li><strong>Standard iScroll</strong></li>
+			<li>Pretty row 2</li>
+			<li>Pretty row 3</li>
+			<li>Pretty row 4</li>
+			<li>Pretty row 5</li>
+			<li>Pretty row 6</li>
+			<li>Pretty row 7</li>
+			<li>Pretty row 8</li>
+			<li>Pretty row 9</li>
+			<li>Pretty row 10</li>
+			<li><strong>Standard iScroll</strong></li>
+			<li>Pretty row 12</li>
+			<li>Pretty row 13</li>
+			<li>Pretty row 14</li>
+			<li>Pretty row 15</li>
+			<li>Pretty row 16</li>
+			<li>Pretty row 17</li>
+			<li>Pretty row 18</li>
+			<li>Pretty row 19</li>
+			<li>Pretty row 20</li>
+			<li><strong>Standard iScroll</strong></li>
+			<li>Pretty row 22</li>
+			<li>Pretty row 23</li>
+			<li>Pretty row 24</li>
+			<li>Pretty row 25</li>
+			<li>Pretty row 26</li>
+			<li>Pretty row 27</li>
+			<li>Pretty row 28</li>
+			<li>Pretty row 29</li>
+			<li>Pretty row 30</li>
+			<li><strong>Standard iScroll</strong></li>
+			<li>Pretty row 32</li>
+			<li>Pretty row 33</li>
+			<li>Pretty row 34</li>
+			<li>Pretty row 35</li>
+			<li>Pretty row 36</li>
+			<li>Pretty row 37</li>
+			<li>Pretty row 38</li>
+			<li>Pretty row 39</li>
+			<li>Pretty row 40</li>
+		</ul>
+	</div>
+</div>
+
+
+<div id="transition">
+	<div class="scroller">
+		<ul>
+			<li><strong>Transition mode</strong></li>
+			<li>Pretty row 2</li>
+			<li>Pretty row 3</li>
+			<li>Pretty row 4</li>
+			<li>Pretty row 5</li>
+			<li>Pretty row 6</li>
+			<li>Pretty row 7</li>
+			<li>Pretty row 8</li>
+			<li>Pretty row 9</li>
+			<li>Pretty row 10</li>
+			<li><strong>Transition mode</strong></li>
+			<li>Pretty row 12</li>
+			<li>Pretty row 13</li>
+			<li>Pretty row 14</li>
+			<li>Pretty row 15</li>
+			<li>Pretty row 16</li>
+			<li>Pretty row 17</li>
+			<li>Pretty row 18</li>
+			<li>Pretty row 19</li>
+			<li>Pretty row 20</li>
+			<li><strong>Transition mode</strong></li>
+			<li>Pretty row 22</li>
+			<li>Pretty row 23</li>
+			<li>Pretty row 24</li>
+			<li>Pretty row 25</li>
+			<li>Pretty row 26</li>
+			<li>Pretty row 27</li>
+			<li>Pretty row 28</li>
+			<li>Pretty row 29</li>
+			<li>Pretty row 30</li>
+			<li><strong>Transition mode</strong></li>
+			<li>Pretty row 32</li>
+			<li>Pretty row 33</li>
+			<li>Pretty row 34</li>
+			<li>Pretty row 35</li>
+			<li>Pretty row 36</li>
+			<li>Pretty row 37</li>
+			<li>Pretty row 38</li>
+			<li>Pretty row 39</li>
+			<li>Pretty row 40</li>
+		</ul>
+	</div>
+</div>
+
+
+</body>
+</html>
diff --git a/public/admin/js/osmplayer/src/iscroll/examples/zoom/index.html b/public/admin/js/osmplayer/src/iscroll/examples/zoom/index.html
new file mode 100644
index 00000000000..11d682c24aa
--- /dev/null
+++ b/public/admin/js/osmplayer/src/iscroll/examples/zoom/index.html
@@ -0,0 +1,118 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=0, minimum-scale=1.0, maximum-scale=1.0">
+<meta name="apple-mobile-web-app-capable" content="yes">
+<meta name="apple-mobile-web-app-status-bar-style" content="black">
+<title>iScroll demo: zoom</title>
+
+<script type="application/javascript" src="../../src/iscroll.js"></script>
+
+<script type="text/javascript">
+
+var myScroll;
+function loaded() {
+	myScroll = new iScroll('wrapper', { zoom:true });
+}
+
+document.addEventListener('touchmove', function (e) { e.preventDefault(); }, false);
+
+document.addEventListener('DOMContentLoaded', loaded, false);
+
+</script>
+
+<style type="text/css" media="all">
+body,ul,li,p {
+	padding:0;
+	margin:0;
+	border:0;
+}
+
+body {
+	font-size:12px;
+	-webkit-user-select:none;
+    -webkit-text-size-adjust:none;
+	font-family:helvetica;
+}
+
+#header {
+	position:absolute;
+	top:0; left:0;
+	width:100%;
+	height:45px;
+	line-height:45px;
+	background-image:-webkit-gradient(linear, 0 0, 0 100%, color-stop(0, #fe96c9), color-stop(0.05, #d51875), color-stop(1, #7b0a2e));
+	background-image:-moz-linear-gradient(top, #fe96c9, #d51875 5%, #7b0a2e);
+	background-image:-o-linear-gradient(top, #fe96c9, #d51875 5%, #7b0a2e);
+	padding:0;
+	color:#eee;
+	font-size:20px;
+	text-align:center;
+}
+
+#header a {
+	color:#f3f3f3;
+	text-decoration:none;
+	font-weight:bold;
+	text-shadow:0 -1px 0 rgba(0,0,0,0.5);
+}
+
+#footer {
+	position:absolute;
+	bottom:0; left:0;
+	width:100%;
+	height:48px;
+	background-image:-webkit-gradient(linear, 0 0, 0 100%, color-stop(0, #999), color-stop(0.02, #666), color-stop(1, #222));
+	background-image:-moz-linear-gradient(top, #999, #666 2%, #222);
+	background-image:-o-linear-gradient(top, #999, #666 2%, #222);
+	padding:0;
+	border-top:1px solid #444;
+}
+
+#wrapper {
+	position:absolute; z-index:1;
+	top:45px; bottom:48px; left:0;
+	width:100%;
+	background:#aaa;
+	overflow:auto;
+}
+
+#scroller {
+	position:relative;
+/*	-webkit-touch-callout:none;*/
+	-webkit-tap-highlight-color:rgba(0,0,0,0);
+
+	width:640px;
+	padding:0;
+	background:#fff;
+}
+
+p {
+	display:block;
+	width:624px;
+	margin-bottom:1em;
+	padding:8px;
+	font-size:14px;
+}
+
+p img {
+	margin:4px 8px;
+	-webkit-transform:translate3d(0,0,0);
+}
+</style>
+</head>
+<body>
+<div id="header"><a href="http://cubiq.org/iscroll">iScroll</a></div>
+<div id="wrapper">
+	<div id="scroller">
+		<p><img src="iscroll.jpg" width="100" height="122" alt="iscroll" style="float:left">Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
+		<p>Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo. Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit aut fugit, sed quia consequuntur magni dolores eos qui ratione voluptatem sequi nesciunt. Neque porro quisquam est, qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit, sed quia non numquam eius modi tempora incidunt ut labore et dolore magnam aliquam quaerat voluptatem. Ut enim ad minima veniam, quis nostrum exercitationem ullam corporis suscipit laboriosam, nisi ut aliquid ex ea commodi consequatur? Quis autem vel eum iure reprehenderit qui in ea voluptate velit esse quam nihil molestiae consequatur, vel illum qui dolorem eum fugiat quo voluptas nulla pariatur?</p>
+		<p><img src="iscroll.jpg" width="100" height="122" alt="iscroll" style="float:right">At vero eos et accusamus et iusto odio dignissimos ducimus qui blanditiis praesentium voluptatum deleniti atque corrupti quos dolores et quas molestias excepturi sint occaecati cupiditate non provident, similique sunt in culpa qui officia deserunt mollitia animi, id est laborum et dolorum fuga. Et harum quidem rerum facilis est et expedita distinctio. Nam libero tempore, cum soluta nobis est eligendi optio cumque nihil impedit quo minus id quod maxime placeat facere possimus, omnis voluptas assumenda est, omnis dolor repellendus. Temporibus autem quibusdam et aut officiis debitis aut rerum necessitatibus saepe eveniet ut et voluptates repudiandae sint et molestiae non recusandae. Itaque earum rerum hic tenetur a sapiente delectus, ut aut reiciendis voluptatibus maiores alias consequatur aut perferendis doloribus asperiores repellat.</p>
+	</div>
+</div>
+
+<div id="footer"></div>
+
+</body>
+</html>
\ No newline at end of file
diff --git a/public/admin/js/osmplayer/src/iscroll/examples/zoom/iscroll.jpg b/public/admin/js/osmplayer/src/iscroll/examples/zoom/iscroll.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..9ed0d7ea85024fdee9fe21502e67aad97acec1e2
GIT binary patch
literal 10018
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

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/src/iscroll/license.txt b/public/admin/js/osmplayer/src/iscroll/license.txt
new file mode 100644
index 00000000000..60418c2b509
--- /dev/null
+++ b/public/admin/js/osmplayer/src/iscroll/license.txt
@@ -0,0 +1,22 @@
+Copyright (c) 2011 Matteo Spinelli, http://cubiq.org/
+
+Permission is hereby granted, free of charge, to any person
+obtaining a copy of this software and associated documentation
+files (the "Software"), to deal in the Software without
+restriction, including without limitation the rights to use,
+copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the
+Software is furnished to do so, subject to the following
+conditions:
+
+The above copyright notice and this permission notice shall be
+included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
+OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+OTHER DEALINGS IN THE SOFTWARE.
\ No newline at end of file
diff --git a/public/admin/js/osmplayer/src/iscroll/package.json b/public/admin/js/osmplayer/src/iscroll/package.json
new file mode 100644
index 00000000000..86831f295a7
--- /dev/null
+++ b/public/admin/js/osmplayer/src/iscroll/package.json
@@ -0,0 +1,14 @@
+{
+    "name": "iscroll"
+  , "description": "smooth scrolling for mobile webkit"
+  , "version": "4.1.9"
+  , "homepage": "http://cubiq.org/iscroll-4"
+  , "author": "Matteo Spinelli <> (http://cubiq.org)"
+  , "keywords": ["ender", "iscroll", "scrolling", "webkit", "iphone", "android"]
+  , "main": "./src/iscroll.js"
+  , "ender": "./src/ender.js"
+  , "repository": {
+      "type": "git"
+    , "url": "https://github.com/cubiq/iscroll.git"
+  }
+}
\ No newline at end of file
diff --git a/public/admin/js/osmplayer/src/iscroll/src/ender.js b/public/admin/js/osmplayer/src/iscroll/src/ender.js
new file mode 100644
index 00000000000..4c64f8af1be
--- /dev/null
+++ b/public/admin/js/osmplayer/src/iscroll/src/ender.js
@@ -0,0 +1,7 @@
+!function ($, iScroll) {
+  $.ender({
+    iScroll: function (options) {
+      return new iScroll(this[0], options)
+    }
+  }, true)
+}(ender, require('iscroll').iScroll)
\ No newline at end of file
diff --git a/public/admin/js/osmplayer/src/iscroll/src/iscroll-lite.js b/public/admin/js/osmplayer/src/iscroll/src/iscroll-lite.js
new file mode 100644
index 00000000000..3a6cab7d2c1
--- /dev/null
+++ b/public/admin/js/osmplayer/src/iscroll/src/iscroll-lite.js
@@ -0,0 +1,594 @@
+/*!
+ * iScroll Lite base on iScroll v4.1.6 ~ Copyright (c) 2011 Matteo Spinelli, http://cubiq.org
+ * Released under MIT license, http://cubiq.org/license
+ */
+
+(function(){
+var m = Math,
+	mround = function (r) { return r >> 0; },
+	vendor = (/webkit/i).test(navigator.appVersion) ? 'webkit' :
+		(/firefox/i).test(navigator.userAgent) ? 'Moz' :
+		'opera' in window ? 'O' : '',
+
+    // Browser capabilities
+    isAndroid = (/android/gi).test(navigator.appVersion),
+    isIDevice = (/iphone|ipad/gi).test(navigator.appVersion),
+    isPlaybook = (/playbook/gi).test(navigator.appVersion),
+    isTouchPad = (/hp-tablet/gi).test(navigator.appVersion),
+
+    has3d = 'WebKitCSSMatrix' in window && 'm11' in new WebKitCSSMatrix(),
+    hasTouch = 'ontouchstart' in window && !isTouchPad,
+    hasTransform = vendor + 'Transform' in document.documentElement.style,
+    hasTransitionEnd = isIDevice || isPlaybook,
+
+	nextFrame = (function() {
+	    return window.requestAnimationFrame
+			|| window.webkitRequestAnimationFrame
+			|| window.mozRequestAnimationFrame
+			|| window.oRequestAnimationFrame
+			|| window.msRequestAnimationFrame
+			|| function(callback) { return setTimeout(callback, 17); }
+	})(),
+	cancelFrame = (function () {
+	    return window.cancelRequestAnimationFrame
+			|| window.webkitCancelAnimationFrame
+			|| window.webkitCancelRequestAnimationFrame
+			|| window.mozCancelRequestAnimationFrame
+			|| window.oCancelRequestAnimationFrame
+			|| window.msCancelRequestAnimationFrame
+			|| clearTimeout
+	})(),
+
+	// Events
+	RESIZE_EV = 'onorientationchange' in window ? 'orientationchange' : 'resize',
+	START_EV = hasTouch ? 'touchstart' : 'mousedown',
+	MOVE_EV = hasTouch ? 'touchmove' : 'mousemove',
+	END_EV = hasTouch ? 'touchend' : 'mouseup',
+	CANCEL_EV = hasTouch ? 'touchcancel' : 'mouseup',
+
+	// Helpers
+	trnOpen = 'translate' + (has3d ? '3d(' : '('),
+	trnClose = has3d ? ',0)' : ')',
+
+	// Constructor
+	iScroll = function (el, options) {
+		var that = this,
+			doc = document,
+			i;
+
+		that.wrapper = typeof el == 'object' ? el : doc.getElementById(el);
+		that.wrapper.style.overflow = 'hidden';
+		that.scroller = that.wrapper.children[0];
+
+		// Default options
+		that.options = {
+			hScroll: true,
+			vScroll: true,
+			x: 0,
+			y: 0,
+			bounce: true,
+			bounceLock: false,
+			momentum: true,
+			lockDirection: true,
+			useTransform: true,
+			useTransition: false,
+
+			// Events
+			onRefresh: null,
+			onBeforeScrollStart: function (e) { e.preventDefault(); },
+			onScrollStart: null,
+			onBeforeScrollMove: null,
+			onScrollMove: null,
+			onBeforeScrollEnd: null,
+			onScrollEnd: null,
+			onTouchEnd: null,
+			onDestroy: null
+		};
+
+		// User defined options
+		for (i in options) that.options[i] = options[i];
+
+		// Set starting position
+		that.x = that.options.x;
+		that.y = that.options.y;
+
+		// Normalize options
+		that.options.useTransform = hasTransform ? that.options.useTransform : false;
+		that.options.hScrollbar = that.options.hScroll && that.options.hScrollbar;
+		that.options.vScrollbar = that.options.vScroll && that.options.vScrollbar;
+		that.options.useTransition = hasTransitionEnd && that.options.useTransition;
+
+		// Set some default styles
+		that.scroller.style[vendor + 'TransitionProperty'] = that.options.useTransform ? '-' + vendor.toLowerCase() + '-transform' : 'top left';
+		that.scroller.style[vendor + 'TransitionDuration'] = '0';
+		that.scroller.style[vendor + 'TransformOrigin'] = '0 0';
+		if (that.options.useTransition) that.scroller.style[vendor + 'TransitionTimingFunction'] = 'cubic-bezier(0.33,0.66,0.66,1)';
+		
+		if (that.options.useTransform) that.scroller.style[vendor + 'Transform'] = trnOpen + that.x + 'px,' + that.y + 'px' + trnClose;
+		else that.scroller.style.cssText += ';position:absolute;top:' + that.y + 'px;left:' + that.x + 'px';
+
+		that.refresh();
+
+		that._bind(RESIZE_EV, window);
+		that._bind(START_EV);
+		if (!hasTouch) that._bind('mouseout', that.wrapper);
+	};
+
+// Prototype
+iScroll.prototype = {
+	enabled: true,
+	x: 0,
+	y: 0,
+	steps: [],
+	scale: 1,
+	
+	handleEvent: function (e) {
+		var that = this;
+		switch(e.type) {
+			case START_EV:
+				if (!hasTouch && e.button !== 0) return;
+				that._start(e);
+				break;
+			case MOVE_EV: that._move(e); break;
+			case END_EV:
+			case CANCEL_EV: that._end(e); break;
+			case RESIZE_EV: that._resize(); break;
+			case 'mouseout': that._mouseout(e); break;
+			case 'webkitTransitionEnd': that._transitionEnd(e); break;
+		}
+	},
+
+	_resize: function () {
+		this.refresh();
+	},
+	
+	_pos: function (x, y) {
+		x = this.hScroll ? x : 0;
+		y = this.vScroll ? y : 0;
+
+		if (this.options.useTransform) {
+			this.scroller.style[vendor + 'Transform'] = trnOpen + x + 'px,' + y + 'px' + trnClose + ' scale(' + this.scale + ')';
+		} else {
+			x = mround(x);
+			y = mround(y);
+			this.scroller.style.left = x + 'px';
+			this.scroller.style.top = y + 'px';
+		}
+
+		this.x = x;
+		this.y = y;
+	},
+
+	_start: function (e) {
+		var that = this,
+			point = hasTouch ? e.touches[0] : e,
+			matrix, x, y;
+
+		if (!that.enabled) return;
+
+		if (that.options.onBeforeScrollStart) that.options.onBeforeScrollStart.call(that, e);
+		
+		if (that.options.useTransition) that._transitionTime(0);
+
+		that.moved = false;
+		that.animating = false;
+		that.zoomed = false;
+		that.distX = 0;
+		that.distY = 0;
+		that.absDistX = 0;
+		that.absDistY = 0;
+		that.dirX = 0;
+		that.dirY = 0;
+
+		if (that.options.momentum) {
+			if (that.options.useTransform) {
+				// Very lame general purpose alternative to CSSMatrix
+				matrix = getComputedStyle(that.scroller, null)[vendor + 'Transform'].replace(/[^0-9-.,]/g, '').split(',');
+				x = matrix[4] * 1;
+				y = matrix[5] * 1;
+			} else {
+				x = getComputedStyle(that.scroller, null).left.replace(/[^0-9-]/g, '') * 1;
+				y = getComputedStyle(that.scroller, null).top.replace(/[^0-9-]/g, '') * 1;
+			}
+			
+			if (x != that.x || y != that.y) {
+				if (that.options.useTransition) that._unbind('webkitTransitionEnd');
+				else cancelFrame(that.aniTime);
+				that.steps = [];
+				that._pos(x, y);
+			}
+		}
+
+		that.startX = that.x;
+		that.startY = that.y;
+		that.pointX = point.pageX;
+		that.pointY = point.pageY;
+
+		that.startTime = e.timeStamp || Date.now();
+
+		if (that.options.onScrollStart) that.options.onScrollStart.call(that, e);
+
+		that._bind(MOVE_EV);
+		that._bind(END_EV);
+		that._bind(CANCEL_EV);
+	},
+	
+	_move: function (e) {
+		var that = this,
+			point = hasTouch ? e.touches[0] : e,
+			deltaX = point.pageX - that.pointX,
+			deltaY = point.pageY - that.pointY,
+			newX = that.x + deltaX,
+			newY = that.y + deltaY,
+			timestamp = e.timeStamp || Date.now();
+
+		if (that.options.onBeforeScrollMove) that.options.onBeforeScrollMove.call(that, e);
+
+		that.pointX = point.pageX;
+		that.pointY = point.pageY;
+
+		// Slow down if outside of the boundaries
+		if (newX > 0 || newX < that.maxScrollX) {
+			newX = that.options.bounce ? that.x + (deltaX / 2) : newX >= 0 || that.maxScrollX >= 0 ? 0 : that.maxScrollX;
+		}
+		if (newY > 0 || newY < that.maxScrollY) { 
+			newY = that.options.bounce ? that.y + (deltaY / 2) : newY >= 0 || that.maxScrollY >= 0 ? 0 : that.maxScrollY;
+		}
+
+		that.distX += deltaX;
+		that.distY += deltaY;
+		that.absDistX = m.abs(that.distX);
+		that.absDistY = m.abs(that.distY);
+
+		if (that.absDistX < 6 && that.absDistY < 6) {
+			return;
+		}
+
+		// Lock direction
+		if (that.options.lockDirection) {
+			if (that.absDistX > that.absDistY + 5) {
+				newY = that.y;
+				deltaY = 0;
+			} else if (that.absDistY > that.absDistX + 5) {
+				newX = that.x;
+				deltaX = 0;
+			}
+		}
+
+		that.moved = true;
+		that._pos(newX, newY);
+		that.dirX = deltaX > 0 ? -1 : deltaX < 0 ? 1 : 0;
+		that.dirY = deltaY > 0 ? -1 : deltaY < 0 ? 1 : 0;
+
+		if (timestamp - that.startTime > 300) {
+			that.startTime = timestamp;
+			that.startX = that.x;
+			that.startY = that.y;
+		}
+		
+		if (that.options.onScrollMove) that.options.onScrollMove.call(that, e);
+	},
+	
+	_end: function (e) {
+		if (hasTouch && e.touches.length != 0) return;
+
+		var that = this,
+			point = hasTouch ? e.changedTouches[0] : e,
+			target, ev,
+			momentumX = { dist:0, time:0 },
+			momentumY = { dist:0, time:0 },
+			duration = (e.timeStamp || Date.now()) - that.startTime,
+			newPosX = that.x,
+			newPosY = that.y,
+			newDuration;
+
+		that._unbind(MOVE_EV);
+		that._unbind(END_EV);
+		that._unbind(CANCEL_EV);
+
+		if (that.options.onBeforeScrollEnd) that.options.onBeforeScrollEnd.call(that, e);
+
+		if (!that.moved) {
+			if (hasTouch) {
+				// Find the last touched element
+				target = point.target;
+				while (target.nodeType != 1) target = target.parentNode;
+
+				if (target.tagName != 'SELECT' && target.tagName != 'INPUT' && target.tagName != 'TEXTAREA') {
+					ev = document.createEvent('MouseEvents');
+					ev.initMouseEvent('click', true, true, e.view, 1,
+						point.screenX, point.screenY, point.clientX, point.clientY,
+						e.ctrlKey, e.altKey, e.shiftKey, e.metaKey,
+						0, null);
+					ev._fake = true;
+					target.dispatchEvent(ev);
+				}
+			}
+
+			that._resetPos(200);
+
+			if (that.options.onTouchEnd) that.options.onTouchEnd.call(that, e);
+			return;
+		}
+
+		if (duration < 300 && that.options.momentum) {
+			momentumX = newPosX ? that._momentum(newPosX - that.startX, duration, -that.x, that.scrollerW - that.wrapperW + that.x, that.options.bounce ? that.wrapperW : 0) : momentumX;
+			momentumY = newPosY ? that._momentum(newPosY - that.startY, duration, -that.y, (that.maxScrollY < 0 ? that.scrollerH - that.wrapperH + that.y : 0), that.options.bounce ? that.wrapperH : 0) : momentumY;
+
+			newPosX = that.x + momentumX.dist;
+			newPosY = that.y + momentumY.dist;
+
+ 			if ((that.x > 0 && newPosX > 0) || (that.x < that.maxScrollX && newPosX < that.maxScrollX)) momentumX = { dist:0, time:0 };
+ 			if ((that.y > 0 && newPosY > 0) || (that.y < that.maxScrollY && newPosY < that.maxScrollY)) momentumY = { dist:0, time:0 };
+		}
+
+		if (momentumX.dist || momentumY.dist) {
+			newDuration = m.max(m.max(momentumX.time, momentumY.time), 10);
+
+			that.scrollTo(mround(newPosX), mround(newPosY), newDuration);
+
+			if (that.options.onTouchEnd) that.options.onTouchEnd.call(that, e);
+			return;
+		}
+
+		that._resetPos(200);
+		if (that.options.onTouchEnd) that.options.onTouchEnd.call(that, e);
+	},
+	
+	_resetPos: function (time) {
+		var that = this,
+			resetX = that.x >= 0 ? 0 : that.x < that.maxScrollX ? that.maxScrollX : that.x,
+			resetY = that.y >= 0 || that.maxScrollY > 0 ? 0 : that.y < that.maxScrollY ? that.maxScrollY : that.y;
+
+		if (resetX == that.x && resetY == that.y) {
+			if (that.moved) {
+				if (that.options.onScrollEnd) that.options.onScrollEnd.call(that);		// Execute custom code on scroll end
+				that.moved = false;
+			}
+
+			return;
+		}
+
+		that.scrollTo(resetX, resetY, time || 0);
+	},
+	
+	_mouseout: function (e) {
+		var t = e.relatedTarget;
+
+		if (!t) {
+			this._end(e);
+			return;
+		}
+
+		while (t = t.parentNode) if (t == this.wrapper) return;
+		
+		this._end(e);
+	},
+
+	_transitionEnd: function (e) {
+		var that = this;
+
+		if (e.target != that.scroller) return;
+
+		that._unbind('webkitTransitionEnd');
+		
+		that._startAni();
+	},
+
+	/**
+	 *
+	 * Utilities
+	 *
+	 */
+	_startAni: function () {
+		var that = this,
+			startX = that.x, startY = that.y,
+			startTime = Date.now(),
+			step, easeOut,
+			animate;
+
+		if (that.animating) return;
+
+		if (!that.steps.length) {
+			that._resetPos(400);
+			return;
+		}
+
+		step = that.steps.shift();
+
+		if (step.x == startX && step.y == startY) step.time = 0;
+
+		that.animating = true;
+		that.moved = true;
+
+		if (that.options.useTransition) {
+			that._transitionTime(step.time);
+			that._pos(step.x, step.y);
+			that.animating = false;
+			if (step.time) that._bind('webkitTransitionEnd');
+			else that._resetPos(0);
+			return;
+		}
+		
+		animate = function () {
+			var now = Date.now(),
+				newX, newY;
+
+			if (now >= startTime + step.time) {
+				that._pos(step.x, step.y);
+				that.animating = false;
+				if (that.options.onAnimationEnd) that.options.onAnimationEnd.call(that);			// Execute custom code on animation end
+				that._startAni();
+				return;
+			}
+
+			now = (now - startTime) / step.time - 1;
+			easeOut = m.sqrt(1 - now * now);
+			newX = (step.x - startX) * easeOut + startX;
+			newY = (step.y - startY) * easeOut + startY;
+			that._pos(newX, newY);
+			if (that.animating) that.aniTime = nextFrame(animate);
+		};
+		
+		animate();
+	},
+
+	_transitionTime: function (time) {
+		this.scroller.style[vendor + 'TransitionDuration'] = time + 'ms';
+	},
+	
+	_momentum: function (dist, time, maxDistUpper, maxDistLower, size) {
+		var deceleration = 0.0006,
+			speed = m.abs(dist) / time,
+			newDist = (speed * speed) / (2 * deceleration),
+			newTime = 0, outsideDist = 0;
+
+		// Proportinally reduce speed if we are outside of the boundaries 
+		if (dist > 0 && newDist > maxDistUpper) {
+			outsideDist = size / (6 / (newDist / speed * deceleration));
+			maxDistUpper = maxDistUpper + outsideDist;
+			speed = speed * maxDistUpper / newDist;
+			newDist = maxDistUpper;
+		} else if (dist < 0 && newDist > maxDistLower) {
+			outsideDist = size / (6 / (newDist / speed * deceleration));
+			maxDistLower = maxDistLower + outsideDist;
+			speed = speed * maxDistLower / newDist;
+			newDist = maxDistLower;
+		}
+
+		newDist = newDist * (dist < 0 ? -1 : 1);
+		newTime = speed / deceleration;
+
+		return { dist: newDist, time: mround(newTime) };
+	},
+
+	_offset: function (el) {
+		var left = -el.offsetLeft,
+			top = -el.offsetTop;
+			
+		while (el = el.offsetParent) {
+			left -= el.offsetLeft;
+			top -= el.offsetTop;
+		} 
+
+		return { left: left, top: top };
+	},
+
+	_bind: function (type, el, bubble) {
+		(el || this.scroller).addEventListener(type, this, !!bubble);
+	},
+
+	_unbind: function (type, el, bubble) {
+		(el || this.scroller).removeEventListener(type, this, !!bubble);
+	},
+
+
+	/**
+	 *
+	 * Public methods
+	 *
+	 */
+	destroy: function () {
+		var that = this;
+
+		that.scroller.style[vendor + 'Transform'] = '';
+
+		// Remove the event listeners
+		that._unbind(RESIZE_EV, window);
+		that._unbind(START_EV);
+		that._unbind(MOVE_EV);
+		that._unbind(END_EV);
+		that._unbind(CANCEL_EV);
+		that._unbind('mouseout', that.wrapper);
+		if (that.options.useTransition) that._unbind('webkitTransitionEnd');
+		
+		if (that.options.onDestroy) that.options.onDestroy.call(that);
+	},
+
+	refresh: function () {
+		var that = this,
+			offset;
+
+		that.wrapperW = that.wrapper.clientWidth;
+		that.wrapperH = that.wrapper.clientHeight;
+
+		that.scrollerW = that.scroller.offsetWidth;
+		that.scrollerH = that.scroller.offsetHeight;
+		that.maxScrollX = that.wrapperW - that.scrollerW;
+		that.maxScrollY = that.wrapperH - that.scrollerH;
+		that.dirX = 0;
+		that.dirY = 0;
+
+		that.hScroll = that.options.hScroll && that.maxScrollX < 0;
+		that.vScroll = that.options.vScroll && (!that.options.bounceLock && !that.hScroll || that.scrollerH > that.wrapperH);
+
+		offset = that._offset(that.wrapper);
+		that.wrapperOffsetLeft = -offset.left;
+		that.wrapperOffsetTop = -offset.top;
+
+
+		that.scroller.style[vendor + 'TransitionDuration'] = '0';
+
+		that._resetPos(200);
+	},
+
+	scrollTo: function (x, y, time, relative) {
+		var that = this,
+			step = x,
+			i, l;
+
+		that.stop();
+
+		if (!step.length) step = [{ x: x, y: y, time: time, relative: relative }];
+		
+		for (i=0, l=step.length; i<l; i++) {
+			if (step[i].relative) { step[i].x = that.x - step[i].x; step[i].y = that.y - step[i].y; }
+			that.steps.push({ x: step[i].x, y: step[i].y, time: step[i].time || 0 });
+		}
+
+		that._startAni();
+	},
+
+	scrollToElement: function (el, time) {
+		var that = this, pos;
+		el = el.nodeType ? el : that.scroller.querySelector(el);
+		if (!el) return;
+
+		pos = that._offset(el);
+		pos.left += that.wrapperOffsetLeft;
+		pos.top += that.wrapperOffsetTop;
+
+		pos.left = pos.left > 0 ? 0 : pos.left < that.maxScrollX ? that.maxScrollX : pos.left;
+		pos.top = pos.top > 0 ? 0 : pos.top < that.maxScrollY ? that.maxScrollY : pos.top;
+		time = time === undefined ? m.max(m.abs(pos.left)*2, m.abs(pos.top)*2) : time;
+
+		that.scrollTo(pos.left, pos.top, time);
+	},
+
+	disable: function () {
+		this.stop();
+		this._resetPos(0);
+		this.enabled = false;
+
+		// If disabled after touchstart we make sure that there are no left over events
+		this._unbind(MOVE_EV);
+		this._unbind(END_EV);
+		this._unbind(CANCEL_EV);
+	},
+	
+	enable: function () {
+		this.enabled = true;
+	},
+	
+	stop: function () {
+		cancelFrame(this.aniTime);
+		this.steps = [];
+		this.moved = false;
+		this.animating = false;
+	}
+};
+
+if (typeof exports !== 'undefined') exports.iScroll = iScroll;
+else window.iScroll = iScroll;
+
+})();
diff --git a/public/admin/js/osmplayer/src/iscroll/src/iscroll.js b/public/admin/js/osmplayer/src/iscroll/src/iscroll.js
new file mode 100644
index 00000000000..0957eca3cc5
--- /dev/null
+++ b/public/admin/js/osmplayer/src/iscroll/src/iscroll.js
@@ -0,0 +1,1076 @@
+/*!
+ * iScroll v4.1.9 ~ Copyright (c) 2011 Matteo Spinelli, http://cubiq.org
+ * Released under MIT license, http://cubiq.org/license
+ */
+(function(){
+var m = Math,
+	mround = function (r) { return r >> 0; },
+	vendor = (/webkit/i).test(navigator.appVersion) ? 'webkit' :
+		(/firefox/i).test(navigator.userAgent) ? 'Moz' :
+		(/trident/i).test(navigator.userAgent) ? 'ms' :
+		'opera' in window ? 'O' : '',
+
+    // Browser capabilities
+    isAndroid = (/android/gi).test(navigator.appVersion),
+    isIDevice = (/iphone|ipad/gi).test(navigator.appVersion),
+    isPlaybook = (/playbook/gi).test(navigator.appVersion),
+    isTouchPad = (/hp-tablet/gi).test(navigator.appVersion),
+
+    has3d = 'WebKitCSSMatrix' in window && 'm11' in new WebKitCSSMatrix(),
+    hasTouch = 'ontouchstart' in window && !isTouchPad,
+    hasTransform = vendor + 'Transform' in document.documentElement.style,
+    hasTransitionEnd = isIDevice || isPlaybook,
+
+	nextFrame = (function() {
+	    return window.requestAnimationFrame
+			|| window.webkitRequestAnimationFrame
+			|| window.mozRequestAnimationFrame
+			|| window.oRequestAnimationFrame
+			|| window.msRequestAnimationFrame
+			|| function(callback) { return setTimeout(callback, 1); }
+	})(),
+	cancelFrame = (function () {
+	    return window.cancelRequestAnimationFrame
+			|| window.webkitCancelAnimationFrame
+			|| window.webkitCancelRequestAnimationFrame
+			|| window.mozCancelRequestAnimationFrame
+			|| window.oCancelRequestAnimationFrame
+			|| window.msCancelRequestAnimationFrame
+			|| clearTimeout
+	})(),
+
+	// Events
+	RESIZE_EV = 'onorientationchange' in window ? 'orientationchange' : 'resize',
+	START_EV = hasTouch ? 'touchstart' : 'mousedown',
+	MOVE_EV = hasTouch ? 'touchmove' : 'mousemove',
+	END_EV = hasTouch ? 'touchend' : 'mouseup',
+	CANCEL_EV = hasTouch ? 'touchcancel' : 'mouseup',
+	WHEEL_EV = vendor == 'Moz' ? 'DOMMouseScroll' : 'mousewheel',
+
+	// Helpers
+	trnOpen = 'translate' + (has3d ? '3d(' : '('),
+	trnClose = has3d ? ',0)' : ')',
+
+	// Constructor
+	iScroll = function (el, options) {
+		var that = this,
+			doc = document,
+			i;
+
+		that.wrapper = typeof el == 'object' ? el : doc.getElementById(el);
+		that.wrapper.style.overflow = 'hidden';
+		that.scroller = that.wrapper.children[0];
+
+		// Default options
+		that.options = {
+			hScroll: true,
+			vScroll: true,
+			x: 0,
+			y: 0,
+			bounce: true,
+			bounceLock: false,
+			momentum: true,
+			lockDirection: true,
+			useTransform: true,
+			useTransition: false,
+			topOffset: 0,
+			checkDOMChanges: false,		// Experimental
+
+			// Scrollbar
+			hScrollbar: true,
+			vScrollbar: true,
+			fixedScrollbar: isAndroid,
+			hideScrollbar: isIDevice,
+			fadeScrollbar: isIDevice && has3d,
+			scrollbarClass: '',
+
+			// Zoom
+			zoom: false,
+			zoomMin: 1,
+			zoomMax: 4,
+			doubleTapZoom: 2,
+			wheelAction: 'scroll',
+
+			// Snap
+			snap: false,
+			snapThreshold: 1,
+
+			// Events
+			onRefresh: null,
+			onBeforeScrollStart: function (e) { e.preventDefault(); },
+			onScrollStart: null,
+			onBeforeScrollMove: null,
+			onScrollMove: null,
+			onBeforeScrollEnd: null,
+			onScrollEnd: null,
+			onTouchEnd: null,
+			onDestroy: null,
+			onZoomStart: null,
+			onZoom: null,
+			onZoomEnd: null
+		};
+
+		// User defined options
+		for (i in options) that.options[i] = options[i];
+		
+		// Set starting position
+		that.x = that.options.x;
+		that.y = that.options.y;
+
+		// Normalize options
+		that.options.useTransform = hasTransform ? that.options.useTransform : false;
+		that.options.hScrollbar = that.options.hScroll && that.options.hScrollbar;
+		that.options.vScrollbar = that.options.vScroll && that.options.vScrollbar;
+		that.options.zoom = that.options.useTransform && that.options.zoom;
+		that.options.useTransition = hasTransitionEnd && that.options.useTransition;
+
+		// Helpers FIX ANDROID BUG!
+		// translate3d and scale doesn't work together! 
+		// Ignoring 3d ONLY WHEN YOU SET that.options.zoom
+		if ( that.options.zoom && isAndroid ){
+			trnOpen = 'translate(';
+			trnClose = ')';
+		}
+		
+		// Set some default styles
+		that.scroller.style[vendor + 'TransitionProperty'] = that.options.useTransform ? '-' + vendor.toLowerCase() + '-transform' : 'top left';
+		that.scroller.style[vendor + 'TransitionDuration'] = '0';
+		that.scroller.style[vendor + 'TransformOrigin'] = '0 0';
+		if (that.options.useTransition) that.scroller.style[vendor + 'TransitionTimingFunction'] = 'cubic-bezier(0.33,0.66,0.66,1)';
+		
+		if (that.options.useTransform) that.scroller.style[vendor + 'Transform'] = trnOpen + that.x + 'px,' + that.y + 'px' + trnClose;
+		else that.scroller.style.cssText += ';position:absolute;top:' + that.y + 'px;left:' + that.x + 'px';
+
+		if (that.options.useTransition) that.options.fixedScrollbar = true;
+
+		that.refresh();
+
+		that._bind(RESIZE_EV, window);
+		that._bind(START_EV);
+		if (!hasTouch) {
+			that._bind('mouseout', that.wrapper);
+			if (that.options.wheelAction != 'none')
+				that._bind(WHEEL_EV);
+		}
+
+		if (that.options.checkDOMChanges) that.checkDOMTime = setInterval(function () {
+			that._checkDOMChanges();
+		}, 500);
+	};
+
+// Prototype
+iScroll.prototype = {
+	enabled: true,
+	x: 0,
+	y: 0,
+	steps: [],
+	scale: 1,
+	currPageX: 0, currPageY: 0,
+	pagesX: [], pagesY: [],
+	aniTime: null,
+	wheelZoomCount: 0,
+	
+	handleEvent: function (e) {
+		var that = this;
+		switch(e.type) {
+			case START_EV:
+				if (!hasTouch && e.button !== 0) return;
+				that._start(e);
+				break;
+			case MOVE_EV: that._move(e); break;
+			case END_EV:
+			case CANCEL_EV: that._end(e); break;
+			case RESIZE_EV: that._resize(); break;
+			case WHEEL_EV: that._wheel(e); break;
+			case 'mouseout': that._mouseout(e); break;
+			case 'webkitTransitionEnd': that._transitionEnd(e); break;
+		}
+	},
+	
+	_checkDOMChanges: function () {
+		if (this.moved || this.zoomed || this.animating ||
+			(this.scrollerW == this.scroller.offsetWidth * this.scale && this.scrollerH == this.scroller.offsetHeight * this.scale)) return;
+
+		this.refresh();
+	},
+	
+	_scrollbar: function (dir) {
+		var that = this,
+			doc = document,
+			bar;
+
+		if (!that[dir + 'Scrollbar']) {
+			if (that[dir + 'ScrollbarWrapper']) {
+				if (hasTransform) that[dir + 'ScrollbarIndicator'].style[vendor + 'Transform'] = '';
+				that[dir + 'ScrollbarWrapper'].parentNode.removeChild(that[dir + 'ScrollbarWrapper']);
+				that[dir + 'ScrollbarWrapper'] = null;
+				that[dir + 'ScrollbarIndicator'] = null;
+			}
+
+			return;
+		}
+
+		if (!that[dir + 'ScrollbarWrapper']) {
+			// Create the scrollbar wrapper
+			bar = doc.createElement('div');
+
+			if (that.options.scrollbarClass) bar.className = that.options.scrollbarClass + dir.toUpperCase();
+			else bar.style.cssText = 'position:absolute;z-index:100;' + (dir == 'h' ? 'height:7px;bottom:1px;left:2px;right:' + (that.vScrollbar ? '7' : '2') + 'px' : 'width:7px;bottom:' + (that.hScrollbar ? '7' : '2') + 'px;top:2px;right:1px');
+
+			bar.style.cssText += ';pointer-events:none;-' + vendor + '-transition-property:opacity;-' + vendor + '-transition-duration:' + (that.options.fadeScrollbar ? '350ms' : '0') + ';overflow:hidden;opacity:' + (that.options.hideScrollbar ? '0' : '1');
+
+			that.wrapper.appendChild(bar);
+			that[dir + 'ScrollbarWrapper'] = bar;
+
+			// Create the scrollbar indicator
+			bar = doc.createElement('div');
+			if (!that.options.scrollbarClass) {
+				bar.style.cssText = 'position:absolute;z-index:100;background:rgba(0,0,0,0.5);border:1px solid rgba(255,255,255,0.9);-' + vendor + '-background-clip:padding-box;-' + vendor + '-box-sizing:border-box;' + (dir == 'h' ? 'height:100%' : 'width:100%') + ';-' + vendor + '-border-radius:3px;border-radius:3px';
+			}
+			bar.style.cssText += ';pointer-events:none;-' + vendor + '-transition-property:-' + vendor + '-transform;-' + vendor + '-transition-timing-function:cubic-bezier(0.33,0.66,0.66,1);-' + vendor + '-transition-duration:0;-' + vendor + '-transform:' + trnOpen + '0,0' + trnClose;
+			if (that.options.useTransition) bar.style.cssText += ';-' + vendor + '-transition-timing-function:cubic-bezier(0.33,0.66,0.66,1)';
+
+			that[dir + 'ScrollbarWrapper'].appendChild(bar);
+			that[dir + 'ScrollbarIndicator'] = bar;
+		}
+
+		if (dir == 'h') {
+			that.hScrollbarSize = that.hScrollbarWrapper.clientWidth;
+			that.hScrollbarIndicatorSize = m.max(mround(that.hScrollbarSize * that.hScrollbarSize / that.scrollerW), 8);
+			that.hScrollbarIndicator.style.width = that.hScrollbarIndicatorSize + 'px';
+			that.hScrollbarMaxScroll = that.hScrollbarSize - that.hScrollbarIndicatorSize;
+			that.hScrollbarProp = that.hScrollbarMaxScroll / that.maxScrollX;
+		} else {
+			that.vScrollbarSize = that.vScrollbarWrapper.clientHeight;
+			that.vScrollbarIndicatorSize = m.max(mround(that.vScrollbarSize * that.vScrollbarSize / that.scrollerH), 8);
+			that.vScrollbarIndicator.style.height = that.vScrollbarIndicatorSize + 'px';
+			that.vScrollbarMaxScroll = that.vScrollbarSize - that.vScrollbarIndicatorSize;
+			that.vScrollbarProp = that.vScrollbarMaxScroll / that.maxScrollY;
+		}
+
+		// Reset position
+		that._scrollbarPos(dir, true);
+	},
+	
+	_resize: function () {
+		var that = this;
+		setTimeout(function () { that.refresh(); }, isAndroid ? 200 : 0);
+	},
+	
+	_pos: function (x, y) {
+		x = this.hScroll ? x : 0;
+		y = this.vScroll ? y : 0;
+
+		if (this.options.useTransform) {
+			this.scroller.style[vendor + 'Transform'] = trnOpen + x + 'px,' + y + 'px' + trnClose + ' scale(' + this.scale + ')';
+		} else {
+			x = mround(x);
+			y = mround(y);
+			this.scroller.style.left = x + 'px';
+			this.scroller.style.top = y + 'px';
+		}
+
+		this.x = x;
+		this.y = y;
+
+		this._scrollbarPos('h');
+		this._scrollbarPos('v');
+	},
+
+	_scrollbarPos: function (dir, hidden) {
+		var that = this,
+			pos = dir == 'h' ? that.x : that.y,
+			size;
+
+		if (!that[dir + 'Scrollbar']) return;
+
+		pos = that[dir + 'ScrollbarProp'] * pos;
+
+		if (pos < 0) {
+			if (!that.options.fixedScrollbar) {
+				size = that[dir + 'ScrollbarIndicatorSize'] + mround(pos * 3);
+				if (size < 8) size = 8;
+				that[dir + 'ScrollbarIndicator'].style[dir == 'h' ? 'width' : 'height'] = size + 'px';
+			}
+			pos = 0;
+		} else if (pos > that[dir + 'ScrollbarMaxScroll']) {
+			if (!that.options.fixedScrollbar) {
+				size = that[dir + 'ScrollbarIndicatorSize'] - mround((pos - that[dir + 'ScrollbarMaxScroll']) * 3);
+				if (size < 8) size = 8;
+				that[dir + 'ScrollbarIndicator'].style[dir == 'h' ? 'width' : 'height'] = size + 'px';
+				pos = that[dir + 'ScrollbarMaxScroll'] + (that[dir + 'ScrollbarIndicatorSize'] - size);
+			} else {
+				pos = that[dir + 'ScrollbarMaxScroll'];
+			}
+		}
+
+		that[dir + 'ScrollbarWrapper'].style[vendor + 'TransitionDelay'] = '0';
+		that[dir + 'ScrollbarWrapper'].style.opacity = hidden && that.options.hideScrollbar ? '0' : '1';
+		that[dir + 'ScrollbarIndicator'].style[vendor + 'Transform'] = trnOpen + (dir == 'h' ? pos + 'px,0' : '0,' + pos + 'px') + trnClose;
+	},
+	
+	_start: function (e) {
+		var that = this,
+			point = hasTouch ? e.touches[0] : e,
+			matrix, x, y,
+			c1, c2;
+
+		if (!that.enabled) return;
+
+		if (that.options.onBeforeScrollStart) that.options.onBeforeScrollStart.call(that, e);
+
+		if (that.options.useTransition || that.options.zoom) that._transitionTime(0);
+
+		that.moved = false;
+		that.animating = false;
+		that.zoomed = false;
+		that.distX = 0;
+		that.distY = 0;
+		that.absDistX = 0;
+		that.absDistY = 0;
+		that.dirX = 0;
+		that.dirY = 0;
+
+		// Gesture start
+		if (that.options.zoom && hasTouch && e.touches.length > 1) {
+			c1 = m.abs(e.touches[0].pageX-e.touches[1].pageX);
+			c2 = m.abs(e.touches[0].pageY-e.touches[1].pageY);
+			that.touchesDistStart = m.sqrt(c1 * c1 + c2 * c2);
+
+			that.originX = m.abs(e.touches[0].pageX + e.touches[1].pageX - that.wrapperOffsetLeft * 2) / 2 - that.x;
+			that.originY = m.abs(e.touches[0].pageY + e.touches[1].pageY - that.wrapperOffsetTop * 2) / 2 - that.y;
+
+			if (that.options.onZoomStart) that.options.onZoomStart.call(that, e);
+		}
+
+		if (that.options.momentum) {
+			if (that.options.useTransform) {
+				// Very lame general purpose alternative to CSSMatrix
+				matrix = getComputedStyle(that.scroller, null)[vendor + 'Transform'].replace(/[^0-9-.,]/g, '').split(',');
+				x = matrix[4] * 1;
+				y = matrix[5] * 1;
+			} else {
+				x = getComputedStyle(that.scroller, null).left.replace(/[^0-9-]/g, '') * 1;
+				y = getComputedStyle(that.scroller, null).top.replace(/[^0-9-]/g, '') * 1;
+			}
+			
+			if (x != that.x || y != that.y) {
+				if (that.options.useTransition) that._unbind('webkitTransitionEnd');
+				else cancelFrame(that.aniTime);
+				that.steps = [];
+				that._pos(x, y);
+			}
+		}
+
+		that.absStartX = that.x;	// Needed by snap threshold
+		that.absStartY = that.y;
+
+		that.startX = that.x;
+		that.startY = that.y;
+		that.pointX = point.pageX;
+		that.pointY = point.pageY;
+
+		that.startTime = e.timeStamp || Date.now();
+
+		if (that.options.onScrollStart) that.options.onScrollStart.call(that, e);
+
+		that._bind(MOVE_EV);
+		that._bind(END_EV);
+		that._bind(CANCEL_EV);
+	},
+	
+	_move: function (e) {
+		var that = this,
+			point = hasTouch ? e.touches[0] : e,
+			deltaX = point.pageX - that.pointX,
+			deltaY = point.pageY - that.pointY,
+			newX = that.x + deltaX,
+			newY = that.y + deltaY,
+			c1, c2, scale,
+			timestamp = e.timeStamp || Date.now();
+
+		if (that.options.onBeforeScrollMove) that.options.onBeforeScrollMove.call(that, e);
+
+		// Zoom
+		if (that.options.zoom && hasTouch && e.touches.length > 1) {
+			c1 = m.abs(e.touches[0].pageX - e.touches[1].pageX);
+			c2 = m.abs(e.touches[0].pageY - e.touches[1].pageY);
+			that.touchesDist = m.sqrt(c1*c1+c2*c2);
+
+			that.zoomed = true;
+
+			scale = 1 / that.touchesDistStart * that.touchesDist * this.scale;
+
+			if (scale < that.options.zoomMin) scale = 0.5 * that.options.zoomMin * Math.pow(2.0, scale / that.options.zoomMin);
+			else if (scale > that.options.zoomMax) scale = 2.0 * that.options.zoomMax * Math.pow(0.5, that.options.zoomMax / scale);
+
+			that.lastScale = scale / this.scale;
+
+			newX = this.originX - this.originX * that.lastScale + this.x,
+			newY = this.originY - this.originY * that.lastScale + this.y;
+
+			this.scroller.style[vendor + 'Transform'] = trnOpen + newX + 'px,' + newY + 'px' + trnClose + ' scale(' + scale + ')';
+
+			if (that.options.onZoom) that.options.onZoom.call(that, e);
+			return;
+		}
+
+		that.pointX = point.pageX;
+		that.pointY = point.pageY;
+
+		// Slow down if outside of the boundaries
+		if (newX > 0 || newX < that.maxScrollX) {
+			newX = that.options.bounce ? that.x + (deltaX / 2) : newX >= 0 || that.maxScrollX >= 0 ? 0 : that.maxScrollX;
+		}
+		if (newY > that.minScrollY || newY < that.maxScrollY) { 
+			newY = that.options.bounce ? that.y + (deltaY / 2) : newY >= that.minScrollY || that.maxScrollY >= 0 ? that.minScrollY : that.maxScrollY;
+		}
+
+		that.distX += deltaX;
+		that.distY += deltaY;
+		that.absDistX = m.abs(that.distX);
+		that.absDistY = m.abs(that.distY);
+
+		if (that.absDistX < 6 && that.absDistY < 6) {
+			return;
+		}
+
+		// Lock direction
+		if (that.options.lockDirection) {
+			if (that.absDistX > that.absDistY + 5) {
+				newY = that.y;
+				deltaY = 0;
+			} else if (that.absDistY > that.absDistX + 5) {
+				newX = that.x;
+				deltaX = 0;
+			}
+		}
+
+		that.moved = true;
+		that._pos(newX, newY);
+		that.dirX = deltaX > 0 ? -1 : deltaX < 0 ? 1 : 0;
+		that.dirY = deltaY > 0 ? -1 : deltaY < 0 ? 1 : 0;
+
+		if (timestamp - that.startTime > 300) {
+			that.startTime = timestamp;
+			that.startX = that.x;
+			that.startY = that.y;
+		}
+		
+		if (that.options.onScrollMove) that.options.onScrollMove.call(that, e);
+	},
+	
+	_end: function (e) {
+		if (hasTouch && e.touches.length != 0) return;
+
+		var that = this,
+			point = hasTouch ? e.changedTouches[0] : e,
+			target, ev,
+			momentumX = { dist:0, time:0 },
+			momentumY = { dist:0, time:0 },
+			duration = (e.timeStamp || Date.now()) - that.startTime,
+			newPosX = that.x,
+			newPosY = that.y,
+			distX, distY,
+			newDuration,
+			snap,
+			scale;
+
+		that._unbind(MOVE_EV);
+		that._unbind(END_EV);
+		that._unbind(CANCEL_EV);
+
+		if (that.options.onBeforeScrollEnd) that.options.onBeforeScrollEnd.call(that, e);
+
+		if (that.zoomed) {
+			scale = that.scale * that.lastScale;
+			scale = Math.max(that.options.zoomMin, scale);
+			scale = Math.min(that.options.zoomMax, scale);
+			that.lastScale = scale / that.scale;
+			that.scale = scale;
+
+			that.x = that.originX - that.originX * that.lastScale + that.x;
+			that.y = that.originY - that.originY * that.lastScale + that.y;
+			
+			that.scroller.style[vendor + 'TransitionDuration'] = '200ms';
+			that.scroller.style[vendor + 'Transform'] = trnOpen + that.x + 'px,' + that.y + 'px' + trnClose + ' scale(' + that.scale + ')';
+			
+			that.zoomed = false;
+			that.refresh();
+
+			if (that.options.onZoomEnd) that.options.onZoomEnd.call(that, e);
+			return;
+		}
+
+		if (!that.moved) {
+			if (hasTouch) {
+				if (that.doubleTapTimer && that.options.zoom) {
+					// Double tapped
+					clearTimeout(that.doubleTapTimer);
+					that.doubleTapTimer = null;
+					if (that.options.onZoomStart) that.options.onZoomStart.call(that, e);
+					that.zoom(that.pointX, that.pointY, that.scale == 1 ? that.options.doubleTapZoom : 1);
+					if (that.options.onZoomEnd) {
+						setTimeout(function() {
+							that.options.onZoomEnd.call(that, e);
+						}, 200); // 200 is default zoom duration
+					}
+				} else {
+					that.doubleTapTimer = setTimeout(function () {
+						that.doubleTapTimer = null;
+
+						// Find the last touched element
+						target = point.target;
+						while (target.nodeType != 1) target = target.parentNode;
+
+						if (target.tagName != 'SELECT' && target.tagName != 'INPUT' && target.tagName != 'TEXTAREA') {
+							ev = document.createEvent('MouseEvents');
+							ev.initMouseEvent('click', true, true, e.view, 1,
+								point.screenX, point.screenY, point.clientX, point.clientY,
+								e.ctrlKey, e.altKey, e.shiftKey, e.metaKey,
+								0, null);
+							ev._fake = true;
+							target.dispatchEvent(ev);
+						}
+					}, that.options.zoom ? 250 : 0);
+				}
+			}
+
+			that._resetPos(200);
+
+			if (that.options.onTouchEnd) that.options.onTouchEnd.call(that, e);
+			return;
+		}
+
+		if (duration < 300 && that.options.momentum) {
+			momentumX = newPosX ? that._momentum(newPosX - that.startX, duration, -that.x, that.scrollerW - that.wrapperW + that.x, that.options.bounce ? that.wrapperW : 0) : momentumX;
+			momentumY = newPosY ? that._momentum(newPosY - that.startY, duration, -that.y, (that.maxScrollY < 0 ? that.scrollerH - that.wrapperH + that.y - that.minScrollY : 0), that.options.bounce ? that.wrapperH : 0) : momentumY;
+
+			newPosX = that.x + momentumX.dist;
+			newPosY = that.y + momentumY.dist;
+
+ 			if ((that.x > 0 && newPosX > 0) || (that.x < that.maxScrollX && newPosX < that.maxScrollX)) momentumX = { dist:0, time:0 };
+ 			if ((that.y > that.minScrollY && newPosY > that.minScrollY) || (that.y < that.maxScrollY && newPosY < that.maxScrollY)) momentumY = { dist:0, time:0 };
+		}
+
+		if (momentumX.dist || momentumY.dist) {
+			newDuration = m.max(m.max(momentumX.time, momentumY.time), 10);
+
+			// Do we need to snap?
+			if (that.options.snap) {
+				distX = newPosX - that.absStartX;
+				distY = newPosY - that.absStartY;
+				if (m.abs(distX) < that.options.snapThreshold && m.abs(distY) < that.options.snapThreshold) { that.scrollTo(that.absStartX, that.absStartY, 200); }
+				else {
+					snap = that._snap(newPosX, newPosY);
+					newPosX = snap.x;
+					newPosY = snap.y;
+					newDuration = m.max(snap.time, newDuration);
+				}
+			}
+
+			that.scrollTo(mround(newPosX), mround(newPosY), newDuration);
+
+			if (that.options.onTouchEnd) that.options.onTouchEnd.call(that, e);
+			return;
+		}
+
+		// Do we need to snap?
+		if (that.options.snap) {
+			distX = newPosX - that.absStartX;
+			distY = newPosY - that.absStartY;
+			if (m.abs(distX) < that.options.snapThreshold && m.abs(distY) < that.options.snapThreshold) that.scrollTo(that.absStartX, that.absStartY, 200);
+			else {
+				snap = that._snap(that.x, that.y);
+				if (snap.x != that.x || snap.y != that.y) that.scrollTo(snap.x, snap.y, snap.time);
+			}
+
+			if (that.options.onTouchEnd) that.options.onTouchEnd.call(that, e);
+			return;
+		}
+
+		that._resetPos(200);
+		if (that.options.onTouchEnd) that.options.onTouchEnd.call(that, e);
+	},
+	
+	_resetPos: function (time) {
+		var that = this,
+			resetX = that.x >= 0 ? 0 : that.x < that.maxScrollX ? that.maxScrollX : that.x,
+			resetY = that.y >= that.minScrollY || that.maxScrollY > 0 ? that.minScrollY : that.y < that.maxScrollY ? that.maxScrollY : that.y;
+
+		if (resetX == that.x && resetY == that.y) {
+			if (that.moved) {
+				that.moved = false;
+				if (that.options.onScrollEnd) that.options.onScrollEnd.call(that);		// Execute custom code on scroll end
+			}
+
+			if (that.hScrollbar && that.options.hideScrollbar) {
+				if (vendor == 'webkit') that.hScrollbarWrapper.style[vendor + 'TransitionDelay'] = '300ms';
+				that.hScrollbarWrapper.style.opacity = '0';
+			}
+			if (that.vScrollbar && that.options.hideScrollbar) {
+				if (vendor == 'webkit') that.vScrollbarWrapper.style[vendor + 'TransitionDelay'] = '300ms';
+				that.vScrollbarWrapper.style.opacity = '0';
+			}
+
+			return;
+		}
+
+		that.scrollTo(resetX, resetY, time || 0);
+	},
+
+	_wheel: function (e) {
+		var that = this,
+			wheelDeltaX, wheelDeltaY,
+			deltaX, deltaY,
+			deltaScale;
+
+		if ('wheelDeltaX' in e) {
+			wheelDeltaX = e.wheelDeltaX / 12;
+			wheelDeltaY = e.wheelDeltaY / 12;
+		} else if('wheelDelta' in e) {
+			wheelDeltaX = wheelDeltaY = e.wheelDelta / 12;
+		} else if ('detail' in e) {
+			wheelDeltaX = wheelDeltaY = -e.detail * 3;
+		} else {
+			return;
+		}
+		
+		if (that.options.wheelAction == 'zoom') {
+			deltaScale = that.scale * Math.pow(2, 1/3 * (wheelDeltaY ? wheelDeltaY / Math.abs(wheelDeltaY) : 0));
+			if (deltaScale < that.options.zoomMin) deltaScale = that.options.zoomMin;
+			if (deltaScale > that.options.zoomMax) deltaScale = that.options.zoomMax;
+			
+			if (deltaScale != that.scale) {
+				if (!that.wheelZoomCount && that.options.onZoomStart) that.options.onZoomStart.call(that, e);
+				that.wheelZoomCount++;
+				
+				that.zoom(e.pageX, e.pageY, deltaScale, 400);
+				
+				setTimeout(function() {
+					that.wheelZoomCount--;
+					if (!that.wheelZoomCount && that.options.onZoomEnd) that.options.onZoomEnd.call(that, e);
+				}, 400);
+			}
+			
+			return;
+		}
+		
+		deltaX = that.x + wheelDeltaX;
+		deltaY = that.y + wheelDeltaY;
+
+		if (deltaX > 0) deltaX = 0;
+		else if (deltaX < that.maxScrollX) deltaX = that.maxScrollX;
+
+		if (deltaY > that.minScrollY) deltaY = that.minScrollY;
+		else if (deltaY < that.maxScrollY) deltaY = that.maxScrollY;
+
+		that.scrollTo(deltaX, deltaY, 0);
+	},
+	
+	_mouseout: function (e) {
+		var t = e.relatedTarget;
+
+		if (!t) {
+			this._end(e);
+			return;
+		}
+
+		while (t = t.parentNode) if (t == this.wrapper) return;
+		
+		this._end(e);
+	},
+
+	_transitionEnd: function (e) {
+		var that = this;
+
+		if (e.target != that.scroller) return;
+
+		that._unbind('webkitTransitionEnd');
+		
+		that._startAni();
+	},
+
+
+	/**
+	 *
+	 * Utilities
+	 *
+	 */
+	_startAni: function () {
+		var that = this,
+			startX = that.x, startY = that.y,
+			startTime = Date.now(),
+			step, easeOut,
+			animate;
+
+		if (that.animating) return;
+		
+		if (!that.steps.length) {
+			that._resetPos(400);
+			return;
+		}
+		
+		step = that.steps.shift();
+		
+		if (step.x == startX && step.y == startY) step.time = 0;
+
+		that.animating = true;
+		that.moved = true;
+		
+		if (that.options.useTransition) {
+			that._transitionTime(step.time);
+			that._pos(step.x, step.y);
+			that.animating = false;
+			if (step.time) that._bind('webkitTransitionEnd');
+			else that._resetPos(0);
+			return;
+		}
+
+		animate = function () {
+			var now = Date.now(),
+				newX, newY;
+
+			if (now >= startTime + step.time) {
+				that._pos(step.x, step.y);
+				that.animating = false;
+				if (that.options.onAnimationEnd) that.options.onAnimationEnd.call(that);			// Execute custom code on animation end
+				that._startAni();
+				return;
+			}
+
+			now = (now - startTime) / step.time - 1;
+			easeOut = m.sqrt(1 - now * now);
+			newX = (step.x - startX) * easeOut + startX;
+			newY = (step.y - startY) * easeOut + startY;
+			that._pos(newX, newY);
+			if (that.animating) that.aniTime = nextFrame(animate);
+		};
+
+		animate();
+	},
+
+	_transitionTime: function (time) {
+		time += 'ms';
+		this.scroller.style[vendor + 'TransitionDuration'] = time;
+		if (this.hScrollbar) this.hScrollbarIndicator.style[vendor + 'TransitionDuration'] = time;
+		if (this.vScrollbar) this.vScrollbarIndicator.style[vendor + 'TransitionDuration'] = time;
+	},
+
+	_momentum: function (dist, time, maxDistUpper, maxDistLower, size) {
+		var deceleration = 0.0006,
+			speed = m.abs(dist) / time,
+			newDist = (speed * speed) / (2 * deceleration),
+			newTime = 0, outsideDist = 0;
+
+		// Proportinally reduce speed if we are outside of the boundaries 
+		if (dist > 0 && newDist > maxDistUpper) {
+			outsideDist = size / (6 / (newDist / speed * deceleration));
+			maxDistUpper = maxDistUpper + outsideDist;
+			speed = speed * maxDistUpper / newDist;
+			newDist = maxDistUpper;
+		} else if (dist < 0 && newDist > maxDistLower) {
+			outsideDist = size / (6 / (newDist / speed * deceleration));
+			maxDistLower = maxDistLower + outsideDist;
+			speed = speed * maxDistLower / newDist;
+			newDist = maxDistLower;
+		}
+
+		newDist = newDist * (dist < 0 ? -1 : 1);
+		newTime = speed / deceleration;
+
+		return { dist: newDist, time: mround(newTime) };
+	},
+
+	_offset: function (el) {
+		var left = -el.offsetLeft,
+			top = -el.offsetTop;
+			
+		while (el = el.offsetParent) {
+			left -= el.offsetLeft;
+			top -= el.offsetTop;
+		}
+		
+		if (el != this.wrapper) {
+			left *= this.scale;
+			top *= this.scale;
+		}
+
+		return { left: left, top: top };
+	},
+
+	_snap: function (x, y) {
+		var that = this,
+			i, l,
+			page, time,
+			sizeX, sizeY;
+
+		// Check page X
+		page = that.pagesX.length - 1;
+		for (i=0, l=that.pagesX.length; i<l; i++) {
+			if (x >= that.pagesX[i]) {
+				page = i;
+				break;
+			}
+		}
+		if (page == that.currPageX && page > 0 && that.dirX < 0) page--;
+		x = that.pagesX[page];
+		sizeX = m.abs(x - that.pagesX[that.currPageX]);
+		sizeX = sizeX ? m.abs(that.x - x) / sizeX * 500 : 0;
+		that.currPageX = page;
+
+		// Check page Y
+		page = that.pagesY.length-1;
+		for (i=0; i<page; i++) {
+			if (y >= that.pagesY[i]) {
+				page = i;
+				break;
+			}
+		}
+		if (page == that.currPageY && page > 0 && that.dirY < 0) page--;
+		y = that.pagesY[page];
+		sizeY = m.abs(y - that.pagesY[that.currPageY]);
+		sizeY = sizeY ? m.abs(that.y - y) / sizeY * 500 : 0;
+		that.currPageY = page;
+
+		// Snap with constant speed (proportional duration)
+		time = mround(m.max(sizeX, sizeY)) || 200;
+
+		return { x: x, y: y, time: time };
+	},
+
+	_bind: function (type, el, bubble) {
+		(el || this.scroller).addEventListener(type, this, !!bubble);
+	},
+
+	_unbind: function (type, el, bubble) {
+		(el || this.scroller).removeEventListener(type, this, !!bubble);
+	},
+
+
+	/**
+	 *
+	 * Public methods
+	 *
+	 */
+	destroy: function () {
+		var that = this;
+
+		that.scroller.style[vendor + 'Transform'] = '';
+
+		// Remove the scrollbars
+		that.hScrollbar = false;
+		that.vScrollbar = false;
+		that._scrollbar('h');
+		that._scrollbar('v');
+
+		// Remove the event listeners
+		that._unbind(RESIZE_EV, window);
+		that._unbind(START_EV);
+		that._unbind(MOVE_EV);
+		that._unbind(END_EV);
+		that._unbind(CANCEL_EV);
+		
+		if (!that.options.hasTouch) {
+			that._unbind('mouseout', that.wrapper);
+			that._unbind(WHEEL_EV);
+		}
+		
+		if (that.options.useTransition) that._unbind('webkitTransitionEnd');
+		
+		if (that.options.checkDOMChanges) clearInterval(that.checkDOMTime);
+		
+		if (that.options.onDestroy) that.options.onDestroy.call(that);
+	},
+
+	refresh: function () {
+		var that = this,
+			offset,
+			i, l,
+			els,
+			pos = 0,
+			page = 0;
+
+		if (that.scale < that.options.zoomMin) that.scale = that.options.zoomMin;
+		that.wrapperW = that.wrapper.clientWidth || 1;
+		that.wrapperH = that.wrapper.clientHeight || 1;
+
+		that.minScrollY = -that.options.topOffset || 0;
+		that.scrollerW = mround(that.scroller.offsetWidth * that.scale);
+		that.scrollerH = mround((that.scroller.offsetHeight + that.minScrollY) * that.scale);
+		that.maxScrollX = that.wrapperW - that.scrollerW;
+		that.maxScrollY = that.wrapperH - that.scrollerH + that.minScrollY;
+		that.dirX = 0;
+		that.dirY = 0;
+
+		if (that.options.onRefresh) that.options.onRefresh.call(that);
+
+		that.hScroll = that.options.hScroll && that.maxScrollX < 0;
+		that.vScroll = that.options.vScroll && (!that.options.bounceLock && !that.hScroll || that.scrollerH > that.wrapperH);
+
+		that.hScrollbar = that.hScroll && that.options.hScrollbar;
+		that.vScrollbar = that.vScroll && that.options.vScrollbar && that.scrollerH > that.wrapperH;
+
+		offset = that._offset(that.wrapper);
+		that.wrapperOffsetLeft = -offset.left;
+		that.wrapperOffsetTop = -offset.top;
+
+		// Prepare snap
+		if (typeof that.options.snap == 'string') {
+			that.pagesX = [];
+			that.pagesY = [];
+			els = that.scroller.querySelectorAll(that.options.snap);
+			for (i=0, l=els.length; i<l; i++) {
+				pos = that._offset(els[i]);
+				pos.left += that.wrapperOffsetLeft;
+				pos.top += that.wrapperOffsetTop;
+				that.pagesX[i] = pos.left < that.maxScrollX ? that.maxScrollX : pos.left * that.scale;
+				that.pagesY[i] = pos.top < that.maxScrollY ? that.maxScrollY : pos.top * that.scale;
+			}
+		} else if (that.options.snap) {
+			that.pagesX = [];
+			while (pos >= that.maxScrollX) {
+				that.pagesX[page] = pos;
+				pos = pos - that.wrapperW;
+				page++;
+			}
+			if (that.maxScrollX%that.wrapperW) that.pagesX[that.pagesX.length] = that.maxScrollX - that.pagesX[that.pagesX.length-1] + that.pagesX[that.pagesX.length-1];
+
+			pos = 0;
+			page = 0;
+			that.pagesY = [];
+			while (pos >= that.maxScrollY) {
+				that.pagesY[page] = pos;
+				pos = pos - that.wrapperH;
+				page++;
+			}
+			if (that.maxScrollY%that.wrapperH) that.pagesY[that.pagesY.length] = that.maxScrollY - that.pagesY[that.pagesY.length-1] + that.pagesY[that.pagesY.length-1];
+		}
+
+		// Prepare the scrollbars
+		that._scrollbar('h');
+		that._scrollbar('v');
+
+		if (!that.zoomed) {
+			that.scroller.style[vendor + 'TransitionDuration'] = '0';
+			that._resetPos(200);
+		}
+	},
+
+	scrollTo: function (x, y, time, relative) {
+		var that = this,
+			step = x,
+			i, l;
+
+		that.stop();
+
+		if (!step.length) step = [{ x: x, y: y, time: time, relative: relative }];
+		
+		for (i=0, l=step.length; i<l; i++) {
+			if (step[i].relative) { step[i].x = that.x - step[i].x; step[i].y = that.y - step[i].y; }
+			that.steps.push({ x: step[i].x, y: step[i].y, time: step[i].time || 0 });
+		}
+
+		that._startAni();
+	},
+
+	scrollToElement: function (el, time) {
+		var that = this, pos;
+		el = el.nodeType ? el : that.scroller.querySelector(el);
+		if (!el) return;
+
+		pos = that._offset(el);
+		pos.left += that.wrapperOffsetLeft;
+		pos.top += that.wrapperOffsetTop;
+
+		pos.left = pos.left > 0 ? 0 : pos.left < that.maxScrollX ? that.maxScrollX : pos.left;
+		pos.top = pos.top > that.minScrollY ? that.minScrollY : pos.top < that.maxScrollY ? that.maxScrollY : pos.top;
+		time = time === undefined ? m.max(m.abs(pos.left)*2, m.abs(pos.top)*2) : time;
+
+		that.scrollTo(pos.left, pos.top, time);
+	},
+
+	scrollToPage: function (pageX, pageY, time) {
+		var that = this, x, y;
+		
+		time = time === undefined ? 400 : time;
+
+		if (that.options.onScrollStart) that.options.onScrollStart.call(that);
+
+		if (that.options.snap) {
+			pageX = pageX == 'next' ? that.currPageX+1 : pageX == 'prev' ? that.currPageX-1 : pageX;
+			pageY = pageY == 'next' ? that.currPageY+1 : pageY == 'prev' ? that.currPageY-1 : pageY;
+
+			pageX = pageX < 0 ? 0 : pageX > that.pagesX.length-1 ? that.pagesX.length-1 : pageX;
+			pageY = pageY < 0 ? 0 : pageY > that.pagesY.length-1 ? that.pagesY.length-1 : pageY;
+
+			that.currPageX = pageX;
+			that.currPageY = pageY;
+			x = that.pagesX[pageX];
+			y = that.pagesY[pageY];
+		} else {
+			x = -that.wrapperW * pageX;
+			y = -that.wrapperH * pageY;
+			if (x < that.maxScrollX) x = that.maxScrollX;
+			if (y < that.maxScrollY) y = that.maxScrollY;
+		}
+
+		that.scrollTo(x, y, time);
+	},
+
+	disable: function () {
+		this.stop();
+		this._resetPos(0);
+		this.enabled = false;
+
+		// If disabled after touchstart we make sure that there are no left over events
+		this._unbind(MOVE_EV);
+		this._unbind(END_EV);
+		this._unbind(CANCEL_EV);
+	},
+	
+	enable: function () {
+		this.enabled = true;
+	},
+	
+	stop: function () {
+		if (this.options.useTransition) this._unbind('webkitTransitionEnd');
+		else cancelFrame(this.aniTime);
+		this.steps = [];
+		this.moved = false;
+		this.animating = false;
+	},
+	
+	zoom: function (x, y, scale, time) {
+		var that = this,
+			relScale = scale / that.scale;
+
+		if (!that.options.useTransform) return;
+
+		that.zoomed = true;
+		time = time === undefined ? 200 : time;
+		x = x - that.wrapperOffsetLeft - that.x;
+		y = y - that.wrapperOffsetTop - that.y;
+		that.x = x - x * relScale + that.x;
+		that.y = y - y * relScale + that.y;
+
+		that.scale = scale;
+		that.refresh();
+
+		that.x = that.x > 0 ? 0 : that.x < that.maxScrollX ? that.maxScrollX : that.x;
+		that.y = that.y > that.minScrollY ? that.minScrollY : that.y < that.maxScrollY ? that.maxScrollY : that.y;
+
+		that.scroller.style[vendor + 'TransitionDuration'] = time + 'ms';
+		that.scroller.style[vendor + 'Transform'] = trnOpen + that.x + 'px,' + that.y + 'px' + trnClose + ' scale(' + scale + ')';
+		that.zoomed = false;
+	},
+	
+	isReady: function () {
+		return !this.moved && !this.zoomed && !this.animating;
+	}
+};
+
+if (typeof exports !== 'undefined') exports.iScroll = iScroll;
+else window.iScroll = iScroll;
+
+})();
diff --git a/public/admin/js/osmplayer/src/osmplayer.js b/public/admin/js/osmplayer/src/osmplayer.js
new file mode 100644
index 00000000000..3097ab6e783
--- /dev/null
+++ b/public/admin/js/osmplayer/src/osmplayer.js
@@ -0,0 +1,268 @@
+// Add a way to instanciate using jQuery prototype.
+if (!jQuery.fn.osmplayer) {
+
+  /**
+   * @constructor
+   *
+   * Define a jQuery osmplayer prototype.
+   *
+   * @param {object} options The options for this jQuery prototype.
+   * @return {Array} jQuery object.
+   */
+  jQuery.fn.osmplayer = function(options) {
+    return jQuery(this).each(function() {
+      options = options || {};
+      options.id = options.id || jQuery(this).attr('id') || Math.random();
+      if (!minplayer.plugins[options.id]) {
+        options.template = options.template || 'default';
+        if (osmplayer[options.template]) {
+          new osmplayer[options.template](jQuery(this), options);
+        }
+        else {
+          new osmplayer(jQuery(this), options);
+        }
+      }
+    });
+  };
+}
+
+/**
+ * @constructor
+ * @extends minplayer
+ * @class The main osmplayer class.
+ *
+ * <p><strong>Usage:</strong>
+ * <pre><code>
+ *
+ *   // Create a media player.
+ *   var player = jQuery("#player").osmplayer({
+ *
+ *   });
+ *
+ * </code></pre>
+ * </p>
+ *
+ * @param {object} context The jQuery context.
+ * @param {object} options This components options.
+ */
+osmplayer = function(context, options) {
+
+  // Derive from minplayer
+  minplayer.call(this, context, options);
+};
+
+/** Derive from minplayer. */
+osmplayer.prototype = new minplayer();
+
+/** Reset the constructor. */
+osmplayer.prototype.constructor = osmplayer;
+
+/**
+ * Creates a new plugin within this context.
+ *
+ * @param {string} name The name of the plugin you wish to create.
+ * @param {object} base The base object for this plugin.
+ * @param {object} context The context which you would like to create.
+ * @return {object} The new plugin object.
+ */
+osmplayer.prototype.create = function(name, base, context) {
+  return minplayer.prototype.create.call(this, name, 'osmplayer', context);
+};
+
+/**
+ * @see minplayer.plugin.construct
+ */
+osmplayer.prototype.construct = function() {
+
+  // Make sure we provide default options...
+  this.options = jQuery.extend({
+    playlist: '',
+    node: {},
+    swfplayer: 'minplayer/flash/minplayer.swf',
+    logo: 'logo.png',
+    link: 'http://www.mediafront.org'
+  }, this.options);
+
+  // Call the minplayer display constructor.
+  minplayer.prototype.construct.call(this);
+
+  /** The play queue and index. */
+  this.playQueue = [];
+  this.playIndex = 0;
+
+  /** The playlist for this media player. */
+  this.create('playlist', 'osmplayer');
+
+  /** Get the playlist or any other playlist that connects. */
+  this.get('playlist', function(playlist) {
+    playlist.bind('nodeLoad', (function(player) {
+      return function(event, data) {
+        player.loadNode(data);
+      };
+    })(this));
+  });
+
+  // Play each media sequentially...
+  this.get('media', (function(player) {
+    return function(media) {
+      media.bind('ended', function() {
+        player.options.autoplay = true;
+        player.playNext();
+      });
+    };
+  })(this));
+
+  // Load the node if one is provided.
+  if (this.options.node) {
+    this.loadNode(this.options.node);
+  }
+};
+
+/**
+ * Gets the full screen element.
+ *
+ * @return {object} The element that will go into fullscreen.
+ */
+osmplayer.prototype.fullScreenElement = function() {
+  return this.elements.minplayer;
+};
+
+/**
+ * The load node function.
+ *
+ * @param {object} node A media node object.
+ */
+osmplayer.prototype.loadNode = function(node) {
+  if (node && node.mediafiles) {
+
+    // Load the media files.
+    var media = node.mediafiles.media;
+    if (media) {
+      this.playQueue.length = 0;
+      this.playQueue = [];
+      this.playIndex = 0;
+      var file = null;
+      var types = [];
+
+      // For mobile devices, we should only show the main media.
+      if (minplayer.isAndroid || minplayer.isIDevice) {
+        types = ['media'];
+      }
+      else {
+        types = ['intro', 'commercial', 'prereel', 'media', 'postreel'];
+      }
+
+      // Iterate through the types.
+      jQuery.each(types, (function(player) {
+        return function(key, type) {
+          if (file = player.addToQueue(media[type])) {
+            file.queueType = type;
+          }
+        };
+      })(this));
+    }
+
+    // Load the preview image.
+    osmplayer.getImage(node.mediafiles, 'preview', (function(player) {
+      return function(image) {
+        player.options.preview = image.path;
+        if (player.playLoader) {
+          player.playLoader.initialize();
+        }
+      };
+    })(this));
+
+    // Play the next media
+    this.playNext();
+  }
+};
+
+/**
+ * Adds a file to the play queue.
+ *
+ * @param {object} file The file to add to the queue.
+ * @return {object} The file that was added to the queue.
+ */
+osmplayer.prototype.addToQueue = function(file) {
+  if (file = minplayer.getMediaFile(file)) {
+    this.playQueue.push(file);
+  }
+  return file;
+};
+
+/**
+ * Plays the next media file in the queue.
+ */
+osmplayer.prototype.playNext = function() {
+  if (this.playQueue.length > this.playIndex) {
+    this.load(this.playQueue[this.playIndex]);
+    this.playIndex++;
+  }
+  else if (this.options.repeat) {
+    this.playIndex = 0;
+    this.playNext();
+  }
+  else if (this.playQueue.length > 0) {
+    // If there is no playlist, and no repeat, we will
+    // just seek to the beginning and pause.
+    this.options.autoplay = false;
+    this.playIndex = 0;
+    this.playNext();
+  }
+  else if (this.media) {
+    // Stop the player and unload.
+    this.media.stop();
+  }
+};
+
+/**
+ * Returns an image provided image array.
+ *
+ * @param {object} mediafiles The mediafiles to search within.
+ * @param {string} type The type of image to look for.
+ * @param {function} callback Called when the image is retrieved.
+ */
+osmplayer.getImage = function(mediafiles, type, callback) {
+
+  var image = '';
+  var images = mediafiles.image;
+  if (images) {
+
+    // If the image type exists, then just use that one...
+    if (images[type]) {
+      image = images[type];
+    }
+    // Or try the original image...
+    else if (images['image']) {
+      image = images['image'];
+    }
+    // Otherwise, just try ANY image...
+    else {
+
+      // Or, just pick the first one available.
+      for (type in images) {
+        if (images.hasOwnProperty(type)) {
+          image = images[type];
+          break;
+        }
+      }
+    }
+  }
+
+  // If the image exists, then callback with that image.
+  if (image) {
+    callback(new minplayer.file(image));
+  }
+  else {
+    // Get the image from the media player...
+    var mediaFile = minplayer.getMediaFile(mediafiles.media.media);
+    if (mediaFile) {
+      var player = minplayer.players[mediaFile.player];
+      if (player && (typeof player.getImage === 'function')) {
+        player.getImage(mediaFile, type, function(src) {
+          callback(new minplayer.file(src));
+        });
+      }
+    }
+  }
+};
diff --git a/public/admin/js/osmplayer/src/osmplayer.pager.js b/public/admin/js/osmplayer/src/osmplayer.pager.js
new file mode 100644
index 00000000000..f813a27219f
--- /dev/null
+++ b/public/admin/js/osmplayer/src/osmplayer.pager.js
@@ -0,0 +1,51 @@
+/** The osmplayer namespace. */
+var osmplayer = osmplayer || {};
+
+/**
+ * @constructor
+ * @extends minplayer.display
+ * @class This class provides pager functionality.
+ *
+ * @param {object} context The jQuery context.
+ * @param {object} options This components options.
+ */
+osmplayer.pager = function(context, options) {
+
+  // Derive from display
+  minplayer.display.call(this, 'pager', context, options);
+};
+
+/** Derive from minplayer.display. */
+osmplayer.pager.prototype = new minplayer.display();
+
+/** Reset the constructor. */
+osmplayer.pager.prototype.constructor = osmplayer.pager;
+
+/**
+ * @see minplayer.plugin#construct
+ */
+osmplayer.pager.prototype.construct = function() {
+
+  // Call the minplayer plugin constructor.
+  minplayer.display.prototype.construct.call(this);
+
+  // Setup the prev button.
+  if (this.elements.prevPage) {
+    this.prevPage = this.elements.prevPage.click((function(pager) {
+      return function(event) {
+        event.preventDefault();
+        pager.trigger('prevPage');
+      };
+    })(this));
+  }
+
+  // Setup the next button.
+  if (this.elements.nextPage) {
+    this.nextPage = this.elements.nextPage.click((function(pager) {
+      return function(event) {
+        event.preventDefault();
+        pager.trigger('nextPage');
+      };
+    })(this));
+  }
+};
diff --git a/public/admin/js/osmplayer/src/osmplayer.parser.asx.js b/public/admin/js/osmplayer/src/osmplayer.parser.asx.js
new file mode 100644
index 00000000000..62dbb40774f
--- /dev/null
+++ b/public/admin/js/osmplayer/src/osmplayer.parser.asx.js
@@ -0,0 +1,44 @@
+/** The osmplayer namespace. */
+var osmplayer = osmplayer || {};
+
+/** The parser object. */
+osmplayer.parser = osmplayer.parser || {};
+
+/**
+ * The asx parser object.
+ *
+ * @return {object} The asx parser.
+ **/
+osmplayer.parser.asx = {
+
+  // The priority for this parser.
+  priority: 8,
+
+  // Return if this is a valid youtube feed.
+  valid: function(feed) {
+    feed = feed.replace(/(.*)\??(.*)/i, '$1');
+    return feed.match(/\.asx$/i) !== null;
+  },
+
+  // Returns the type of request to make.
+  getType: function(feed) {
+    return 'xml';
+  },
+
+  // Returns the feed provided the start and numItems.
+  getFeed: function(feed, start, numItems) {
+    return feed;
+  },
+
+  // Parse the feed.
+  parse: function(data) {
+    var playlist = {
+      total_rows: 0,
+      nodes: []
+    };
+    jQuery('asx entry', data).each(function(index) {
+      osmplayer.parser.rss.addRSSItem(playlist, jQuery(this));
+    });
+    return playlist;
+  }
+};
diff --git a/public/admin/js/osmplayer/src/osmplayer.parser.default.js b/public/admin/js/osmplayer/src/osmplayer.parser.default.js
new file mode 100644
index 00000000000..1668951ed75
--- /dev/null
+++ b/public/admin/js/osmplayer/src/osmplayer.parser.default.js
@@ -0,0 +1,39 @@
+/** The osmplayer namespace. */
+var osmplayer = osmplayer || {};
+
+/** The parser object. */
+osmplayer.parser = osmplayer.parser || {};
+
+/**
+ * The default parser object.
+ *
+ * @return {object} The default parser.
+ **/
+osmplayer.parser['default'] = {
+
+  // The priority for this parser.
+  priority: 1,
+
+  // This parser is always valid.
+  valid: function(feed) {
+    return true;
+  },
+
+  // Returns the type of request to make.
+  getType: function(feed) {
+    return 'json';
+  },
+
+  // Returns the feed provided the start and numItems.
+  getFeed: function(feed, start, numItems) {
+    feed = feed.replace(/(.*)\??(.*)/i, '$1');
+    feed += '?start-index=' + start;
+    feed += '&max-results=' + numItems;
+    return feed;
+  },
+
+  // Parse the feed.
+  parse: function(data) {
+    return data;
+  }
+};
diff --git a/public/admin/js/osmplayer/src/osmplayer.parser.rss.js b/public/admin/js/osmplayer/src/osmplayer.parser.rss.js
new file mode 100644
index 00000000000..b47c3880a27
--- /dev/null
+++ b/public/admin/js/osmplayer/src/osmplayer.parser.rss.js
@@ -0,0 +1,65 @@
+/** The osmplayer namespace. */
+var osmplayer = osmplayer || {};
+
+/** The parser object. */
+osmplayer.parser = osmplayer.parser || {};
+
+/**
+ * The rss parser object.
+ *
+ * @return {object} The rss parser.
+ **/
+osmplayer.parser.rss = {
+
+  // The priority for this parser.
+  priority: 8,
+
+  // Return if this is a valid youtube feed.
+  valid: function(feed) {
+    feed = feed.replace(/(.*)\??(.*)/i, '$1');
+    return feed.match(/\.rss$/i) !== null;
+  },
+
+  // Returns the type of request to make.
+  getType: function(feed) {
+    return 'xml';
+  },
+
+  // Returns the feed provided the start and numItems.
+  getFeed: function(feed, start, numItems) {
+    return feed;
+  },
+
+  // Parse the feed.
+  parse: function(data) {
+    var playlist = {
+      total_rows: 0,
+      nodes: []
+    };
+    jQuery('rss channel', data).find('item').each(function(index) {
+      osmplayer.parser.rss.addRSSItem(playlist, jQuery(this));
+    });
+    return playlist;
+  },
+
+  // Parse an RSS item.
+  addRSSItem: function(playlist, item) {
+    playlist.total_rows++;
+    playlist.nodes.push({
+      title: item.find('title').text(),
+      description: item.find('annotation').text(),
+      mediafiles: {
+        image: {
+          'image': {
+            path: item.find('image').text()
+          }
+        },
+        media: {
+          'media': {
+            path: item.find('location').text()
+          }
+        }
+      }
+    });
+  }
+};
diff --git a/public/admin/js/osmplayer/src/osmplayer.parser.xspf.js b/public/admin/js/osmplayer/src/osmplayer.parser.xspf.js
new file mode 100644
index 00000000000..9b86340d2b7
--- /dev/null
+++ b/public/admin/js/osmplayer/src/osmplayer.parser.xspf.js
@@ -0,0 +1,44 @@
+/** The osmplayer namespace. */
+var osmplayer = osmplayer || {};
+
+/** The parser object. */
+osmplayer.parser = osmplayer.parser || {};
+
+/**
+ * The xsfp parser object.
+ *
+ * @return {object} The xsfp parser.
+ **/
+osmplayer.parser.xsfp = {
+
+  // The priority for this parser.
+  priority: 8,
+
+  // Return if this is a valid youtube feed.
+  valid: function(feed) {
+    feed = feed.replace(/(.*)\??(.*)/i, '$1');
+    return feed.match(/\.xml$/i) !== null;
+  },
+
+  // Returns the type of request to make.
+  getType: function(feed) {
+    return 'xml';
+  },
+
+  // Returns the feed provided the start and numItems.
+  getFeed: function(feed, start, numItems) {
+    return feed;
+  },
+
+  // Parse the feed.
+  parse: function(data) {
+    var playlist = {
+      total_rows: 0,
+      nodes: []
+    };
+    jQuery('playlist trackList track', data).each(function(index) {
+      osmplayer.parser.rss.addRSSItem(playlist, jQuery(this));
+    });
+    return playlist;
+  }
+};
diff --git a/public/admin/js/osmplayer/src/osmplayer.parser.youtube.js b/public/admin/js/osmplayer/src/osmplayer.parser.youtube.js
new file mode 100644
index 00000000000..62910a3f639
--- /dev/null
+++ b/public/admin/js/osmplayer/src/osmplayer.parser.youtube.js
@@ -0,0 +1,73 @@
+/** The osmplayer namespace. */
+var osmplayer = osmplayer || {};
+
+/** The parser object. */
+osmplayer.parser = osmplayer.parser || {};
+
+/**
+ * The youtube parser object.
+ *
+ * @return {object} The youtube parser.
+ **/
+osmplayer.parser.youtube = {
+
+  // The priority for this parser.
+  priority: 10,
+
+  // Return if this is a valid youtube feed.
+  valid: function(feed) {
+    return (feed.search(/^http(s)?\:\/\/gdata\.youtube\.com/i) === 0);
+  },
+
+  // Returns the type of request to make.
+  getType: function(feed) {
+    return 'jsonp';
+  },
+
+  // Returns the feed provided the start and numItems.
+  getFeed: function(feed, start, numItems) {
+    feed = feed.replace(/(.*)\??(.*)/i, '$1');
+    feed += '?start-index=' + (start + 1);
+    feed += '&max-results=' + (numItems);
+    feed += '&v=2&alt=jsonc';
+    return feed;
+  },
+
+  // Parse the feed.
+  parse: function(data) {
+    data = data.data;
+    var playlist = {
+      total_rows: data.totalItems,
+      nodes: []
+    };
+
+    // Iterate through the items and parse it.
+    for (var index in data.items) {
+      if (data.items.hasOwnProperty(index)) {
+        var item = data.items[index];
+        playlist.nodes.push({
+          title: item.title,
+          description: item.description,
+          mediafiles: {
+            image: {
+              'thumbnail': {
+                path: item.thumbnail.sqDefault
+              },
+              'image': {
+                path: item.thumbnail.hqDefault
+              }
+            },
+            media: {
+              'media': {
+                player: 'youtube',
+                id: item.id
+              }
+            }
+          }
+        });
+      }
+    }
+
+    return playlist;
+  }
+};
diff --git a/public/admin/js/osmplayer/src/osmplayer.playlist.js b/public/admin/js/osmplayer/src/osmplayer.playlist.js
new file mode 100644
index 00000000000..633eb130636
--- /dev/null
+++ b/public/admin/js/osmplayer/src/osmplayer.playlist.js
@@ -0,0 +1,550 @@
+/** The osmplayer namespace. */
+var osmplayer = osmplayer || {};
+
+/**
+ * @constructor
+ * @extends minplayer.display
+ * @class This class creates the playlist functionality for the minplayer.
+ *
+ * @param {object} context The jQuery context.
+ * @param {object} options This components options.
+ */
+osmplayer.playlist = function(context, options) {
+
+  // Derive from display
+  minplayer.display.call(this, 'playlist', context, options);
+};
+
+/** Derive from minplayer.display. */
+osmplayer.playlist.prototype = new minplayer.display();
+
+/** Reset the constructor. */
+osmplayer.playlist.prototype.constructor = osmplayer.playlist;
+
+/**
+ * @see minplayer.plugin#construct
+ */
+osmplayer.playlist.prototype.construct = function() {
+
+  // Make sure we provide default options...
+  this.options = jQuery.extend({
+    vertical: true,
+    playlist: '',
+    pageLimit: 10,
+    autoNext: true,
+    shuffle: false,
+    loop: false,
+    hysteresis: 40,
+    scrollSpeed: 20,
+    scrollMode: 'auto'
+  }, this.options);
+
+  // Call the minplayer plugin constructor.
+  minplayer.display.prototype.construct.call(this);
+
+  /** The nodes within this playlist. */
+  this.nodes = [];
+
+  // Current page.
+  this.page = -1;
+
+  // The total amount of nodes.
+  this.totalItems = 0;
+
+  // The current loaded item index.
+  this.currentItem = -1;
+
+  // The play playqueue.
+  this.playqueue = [];
+
+  // The playqueue position.
+  this.playqueuepos = 0;
+
+  // The current playlist.
+  this.playlist = this.options.playlist;
+
+  // Create the scroll bar.
+  this.scroll = null;
+
+  // Create our orientation variable.
+  this.orient = {
+    pos: this.options.vertical ? 'y' : 'x',
+    pagePos: this.options.vertical ? 'pageY' : 'pageX',
+    offset: this.options.vertical ? 'top' : 'left',
+    wrapperSize: this.options.vertical ? 'wrapperH' : 'wrapperW',
+    minScroll: this.options.vertical ? 'minScrollY' : 'minScrollX',
+    maxScroll: this.options.vertical ? 'maxScrollY' : 'maxScrollX',
+    size: this.options.vertical ? 'height' : 'width'
+  };
+
+  // Create the pager.
+  this.pager = this.create('pager', 'osmplayer');
+  this.pager.bind('nextPage', (function(playlist) {
+    return function(event) {
+      playlist.nextPage();
+    };
+  })(this));
+  this.pager.bind('prevPage', (function(playlist) {
+    return function(event) {
+      playlist.prevPage();
+    };
+  })(this));
+
+  // Load the "next" item.
+  if (this.next()) {
+
+    // Get the media.
+    if (this.options.autoNext) {
+      this.get('media', function(media) {
+        media.bind('ended', (function(playlist) {
+          return function(event) {
+            media.options.autoplay = true;
+            playlist.next();
+          };
+        })(this));
+      });
+    }
+  }
+
+  // Say that we are ready.
+  this.ready();
+};
+
+/**
+ * Wrapper around the scroll scrollTo method.
+ *
+ * @param {number} pos The position you would like to set the list.
+ * @param {boolean} relative If this is a relative position change.
+ */
+osmplayer.playlist.prototype.scrollTo = function(pos, relative) {
+  if (this.scroll) {
+    this.scroll.options.hideScrollbar = false;
+    if (this.options.vertical) {
+      this.scroll.scrollTo(0, pos, 0, relative);
+    }
+    else {
+      this.scroll.scrollTo(pos, 0, 0, relative);
+    }
+    this.scroll.options.hideScrollbar = true;
+  }
+};
+
+/**
+ * Refresh the scrollbar.
+ */
+osmplayer.playlist.prototype.refreshScroll = function() {
+
+  // Make sure that our window has the addEventListener to keep IE happy.
+  if (!window.addEventListener) {
+    setTimeout((function(playlist) {
+      return function() {
+        playlist.refreshScroll.call(playlist);
+      }
+    })(this), 200);
+    return;
+  }
+
+  // Check the size of the playlist.
+  var list = this.elements.list;
+  var scroll = this.elements.scroll;
+
+  // Check to see if we should add a scroll bar functionality.
+  if ((!this.scroll) &&
+      (list.length > 0) &&
+      (scroll.length > 0) &&
+      (list[this.orient.size]() > scroll[this.orient.size]())) {
+
+    // Setup the iScroll component.
+    this.scroll = new iScroll(this.elements.scroll.eq(0)[0], {
+      hScroll: !this.options.vertical,
+      hScrollbar: !this.options.vertical,
+      vScroll: this.options.vertical,
+      vScrollbar: this.options.vertical,
+      hideScrollbar: true
+    });
+
+    // Use autoScroll for non-touch devices.
+    if ((this.options.scrollMode == 'auto') && !minplayer.hasTouch) {
+
+      // Bind to the mouse events for autoscrolling.
+      this.elements.list.bind('mousemove', (function(playlist) {
+        return function(event) {
+          event.preventDefault();
+          var offset = playlist.display.offset()[playlist.orient.offset];
+          playlist.mousePos = event[playlist.orient.pagePos];
+          playlist.mousePos -= offset;
+        };
+      })(this)).bind('mouseenter', (function(playlist) {
+        return function(event) {
+          event.preventDefault();
+          playlist.scrolling = true;
+          var setScroll = function() {
+            if (playlist.scrolling) {
+              var scrollSize = playlist.scroll[playlist.orient.wrapperSize];
+              var scrollMid = (scrollSize / 2);
+              var delta = playlist.mousePos - scrollMid;
+              if (Math.abs(delta) > playlist.options.hysteresis) {
+                var hyst = playlist.options.hysteresis;
+                hyst *= (delta > 0) ? -1 : 0;
+                delta = (playlist.options.scrollSpeed * (delta + hyst));
+                delta /= scrollMid;
+                var pos = playlist.scroll[playlist.orient.pos] - delta;
+                var min = playlist.scroll[playlist.orient.minScroll] || 0;
+                var max = playlist.scroll[playlist.orient.maxScroll];
+                if (pos >= min) {
+                  playlist.scrollTo(min);
+                }
+                else if (pos <= max) {
+                  playlist.scrollTo(max);
+                }
+                else {
+                  playlist.scrollTo(delta, true);
+                }
+              }
+
+              // Set timeout to try again.
+              setTimeout(setScroll, 30);
+            }
+          };
+          setScroll();
+        };
+      })(this)).bind('mouseleave', (function(playlist) {
+        return function(event) {
+          event.preventDefault();
+          playlist.scrolling = false;
+        };
+      })(this));
+    }
+
+    // Need to force the width of the list.
+    if (!this.options.vertical) {
+      var listSize = 0;
+      jQuery.each(this.elements.list.children(), function() {
+        listSize += jQuery(this).outerWidth();
+      });
+      this.elements.list.width(listSize);
+    }
+
+    this.scroll.refresh();
+    this.scroll.scrollTo(0, 0, 200);
+  }
+  else if (this.scroll) {
+
+    // Disable the scroll bar.
+    this.scroll.disable();
+    this.elements.list
+      .unbind('mousemove')
+      .unbind('mouseenter')
+      .unbind('mouseleave');
+  }
+};
+
+/**
+ * Sets the playlist.
+ *
+ * @param {object} playlist The playlist object.
+ * @param {integer} loadIndex The index of the item to load.
+ */
+osmplayer.playlist.prototype.set = function(playlist, loadIndex) {
+
+  // Check to make sure the playlist is an object.
+  if (typeof playlist !== 'object') {
+    this.trigger('error', 'Playlist must be an object to set');
+    return;
+  }
+
+  // Check to make sure the playlist has correct format.
+  if (!playlist.hasOwnProperty('total_rows')) {
+    this.trigger('error', 'Unknown playlist format.');
+    return;
+  }
+
+  // Make sure the playlist has some rows.
+  if (playlist.total_rows && playlist.nodes.length) {
+
+    // Set the total rows.
+    this.totalItems = playlist.total_rows;
+    this.currentItem = 0;
+
+    // Show or hide the next page if there is or is not a next page.
+    if (((this.page + 1) * this.options.pageLimit) >= this.totalItems) {
+      this.pager.nextPage.hide();
+    }
+    else {
+      this.pager.nextPage.show();
+    }
+
+    var teaser = null;
+    var numNodes = playlist.nodes.length;
+    this.elements.list.empty();
+    this.nodes = [];
+
+    // Iterate through all the nodes.
+    for (var index = 0; index < numNodes; index++) {
+
+      // Create the teaser object.
+      teaser = this.create('teaser', 'osmplayer', this.elements.list);
+      teaser.setNode(playlist.nodes[index]);
+      teaser.bind('nodeLoad', (function(playlist, index) {
+        return function(event, data) {
+          playlist.loadItem(index);
+        };
+      })(this, index));
+
+      // Add this to our nodes array.
+      this.nodes.push(teaser);
+
+      // If the index is equal to the loadIndex.
+      if (loadIndex === index) {
+        this.loadItem(index);
+      }
+    }
+
+    // Refresh the sizes.
+    this.refreshScroll();
+
+    // Trigger that the playlist has loaded.
+    this.trigger('playlistLoad', playlist);
+  }
+
+  // Show that we are no longer busy.
+  if (this.elements.playlist_busy) {
+    this.elements.playlist_busy.hide();
+  }
+};
+
+/**
+ * Stores the current playlist state in the playqueue.
+ */
+osmplayer.playlist.prototype.setQueue = function() {
+
+  // Add this item to the playqueue.
+  this.playqueue.push({
+    page: this.page,
+    item: this.currentItem
+  });
+
+  // Store the current playqueue position.
+  this.playqueuepos = this.playqueue.length;
+};
+
+/**
+ * Loads the next item.
+ *
+ * @return {boolean} TRUE if loaded, FALSE if not.
+ */
+osmplayer.playlist.prototype.next = function() {
+  var item = 0, page = this.page;
+
+  // See if we are at the front of the playqueue.
+  if (this.playqueuepos >= this.playqueue.length) {
+
+    // If this is shuffle, then load a random item.
+    if (this.options.shuffle) {
+      item = Math.floor(Math.random() * this.totalItems);
+      page = Math.floor(item / this.options.pageLimit);
+      item = item % this.options.pageLimit;
+      return this.load(page, item);
+    }
+    else {
+
+      // Otherwise, increment the current item by one.
+      item = (this.currentItem + 1);
+      if (item >= this.nodes.length) {
+        return this.load(page + 1, 0);
+      }
+      else {
+        return this.loadItem(item);
+      }
+    }
+  }
+  else {
+
+    // Load the next item in the playqueue.
+    this.playqueuepos = this.playqueuepos + 1;
+    var currentQueue = this.playqueue[this.playqueuepos];
+    return this.load(currentQueue.page, currentQueue.item);
+  }
+};
+
+/**
+ * Loads the previous item.
+ *
+ * @return {boolean} TRUE if loaded, FALSE if not.
+ */
+osmplayer.playlist.prototype.prev = function() {
+
+  // Move back into the playqueue.
+  this.playqueuepos = this.playqueuepos - 1;
+  this.playqueuepos = (this.playqueuepos < 0) ? 0 : this.playqueuepos;
+  var currentQueue = this.playqueue[this.playqueuepos];
+  if (currentQueue) {
+    return this.load(currentQueue.page, currentQueue.item);
+  }
+  return false;
+};
+
+/**
+ * Loads a playlist node.
+ *
+ * @param {number} index The index of the item you would like to load.
+ * @return {boolean} TRUE if loaded, FALSE if not.
+ */
+osmplayer.playlist.prototype.loadItem = function(index) {
+  if (index < this.nodes.length) {
+    this.setQueue();
+
+    // Get the teaser at the current index and deselect it.
+    var teaser = this.nodes[this.currentItem];
+    teaser.select(false);
+    this.currentItem = index;
+
+    // Get the new teaser and select it.
+    teaser = this.nodes[index];
+    teaser.select(true);
+    this.trigger('nodeLoad', teaser.node);
+    return true;
+  }
+
+  return false;
+};
+
+/**
+ * Loads the next page.
+ *
+ * @param {integer} loadIndex The index of the item to load.
+ * @return {boolean} TRUE if loaded, FALSE if not.
+ */
+osmplayer.playlist.prototype.nextPage = function(loadIndex) {
+  return this.load(this.page + 1, loadIndex);
+};
+
+/**
+ * Loads the previous page.
+ *
+ * @param {integer} loadIndex The index of the item to load.
+ * @return {boolean} TRUE if loaded, FALSE if not.
+ */
+osmplayer.playlist.prototype.prevPage = function(loadIndex) {
+  return this.load(this.page - 1, loadIndex);
+};
+
+/**
+ * Loads a playlist.
+ *
+ * @param {integer} page The page to load.
+ * @param {integer} loadIndex The index of the item to load.
+ * @return {boolean} TRUE if loaded, FALSE if not.
+ */
+osmplayer.playlist.prototype.load = function(page, loadIndex) {
+
+  // If the playlist and pages are the same, then no need to load.
+  if ((this.playlist == this.options.playlist) && (page == this.page)) {
+    return this.loadItem(loadIndex);
+  }
+
+  // Set the new playlist.
+  this.playlist = this.options.playlist;
+
+  // Return if there aren't any playlists to play.
+  if (!this.playlist) {
+    return false;
+  }
+
+  // Determine if we need to loop.
+  var maxPages = Math.floor(this.totalItems / this.options.pageLimit);
+  if (page > maxPages) {
+    if (this.options.loop) {
+      page = 0;
+      loadIndex = 0;
+    }
+    else {
+      return false;
+    }
+  }
+
+  // Say that we are busy.
+  if (this.elements.playlist_busy) {
+    this.elements.playlist_busy.show();
+  }
+
+  // Normalize the page.
+  page = page || 0;
+  page = (page < 0) ? 0 : page;
+
+  // Set the queue.
+  this.setQueue();
+
+  // Set the new page.
+  this.page = page;
+
+  // Hide or show the page based on if we are on the first page.
+  if (this.page == 0) {
+    this.pager.prevPage.hide();
+  }
+  else {
+    this.pager.prevPage.show();
+  }
+
+  // If the playlist is an object, then go ahead and set it.
+  if (typeof this.playlist == 'object') {
+    this.set(this.playlist, loadIndex);
+    if (this.playlist.endpoint) {
+      this.playlist = this.options.playlist = this.playlist.endpoint;
+    }
+    return true;
+  }
+
+  // Get the highest priority parser.
+  var parser = osmplayer.parser['default'];
+  for (var name in osmplayer.parser) {
+    if (osmplayer.parser.hasOwnProperty(name)) {
+      if (osmplayer.parser[name].valid(this.playlist)) {
+        if (osmplayer.parser[name].priority > parser.priority) {
+          parser = osmplayer.parser[name];
+        }
+      }
+    }
+  }
+
+  // The start index.
+  var start = this.page * this.options.pageLimit;
+
+  // Get the feed from the parser.
+  var feed = parser.getFeed(
+    this.playlist,
+    start,
+    this.options.pageLimit
+  );
+
+  // Build our request.
+  var request = {
+    type: 'GET',
+    url: feed,
+    success: (function(playlist) {
+      return function(data) {
+        playlist.set(parser.parse(data), loadIndex);
+      };
+    })(this),
+    error: (function(playlist) {
+      return function(XMLHttpRequest, textStatus, errorThrown) {
+        if (playlist.elements.playlist_busy) {
+          playlist.elements.playlist_busy.hide();
+        }
+        playlist.trigger('error', textStatus);
+      }
+    })(this)
+  };
+
+  // Set the data if applicable.
+  var dataType = '';
+  if (dataType = parser.getType()) {
+    request.dataType = dataType;
+  }
+
+  // Perform an ajax callback.
+  jQuery.ajax(request);
+
+  // Return that we did something.
+  return true;
+};
diff --git a/public/admin/js/osmplayer/src/osmplayer.teaser.js b/public/admin/js/osmplayer/src/osmplayer.teaser.js
new file mode 100644
index 00000000000..3d8eb1377df
--- /dev/null
+++ b/public/admin/js/osmplayer/src/osmplayer.teaser.js
@@ -0,0 +1,68 @@
+/** The osmplayer namespace. */
+var osmplayer = osmplayer || {};
+
+/**
+ * @constructor
+ * @extends minplayer.display
+ * @class This class provides teaser functionality.
+ *
+ * @param {object} context The jQuery context.
+ * @param {object} options This components options.
+ */
+osmplayer.teaser = function(context, options) {
+
+  /** The preview image. */
+  this.preview = null;
+
+  // Derive from display
+  minplayer.display.call(this, 'teaser', context, options);
+};
+
+/** Derive from minplayer.display. */
+osmplayer.teaser.prototype = new minplayer.display();
+
+/** Reset the constructor. */
+osmplayer.teaser.prototype.constructor = osmplayer.teaser;
+
+/**
+ * Selects the teaser.
+ *
+ * @param {boolean} selected TRUE if selected, FALSE otherwise.
+ */
+osmplayer.teaser.prototype.select = function(selected) {
+};
+
+/**
+ * Sets the node.
+ *
+ * @param {object} node The node object to set.
+ */
+osmplayer.teaser.prototype.setNode = function(node) {
+
+  // Add this to the node info for this teaser.
+  this.node = node;
+
+  // Set the title of the teaser.
+  if (this.elements.title) {
+    this.elements.title.text(node.title);
+  }
+
+  // Load the thumbnail image if it exists.
+  if (node.mediafiles && node.mediafiles.image) {
+    var image = osmplayer.getImage(node.mediafiles, 'thumbnail');
+    if (image) {
+      if (this.elements.image) {
+        this.preview = new minplayer.image(this.elements.image);
+        this.preview.load(image);
+      }
+    }
+  }
+
+  // Bind when they click on this teaser.
+  this.display.unbind('click').click((function(teaser) {
+    return function(event) {
+      event.preventDefault();
+      teaser.trigger('nodeLoad', teaser.node);
+    };
+  })(this));
+};
diff --git a/public/admin/js/osmplayer/templates/default/css/images/loader.gif b/public/admin/js/osmplayer/templates/default/css/images/loader.gif
new file mode 100644
index 0000000000000000000000000000000000000000..5e2d16730415c52b18d085af4b497b6f9d009666
GIT binary patch
literal 404
zcmZ?wbhEHb)Mnsj_{hL8bLPynw6yyAdLXIzpWDwhB-q(8z|~04fSHkjfkE+~lygyP
zVo7R>LV0FMhC*UiVnt4VVv1g7URpkb;!hS%E}$wMAZ7p=$iQUO(#LUn+RYoypO11$
z-wXSEy7hrsTSVl-H1*nhv-U0LN!Rtf-hN8&*OARX?RG3sF!B)vT7qee?Gd0c3jB%5
z8)vl~UsLmWM&iBiJt;G0%s;iz%h{_yX9s)s*^O&os_<=MOcjyJkN8yEcgpYbqggsh
zLC4o)HxcA81E7g3XJtj-$$!MpCA_`zVP(&fD+^Za;#<aj=(SI>S?BYU=U)B{nl)pM
z=^29__fs!F%><gbVjWf!9iU#FF=ZFKblt{ZJ5zmDn9O&V3)Cu6Ke}$^Z@!IYv$xLe
m|GVk&#1!Y)x6ib_%1*cn3+zcyIwv6di%Eom!5S29U;qH8Zk3+^

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/templates/default/css/osmplayer_default.css b/public/admin/js/osmplayer/templates/default/css/osmplayer_default.css
new file mode 100644
index 00000000000..e669e7e895c
--- /dev/null
+++ b/public/admin/js/osmplayer/templates/default/css/osmplayer_default.css
@@ -0,0 +1,691 @@
+/* base styles */
+.minplayer-default {
+  position: relative;
+  font-family:"Trebuchet MS", Helvetica, sans-serif;
+  -moz-box-shadow:0px 5px 10px #333;/*no-important moz*/
+  -webkit-box-shadow:0px 5px 10px #333;/*no-important chrome*/
+}
+
+.player-ui .minplayer-default-error {
+  display:none;
+  color: #eee;
+  position: absolute;
+  top: 80%;
+  left: 50%;
+  width: 320px;
+  height: 40px;
+  line-height: 40px;
+  margin: -20px 0 0 -160px;
+  text-align: center;
+  vertical-align: center;
+  border: none;
+  z-index: 200;
+  opacity: 0.9;
+  border-radius: 10px;
+  -webkit-border-radius: 10px;
+  -moz-border-radius: 10px;
+  background: rgba(23, 35, 34, 0.9);
+  box-shadow: 2px 2px 4px #000;
+  -webkit-box-shadow: 2px 2px 4px #000;
+  -moz-box-shadow: 2px 2px 4px #000;
+}
+
+.player-ui.controller-only .minplayer-default-error {
+  display:none !important;
+}
+
+.player-ui .minplayer-default-display {
+  width:100%;
+  height:100%;
+}
+
+.player-ui .minplayer-default-display video {
+  width: 100%;
+  height: 100%;
+}
+
+.player-ui .minplayer-default-preview {
+  width:100%;
+  height:100%;
+  position:absolute;
+  z-index:1;
+}
+
+.player-ui .minplayer-default-loader-wrapper {
+  width:100%;
+  height:100%;
+  position:absolute;
+  z-index:2;
+  background: rgb(0, 0, 0);
+  background: rgba(0, 0, 0, 0.3);
+  filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#55000000, endColorstr=#55000000);
+  -ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorstr=#55000000, endColorstr=#55000000)";
+}
+
+.player-ui.controller-only .minplayer-default-loader-wrapper {
+  display:none !important;
+}
+
+.player-ui .minplayer-default-loader {
+  width:42px;
+  height:10px;
+  position: absolute;
+  z-index: 4;
+  top: 50%;
+  left: 50%;
+  margin: -5px 0 0 -21px;
+  text-align:center;
+  vertical-align:center;
+  background: url(images/loader.gif) no-repeat;
+}
+
+/* Big play button */
+.player-ui .minplayer-default-big-play {
+  position: absolute;
+  top: 50%;
+  left: 50%;
+  width: 80px;
+  height: 80px;
+  margin: -40px 0 0 -40px;
+  text-align: center;
+  vertical-align: center;
+  cursor: pointer !important;
+  border: none;
+  opacity: 0.9;
+  z-index:3;
+  border-radius: 10px;
+  -webkit-border-radius: 10px;
+  -moz-border-radius: 10px;
+  background: rgba(23, 35, 34, 0.746094);
+  box-shadow: 2px 2px 4px #000;
+  -webkit-box-shadow: 2px 2px 4px #000;
+  -moz-box-shadow: 2px 2px 4px #000;
+}
+
+.player-ui .minplayer-default-big-play span {
+  display: block;
+  font-size: 0;
+  line-height: 0;
+  width: 0;
+  height: 0;
+  margin: 20px 0 0 23px;
+  border-left: 40px solid white;
+  border-top: 20px solid transparent;
+  border-bottom: 20px solid transparent;
+}
+
+.player-ui .minplayer-default.fullscreen, .player-ui .minplayer-default.fullscreen .minplayer-default-display, .player-ui .minplayer-default.fullscreen .minplayer-default-loader-wrapper {
+  position: fixed;
+  left: 0;
+  top: 0;
+  right: 0;
+  bottom: 0;
+  overflow: hidden;
+  z-index:1000;
+  width: 100% !important;
+  height: 100% !important;
+}
+
+.player-ui .minplayer-default.fullscreen .minplayer-default-play-loader {
+  z-index:1001;
+}
+
+.player-ui.controller-only .minplayer-default-play-loader {
+  display:none !important;
+}
+
+.player-ui .minplayer-default-controls {
+  position: absolute;
+  display: block;
+  z-index:3;
+  bottom:0px;
+  left:0px;
+  right:0px;
+  height:30px;
+}
+
+.player-ui.controller-only {
+  height: 32px !important;
+}
+
+.player-ui .minplayer-default-controls-left {
+  float:left;
+  width:29px;
+  margin: 3px;
+  border-right:1px solid #888;
+}
+
+.player-ui .minplayer-default.fullscreen .minplayer-default-controls-left {
+  width:40px;
+  border:none;
+}
+
+.player-ui .minplayer-default-controls-right {
+  float:right;
+  width:120px;
+  margin: 3px;
+}
+
+.player-ui .minplayer-controls-volume-horizontal .minplayer-default-controls-right {
+  width: 200px;
+}
+
+.player-ui .minplayer-default.fullscreen .minplayer-default-controls-right {
+  width:110px;
+}
+
+.player-ui .minplayer-default-controls-mid {
+  position:absolute;
+  left:40px;
+  right:130px;
+  height:30px;
+  margin: 3px;
+}
+
+.player-ui .minplayer-controls-volume-horizontal .minplayer-default-controls-mid {
+  right: 210px;
+}
+
+.player-ui .minplayer-default.fullscreen .minplayer-default-controls-mid {
+  left:50px;
+}
+
+.player-ui .minplayer-default-play, .minplayer-default-volume, .player-ui .minplayer-default-timer, .player-ui .minplayer-default-mute, .player-ui .minplayer-default-unmute {
+  float: left;
+}
+
+.player-ui .minplayer-default-play, .minplayer-default-fullscreen, .minplayer-default-mute, .minplayer-default-unmute {
+  cursor: pointer;
+}
+
+.player-ui .minplayer-default-timer {
+  cursor: default;
+}
+
+/* play, pause */
+.player-ui .minplayer-default-button {
+  display: block;
+  width: 24px;
+  height: 24px;
+  opacity: 0.7;
+  -moz-transition: all 0.2s ease-in-out; /* Firefox */
+  -webkit-transition: all 0.2s ease-in-out; /* Safari and Chrome */
+  -o-transition: all 0.2s ease-in-out;  /* Opera */
+  transition: all 0.2s ease-in-out;
+}
+
+.player-ui .minplayer-default-button:hover {
+  opacity: 1;
+}
+
+.player-ui .minplayer-default-button span {
+  margin: 4px 0 0 4px;
+  margin-top: 3px\9;
+}
+
+.player-ui .minplayer-default-button span.ui-icon-pause {
+  margin-left: 3px;
+}
+
+.player-ui .minplayer-default-pause {
+  display:none;
+}
+
+/* seek */
+.player-ui .minplayer-default-seek {
+  position:relative;
+  height: 10px;
+  margin-top: 7px;
+  -moz-border-radius:4px;
+  -webkit-border-radius:4px;
+  border-radius:4px;
+  background: #535353;
+  background-image: -moz-linear-gradient(top, #535353, #333333);
+  background-image: -webkit-gradient(linear,left top,left bottom,color-stop(0, #535353),color-stop(1, #333333));
+  box-shadow: inset 0 -3px 3px #333333;
+}
+
+.player-ui .minplayer-default-seek .ui-slider-handle {
+  position: absolute;
+  width: 16px;
+  height: 16px;
+  border: 1px solid #333;
+  z-index:20;
+  -moz-border-radius:10px;
+  -webkit-border-radius:10px;
+  border-radius:10px;
+  background: #e6e6e6;
+  background-image: -moz-linear-gradient(top, #e6e6e6, #d5d5d5);
+  background-image: -webkit-gradient(linear,left top,left bottom,color-stop(0, #e6e6e6),color-stop(1, #d5d5d5));
+  box-shadow: inset 0 -3px 3px #d5d5d5;
+}
+
+.player-ui .minplayer-default-seek .ui-slider-handle.ui-state-hover {
+  background: #fff;
+}
+
+.player-ui .minplayer-default-seek .ui-slider-range {
+  position: absolute;
+  height: 10px;
+  -moz-border-radius:15px;
+  -webkit-border-radius:15px;
+  z-index:10px;
+  border-radius:15px;
+}
+
+.player-ui .minplayer-default-progress {
+  position: absolute;
+  width:0px;
+  height:10px;
+  -moz-border-radius:15px;
+  -webkit-border-radius:15px;
+  z-index:8px;
+  border-radius:15px;
+  border: 0 !important;
+}
+
+/* timer */
+.player-ui .minplayer-default-timer {
+  position:relative;
+  height: 22px;
+  float:left;
+  padding-right:6px;
+  font-size: 16px;
+  font-weight: bold;
+  border-right:1px solid #888;
+}
+
+.player-ui .minplayer-default.fullscreen .minplayer-default-timer {
+  border:none;
+}
+
+/* volume */
+.player-ui .minplayer-default-volume {
+  height: 26px;
+  -moz-transition: all 0.1s ease-in-out; /* Firefox */
+  -webkit-transition: all 0.1s ease-in-out; /* Safari and Chrome */
+  -o-transition: all 0.2s ease-in-out;  /* Opera */
+  transition: all 0.1s ease-in-out;
+}
+
+.player-ui .minplayer-controls-volume-vertical .minplayer-default-volume {
+  position: absolute;
+  right:38px;
+  bottom:1px;
+  overflow: hidden;
+  width: 26px;
+}
+
+.player-ui .minplayer-controls-volume-horizontal .minplayer-default-volume {
+  position: relative;
+  width: 126px;
+  margin-left: 5px;
+}
+
+.player-ui .minplayer-default.fullscreen .minplayer-default-volume {
+  right:44px;
+  bottom:12px;
+}
+
+.player-ui .minplayer-controls-volume-vertical .minplayer-default-volume:hover {
+  height: 133px;
+  height: 130px\9;
+}
+
+
+.player-ui .minplayer-controls-volume-vertical .minplayer-default-volume:hover .minplayer-default-volume-slider {
+  position: relative;
+  display: block;
+  visibility: visible;
+  opacity: 1;
+}
+
+.player-ui .minplayer-default-volume-slider {
+  position: relative;
+  border: 1px solid #444;
+  -moz-border-radius:15px;
+  -webkit-border-radius:15px;
+  border-radius:15px;
+  -moz-transition: all 0.1s ease-in-out; /* Firefox */
+  -webkit-transition: all 0.1s ease-in-out; /* Safari and Chrome */
+  -o-transition: all 0.1s ease-in-out;  /* Opera */
+  transition: all 0.1s ease-in-out;
+}
+
+.player-ui .minplayer-controls-volume-vertical .minplayer-default-volume-slider {
+  height: 100px;
+  width: 7px;
+  left: 8px;
+  visiblity: hidden;
+  display: none;
+  opacity: 0;
+}
+
+.player-ui .minplayer-controls-volume-horizontal .minplayer-default-volume-slider {
+  height: 7px;
+  width: 78px;
+  top: 8px;
+  left: 34px;
+}
+
+.player-ui .minplayer-default-volume-slider .ui-slider-handle {
+  position: absolute;
+  z-index: 20;
+  width: 12px;
+  height: 12px;
+  border: 1px solid #333;
+  -moz-border-radius:10px;
+  -webkit-border-radius:10px;
+  border-radius:10px;
+  background: #e6e6e6;
+  background-image: -moz-linear-gradient(top, #e6e6e6, #d5d5d5);
+  background-image: -webkit-gradient(linear,left top,left bottom,color-stop(0, #e6e6e6),color-stop(1, #d5d5d5));
+  box-shadow: inset 0 3px 3px #d5d5d5;
+}
+
+.player-ui .minplayer-controls-volume-horizontal .minplayer-default-volume-slider .ui-slider-handle {
+  margin-top:1px;
+}
+
+.player-ui .minplayer-controls-volume-vertical .minplayer-default-volume-slider .ui-slider-handle {
+  left: -4px;
+  margin-bottom:-0.6em;
+  margin-left:0;
+}
+
+.player-ui .minplayer-default-volume-slider .ui-slider-handle.ui-state-hover {
+  background: #fff;
+}
+
+.player-ui .minplayer-default-volume-slider .ui-slider-range {
+  position: absolute;
+  bottom: 0;
+  left: 0;
+  width: 100%;
+  z-index: 1;
+  -moz-border-radius:15px;
+  -webkit-border-radius:15px;
+  border-radius:15px;
+}
+
+/* volume button */
+.player-ui .minplayer-default-volume-mute, .player-ui .minplayer-default-volume-unmute {
+  position: absolute;
+  bottom: 0px;
+}
+
+.player-ui .minplayer-default-volume-unmute {
+  display: none;
+}
+
+/* Fullscreen button */
+.player-ui .minplayer-default-fullscreen {
+  position: absolute;
+  right:6px;
+  bottom:7px;
+  width: 22px;
+  height: 14px;
+}
+
+.player-ui .minplayer-default.fullscreen .minplayer-default-fullscreen {
+  right:14px;
+  bottom:16px;
+}
+
+.player-ui .minplayer-default-fullscreen-inner, .player-ui .minplayer-default.fullscreen .minplayer-default-fullscreen:hover .minplayer-default-fullscreen-inner {
+  position:absolute;
+  bottom:0;
+  width:16px;
+  height:8px;
+  -moz-transition: all 0.1s ease-in-out; /* Firefox */
+  -webkit-transition: all 0.1s ease-in-out; /* Safari and Chrome */
+  -o-transition: all 0.1s ease-in-out;  /* Opera */
+  transition: all 0.1s ease-in-out;
+}
+
+.player-ui .minplayer-default-fullscreen:hover .minplayer-default-fullscreen-inner, .player-ui .minplayer-default.fullscreen .minplayer-default-fullscreen-inner {
+  width:20px;
+  height:12px;
+}
+
+.player-ui .minplayer-default.fullscreen .minplayer-default-controls {
+  position: absolute;
+  z-index:1002;
+  width:500px;
+  left: 50%;
+  bottom:10px;
+  margin: 0 0 0 -260px;
+  padding: 10px;
+  border: 1px solid #2E2E2E;
+  -moz-border-radius: 5px; /* FF1+ */
+  -webkit-border-radius: 5px; /* Saf3+, Chrome */
+  border-radius: 5px; /* Opera 10.5, IE 9 */
+  -moz-transition: all 0.1s ease-in-out; /* Firefox */
+  -webkit-transition: all 0.1s ease-in-out; /* Safari and Chrome */
+  -o-transition: all 0.1s ease-in-out;  /* Opera */
+  transition: all 0.1s ease-in-out;
+}
+
+.player-ui .minplayer-default-logo {
+  z-index: 200;
+  line-height: 0px;
+  position: absolute;
+  bottom: 3px;
+  left: 3px;
+}
+
+.player-ui.controller-only .minplayer-default-logo {
+  display: none !important;
+}
+
+.player-ui .minplayer-default.fullscreen .minplayer-default-logo {
+  z-index: 1002;
+}
+
+.with-controller .minplayer-default-logo {
+  bottom: 34px;
+}
+
+.player-ui .ui-slider-horizontal .ui-slider-handle { top: -.3em; margin-left: -.6em; }
+
+
+/** OSM Player Styles **/
+.osmplayer-default {
+  position:relative;
+  width: 100%;
+  height: 100%;
+  overflow: hidden;
+  font-family:"Trebuchet MS", Helvetica, sans-serif;
+  -moz-box-shadow:0px 5px 10px #333;/*no-important moz*/
+  -webkit-box-shadow:0px 5px 10px #333;/*no-important chrome*/
+}
+
+.minplayer-default {
+  position: absolute;
+  top: 0px;
+  right: 0px;
+  bottom: 0px;
+  left: 0px;
+}
+
+.player-ui .osmplayer-default-playlist {
+  position: absolute;
+  width: 160px;
+  top: 0px;
+  bottom: 0px;
+  right: 0px;
+}
+
+.player-ui .osmplayer-default-playlist.playlist-only {
+  width: 100%;
+  height: 100%;
+}
+
+.player-ui .playlist-horizontal {
+  width: 100%;
+  height: 160px;
+  top: inherit;
+  bottom: 0px;
+  left: 0px;
+  right: 0px;
+}
+
+.player-ui .osmplayer-default-hide-show-playlist {
+  position: absolute;
+  z-index: 3;
+  top: 50%;
+  left: -16px;
+  width: 16px;
+  height: 40px;
+  margin: -20px 0 0 0;
+  text-align: center;
+  vertical-align: center;
+  opacity: 0.5;
+}
+
+.player-ui .playlist-horizontal .osmplayer-default-hide-show-playlist {
+  top: inherit;
+  left: 50%;
+  bottom: 191px; /* Playlist height + control bar. */
+  width: 40px;
+  height: 16px;
+  margin: 0 0 0 -20px;
+}
+
+.player-ui .osmplayer-default-hide-show-playlist span {
+  position: absolute;
+  top: 50%;
+  margin-top: -8px;
+}
+
+.player-ui .playlist-horizontal .osmplayer-default-hide-show-playlist span {
+  top: inherit;
+  left: 50%;
+  margin-top: 0px;
+  margin-left: -8px;
+}
+
+.player-ui .osmplayer-default-playlist-scroll {
+  position: absolute;
+  overflow: hidden;
+  top: 0px;
+  right: 0px;
+  left: 0px;
+  bottom: 32px;
+}
+
+.player-ui .playlist-horizontal .osmplayer-default-playlist-scroll {
+  bottom: 30px;
+}
+
+.player-ui .osmplayer-default-playlist-scrollbar {
+  position: absolute;
+  width: 10px;
+  height: 100%;
+  bottom: 0px;
+  right: 0px;
+  z-index: 20;
+  -moz-border-radius: 0px;
+  -webkit-border-radius: 0px;
+  border-radius: 0px;
+}
+
+.player-ui .playlist-vertical .osmplayer-default-playlist-scrollbar {
+  top: 0px;
+}
+
+.player-ui .playlist-horizontal .osmplayer-default-playlist-scrollbar {
+  width: 100%;
+  height: 10px;
+  bottom: 0px;
+}
+
+.player-ui .osmplayer-default-playlist-scrollbar .ui-slider-handle {
+  width: 8px;
+  height: 15px;
+  border: 1px solid #333;
+  right: 0;
+  left: 0;
+  margin: 0;
+  z-index:20px;
+  -moz-border-radius:2px;
+  -webkit-border-radius:2px;
+  border-radius:2px;
+  background: #e6e6e6;
+  background-image: -moz-linear-gradient(top, #e6e6e6, #d5d5d5);
+  background-image: -webkit-gradient(linear,left top,left bottom,color-stop(0, #e6e6e6),color-stop(1, #d5d5d5));
+  box-shadow: inset 0 -3px 3px #d5d5d5;
+}
+
+.player-ui .playlist-horizontal .osmplayer-default-playlist-scrollbar .ui-slider-handle {
+  width: 15px;
+  height: 8px;
+  top: 0px;
+  bottom: 0px;
+  right: inherit;
+  left: inherit;
+}
+
+.player-ui .osmplayer-default-playlist-scrollbar .ui-slider-handle.ui-state-hover {
+  background: #fff;
+}
+
+.player-ui .osmplayer-default-playlist-list {
+  margin: 2px 2px 2px 2px;
+}
+
+.player-ui .playlist-horizontal .osmplayer-default-playlist-list {
+  position: absolute;
+  margin: 1px 2px 1px 2px;
+  top: 0px;
+  bottom: 0px;
+}
+
+.player-ui .osmplayer-default-teaser {
+  margin:1px 0 1px 0;
+  cursor:pointer;
+  padding: 0;
+}
+
+.player-ui .playlist-horizontal .osmplayer-default-teaser {
+  width: 160px;
+  height: 100%;
+  float: left;
+}
+
+.player-ui .osmplayer-default-teaser-image {
+  width: 100%;
+  height: 80px;
+  margin: auto;
+}
+
+.player-ui .osmplayer-default-teaser-info {
+  z-index: 20;
+  font-size: 12px;
+  margin-top: 2px;
+  padding: 4px;
+}
+
+.player-ui .osmplayer-default-playlist-pager {
+  position: absolute;
+  display: block;
+  z-index:3;
+  bottom:0px;
+  left:0px;
+  right:0px;
+  height:30px;
+}
+
+.player-ui .osmplayer-default-playlist-pager-link {
+  float:left;
+}
+
+.player-ui .osmplayer-default-playlist-pager-left {
+  float:left;
+  margin: 3px;
+}
+
+.player-ui .osmplayer-default-playlist-pager-right {
+  float:right;
+  margin: 3px;
+}
diff --git a/public/admin/js/osmplayer/templates/default/js/osmplayer.controller.default.js b/public/admin/js/osmplayer/templates/default/js/osmplayer.controller.default.js
new file mode 100644
index 00000000000..e5e54a830f8
--- /dev/null
+++ b/public/admin/js/osmplayer/templates/default/js/osmplayer.controller.default.js
@@ -0,0 +1,123 @@
+(function(template, osmplayer) {
+
+  /** The osmplayer namespace. */
+  var osmplayer = osmplayer || {};
+
+  // Define the controller object.
+  osmplayer.controller = osmplayer.controller || {};
+
+  /**
+   * Constructor for the minplayer.controller
+   */
+  osmplayer.controller[template] = function(context, options) {
+
+    // Make sure we provide default options...
+    this.options = jQuery.extend({
+      volumeVertical: true
+    }, this.options);
+
+    // Derive from default controller
+    minplayer.controller.call(this, context, options);
+  };
+
+  /** Derive from controller. */
+  osmplayer.controller[template].prototype = new minplayer.controller();
+  osmplayer.controller[template].prototype.constructor = osmplayer.controller[template];
+
+  /**
+   * @see minplayer.plugin#construct
+   */
+  osmplayer.controller[template].prototype.construct = function() {
+    minplayer.controller.prototype.construct.call(this);
+    if (!this.options.volumeVertical || this.options.controllerOnly) {
+      this.display.addClass('minplayer-controls-volume-horizontal');
+      this.display.removeClass('minplayer-controls-volume-vertical');
+      this.volumeBar.slider("option", "orientation", "horizontal");
+    }
+    else {
+      this.display.addClass('minplayer-controls-volume-vertical');
+      this.display.removeClass('minplayer-controls-volume-horizontal');
+    }
+
+    if (!this.options.controllerOnly) {
+      this.get('player', function(player) {
+        this.get('media', function(media) {
+          if (!media.hasController()) {
+            minplayer.showThenHide(this.display, 5000, function(shown) {
+              var op = shown ? 'addClass' : 'removeClass';
+              player.display[op]('with-controller');
+            });
+          }
+          else {
+            player.display.addClass('with-controller');
+          }
+        });
+      });
+    }
+  }
+
+  /**
+   * Return the display for this plugin.
+   */
+  osmplayer.controller[template].prototype.getDisplay = function() {
+
+    // See if we need to build out the controller.
+    if (this.options.build) {
+
+      // Prepend the control template.
+      jQuery('.minplayer-' + template, this.context).prepend('\
+      <div class="minplayer-' + template + '-controls ui-widget-header">\
+        <div class="minplayer-' + template + '-controls-left">\
+          <a class="minplayer-' + template + '-play minplayer-' + template + '-button ui-state-default ui-corner-all" title="Play">\
+            <span class="ui-icon ui-icon-play"></span>\
+          </a>\
+          <a class="minplayer-' + template + '-pause minplayer-' + template + '-button ui-state-default ui-corner-all" title="Pause">\
+            <span class="ui-icon ui-icon-pause"></span>\
+          </a>\
+        </div>\
+        <div class="minplayer-' + template + '-controls-right">\
+          <div class="minplayer-' + template + '-timer">00:00</div>\
+          <div class="minplayer-' + template + '-fullscreen ui-widget-content">\
+            <div class="minplayer-' + template + '-fullscreen-inner ui-state-default"></div>\
+          </div>\
+          <div class="minplayer-' + template + '-volume">\
+            <div class="minplayer-' + template + '-volume-slider"></div>\
+            <a class="minplayer-' + template + '-volume-mute minplayer-' + template + '-button ui-state-default ui-corner-all" title="Mute">\
+              <span class="ui-icon ui-icon-volume-on"></span>\
+            </a>\
+            <a class="minplayer-' + template + '-volume-unmute minplayer-' + template + '-button ui-state-default ui-corner-all" title="Unmute">\
+              <span class="ui-icon ui-icon-volume-off"></span>\
+            </a>\
+          </div>\
+        </div>\
+        <div class="minplayer-' + template + '-controls-mid">\
+          <div class="minplayer-' + template + '-seek">\
+            <div class="minplayer-' + template + '-progress ui-state-default"></div>\
+          </div>\
+        </div>\
+      </div>');
+    }
+
+    // Let our template know we have a controller.
+    this.context.addClass('with-controller');
+
+    return jQuery('.minplayer-' + template + '-controls', this.context);
+  }
+
+  // Return the elements
+  osmplayer.controller[template].prototype.getElements = function() {
+    var elements = minplayer.controller.prototype.getElements.call(this);
+    var timer = jQuery('.minplayer-' + template + '-timer', this.display);
+    return jQuery.extend(elements, {
+      play: jQuery('.minplayer-' + template + '-play', this.display),
+      pause: jQuery('.minplayer-' + template + '-pause', this.display),
+      fullscreen: jQuery('.minplayer-' + template + '-fullscreen', this.display),
+      seek: jQuery('.minplayer-' + template + '-seek', this.display),
+      progress: jQuery('.minplayer-' + template + '-progress', this.display),
+      volume: jQuery('.minplayer-' + template + '-volume-slider', this.display),
+      mute: jQuery('.minplayer-' + template + '-volume-mute', this.display),
+      timer:timer,
+      duration:timer
+    });
+  };
+})('default', osmplayer);
diff --git a/public/admin/js/osmplayer/templates/default/js/osmplayer.default.js b/public/admin/js/osmplayer/templates/default/js/osmplayer.default.js
new file mode 100644
index 00000000000..ad92209c6f7
--- /dev/null
+++ b/public/admin/js/osmplayer/templates/default/js/osmplayer.default.js
@@ -0,0 +1,93 @@
+(function(template, osmplayer) {
+
+  /** The osmplayer namespace. */
+  var osmplayer = osmplayer || {};
+
+  // templated player.
+  osmplayer[template] = function(context, options) {
+
+    // Make sure we provide default options...
+    this.options = jQuery.extend({
+      controllerOnly: false
+    }, this.options);
+
+    // Derive from osmplayer.
+    osmplayer.call(this, context, options);
+  };
+
+  /**
+   * Define this template prototype.
+   */
+  osmplayer[template].prototype = new osmplayer();
+  osmplayer[template].prototype.constructor = osmplayer[template];
+
+  /**
+   * The player constructor.
+   */
+  osmplayer[template].prototype.construct = function() {
+    osmplayer.prototype.construct.call(this);
+    if (this.options.controllerOnly) {
+      this.display.addClass('controller-only');
+    }
+  };
+
+  /**
+   * Return the display for this plugin.
+   */
+  osmplayer[template].prototype.getDisplay = function() {
+
+    // If this is the bottom element, then we need to build.
+    if (this.context.children().length == 0) {
+
+      // Build out the player provided the base tag.
+      this.context = this.context.attr({
+        'id': this.options.id + '-player',
+        'class': 'minplayer-' + template + '-media'
+      })
+      .wrap(jQuery(document.createElement('div')).attr({
+        'class': 'minplayer-' + template + '-display ui-widget-content'
+      })).parent('.minplayer-' + template + '-display')
+      .wrap(jQuery(document.createElement('div')).attr({
+        'class': 'minplayer-' + template
+      })).parent('.minplayer-' + template)
+      .prepend('\
+        <div class="minplayer-' + template + '-logo"></div>\
+        <div class="minplayer-' + template + '-error"></div>'
+      )
+      .wrap(jQuery(document.createElement('div')).attr({
+        'id': this.options.id,
+        'class': 'osmplayer-' + template + ' player-ui'
+      })).parent('.osmplayer-' + template);
+
+      // Mark a flag that says this display needs to be built.
+      this.options.build = true;
+    }
+
+    return this.context;
+  }
+
+  // Get the elements for this player.
+  osmplayer[template].prototype.getElements = function() {
+    var elements = osmplayer.prototype.getElements.call(this);
+
+    // Set the width and height of this element.
+    this.display.width(this.options.width);
+    this.display.height(this.options.height);
+
+    // Get the minplayer component.
+    var minplayer = jQuery('.minplayer-' + template, this.display);
+    if (this.options.playlistOnly) {
+      minplayer.remove();
+      minplayer = null;
+    }
+
+    return jQuery.extend(elements, {
+      player:this.display,
+      minplayer: minplayer,
+      display:jQuery('.minplayer-' + template + '-display', this.display),
+      media:jQuery('.minplayer-' + template + '-media', this.display),
+      error:jQuery('.minplayer-' + template + '-error', this.display),
+      logo:jQuery('.minplayer-' + template + '-logo', this.display)
+    });
+  };
+})('default', osmplayer);
diff --git a/public/admin/js/osmplayer/templates/default/js/osmplayer.pager.default.js b/public/admin/js/osmplayer/templates/default/js/osmplayer.pager.default.js
new file mode 100644
index 00000000000..2935dca0de9
--- /dev/null
+++ b/public/admin/js/osmplayer/templates/default/js/osmplayer.pager.default.js
@@ -0,0 +1,55 @@
+(function(template, osmplayer) {
+
+  /** The osmplayer namespace. */
+  var osmplayer = osmplayer || {};
+
+  // Define the busy object.
+  osmplayer.pager = osmplayer.pager || {};
+
+  // constructor.
+  osmplayer.pager[template] = function(context, options) {
+
+    // Derive from pager
+    osmplayer.pager.call(this, context, options);
+  };
+
+  // Define the prototype for all controllers.
+  osmplayer.pager[template].prototype = new osmplayer.pager();
+  osmplayer.pager[template].prototype.constructor = osmplayer.pager[template];
+
+  /**
+   * Return the display for this plugin.
+   */
+  osmplayer.pager[template].prototype.getDisplay = function() {
+
+    if (this.options.build) {
+
+      // append the pager.
+      this.context.append('\
+      <div class="osmplayer-' + template + '-playlist-pager ui-widget-header">\
+        <div class="osmplayer-' + template + '-playlist-pager-left">\
+          <a href="#" class="osmplayer-' + template + '-playlist-pager-link osmplayer-' + template + '-playlist-pager-prevpage minplayer-' + template + '-button ui-state-default ui-corner-all">\
+            <span class="ui-icon ui-icon-circle-triangle-w"></span>\
+          </a>\
+        </div>\
+        <div class="osmplayer-' + template + '-playlist-pager-right">\
+          <a href="#" class="osmplayer-' + template + '-playlist-pager-link osmplayer-' + template + '-playlist-pager-nextpage minplayer-' + template + '-button ui-state-default ui-corner-all">\
+            <span class="ui-icon ui-icon-circle-triangle-e"></span>\
+          </a>\
+        </div>\
+      </div>');
+    }
+
+    return jQuery('.osmplayer-' + template + '-playlist-pager', this.context);
+  }
+
+  // Return the elements
+  osmplayer.pager[template].prototype.getElements = function() {
+    var elements = osmplayer.pager.prototype.getElements.call(this);
+    return jQuery.extend(elements, {
+      prevPage:jQuery('.osmplayer-' + template + '-playlist-pager-prevpage', this.display),
+      nextPage:jQuery('.osmplayer-' + template + '-playlist-pager-nextpage', this.display)
+    });
+  };
+})('default', osmplayer);
+
diff --git a/public/admin/js/osmplayer/templates/default/js/osmplayer.playLoader.default.js b/public/admin/js/osmplayer/templates/default/js/osmplayer.playLoader.default.js
new file mode 100644
index 00000000000..c8fe50b733b
--- /dev/null
+++ b/public/admin/js/osmplayer/templates/default/js/osmplayer.playLoader.default.js
@@ -0,0 +1,50 @@
+(function(template, osmplayer) {
+
+  /** The osmplayer namespace. */
+  var osmplayer = osmplayer || {};
+
+  // Define the busy object.
+  osmplayer.playLoader = osmplayer.playLoader || {};
+
+  // constructor.
+  osmplayer.playLoader[template] = function(context, options) {
+
+    // Derive from playLoader
+    minplayer.playLoader.call(this, context, options);
+  };
+
+  // Define the prototype for all controllers.
+  osmplayer.playLoader[template].prototype = new minplayer.playLoader();
+  osmplayer.playLoader[template].prototype.constructor = osmplayer.playLoader[template];
+
+  /**
+   * Return the display for this plugin.
+   */
+  osmplayer.playLoader[template].prototype.getDisplay = function() {
+
+    // See if we need to build out the controller.
+    if (this.options.build) {
+
+      // Prepend the playloader template.
+      jQuery('.minplayer-' + template + '', this.context).prepend('\
+      <div class="minplayer-' + template + '-loader-wrapper">\
+        <div class="minplayer-' + template + '-big-play ui-state-default"><span></span></div>\
+        <div class="minplayer-' + template + '-loader">&nbsp;</div>\
+        <div class="minplayer-' + template + '-preview ui-widget-content"></div>\
+      </div>');
+    }
+
+    return jQuery('.minplayer-' + template + ' .minplayer-' + template + '-loader-wrapper', this.context);
+  }
+
+  // Return the elements
+  osmplayer.playLoader[template].prototype.getElements = function() {
+    var elements = minplayer.playLoader.prototype.getElements.call(this);
+    return jQuery.extend(elements, {
+      busy:jQuery('.minplayer-' + template + '-loader', this.display),
+      bigPlay:jQuery('.minplayer-' + template + '-big-play', this.display),
+      preview:jQuery('.minplayer-' + template + '-preview', this.display)
+    });
+  };
+})('default', osmplayer);
+
diff --git a/public/admin/js/osmplayer/templates/default/js/osmplayer.playlist.default.js b/public/admin/js/osmplayer/templates/default/js/osmplayer.playlist.default.js
new file mode 100644
index 00000000000..0aac1cb42c8
--- /dev/null
+++ b/public/admin/js/osmplayer/templates/default/js/osmplayer.playlist.default.js
@@ -0,0 +1,172 @@
+(function(template, osmplayer) {
+
+  /** The osmplayer namespace. */
+  var osmplayer = osmplayer || {};
+
+  // Define the busy object.
+  osmplayer.playlist = osmplayer.playlist || {};
+
+  // constructor.
+  osmplayer.playlist[template] = function(context, options) {
+
+    // Derive from playlist
+    osmplayer.playlist.call(this, context, options);
+  };
+
+  // Define the prototype for all controllers.
+  osmplayer.playlist[template].prototype = new osmplayer.playlist();
+  osmplayer.playlist[template].prototype.constructor = osmplayer.playlist[template];
+
+  /**
+   * @see minplayer.plugin#construct
+   */
+  osmplayer.playlist[template].prototype.construct = function() {
+
+    this.options = jQuery.extend({
+      showPlaylist: true
+    }, this.options);
+
+    osmplayer.playlist.prototype.construct.call(this);
+
+    // Show then hide the element.
+    minplayer.showThenHide(this.elements.hideShow);
+
+    // Make the main minplayer have the same width as the playlist.
+    this.get('player', function(player) {
+
+      // Set the size.
+      var size = this.options.vertical ? 'width' : 'height';
+      var position = this.options.vertical ? 'right' : 'bottom';
+      var margin = this.options.vertical ? 'marginRight' : 'marginBottom';
+
+      // Hide and show the playlist.
+      this.hideShow = function(show, animate) {
+        var playerPos = {}, displayPos = {};
+        var displaySize = this.display[size]();
+        var e = this.options.vertical ? 'e' : 's';
+        var w = this.options.vertical ? 'w' : 'n';
+        var from = show ? 'ui-icon-triangle-1-' + w : 'ui-icon-triangle-1-' + e;
+        var to = show ? 'ui-icon-triangle-1-' + e : 'ui-icon-triangle-1-' + w;
+        jQuery('span', this.elements.hideShow).removeClass(from).addClass(to);
+        playerPos[position] = show ? displaySize : 0;
+        if (player.elements.minplayer) {
+          if (animate) {
+            player.elements.minplayer.animate(playerPos, 'fast');
+          }
+          else {
+            player.elements.minplayer.css(playerPos);
+          }
+        }
+        displayPos[margin] = show ? 0 : -displaySize;
+        if (animate) {
+          this.display.animate(displayPos, 'fast', function() {
+            player.resize();
+          });
+        }
+        else {
+          this.display.css(displayPos);
+        }
+      };
+
+      // Bind when the playlist loads.
+      this.bind('playlistLoad', (function(playlist) {
+        return function(event, data) {
+          if (data.nodes.length === 1) {
+            playlist.hideShow(false, true);
+          }
+          else {
+            playlist.hideShow(true, true);
+          }
+        };
+      })(this));
+
+      // Perform the show hide functionality of the playlist.
+      if (this.elements.hideShow) {
+        this.elements.hideShow.bind('click', (function(playlist) {
+          return function(event) {
+            event.preventDefault();
+            var button = jQuery('span', playlist.elements.hideShow);
+            var e = playlist.options.vertical ? 'e' : 's';
+            var w = playlist.options.vertical ? 'w' : 'n';
+            var show = button.hasClass('ui-icon-triangle-1-' + w);
+            playlist.hideShow(show, true);
+          };
+        })(this));
+      }
+
+      // If they wish to show the playlist.
+      if (player.elements.minplayer) {
+        if (this.options.showPlaylist) {
+
+          // Set the player to have the correct margin if the playlist is present.
+          if (this.options.vertical) {
+            player.elements.minplayer.css('right', this.display.width() + 'px');
+          }
+          else {
+            player.elements.minplayer.css('bottom', this.display.height() + 'px');
+          }
+        }
+        else {
+
+          // Hide the playlist.
+          this.hideShow(false);
+        }
+      }
+    });
+  };
+
+  /**
+   * Return the display for this plugin.
+   */
+  osmplayer.playlist[template].prototype.getDisplay = function() {
+    if (this.options.build) {
+      this.context.append('\
+      <div class="osmplayer-' + template + '-playlist">\
+        <div class="osmplayer-' + template + '-hide-show-playlist ui-state-default">\
+          <span class="ui-icon"></span>\
+        </div>\
+        <div class="minplayer-' + template + '-loader-wrapper">\
+          <div class="minplayer-' + template + '-loader"></div>\
+        </div>\
+        <div class="osmplayer-' + template + '-playlist-scroll ui-widget-content">\
+          <div class="osmplayer-' + template + '-playlist-list"></div>\
+      </div>\
+      </div>');
+    }
+    return jQuery('.osmplayer-' + template + '-playlist', this.context);
+  };
+
+  // Return the elements
+  osmplayer.playlist[template].prototype.getElements = function() {
+    var elements = osmplayer.playlist.prototype.getElements.call(this);
+
+    // Setup the dynamic settings.
+    var cName = this.options.vertical ? 'playlist-vertical' : 'playlist-horizontal';
+    cName += this.options.playlistOnly ? ' playlist-only' : '';
+    var show = this.options.showPlaylist;
+    var icon = this.options.vertical ? (show ? 'e' : 'w') : (show ? 's' : 'n');
+    var corner = this.options.vertical ? 'ui-corner-left' : 'ui-corner-top';
+
+    // Remove the playlist if we need to.
+    if (this.options.disablePlaylist || !this.options.playlist) {
+      this.display.remove();
+    }
+
+    this.display.addClass(cName);
+    var hideShow = jQuery('.osmplayer-' + template + '-hide-show-playlist', this.display);
+    hideShow.addClass(corner);
+    if (this.options.playlistOnly) {
+      hideShow.hide();
+      hideShow = null;
+    }
+    jQuery('span', hideShow).addClass('ui-icon-triangle-1-' + icon);
+
+    return jQuery.extend(elements, {
+      playlist_busy:jQuery('.minplayer-' + template + '-loader-wrapper', this.display),
+      list:jQuery('.osmplayer-' + template + '-playlist-list', this.display),
+      scroll:jQuery('.osmplayer-' + template + '-playlist-scroll', this.display),
+      hideShow: hideShow
+    });
+  };
+})('default', osmplayer);
+
diff --git a/public/admin/js/osmplayer/templates/default/js/osmplayer.teaser.default.js b/public/admin/js/osmplayer/templates/default/js/osmplayer.teaser.default.js
new file mode 100644
index 00000000000..4dd244016d5
--- /dev/null
+++ b/public/admin/js/osmplayer/templates/default/js/osmplayer.teaser.default.js
@@ -0,0 +1,80 @@
+(function(template, osmplayer) {
+
+  /** The osmplayer namespace. */
+  var osmplayer = osmplayer || {};
+
+  // Define the teaser object.
+  osmplayer.teaser = osmplayer.teaser || {};
+
+  // constructor.
+  osmplayer.teaser[template] = function(context, options) {
+
+    // Derive from teaser
+    osmplayer.teaser.call(this, context, options);
+  };
+
+  // Define the prototype for all controllers.
+  osmplayer.teaser[template].prototype = new osmplayer.teaser();
+  osmplayer.teaser[template].prototype.constructor = osmplayer.teaser[template];
+
+  /**
+   * @see minplayer.plugin#construct
+   */
+  osmplayer.teaser[template].prototype.construct = function() {
+
+    minplayer.display.prototype.construct.call(this);
+
+    // Add some hover events.
+    this.display.bind('mouseenter', (function(info) {
+      return function() {
+        info.addClass('ui-state-hover');
+      };
+    })(this.elements.info)).bind('mouseleave', (function(info) {
+      return function() {
+        info.removeClass('ui-state-hover');
+      };
+    })(this.elements.info));
+  };
+
+  /**
+   * Return the display for this plugin.
+   */
+  osmplayer.teaser[template].prototype.getDisplay = function() {
+
+    // Append this to the list.
+    this.context.append('\
+    <div class="osmplayer-' + template + '-teaser ui-widget-content">\
+      <div class="osmplayer-' + template + '-teaser-image"></div>\
+      <div class="osmplayer-' + template + '-teaser-info ui-state-default">\
+        <div class="osmplayer-' + template + '-teaser-title">Sample Title</div>\
+      </div>\
+    </div>');
+
+    var teasers = jQuery('.osmplayer-' + template + '-teaser', this.context);
+    return teasers.eq(teasers.length - 1);
+  }
+
+  /**
+   * Selects the teaser.
+   */
+  osmplayer.teaser[template].prototype.select = function(selected) {
+    if (selected) {
+      this.elements.info.addClass('ui-state-active');
+    }
+    else {
+      this.elements.info.removeClass('ui-state-active');
+    }
+  }
+
+
+  // Return the elements
+  osmplayer.teaser[template].prototype.getElements = function() {
+    var elements = osmplayer.teaser.prototype.getElements.call(this);
+    return jQuery.extend(elements, {
+      info: jQuery('.osmplayer-' + template + '-teaser-info', this.display),
+      title:jQuery('.osmplayer-' + template + '-teaser-title', this.display),
+      image:jQuery('.osmplayer-' + template + '-teaser-image', this.display)
+    });
+  };
+})('default', osmplayer);
+
diff --git a/public/admin/js/osmplayer/templates/default/osmplayer.default.js b/public/admin/js/osmplayer/templates/default/osmplayer.default.js
new file mode 100644
index 00000000000..8bdf0903a38
--- /dev/null
+++ b/public/admin/js/osmplayer/templates/default/osmplayer.default.js
@@ -0,0 +1,25 @@
+(function(a,b){b=b||{};b.playLoader=b.playLoader||{};b.playLoader[a]=function(a,b){minplayer.playLoader.call(this,a,b)};b.playLoader[a].prototype=new minplayer.playLoader;b.playLoader[a].prototype.constructor=b.playLoader[a];b.playLoader[a].prototype.getDisplay=function(){this.options.build&&jQuery(".minplayer-"+a+"",this.context).prepend('      <div class="minplayer-'+a+'-loader-wrapper">        <div class="minplayer-'+a+'-big-play ui-state-default"><span></span></div>        <div class="minplayer-'+
+a+'-loader">&nbsp;</div>        <div class="minplayer-'+a+'-preview ui-widget-content"></div>      </div>');return jQuery(".minplayer-"+a+" .minplayer-"+a+"-loader-wrapper",this.context)};b.playLoader[a].prototype.getElements=function(){var b=minplayer.playLoader.prototype.getElements.call(this);return jQuery.extend(b,{busy:jQuery(".minplayer-"+a+"-loader",this.display),bigPlay:jQuery(".minplayer-"+a+"-big-play",this.display),preview:jQuery(".minplayer-"+a+"-preview",this.display)})}})("default",
+osmplayer);
+(function(a,b){b=b||{};b.controller=b.controller||{};b.controller[a]=function(a,b){this.options=jQuery.extend({volumeVertical:!0},this.options);minplayer.controller.call(this,a,b)};b.controller[a].prototype=new minplayer.controller;b.controller[a].prototype.constructor=b.controller[a];b.controller[a].prototype.construct=function(){minplayer.controller.prototype.construct.call(this);!this.options.volumeVertical||this.options.controllerOnly?(this.display.addClass("minplayer-controls-volume-horizontal"),this.display.removeClass("minplayer-controls-volume-vertical"),
+this.volumeBar.slider("option","orientation","horizontal")):(this.display.addClass("minplayer-controls-volume-vertical"),this.display.removeClass("minplayer-controls-volume-horizontal"));this.options.controllerOnly||this.get("player",function(a){this.get("media",function(b){b.hasController()?a.display.addClass("with-controller"):minplayer.showThenHide(this.display,5E3,function(b){a.display[b?"addClass":"removeClass"]("with-controller")})})})};b.controller[a].prototype.getDisplay=function(){this.options.build&&
+jQuery(".minplayer-"+a,this.context).prepend('      <div class="minplayer-'+a+'-controls ui-widget-header">        <div class="minplayer-'+a+'-controls-left">          <a class="minplayer-'+a+"-play minplayer-"+a+'-button ui-state-default ui-corner-all" title="Play">            <span class="ui-icon ui-icon-play"></span>          </a>          <a class="minplayer-'+a+"-pause minplayer-"+a+'-button ui-state-default ui-corner-all" title="Pause">            <span class="ui-icon ui-icon-pause"></span>          </a>        </div>        <div class="minplayer-'+
+a+'-controls-right">          <div class="minplayer-'+a+'-timer">00:00</div>          <div class="minplayer-'+a+'-fullscreen ui-widget-content">            <div class="minplayer-'+a+'-fullscreen-inner ui-state-default"></div>          </div>          <div class="minplayer-'+a+'-volume">            <div class="minplayer-'+a+'-volume-slider"></div>            <a class="minplayer-'+a+"-volume-mute minplayer-"+a+'-button ui-state-default ui-corner-all" title="Mute">              <span class="ui-icon ui-icon-volume-on"></span>            </a>            <a class="minplayer-'+
+a+"-volume-unmute minplayer-"+a+'-button ui-state-default ui-corner-all" title="Unmute">              <span class="ui-icon ui-icon-volume-off"></span>            </a>          </div>        </div>        <div class="minplayer-'+a+'-controls-mid">          <div class="minplayer-'+a+'-seek">            <div class="minplayer-'+a+'-progress ui-state-default"></div>          </div>        </div>      </div>');this.context.addClass("with-controller");return jQuery(".minplayer-"+a+"-controls",this.context)};
+b.controller[a].prototype.getElements=function(){var b=minplayer.controller.prototype.getElements.call(this),c=jQuery(".minplayer-"+a+"-timer",this.display);return jQuery.extend(b,{play:jQuery(".minplayer-"+a+"-play",this.display),pause:jQuery(".minplayer-"+a+"-pause",this.display),fullscreen:jQuery(".minplayer-"+a+"-fullscreen",this.display),seek:jQuery(".minplayer-"+a+"-seek",this.display),progress:jQuery(".minplayer-"+a+"-progress",this.display),volume:jQuery(".minplayer-"+a+"-volume-slider",this.display),
+mute:jQuery(".minplayer-"+a+"-volume-mute",this.display),timer:c,duration:c})}})("default",osmplayer);
+(function(a,b){b=b||{};b.playlist=b.playlist||{};b.playlist[a]=function(a,c){b.playlist.call(this,a,c)};b.playlist[a].prototype=new b.playlist;b.playlist[a].prototype.constructor=b.playlist[a];b.playlist[a].prototype.construct=function(){this.options=jQuery.extend({showPlaylist:!0},this.options);b.playlist.prototype.construct.call(this);minplayer.showThenHide(this.elements.hideShow);this.get("player",function(a){var b=this.options.vertical?"width":"height",e=this.options.vertical?"right":"bottom",
+g=this.options.vertical?"marginRight":"marginBottom";this.hideShow=function(f,j){var h={},i={},k=this.display[b](),l=this.options.vertical?"e":"s",m=this.options.vertical?"w":"n";jQuery("span",this.elements.hideShow).removeClass(f?"ui-icon-triangle-1-"+m:"ui-icon-triangle-1-"+l).addClass(f?"ui-icon-triangle-1-"+l:"ui-icon-triangle-1-"+m);h[e]=f?k:0;a.elements.minplayer&&(j?a.elements.minplayer.animate(h,"fast"):a.elements.minplayer.css(h));i[g]=f?0:-k;j?this.display.animate(i,"fast",function(){a.resize()}):
+this.display.css(i)};this.bind("playlistLoad",function(a){return function(b,c){1===c.nodes.length?a.hideShow(!1,!0):a.hideShow(!0,!0)}}(this));this.elements.hideShow&&this.elements.hideShow.bind("click",function(a){return function(b){b.preventDefault();b=jQuery("span",a.elements.hideShow).hasClass("ui-icon-triangle-1-"+(a.options.vertical?"w":"n"));a.hideShow(b,!0)}}(this));a.elements.minplayer&&(this.options.showPlaylist?this.options.vertical?a.elements.minplayer.css("right",this.display.width()+
+"px"):a.elements.minplayer.css("bottom",this.display.height()+"px"):this.hideShow(!1))})};b.playlist[a].prototype.getDisplay=function(){this.options.build&&this.context.append('      <div class="osmplayer-'+a+'-playlist">        <div class="osmplayer-'+a+'-hide-show-playlist ui-state-default">          <span class="ui-icon"></span>        </div>        <div class="minplayer-'+a+'-loader-wrapper">          <div class="minplayer-'+a+'-loader"></div>        </div>        <div class="osmplayer-'+a+'-playlist-scroll ui-widget-content">          <div class="osmplayer-'+
+a+'-playlist-list"></div>      </div>      </div>');return jQuery(".osmplayer-"+a+"-playlist",this.context)};b.playlist[a].prototype.getElements=function(){var d=b.playlist.prototype.getElements.call(this),c=this.options.vertical?"playlist-vertical":"playlist-horizontal",c=c+(this.options.playlistOnly?" playlist-only":""),e=this.options.showPlaylist,e=this.options.vertical?e?"e":"w":e?"s":"n",g=this.options.vertical?"ui-corner-left":"ui-corner-top";(this.options.disablePlaylist||!this.options.playlist)&&
+this.display.remove();this.display.addClass(c);c=jQuery(".osmplayer-"+a+"-hide-show-playlist",this.display);c.addClass(g);this.options.playlistOnly&&(c.hide(),c=null);jQuery("span",c).addClass("ui-icon-triangle-1-"+e);return jQuery.extend(d,{playlist_busy:jQuery(".minplayer-"+a+"-loader-wrapper",this.display),list:jQuery(".osmplayer-"+a+"-playlist-list",this.display),scroll:jQuery(".osmplayer-"+a+"-playlist-scroll",this.display),hideShow:c})}})("default",osmplayer);
+(function(a,b){b=b||{};b.teaser=b.teaser||{};b.teaser[a]=function(a,c){b.teaser.call(this,a,c)};b.teaser[a].prototype=new b.teaser;b.teaser[a].prototype.constructor=b.teaser[a];b.teaser[a].prototype.construct=function(){minplayer.display.prototype.construct.call(this);this.display.bind("mouseenter",function(a){return function(){a.addClass("ui-state-hover")}}(this.elements.info)).bind("mouseleave",function(a){return function(){a.removeClass("ui-state-hover")}}(this.elements.info))};b.teaser[a].prototype.getDisplay=
+function(){this.context.append('    <div class="osmplayer-'+a+'-teaser ui-widget-content">      <div class="osmplayer-'+a+'-teaser-image"></div>      <div class="osmplayer-'+a+'-teaser-info ui-state-default">        <div class="osmplayer-'+a+'-teaser-title">Sample Title</div>      </div>    </div>');var b=jQuery(".osmplayer-"+a+"-teaser",this.context);return b.eq(b.length-1)};b.teaser[a].prototype.select=function(a){a?this.elements.info.addClass("ui-state-active"):this.elements.info.removeClass("ui-state-active")};
+b.teaser[a].prototype.getElements=function(){var d=b.teaser.prototype.getElements.call(this);return jQuery.extend(d,{info:jQuery(".osmplayer-"+a+"-teaser-info",this.display),title:jQuery(".osmplayer-"+a+"-teaser-title",this.display),image:jQuery(".osmplayer-"+a+"-teaser-image",this.display)})}})("default",osmplayer);
+(function(a,b){b=b||{};b.pager=b.pager||{};b.pager[a]=function(a,c){b.pager.call(this,a,c)};b.pager[a].prototype=new b.pager;b.pager[a].prototype.constructor=b.pager[a];b.pager[a].prototype.getDisplay=function(){this.options.build&&this.context.append('      <div class="osmplayer-'+a+'-playlist-pager ui-widget-header">        <div class="osmplayer-'+a+'-playlist-pager-left">          <a href="#" class="osmplayer-'+a+"-playlist-pager-link osmplayer-"+a+"-playlist-pager-prevpage minplayer-"+a+'-button ui-state-default ui-corner-all">            <span class="ui-icon ui-icon-circle-triangle-w"></span>          </a>        </div>        <div class="osmplayer-'+
+a+'-playlist-pager-right">          <a href="#" class="osmplayer-'+a+"-playlist-pager-link osmplayer-"+a+"-playlist-pager-nextpage minplayer-"+a+'-button ui-state-default ui-corner-all">            <span class="ui-icon ui-icon-circle-triangle-e"></span>          </a>        </div>      </div>');return jQuery(".osmplayer-"+a+"-playlist-pager",this.context)};b.pager[a].prototype.getElements=function(){var d=b.pager.prototype.getElements.call(this);return jQuery.extend(d,{prevPage:jQuery(".osmplayer-"+
+a+"-playlist-pager-prevpage",this.display),nextPage:jQuery(".osmplayer-"+a+"-playlist-pager-nextpage",this.display)})}})("default",osmplayer);
+(function(a,b){b=b||{};b[a]=function(a,c){this.options=jQuery.extend({controllerOnly:!1},this.options);b.call(this,a,c)};b[a].prototype=new b;b[a].prototype.constructor=b[a];b[a].prototype.construct=function(){b.prototype.construct.call(this);this.options.controllerOnly&&this.display.addClass("controller-only")};b[a].prototype.getDisplay=function(){0==this.context.children().length&&(this.context=this.context.attr({id:this.options.id+"-player","class":"minplayer-"+a+"-media"}).wrap(jQuery(document.createElement("div")).attr({"class":"minplayer-"+
+a+"-display ui-widget-content"})).parent(".minplayer-"+a+"-display").wrap(jQuery(document.createElement("div")).attr({"class":"minplayer-"+a})).parent(".minplayer-"+a).prepend('        <div class="minplayer-'+a+'-logo"></div>        <div class="minplayer-'+a+'-error"></div>').wrap(jQuery(document.createElement("div")).attr({id:this.options.id,"class":"osmplayer-"+a+" player-ui"})).parent(".osmplayer-"+a),this.options.build=!0);return this.context};b[a].prototype.getElements=function(){var d=b.prototype.getElements.call(this);
+this.display.width(this.options.width);this.display.height(this.options.height);var c=jQuery(".minplayer-"+a,this.display);this.options.playlistOnly&&(c.remove(),c=null);return jQuery.extend(d,{player:this.display,minplayer:c,display:jQuery(".minplayer-"+a+"-display",this.display),media:jQuery(".minplayer-"+a+"-media",this.display),error:jQuery(".minplayer-"+a+"-error",this.display),logo:jQuery(".minplayer-"+a+"-logo",this.display)})}})("default",osmplayer);
diff --git a/public/admin/js/osmplayer/templates/default/osmplayer_default.tpl.php b/public/admin/js/osmplayer/templates/default/osmplayer_default.tpl.php
new file mode 100644
index 00000000000..f3e57ec7565
--- /dev/null
+++ b/public/admin/js/osmplayer/templates/default/osmplayer_default.tpl.php
@@ -0,0 +1,65 @@
+<div id="<?php print $params['id']; ?>" class="osmplayer-<?php print $params['template']; ?> player-ui" style="width=<?php print $params['width']; ?>; height=<?php print $params['height']; ?>;">
+  <div class="minplayer-<?php print $params['template']; ?> player-ui">
+    <div class="minplayer-<?php print $params['template']; ?>-loader-wrapper">
+      <div class="minplayer-<?php print $params['template']; ?>-big-play ui-state-default"><span></span></div>
+      <div class="minplayer-<?php print $params['template']; ?>-loader">&nbsp;</div>
+      <div class="minplayer-<?php print $params['template']; ?>-preview ui-widget-content"></div>
+    </div>
+    <div class="minplayer-<?php print $params['template']; ?>-controls ui-widget-header">
+      <div class="minplayer-<?php print $params['template']; ?>-controls-left">
+        <a class="minplayer-<?php print $params['template']; ?>-play minplayer-<?php print $params['template']; ?>-button ui-state-default ui-corner-all" title="Play">
+          <span class="ui-icon ui-icon-play"></span>
+        </a>
+        <a class="minplayer-<?php print $params['template']; ?>-pause minplayer-<?php print $params['template']; ?>-button ui-state-default ui-corner-all" title="Pause">
+          <span class="ui-icon ui-icon-pause"></span>
+        </a>
+      </div>
+      <div class="minplayer-<?php print $params['template']; ?>-controls-right">
+        <div class="minplayer-<?php print $params['template']; ?>-timer">00:00</div>
+        <div class="minplayer-<?php print $params['template']; ?>-fullscreen ui-widget-content">
+          <div class="minplayer-<?php print $params['template']; ?>-fullscreen-inner ui-state-default"></div>
+        </div>
+        <div class="minplayer-<?php print $params['template']; ?>-volume">
+          <a class="minplayer-<?php print $params['template']; ?>-volume-mute minplayer-<?php print $params['template']; ?>-button ui-state-default ui-corner-all" title="Mute">
+            <span class="ui-icon ui-icon-volume-on"></span>
+          </a>
+          <a class="minplayer-<?php print $params['template']; ?>-volume-unmute minplayer-<?php print $params['template']; ?>-button ui-state-default ui-corner-all" title="Unmute">
+            <span class="ui-icon ui-icon-volume-off"></span>
+          </a>
+          <div class="minplayer-<?php print $params['template']; ?>-volume-slider"></div>
+        </div>
+      </div>
+      <div class="minplayer-<?php print $params['template']; ?>-controls-mid">
+        <div class="minplayer-<?php print $params['template']; ?>-seek">
+          <div class="minplayer-<?php print $params['template']; ?>-progress ui-state-default"></div>
+        </div>
+      </div>
+    </div>
+    <div class="minplayer-<?php print $params['template']; ?>-logo"></div>
+    <div class="minplayer-<?php print $params['template']; ?>-error"></div>
+    <div class="minplayer-<?php print $params['template']; ?>-display ui-widget-content"></div>
+  </div>
+  <div class="osmplayer-<?php print $params['template']; ?>-playlist">
+    <div class="osmplayer-<?php print $params['template']; ?>-hide-show-playlist ui-state-default">
+      <span class="ui-icon"></span>
+    </div>
+    <div class="minplayer-<?php print $params['template']; ?>-loader-wrapper">
+      <div class="minplayer-<?php print $params['template']; ?>-loader"></div>
+    </div>
+    <div class="osmplayer-<?php print $params['template']; ?>-playlist-scroll ui-widget-content">
+      <div class="osmplayer-<?php print $params['template']; ?>-playlist-list"></div>
+    </div>
+    <div class="osmplayer-<?php print $params['template']; ?>-playlist-pager ui-widget-header">
+      <div class="osmplayer-<?php print $params['template']; ?>-playlist-pager-left">
+        <a href="#" class="osmplayer-<?php print $params['template']; ?>-playlist-pager-link osmplayer-<?php print $params['template']; ?>-playlist-pager-prevpage minplayer-<?php print $params['template']; ?>-button ui-state-default ui-corner-all">
+          <span class="ui-icon ui-icon-circle-triangle-w"></span>
+        </a>
+      </div>
+      <div class="osmplayer-<?php print $params['template']; ?>-playlist-pager-right">
+        <a href="#" class="osmplayer-<?php print $params['template']; ?>-playlist-pager-link osmplayer-<?php print $params['template']; ?>-playlist-pager-nextpage minplayer-<?php print $params['template']; ?>-button ui-state-default ui-corner-all">
+          <span class="ui-icon ui-icon-circle-triangle-e"></span>
+        </a>
+      </div>
+    </div>
+  </div>
+</div>
\ No newline at end of file
diff --git a/public/admin/js/osmplayer/templates/simpleblack/css/images/busy.gif b/public/admin/js/osmplayer/templates/simpleblack/css/images/busy.gif
new file mode 100644
index 0000000000000000000000000000000000000000..bd6dd974121f17d5c4dd79a8a579db1061166c72
GIT binary patch
literal 3208
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
DK$5y3

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/templates/simpleblack/css/images/mask.png b/public/admin/js/osmplayer/templates/simpleblack/css/images/mask.png
new file mode 100644
index 0000000000000000000000000000000000000000..00ac71b07c59d36a06dd0487383f9aaa7d57a775
GIT binary patch
literal 151
zcmeAS@N?(olHy`uVBq!ia0vp^Od!m`1|*BN@u~nRmSQK*5Dp-y;YjHK@;M7UB8wRq
z7;k_u<FA-yML<Ex64!{5;QX|b^2DN4hVt@qz0ADq;^f4FRK5J7^x5xhq=1S<JY5_^
mIA$iNBqVU8B>+KE0}}(w0fz9?n_8QI@(iA?elF{r5}E*?`X;>q

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/templates/simpleblack/css/images/mediafront_audioslidebarbg.png b/public/admin/js/osmplayer/templates/simpleblack/css/images/mediafront_audioslidebarbg.png
new file mode 100644
index 0000000000000000000000000000000000000000..9a86971461c338dcd19db6020ba2388be4716a35
GIT binary patch
literal 554
zcmeAS@N?(olHy`uVBq!ia0vp^>Okzl!3HEt8Q<&zQk(@Ik;M!Q+`=Ht$S`Y;1W-^R
z*(1o8fuUWRfuZ|910z=r14HFM28OWb42*pD7#J*V85oq}76)W}Wnf_3;OXKRQgQ3e
zHQ%5^4g#zXrk`|ZxKtox*;J*Uf3U542g|j22bndNI`sJ5@mW60Y|$TAvGuFtST!cq
zT%A1AGbmJ4Z>x;nj!E`4*X~aizO&iL-K1tc!-3h-|EDE4N^R4=V9|M7@b7$QZ4HMT
z6S*9o@@j>C)DnBy*N}N+`6)M51`a9p1$+(by8fuWa8dj&>35KGLC*^QsX_A}^RD4m
zV7?H1lIN0aBR5+pL&WhL*?AAG1TV20FcgUP|LvIK_loab^W;9y>DL&-7^Xd|`f99c
z@iI!kX&oaE;}gM~{TB~77cfO1-NP6mF{7m7@!1LAl+!HcpO=pl*Y~z86m}|Fb=0(U
zU0l$+y!Z0X9LB7x)jNGSZttuynrYK}{PFYR_e|!C1MOz}6<@uoBqy9dt#4PgYhcc)
zO*-d$KWEN5a<Quae0*+Enp4TumW<78uVzk5J#D%9T<Mh$+ahhbnJ4U!7kjuSHAd|H
z>)8dq2h3he`xIo{h_5|u!MnPg>-q<)C;uL*Udii>p8Gi4s_=-Qy9`01yr7nsVgBWo
V>rUCc>w)pi;OXk;vd$@?2>_Q9-GKlA

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/templates/simpleblack/css/images/mediafront_back.png b/public/admin/js/osmplayer/templates/simpleblack/css/images/mediafront_back.png
new file mode 100644
index 0000000000000000000000000000000000000000..1db313531e08bad14893077e05f35f3e8c34ce85
GIT binary patch
literal 597
zcmeAS@N?(olHy`uVBq!ia0vp^LO}e5g9%7VZhSZ&M3uNklmzFem6RtIr7}3C<R_&n
zc;+Uirv{}arc@T5OtoQPVEpds;uunK>&=bRUQB^9Yz6w0C$QZ-+PY4P`=BP5PQlZt
z6TSHXc`+_rQ-$(ke=>ZP((9>WC{%71OyMq6<Z==(QJkVT<?>2J&C-&8&JUjb4tp$F
z=l=6t;fD-^3&leHGkJC~vB80v)Z&XCX=2@~Q@t+U*mZcK-*R)8iSgW0y&7E~EADLD
zvSiPdBY*1tU;H>xL5IgZZF7M|jRaRO57%YyZnwq1+1Vd&Z_!+;D#W>zVQtU!X*+gA
z#6}0tE-~8eqc%M}?8NRT{~jh*`9JGi{Pg(o@89`7KS}utKdY^)HC%l*eD&2;S6|(G
zr}w_?Kt<HrX*#Fv=I39`QZ<;Dw|(~c=c=BY{%2*FJ(lEQYjryKv}9L|9#e3T*3_J^
z*)Pg2-w5C9|I}~!=FNNme)^WCR_puvtJV7Jd$)SlX@qEr+Nd8q00qwue^Dtf?^c5g
z9QfBcbKn10%MEwmjnfg!eE;}sm2@v#a?k$-*Rz-!9d_SMyMOVN(nOE-*OTop9x<B9
z^Lw@=&}V1UZbmFKjGLu%IwvUP<^~g~Y_r)uwyV@v-SPE%uK4!NpFQ{AU$$E^DZ#)Z
zCW-0s#|oRrcQc~ieVlq>*G{)<b2m(_T(@rh7lV11BYLiTr+MwIk~nua0S1bb=QHsz
ZESpiq&~V5Xm`oTLJYD@<);T3K0RXwT6~h1k

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/templates/simpleblack/css/images/mediafront_bigplay.png b/public/admin/js/osmplayer/templates/simpleblack/css/images/mediafront_bigplay.png
new file mode 100644
index 0000000000000000000000000000000000000000..0de2df44fe8290fbfcbcb92d1fbe13fdc17189bc
GIT binary patch
literal 18792
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
a00RIfrJ$^cRUpg&0000<MNUMnLSTZ(DCLj<

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/templates/simpleblack/css/images/mediafront_black40.png b/public/admin/js/osmplayer/templates/simpleblack/css/images/mediafront_black40.png
new file mode 100644
index 0000000000000000000000000000000000000000..0d0a76471f2862c795474941aec0e83f2cb59ecf
GIT binary patch
literal 109
zcmeAS@N?(olHy`uVBq!ia0vp^j3CUx1|;Q0k8}bl$r9IylHmNblJdl&R0hYC{G?O`
z&)mfH)S%SFl*+=BsWw1G{GKk3Ar-fh5)u+J7&r_V7+M(`Utjf^36x^+boFyt=akR{
E04xj~NB{r;

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/templates/simpleblack/css/images/mediafront_blue20.png b/public/admin/js/osmplayer/templates/simpleblack/css/images/mediafront_blue20.png
new file mode 100644
index 0000000000000000000000000000000000000000..3559a57c6a1678a4c9983b420d2b1b74e9591f70
GIT binary patch
literal 144
zcmeAS@N?(olHy`uVBq!ia0vp^j3CUx1|;Q0k8}blmSQK*5Dp-y;YjHK@;M7UB8wRq
zSPy_OV@ivW5KvIE#5JNMI6tkVJh3R1p}f3YFEcN@I61K(RWH9NefB#WDWD==PZ!4!
hj+x0bHvhC|XJDJc6mF6HND(N(;OXk;vd$@?2>?6IBKQCR

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/templates/simpleblack/css/images/mediafront_buttonaudioslidebar.png b/public/admin/js/osmplayer/templates/simpleblack/css/images/mediafront_buttonaudioslidebar.png
new file mode 100644
index 0000000000000000000000000000000000000000..a71654b9fcb86a66aaea8403a2127f8a15541cdd
GIT binary patch
literal 178
zcmeAS@N?(olHy`uVBq!ia0vp^(m>3?!2~4RzX+QHDajJoh?3y^w370~qErUQl>DSr
z1<%~X^wgl##FWaylc_d9MIoLpjv*Dd)|@}c$)L!?dXZOc=MstS|NCqzCwM3bZ0)dT
zwUMxTUUNZ1sUar2_t_kWz|fm_7oI<ot*dZiy?Pgi*BKwV<PHO`HCo^H{=XNvXl5)U
a8$)})?Dg!+VzNN<89ZJ6T-G@yGywofb39@I

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/templates/simpleblack/css/images/mediafront_buttoncontroler.png b/public/admin/js/osmplayer/templates/simpleblack/css/images/mediafront_buttoncontroler.png
new file mode 100644
index 0000000000000000000000000000000000000000..92a7e70b969019c76a5de9fb601e569ba7f1339f
GIT binary patch
literal 259
zcmV+e0sQ`nP)<h;3K|Lk000e1NJLTq000O8000{Z0ssI2&M#T%0000PbVXQnQ*UN;
zcVTj606}DLVr3vnZDD6+Qe|Oed2z{QJOBUyrAb6VRCwBql1mcAAP7YLa3b%2Dc2F0
zR<am@su>okO20H<n=<FrP!LH}MWoyXMq7@c6p{?Ul7Lz(lnt2K0X&IMB@U>5hJkhJ
zuNkei-0=&<t&j)C<c=Kl-obV&2X?e52{X(@PiXZz7JGm~j}!adifi2_eE#GP_Kx*B
zu&&(q!Im!W!_Ba);NttD+Ic0YDtes*iv1;H3>@`4L~QjDU;s-H^vgVuTL}OF002ov
JPDHLkV1jZ6Xe9su

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/templates/simpleblack/css/images/mediafront_buttoninfo.png b/public/admin/js/osmplayer/templates/simpleblack/css/images/mediafront_buttoninfo.png
new file mode 100644
index 0000000000000000000000000000000000000000..0d2018ee2e87d4f35d65dc058eb48464813db2a2
GIT binary patch
literal 1352
zcmV-O1-JT%P)<h;3K|Lk000e1NJLTq000*N001lq1^@s6j+Z0O0000PbVXQnQ*UN;
zcVTj606}DLVr3vnZDD6+Qe|Oed2z{QJOBU$>PbXFRCwCdmTO2HR}{zZ&dxr3>{=fQ
zk(O9ch%Ob=#P~#Fw+~vh(0*uXg4IxI=xS=Ch9pubNPQGj5i2IK)Jnjlp#}RvE1^U*
zJ~t*3X=<@SG-bsKt>R<V-Pzflo-1dzx68Qh=JBBy{><FhZ_YjU+;c}o9<8WA97v7g
zuuTHFK_2?#gMg_RD34Gc#o;&+<)R<r0szYvYCs_%11JI%35urA!CSX1i;Ii%Hk)mr
zuCDGm`Gb6bU@b@w3Im0rbhN*_yZfyJiHT?EV69f0Y&M%;gVzqaN`4nGkKk}>?dh`9
zSsB@x$08$)shbX`6sp%P9(?hTNuJ<#yH|U9dWO*Vl4=*Q4#ClFZEYpV$;lR%(@7jo
z2MISANkT$`cY-L28&^9!i_e}rHw@KPkiZ23zIgfKM=2>O7Rl`<%d4v`dY!&HK0e;V
zfIW>(O;rH?jfoZy@5jg6;MPm6AEu?Il>&gQ*w<<#Ng7WynSPWb1YF^MFg>l_wA;g&
zXxaV%rx3d`II6X!<%9Gi>17^|hd3OLy1X~?8WZB<GtdA6A9DOUb$?KB2_!BqE(Sx;
zg>cCi&SSVmeAV21;z)XWIT%I+0O#iB*3m(*Vc!daFzIr+Y@=gig)UKy1~-wpxw$Fm
zb~0{}SeH<+5%hdjRaJ@AYL!MuN2Qy6HybdvjZAz~D`R?ke`*~b9F)4cx<;U$4BCq!
ztCE3oQOlcnC^hvxQ4q+=`dV{-Uj7Aa_n=i&Vt-%X=em%P5{~1@#KgpPXtOhxON2SL
z-k3gKQ1HUusHmKc&5Z|J4(I5?!on2jetSnpB93!|wV#EChkv5cXvoOONKI{R?a$D@
z&cMA;HVNrsV`KNzIOceMD<?bqidwDS1KO9Bkx@V=3=9lZYxVjw&_;%ahQ6q*to#m|
zS3p}BDUuR=I|+>p58KpWktxZPqEe~!^5L6(INRTQqxZaCudk%80Puy1ii%F?TLx{=
zL&Lg6hO>!@&&bStCMhvV<oSQM<M-+5%YxJOazvQnEUn)j8*3^rFTVn>OG>_G!%vGc
z)YsQ%6&4nL3t*!>U}k29*w@zx4L4q^C6m8QepzZM?Ldp|KH*1v!*AOyr^-H#DJm-Z
z8hq&mkKeg7w6wfzFd7UYf7s@&-?X=19k*H^Lf4v)D?CaG%DeVs@4TA|;3&C1ac`pK
z&HVgpxJd$T7}X}o!JI_TPHEM9P4ODd-#IxsufS$S!f9(Tzhu6I;kAm-b+p#O<PT}L
z>q~<x&@k5*L5tW#B>Eg{X}2qkXCU(BDqpnhiIn^;e@Dw9vyrD&IPw(BlY(0?-tU6;
zd0VMl9#a<SzvYD77c3|Z)B*YvG!N?c0WX1`eH3_w<iD(d4zqIt1)pLd^;j2~HW#jn
z1Pf<<`Y9;W2Q0t88Z7)I1F6Qg^Gw?&s2kslgMk+-fC+BcZO|;}DCjPZIUFebC<CtX
zV?ZO0`9Z0Fr%BhD&D&{A17m<WP`C*vOyLUTm_ERasb|2)cQQb!@pYVJ#SN27g97+{
ze*vM?xL@Ibh`97>rDGlpobI~A2VTQ$o`fMvf`uQ%{NS&g3^Zl1m&G2?6h7tBi9en6
z2lNJr-m8BFoQRn(z3pRR#p9-9wh{rl2Xa0Mu&-PGUw7y~0t^7XuvCK|Iu64C0000<
KMNUMnLSTa5p@A^~

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/templates/simpleblack/css/images/mediafront_buttonpause.png b/public/admin/js/osmplayer/templates/simpleblack/css/images/mediafront_buttonpause.png
new file mode 100644
index 0000000000000000000000000000000000000000..4d3ef5a479aa9970491bbb6bf8df44e37de6ca52
GIT binary patch
literal 456
zcmV;(0XP1MP)<h;3K|Lk000e1NJLTq000vJ001Zm1^@s69PPoP0000PbVXQnQ*UN;
zcVTj606}DLVr3vnZDD6+Qe|Oed2z{QJOBUzYDq*vRCwC#lwEFvFc5^-#12-Y^f6aR
z`riAWpa<wVS|#8=s7-gH1z{*Esu~GP6N`M~VGVc%02EO>l*DTh)uIB<0zHE9Cd#8H
zNET9}6b3eEax6@tpLk*h1r(M-o}!LX8vmo98W$GG6yu3~!uMz;tLkWsd56I$%kmYs
zA|rnr;TH_{yt0FHu4hy#6#>stHfo>Yho~x5Ne?{D+6CV;7ezwd_GK3~&NaO_9;UqQ
z-+3oGb4feOaK*#uRTtLUo>}hIeO>y=aQc*l<S;(qo>^-ROZa4%_a2t;2MKdCX164)
zveV`{E?IYI%;42CbLfuKIBzIJvNqzZ88sU`PLSaa*Ec+@wu7@5LMjMu80Is)=3xQv
zeobHa%lUjapH8PVeNflP@GGtl0uQSGWk0)7*PzPiK~HtsYNFEy(Y7tDH40d9tQsZ<
y*JFDYKjr^-n_JixwuL=L3lcMa@n@BN2`~UC)a9bc%VV<u0000<MNUMnLSTYLOTi8R

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/templates/simpleblack/css/images/mediafront_buttonplay.png b/public/admin/js/osmplayer/templates/simpleblack/css/images/mediafront_buttonplay.png
new file mode 100644
index 0000000000000000000000000000000000000000..aace68a2378aecb8c32bb8bdd40dafba8962872c
GIT binary patch
literal 828
zcmV-C1H=4@P)<h;3K|Lk000e1NJLTq000vJ001Zm1^@s69PPoP0000PbVXQnQ*UN;
zcVTj606}DLVr3vnZDD6+Qe|Oed2z{QJOBU!-bqA3RCwCVl}%_9K@`U`yOZ?8)V7{P
zf>Knlf*!0G0x{-T3W_v(@a{#M7E$yP4+SqhBq|7|NYM7AMVm%wtshWoTZ5%Yi(plX
zN?R#45J{Vw#Le!;H#!@pW75X#9vt|wyTi_Z|MTX(x5#8NAwXcR+Q?B<=6=J0senN5
zMMhAi$biBK78MmKW<sz#=&Y=&#_wlmWje=-qs^R&)Dc-&+0oH{rm5*ruyJ3b7>!0h
z$+9dmAwZjnYA+H&OJXHyuE3U>9X8vQp5ERkot>R0VZI)y1*||dP{FxIycoHfB}u}$
z+@FwGEEb#dsMG)a#k0_PueS-N>VO(x3s6N~;bM+hF%h<fdFyqx_4f9*wg<1q$FChe
zV&7TBWnN5+g8;4y#seWF>}qK63=a(sj*g6+6$GK4I;>>eAvUi}#l-S?gz;9p!*My0
zNDMse?{`x%Eq?38N*z|Kb@!>()*cWIg~Q>!1)b>~xSU0)RO-vv#8_8LbIUM1u4yHQ
zxj=7Ne~O~4y_uQ{x!mr%s;VYoDg$J-aub-MR*Q+j!Km}|^8+4_=eX15>IR_%b(EpC
zn|G#l1_e$_=7m<1t26ie`usNnfoZZsAPxKkB)$o-Vp%MT%Gc%P-y%{r`)%^|<V~N?
zHw2GAI1z1Y>)MkhM!p~|EiOu;*_=wJ(;>g#e=i=7C#gV&URe>9Z%0_$B6<1a+}uPg
z7JC$lM3&f(P!!J1-<85tKW6%yiTQ}kIVpPLs6g9BTvsi*Z6mGa7%>bjCtl0}Y&S~m
z81MnONIR+SZIVtJ0Nw#7jEdPF;4wft!+xU<pc!}z+@h{^pC(CUFYp;S$0W9{)Yt~x
z2Bzs@8IorQfKeb!V{3fU;xgCG0+)cNdbYU&TmTO8LjU57w4yt}Rp7gxZN8*#X7nWO
z0&p5|mm*Zm8To~E0oUnIq~yUjM<;c(P|gwmzn%7%00RI$(GxCfj&*MU0000<MNUMn
GLSTX@FMqxO

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/templates/simpleblack/css/images/mediafront_buttonresizescreen.png b/public/admin/js/osmplayer/templates/simpleblack/css/images/mediafront_buttonresizescreen.png
new file mode 100644
index 0000000000000000000000000000000000000000..69aa1a290d06e5c01b85132b55b6c2a1512a6435
GIT binary patch
literal 780
zcmV+n1M~ceP)<h;3K|Lk000e1NJLTq001EX001xu1^@s6pKcRT0000PbVXQnQ*UN;
zcVTj606}DLVr3vnZDD6+Qe|Oed2z{QJOBU!u1Q2eRCwC#SWRxzKop)CPh1kUNc0BX
zuws=RYs#)1pdc;*>ViYSB@pca=#H{xmlb<%P$XKVtz&zbm%gz+9^*DnGm#N}($h>V
zJMZ)R{l;2di-uL|D#b<gFN4Nw2Ky8sYF?|bm&QpguLiv1?r0qUqh<gluN49y;{&fb
zfY9*ZUBn1aknzInjKF9%IAGoQbaeFL;nvn`l~8`2oqc?@zyHQ>uLy{Re3*xW0KC}S
z+Y!lAwIr;L#5|UO89w{@`1prk5BPd%Aty}4ZKxT9DQl@7Cz3A2-9>CPzirE#;U9%;
zwyZgaE^7f%ajXlh08nX5Tam#^WH7!3-8=L;qTB%>C;<S)dI||xfj5n`X(KhP*o`y(
z9r7igOeWvEB;a^Fe(aYE@J1~v&MASat-do3!Dxv>7(vPF+v@iw5C+P)s|+GNr!$DP
zh*_}LhlJ}YGf^Q+g9sTuT>``us-qQzjl@4(cknQ2;j{fo#}X}|#5K$)g?VBlEmw)I
z7+hI$xsjpE1)EjL*Rx2+Y;0O27qDv4nh{9NMiyz?vRxa|mFKIC%n2n(je!AHi>7wl
z0MjsY<nU{3T7kZzG0Rgf=_tps&>K?I3wqZJqT36~e}C?XojWYF<7~x1oM3FTkere)
zP<cM!HD^$!r7?9eu7LO!te2ro@!UZ}X?XJW<o))e?UyN=)#=aE!`)}QZ+RA7$#X|e
z0Q|Ik>i3&WY*#5{^xSjRZ+?Bpp3qk0M9w#FI_JKm@PgL*Id7ZJY(!;*(LPKVjUjNB
zxqZ_@YSu+9b#IBTUZZXOPf`B=7ld1*ZP!~*xD{~8F7n5x0S5p|=<%uK0=|LN^4t*^
zFv&Uh_#^|2_stg^dG07^%<_~=I?C~&+#6EU3wn2d?x2gm1sDLh!%JY%vt0-P0000<
KMNUMnLSTZq)NO+R

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/templates/simpleblack/css/images/mediafront_buttonsound.png b/public/admin/js/osmplayer/templates/simpleblack/css/images/mediafront_buttonsound.png
new file mode 100644
index 0000000000000000000000000000000000000000..8c898f587645f11842394e8ec9e24b60ecf6e884
GIT binary patch
literal 851
zcmV-Z1FZasP)<h;3K|Lk000e1NJLTq000sI001fo1^@s6zUK><0000PbVXQnQ*UN;
zcVTj606}DLVr3vnZDD6+Qe|Oed2z{QJOBU!^+`lQRCwCll}~6BK@`SkH@i*Drp-2r
zSkaP;-jt>u4QkMfAeMR(th7?3+KVU2t;gWeLwXZ5R8X)7sRf~pRJ?^Ef+ugDBq-G;
zCfWSi&5m#4n=oBBn>6MiKKPN{Wais9Z@>2<5$})y89zA`v4!i_51m3r6u>74HXYcV
zg!q%$<{`ijs3^$71nNKoubCK?T{bJYIS32`I&d%+n>@Z-EIfa;zMg>l11K(w>8pqz
z7x2x8fFr=ssi~>h=H|w;P*98K^Z5{b7s9ne{OC-`!h&&8wqOK^0Ed&w<b@}h%(AZQ
zQAJURQK@hN3G36Um4X7i9vWsd%7oI(=_@lgX695?RczZPKA(@2N+nG=nvd66!3*{o
zV437{xu=EV?(nD{QKHf4xM`ZLbV00Di)ytRz_qIIHf^U+$nW=`kYqW?GT7PKA)2O<
zk#M;EN-fJ$h1zgSv@hEAX*3#=Vbn;?FbK=W8L3q2{^LyMoZzpvkkfpg0d*R>m`Gf5
zxLx8x-0ID4LiKvR@@8u*E9{}7A#HSNO_C()CA74(^zhc~>^rngllPj8A{N@dvi*LW
zinRgZJwo6m3){oOy*7XS6tk%U#l<^|apobY#n_A0)w^dVC(nu<83+Vw_)t^GsC6`6
z8}^hk@B{eTY&Jh%o1T8Kk<G3Uo7!9m>|o$SP3O`0Y+*v|X+MGQObqyPdw%{=I-O2}
zEsAV|9*I;?$P#AK9|KHm71k!lfRn)Kg@uL7<#PGc%eA%Za6blwg`Vp;kGQAY=21hK
zM-6^F$z#Myf_phcc+29H^c=OsF|TFed)qO$i9{(SgNT1mNZ!X<Hm6?$ao1m2Mm;bN
ze5Ai4?zX0vj93Oa;FRa8E}6^$b-FiPGjf}VZ?PWCfD^qI&`oFp`)GgRl4gN=hXGve
zr`XP5e~vf*#z#EZ;9D8Q(famL-z}o!*a*5Fp-)3H?g3V}qxITr=Yem75aNydp_9;m
dJRyGxFaU5IhUhurHwFLz002ovPDHLkV1mm#oCE*>

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/templates/simpleblack/css/images/mediafront_close.png b/public/admin/js/osmplayer/templates/simpleblack/css/images/mediafront_close.png
new file mode 100644
index 0000000000000000000000000000000000000000..9ed8c2e70b1de99fe0f4c8e1548931f29b7d3a66
GIT binary patch
literal 571
zcmV-B0>u4^P)<h;3K|Lk000e1NJLTq000vJ000vR1^@s6a!@wR0000PbVXQnQ*UN;
zcVTj606}DLVr3vnZDD6+Qe|Oed2z{QJOBUz-AP12RCwBqlwU-{Q546wUx^qoA|fJ6
zMC@rPQObIZQp!><5yjL?Be9Vp+e@jJQZGeHDMgyHhtyL<N@Jvmh%sVB^gVokoUWTX
zeEfdb@1E~Hzw_sMv)Qc2VzpoZbbxwL2A)6$q`*4Jn@*0g_JK8U52is5?0_gm%0U7=
zgK<-=SiM(+L(l*=LBw`CBi#T?pcxE-PaT>3#xYOs0wcc&i9LWOFavtPiWymgk+pyu
z&)@b1=0JhI7hv0A*u!8!3Hf-U-%^-awN8R-Fb|4EEX)&<YLlEc2F{eA2&F*`Osc&S
zL=^~%SO}bg549o6C<7D>Qm6vlvOun-nBS1YT$#-#Ezzk2uar<bzq?kTf33qx+A1dw
z6KXBx?=^&66MvtGy))sqDcD!lD*?NfqIlR+Zw^N!Xc5vms^hZ}oYUDgKRY5LVke-L
z6>)9U$WfM0S8zb>?UuF>9WMsm&sjU*Xt*Z*v~1)^_V$5Qu1moqc$KMexH-;#3oFOC
zCD}P8<l&_te=wzIa}gZz<M=<uNg~?f??yNUKdzvDu*cgV&AZIBGLGIohkQauT5L4m
zAg3Y5&d(bS9pLklJ@?~M@cwes7BR9mPzh>S$rq;M&gS$jzyK*Fc?ysZF&h8?002ov
JPDHLkV1mKR_8b5J

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/templates/simpleblack/css/images/mediafront_controlerbarBg.png b/public/admin/js/osmplayer/templates/simpleblack/css/images/mediafront_controlerbarBg.png
new file mode 100644
index 0000000000000000000000000000000000000000..ffb7ceb7a4986160105f19e03465cb6075e26dcb
GIT binary patch
literal 612
zcmeAS@N?(olHy`uVBq!ia0y~yU~~eqRXEsy<ezfmd>|!R;u=vBoS#-wo>-L1;Fyx1
zl&avFo0y&&l$w}QS$HzlhJk^J&C|s(q~g|_JHCE0h5~Jg;ZyHUj7U2_r$tvL<;dAh
zC!4gNB)zp?bw{9(VTs14-wMg)Q+HRV^xAE73i9ITWH3{+%adVlxZC`pGnrvSwZOh2
z9)@jvhkpP4=RRj<=PI?cH`6E1IlW6S?!4t|cl&GE?;mb<Iq&m!N0z0$;rhMTOaJY0
zFTRuiFQ&8o_pSP_S^l#YO@Fjh@7wFGeul@}=M*2Ck=!Gp`E2QT$<_C6<z$<teckH6
zxb*+izhc!j6}EYCf4A-r-~VCP_bQ(E>+e1PI=!&U_UGHuU!`k5J`?#m<MHMXrcD1n
zE7a8N*;~lNP_|5lk)cU|fy0SGfrGI@fdvOA!TaO<#JXaTN1WvMTd*;(C^87NFgOS>
zF*tJI;p{$nUSHq-|IzNykRv9d#v3J;dI$<@ss*05jDKwL<ieV&C!zZL&cDu*ukMRD
zzBet){tsuE$*YU{_kwrNQ(qP3C1yJH&2`U|z2{G7=X>nydmVAk^0Gv7mwt`k+3RsL
zO24c)bM3c8?GdAE*<Y@?<>r>X|GHxC^PI)Kb=zKkeb`%Bwf~yctn-F{s=jRdwfVZ#
z)~l-v|9@Q*`o8}D#o(G96V>j=J&^vdRP$7V;f-92KP1wQ88Y0sxtoERA==cn+kwmX
R4lvm;c)I$ztaD0e0swzj3grL*

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/templates/simpleblack/css/images/mediafront_forward.png b/public/admin/js/osmplayer/templates/simpleblack/css/images/mediafront_forward.png
new file mode 100644
index 0000000000000000000000000000000000000000..d89f122da0130fed91b6a660085059cc795f1b56
GIT binary patch
literal 592
zcmeAS@N?(olHy`uVBq!ia0vp^LO}e5g9%7VZhSZ&M3uNklmzFem6RtIr7}3C<R_&n
zc;+Uirv{}arc@T5OtoQPVEp9i;uunK>&>nG-b{%S>;-#;r^{@SzoJw!d56V~qrQ1f
zm;Q?SIfYC}SeWal)W`bBKEdAMpoV~NL4m+}0rgVNf_DWQTupXsbUdp0Y}wSb?|j9F
z%F6rif7`IP&)W9A%=gP9pEfQY7<dzJu=!?A%h4pm)mOdJUN=qfP?;7Ub|O7GCd#Vo
zIIE+A`=*4=uKbH8shmCh!`Cw^I<_{x`SIR3{qvva`nA_EMsJegYrpyN)&1LT8k-)^
zt-SlDA~JT-(Q1iasmyh|!@R%mOckq`=X377{;I3eOx03+#xs4k-=4d51z)hdeDKOC
zt5)@#txx6u{{3Z1m5J2G^M5+;YI&K>p6j>#zS(v5)nR#l=l!1Nq@Iq>*cr1fY_%Yp
z-|vR9oiT39W(%6ctxte~`cBqnM;9hG82Glh=dp$Inu{4X-j*2&yKcOjxBG71r<-&9
z()Y%F|5@|ILx#_NXAEDfQ}ND6U$1^CR-Npr?6bPY?!WJzT|TSRHlOS$e>Mr|73+(S
z)`n=g&01X%xnypxjof>8r7a#Ip}Z_iJ+UwTWL<gx{cm0U`s>O(eTy{Y`rC8&ZE{+u
z;CU&*K%wO1$CHMMMJCHyw{7<RE&eoHWs}ZyFV#;of_RbKz5j3=iv+{%f`1q9ZEIu&
PCJ_ctS3j3^P6<r_rSS$?

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/templates/simpleblack/css/images/mediafront_infobox.png b/public/admin/js/osmplayer/templates/simpleblack/css/images/mediafront_infobox.png
new file mode 100644
index 0000000000000000000000000000000000000000..087d263f1815a8c4fcd14455827dd37835bee4f0
GIT binary patch
literal 2385
zcmeAS@N?(olHy`uVBq!ia0y~yVANq?U{>H@1B%R4h*t+vk|nMYCBgY=CFO}lsSJ)O
z`AMk?p1FzXsX?iUDV2pMQ*9U+I6iy2IEGZ*dUGQ>@38`dL*RkC|ATIcO1)w~B4HhB
z|7oJf^NdBu^4YW3c|7`l-k;M~^Ys3p`_m?P?_X&XmwUf%zmd%CZRaiR&rO{E{chdT
zEl&+%%FiwTe7<!5<=QKsx4nLzxATrp|N6RWxpVV>m)_nw?dgQq=@#q$zqzyh`tC^a
zS38To|NLw-|JbK@_kKOz{&k_vv7J|buVt>O)SLc%N8DqhWyg)*_pdfDkr6+Yx&NL>
zFo$OD`{bV6tM}gj|L*tE)cK{cS=zh)9)J8T+&0~6o9}B&CtEw&<4Yg@FuCJDYguyi
zir>pBcGh)WFRkBqE8Xk&*2`7jzSdgb-}Lw0y<0`q_1~qoZ-09EXWQG?_g7li->|E;
z>d&=!R~s+tpM34uPFZ`q>HmH`{B))--Ma3bfz9`A{?T=R>{rxZ*DYrF!EjQ5Vg94+
z-)@Ww5e!YN9AXE4e_Cvv(8j6|(U8E%AqFIxfNZD~tF|=T0UmCL4GagF1aum%vz+dK
z*B}X3q|Y@?{w|}j4p6p6mBrvNP|bmGCkFfiK*LzLA5?Dm^MY?iBG5*#WgiwL{Jba&
zHUTUTwGn7AP;IS>GXs)Rsk##OGaDFy2xt-5E*6jrS-1s24iV77FaVdN!v-E$D1iMA
zb_tenAS4M7FhUBUp2cp(s42reTpAK2nQ)~=a7rgqlFa0eX2qx}z~Baz7sEGP4jQpg
zR3t&mD{!rVx9lQDa?})HTwp2W35Uy{)9V?S8I(EN`@dg{c>!!AF?hQAxvX<aXaWG5
CIeGg4

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/templates/simpleblack/css/images/mediafront_logo.png b/public/admin/js/osmplayer/templates/simpleblack/css/images/mediafront_logo.png
new file mode 100644
index 0000000000000000000000000000000000000000..05b62c82697a5a5bad077eb0fa08ae1ac141578f
GIT binary patch
literal 4331
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
ZFaQ>i=>Hm1-q`>E002ovPDHLkV1i5>DwhBN

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/templates/simpleblack/css/images/mediafront_movie640x360.png b/public/admin/js/osmplayer/templates/simpleblack/css/images/mediafront_movie640x360.png
new file mode 100644
index 0000000000000000000000000000000000000000..4e42b428adf0b0aca530726d01f3036998ced959
GIT binary patch
literal 271814
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%0A4PA&Vv)D0?
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

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/templates/simpleblack/css/images/mediafront_moviethumb.png b/public/admin/js/osmplayer/templates/simpleblack/css/images/mediafront_moviethumb.png
new file mode 100644
index 0000000000000000000000000000000000000000..ee48fecd73bffb9418b41307331fa501785052f6
GIT binary patch
literal 36462
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

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/templates/simpleblack/css/images/mediafront_playlistbg.png b/public/admin/js/osmplayer/templates/simpleblack/css/images/mediafront_playlistbg.png
new file mode 100644
index 0000000000000000000000000000000000000000..21ee040e931a1c94dae7f9826280c348ea2f4870
GIT binary patch
literal 154
zcmeAS@N?(olHy`uVBq!ia0vp^j6mGN!2~4lab4RAq$EpRBT9nv(@M${i&7aJQ}UBi
z6+Ckj(^G>|6H_V+Po~-c71?;YIEGZ*O8W8ZtM=i=?)?&dGM0x*9zXMKD}H{?aPx*u
zMur9kJ&zvtMxHr)c4pn*U#wl#1yT&lSQ{9a8R9J^O(ldbWdY4$@O1TaS?83{1OQ`P
BHGTj9

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/templates/simpleblack/css/images/mediafront_playlistshadow.png b/public/admin/js/osmplayer/templates/simpleblack/css/images/mediafront_playlistshadow.png
new file mode 100644
index 0000000000000000000000000000000000000000..d98142bf513e3f23b4f06fb3856ada58fe784d89
GIT binary patch
literal 145
zcmeAS@N?(olHy`uVBq!ia0vp^f<Vm3!3HEPcDp75DajJoh?3y^w370~qErUQl>DSr
z1<%~X^wgl##FWaylc_d9MaG^kjv*Ddl2Q^9D)^4nH~df+_|Nd@y~7{Yj{D3X*%j)T
rkK`}>V!gtm;~&eB`Hoc#Ogs$2-U7VGZ{M>AYG?3t^>bP0l+XkKG)gV3

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/templates/simpleblack/css/images/mediafront_playlisttitlebg.png b/public/admin/js/osmplayer/templates/simpleblack/css/images/mediafront_playlisttitlebg.png
new file mode 100644
index 0000000000000000000000000000000000000000..52632b95bee81743dcc027953e21d2f0f93da1ed
GIT binary patch
literal 242
zcmeAS@N?(olHy`uVBq!ia0vp^i-A~?gAGV-6_E}GQj#UE5hcO-X(i=}MX3yqDfvmM
z3ZA)%>8U}fi7AzZCsS>Jil%tFIEGZ*dUMH|uR%e;!SVXM-}1*7FKlIHoWjDbnI?5O
zKl!85(vqC)j-rXhdEZu*-YIuWzqq@2?(x&RpZON<w^{#w|5>ShFaKPA{5|vA@p5D1
z^yg;PzuCG4l#^HtmE3Sp9fF2U5`xMY)FFRAMm7fBYz_1K*MGYJ-N)eR>gTe~DWM4f
DGhtH0

literal 0
HcmV?d00001

diff --git a/public/admin/js/osmplayer/templates/simpleblack/css/osmplayer_simpleblack.css b/public/admin/js/osmplayer/templates/simpleblack/css/osmplayer_simpleblack.css
new file mode 100755
index 00000000000..cea37d7b672
--- /dev/null
+++ b/public/admin/js/osmplayer/templates/simpleblack/css/osmplayer_simpleblack.css
@@ -0,0 +1,405 @@
+#mediaplayer {
+  position:relative;
+  background:#000;
+  border:1px solid #333;
+  font-family:"Trebuchet MS", Helvetica, sans-serif;
+  -moz-box-shadow:0px 10px 20px #666;/*no-important moz*/
+  -webkit-box-shadow:0px 10px 20px #666;/*no-important chrome*/
+}
+
+#mediaplayer img {
+  border:0;
+}
+
+#mediaplayer_display {
+  background-color:#000;
+  width:100%;
+  height:100%;
+  z-index:400;
+  position:absolute;
+}
+
+#mediaplayer_minplayer.fullscreen #mediaplayer_display, #mediaplayer_minplayer.fullscreen #mediaplayer_preview {
+  position: fixed;
+  left: 0;
+  top: 0;
+  right: 0;
+  bottom: 0;
+  overflow: hidden;
+  z-index:1000;
+  width: 100%;
+  height: 100%;
+}
+
+#mediaplayer_minplayer.fullscreen #mediaplayer_preview {
+  z-index:1001;
+}
+
+#mediaplayer_minplayer.nomedia #mediaplayer_display {
+  display:none;
+}
+
+/*--------------------------- Media Fields ---------------------------*/
+.mediafield {
+  margin:5px;
+  color:#ddd;
+}
+
+
+/*--------------------------- Play Loader ---------------------------*/
+#mediaplayer_play_loader {
+  background:url(images/mask.png);
+  display: table-cell;
+  vertical-align:middle;
+  position:absolute;
+  width:100%;
+  height:100%;
+  cursor:pointer;
+}
+
+#mediaplayer_minplayer.fullscreen #mediaplayer_play_loader {
+  position:fixed;
+  top:0;
+  left:0;
+}
+
+#mediaplayer_preview {
+  background-color:#000;
+  position:absolute;
+  width:100%;
+  height:100%;
+  z-index:401;
+}
+
+#mediaplayer_bigPlay {
+  width:174px;
+  height:174px;
+  position: absolute;
+  top: 50%;
+  left: 50%;
+  margin: -87px 0 0 -87px;
+  text-align:center;
+  vertical-align:center;
+  z-index:402;
+  background: url(images/mediafront_bigplay.png) no-repeat;
+}
+
+#mediaplayer_busy {
+  width:32px;
+  height:32px;
+  position: absolute;
+  top: 50%;
+  left: 50%;
+  margin: -16px 0 0 -16px;
+  text-align:center;
+  vertical-align:center;
+  z-index:403;
+  background: url(images/busy.gif) no-repeat;
+}
+
+/*--------------------------- control bar ---------------------------*/
+#mediaplayer_control {
+  z-index:403;
+  position:absolute;
+  bottom:10px;
+  background:url(images/mediafront_controlerbarBg.png) center repeat-x;
+  height:36px;
+  width:100%;
+}
+
+#mediaplayer_minplayer.nomedia #mediaplayer_control {
+  display:none;
+}
+
+#mediaplayer_minplayer.fullscreen #mediaplayer_control {
+  position: fixed;
+  left:0;
+  z-index:1010;
+}
+
+#mediaplayer_control span {
+  display:none;
+}
+
+#mediaplayer_controlLeft {
+  float:left;
+  width:70px;
+  height:36px;
+}
+
+#mediaplayer_controlRight {
+  float:right;
+  width:100px;
+  height:36px;
+}
+
+.mediaplayer_controlspace {
+  margin:9px 3px 0;
+}
+
+/*---------------------------progress bar---------------------------*/
+#mediaplayer_seekBar {
+  background: url(images/mediafront_black40.png);
+  height:27px;
+  margin:5px 104px 0 70px;
+  border-top: none;
+  border-bottom: none;
+  border-radius: 0px;
+  -webkit-border-radius: 0px;
+  -moz-border-radius: 0px;
+}
+#mediaplayer_seekProgress {
+  background: url(images/mediafront_black40.png);
+  position:absolute;
+  z-index:404;
+  height:27px;
+}
+#mediaplayer_seekBar .ui-slider-range {
+  background: url(images/mediafront_blue20.png);
+  position:absolute;
+  z-index:405;
+  height:27px;
+}
+#mediaplayer_seekBar .ui-slider-handle {
+  background:url(images/mediafront_buttoncontroler.png) no-repeat 0 0;
+  position:absolute;
+  z-index:409;
+  width:8px;
+  height:27px;
+  top:-0.1em;
+  border-radius: 0px;
+  -webkit-border-radius: 0px;
+  -moz-border-radius: 0px;
+}
+
+/*--------------------------- playing time ---------------------------*/
+#mediafront_playtime, #mediafront_totaltime {
+  color:#FFF;
+  float:left;
+  position:relative;
+  font-size:12px;
+}
+
+/*--------------------------- play | pause ---------------------------*/
+#mediaplayer_playPause {
+  float:left;
+  position:relative;
+  height:20px;
+  width:19px;
+}
+#mediaplayer_play, #mediaplayer_pause {
+  position:absolute;
+  z-index:404;
+  height:20px;
+  width:19px;
+}
+#mediaplayer_play {
+  background:url(images/mediafront_buttonplay.png) no-repeat 0 0;
+}
+#mediaplayer_play:hover {
+  background:url(images/mediafront_buttonplay.png) no-repeat 0 -20px;
+}
+#mediaplayer_pause {
+  background:url(images/mediafront_buttonpause.png) no-repeat 0 0;
+}
+#mediaplayer_pause:hover {
+  background:url(images/mediafront_buttonpause.png) no-repeat 0 -20px;
+}
+
+/*-------------------------info buttons---------------------------*/
+#mediafront_information {
+  float:left;
+  position:relative;
+  width:22px;
+  height:23px;
+  margin-top:7px;
+}
+#mediafront_menuButton {
+  position:absolute;
+  z-index:404;
+  width:22px;
+  height:23px;
+  background:url(images/mediafront_buttoninfo.png) no-repeat 0 0;
+}
+#mediafront_menuButton:hover {
+  background:url(images/mediafront_buttoninfo.png) no-repeat center -22px;
+}
+
+/*--------------------------- fullscreen button ---------------------------*/
+#mediafront_resizeScreen {
+  position:absolute;
+  z-index:404;
+  position:absolute;
+  bottom:6px;
+  right:0px;
+  width:33px;
+  height:24px;
+}
+
+#mediaplayer_minplayer.nomedia #mediafront_resizeScreen {
+  bottom:23px;
+  right:30px;
+}
+
+#mediaplayer_minplayer.fullscreen #mediafront_resizeScreen {
+  position: fixed;
+  right:0px;
+  bottom:16px;
+  z-index:1012;
+}
+
+#mediaplayer_minplayer.fullscreen.nomedia #mediafront_resizeScreen {
+  position: fixed;
+  right:0px;
+  bottom:5px;
+  z-index:1012;
+}
+
+#mediafront_resizeScreen span {
+  display:none;
+}
+
+#mediafront_resize_to_fullScreen, #mediafront_resize_to_normalScreen {
+  position:absolute;
+  z-index:404;
+  width:33px;
+  height:24px;
+}
+#mediafront_resize_to_fullScreen {
+  background: url(images/mediafront_buttonresizescreen.png) no-repeat 0 0;
+}
+#mediafront_resize_to_fullScreen:hover {
+  background:url(images/mediafront_buttonresizescreen.png) no-repeat 0 -24px;
+}
+#mediafront_resize_to_normalScreen {
+  background:url(images/mediafront_buttonresizescreen.png) no-repeat 0 -24px;
+}
+#mediafront_resize_to_normalScreen:hover {
+  background:url(images/mediafront_buttonresizescreen.png) no-repeat 0 0;
+}
+
+/*--------------------------- volume ---------------------------*/
+#mediafront_audio {
+  float:left;
+  position:relative;
+  width:18px;
+  height:21px;
+  margin-top:7px;
+}
+#mediaplayer_audioButton {
+  position:absolute;
+  z-index:404;
+  width:18px;
+  height:21px;
+  background: url(images/mediafront_buttonsound.png) center 0 no-repeat;
+}
+#mediaplayer_audioButton:hover {
+  background: url(images/mediafront_buttonsound.png) center -21px no-repeat;
+}
+#mediaplayer_audioBar {
+  background:url(images/mediafront_audioslidebarbg.png) no-repeat 0 0;
+  position:absolute;
+  z-index:404;
+  height:72px;
+  width:39px;
+  margin-top:-76px;
+  margin-left:-10px;
+  border:none;
+  border-radius: 0px;
+  -webkit-border-radius: 0px;
+  -moz-border-radius: 0px;
+}
+
+#mediaplayer_audioBar .ui-slider-range {
+  background: url(images/mediafront_black40.png);
+  position:absolute;
+  font-size:0px;
+  z-index:405;
+  bottom:0px;
+  width:26px;
+  left:5px;
+}
+#mediaplayer_audioBar .ui-slider-handle {
+  background:url(images/mediafront_buttonaudioslidebar.png) no-repeat 0 0;
+  width:27px;
+  height:8px;
+  position:absolute;
+  z-index:406;
+  left:5px;
+  border-radius: 0px;
+  -webkit-border-radius: 0px;
+  -moz-border-radius: 0px;
+}
+
+/*--------------------------- menu ---------------------------*/
+#mediaplayer_menu {
+  position:absolute;
+  display:none;
+  width:300px;
+  height:150px;
+  z-index:420;
+  top: 50%;
+  left: 50%;
+  margin: -75px 0 0 -150px;
+  text-align:center;
+  vertical-align:center;
+  background:url(images/mediafront_infobox.png) repeat-x;
+  -moz-box-shadow:0px 5px 15px #000;/*no-important moz*/
+  -webkit-box-shadow:0px 5px 15px #000;/*no-important chrome*/
+}
+#mediaplayer_menu.fullscreen {
+  position: fixed;
+  top: 50%;
+  left: 50%;
+}
+
+#mediaplayer_menuHeader {
+  text-align:left;
+  padding:9px 8px 8px 11px;
+  border-bottom:1px solid #000;
+  height:20px;
+}
+#mediaplayer_menuHeader div {
+  float:left;
+  border:1px solid #dbdbdb;
+  margin:0 1px;
+}
+#mediaplayer_menuHeader div a {
+  color:#dbdbdb;
+  text-decoration:none;
+  padding:0px 12px;
+}
+#mediaplayer_menuHeader div a:hover, #mediaplayer_menuHeader div.active a {
+  color:#000;
+  background:#dbdbdb;
+}
+#mediaplayer_menuHeader div#mediaplayer_menuClose {
+  background:url(images/mediafront_close.png) no-repeat;
+  height:19px;
+  width:19px;
+  float:right;
+  border:0;
+}
+.mediaplayer_info {
+  text-align:left;
+  padding:6px 8px 8px 11px;
+  color:#dbdbdb;
+  border-top:1px solid #666;
+}
+
+/*---------------------------logo---------------------------*/
+.medialogo {
+  position:absolute;
+  width:49px;
+  height:15px;
+  bottom:45px;
+  left:5px;
+  z-index:500;
+}
+
+#mediaplayer_minplayer.fullscreen .medialogo {
+  position:fixed;
+  z-index:1500;
+  left:5px;
+  bottom:45px;
+}
diff --git a/public/admin/js/osmplayer/templates/simpleblack/js/osmplayer.controller.simpleblack.js b/public/admin/js/osmplayer/templates/simpleblack/js/osmplayer.controller.simpleblack.js
new file mode 100644
index 00000000000..89d672d1323
--- /dev/null
+++ b/public/admin/js/osmplayer/templates/simpleblack/js/osmplayer.controller.simpleblack.js
@@ -0,0 +1,102 @@
+(function(template, osmplayer) {
+
+  /** The osmplayer namespace. */
+  var osmplayer = osmplayer || {};
+
+  // Define the controller object.
+  osmplayer.controller = osmplayer.controller || {};
+
+  /**
+   * Constructor for the minplayer.controller
+   */
+  osmplayer.controller[template] = function(context, options) {
+
+    // Derive from default controller
+    minplayer.controller.call(this, context, options);
+  };
+
+  /** Derive from controller. */
+  osmplayer.controller[template].prototype = new minplayer.controller();
+  osmplayer.controller[template].prototype.constructor = osmplayer.controller[template];
+
+  /**
+   * @see minplayer.plugin#construct
+   */
+  osmplayer.controller[template].prototype.construct = function() {
+    minplayer.controller.prototype.construct.call(this);
+    if (!this.options.controllerOnly) {
+      this.get('player', function(player) {
+        this.get('media', function(media) {
+          if (!media.hasController()) {
+            minplayer.showThenHide(this.display, 5000, function(shown) {
+              var op = shown ? 'addClass' : 'removeClass';
+              player.display[op]('with-controller');
+            });
+          }
+          else {
+            player.display.addClass('with-controller');
+          }
+        });
+      });
+    }
+  }
+
+  /**
+   * Return the display for this plugin.
+   */
+  osmplayer.controller[template].prototype.getDisplay = function() {
+
+    // See if we need to build out the controller.
+    if (this.options.build) {
+
+      // Prepend the control template.
+      jQuery('#mediaplayer_minplayer', this.context).append('\
+      <div id="mediaplayer_control">\
+        <div id="mediaplayer_controlLeft">\
+          <div id="mediaplayer_playPause" class="mediaplayer_controlspace">\
+            <div id="mediaplayer_play" class="on"><span>play</span></div>\
+            <div id="mediaplayer_pause" class="off"><span>pause</span></div>\
+          </div>\
+          <div id="mediafront_playtime" class="mediaplayer_controlspace">00:00</div>\
+        </div>\
+        <div id="mediaplayer_controlRight">\
+          <a id="mediafront_resizeScreen" class="mediaplayerlink mediaplayer_controlspace" href="#fullscreen">\
+            <div id="mediafront_resize_to_fullScreen" class="on"><span>make full screen</span></div>\
+            <div id="mediafront_resize_to_normalScreen" class="off"><span>make normal screen</span></div>\
+          </a>\
+          <div id="mediafront_totaltime" class="mediaplayer_controlspace">00:00</div>\
+          <div id="mediafront_audio" class="mediaplayer_controlspace">\
+             <div id="mediaplayer_audioButton"></div>\
+             <div id="mediaplayer_audioBar"></div>\
+          </div>\
+          <a id="mediafront_information" class="mediaplayerlink mediaplayer_controlspace" href="#menu">\
+            <div id="mediafront_menuButton"><span>information</span></div>\
+          </a>\
+        </div>\
+        <div id="mediaplayer_seekBar">\
+          <div id="mediaplayer_seekProgress"></div>\
+        </div>\
+      </div>');
+    }
+
+    // Let our template know we have a controller.
+    this.context.addClass('with-controller');
+    return jQuery('#mediaplayer_control', this.context);
+  }
+
+  // Return the elements
+  osmplayer.controller[template].prototype.getElements = function() {
+    var elements = minplayer.controller.prototype.getElements.call(this);
+    return jQuery.extend(elements, {
+      play: jQuery('#mediaplayer_play', this.display),
+      pause: jQuery('#mediaplayer_pause', this.display),
+      fullscreen: jQuery('#mediafront_resizeScreen', this.display),
+      seek: jQuery('#mediaplayer_seekBar', this.display),
+      progress: jQuery('#mediaplayer_seekProgress', this.display),
+      volume: jQuery('#mediaplayer_audioBar', this.display),
+      mute: jQuery('#mediaplayer_audioButton', this.display),
+      timer: jQuery('#mediafront_playtime', this.display),
+      duration: jQuery('#mediafront_totaltime', this.display)
+    });
+  };
+})('simpleblack', osmplayer);
diff --git a/public/admin/js/osmplayer/templates/simpleblack/js/osmplayer.playLoader.simpleblack.js b/public/admin/js/osmplayer/templates/simpleblack/js/osmplayer.playLoader.simpleblack.js
new file mode 100644
index 00000000000..289d962a7d9
--- /dev/null
+++ b/public/admin/js/osmplayer/templates/simpleblack/js/osmplayer.playLoader.simpleblack.js
@@ -0,0 +1,45 @@
+(function(template, osmplayer) {
+
+  /** The osmplayer namespace. */
+  var osmplayer = osmplayer || {};
+
+  // Define the busy object.
+  osmplayer.playLoader = osmplayer.playLoader || {};
+
+  // constructor.
+  osmplayer.playLoader[template] = function(context, options) {
+
+    // Derive from playLoader
+    minplayer.playLoader.call(this, context, options);
+  };
+
+  // Define the prototype for all controllers.
+  osmplayer.playLoader[template].prototype = new minplayer.playLoader();
+  osmplayer.playLoader[template].prototype.constructor = osmplayer.playLoader[template];
+
+  /**
+   * Return the display for this plugin.
+   */
+  osmplayer.playLoader[template].prototype.getDisplay = function() {
+    if (this.options.build) {
+      jQuery('#mediaplayer_minplayer', this.context).prepend('\
+      <div id="mediaplayer_play_loader">\
+        <div id="mediaplayer_busy"></div>\
+        <div id="mediaplayer_bigPlay"></div>\
+        <div id="mediaplayer_preview"></div>\
+      </div>');
+    }
+    return jQuery('#mediaplayer_play_loader', this.context);
+  }
+
+  // Return the elements
+  osmplayer.playLoader[template].prototype.getElements = function() {
+    var elements = minplayer.playLoader.prototype.getElements.call(this);
+    return jQuery.extend(elements, {
+      busy:jQuery('#mediaplayer_busy', this.display),
+      bigPlay:jQuery('#mediaplayer_bigPlay', this.display),
+      preview:jQuery('#mediaplayer_preview', this.display)
+    });
+  };
+})('simpleblack', osmplayer);
+
diff --git a/public/admin/js/osmplayer/templates/simpleblack/js/osmplayer.simpleblack.js b/public/admin/js/osmplayer/templates/simpleblack/js/osmplayer.simpleblack.js
new file mode 100644
index 00000000000..6aeabc4ea90
--- /dev/null
+++ b/public/admin/js/osmplayer/templates/simpleblack/js/osmplayer.simpleblack.js
@@ -0,0 +1,88 @@
+(function(template, osmplayer) {
+
+  /** The osmplayer namespace. */
+  var osmplayer = osmplayer || {};
+
+  // templated player.
+  osmplayer[template] = function(context, options) {
+
+    // Make sure we provide default options...
+    this.options = jQuery.extend({
+      controllerOnly: false
+    }, this.options);
+
+    // Derive from osmplayer.
+    osmplayer.call(this, context, options);
+  };
+
+  /**
+   * Define this template prototype.
+   */
+  osmplayer[template].prototype = new osmplayer();
+  osmplayer[template].prototype.constructor = osmplayer[template];
+
+  /**
+   * The player constructor.
+   */
+  osmplayer[template].prototype.construct = function() {
+    osmplayer.prototype.construct.call(this);
+    if (this.options.controllerOnly) {
+      this.display.addClass('controller-only');
+    }
+  };
+
+  /**
+   * Return the display for this plugin.
+   */
+  osmplayer[template].prototype.getDisplay = function() {
+
+    // If this is the bottom element, then we need to build.
+    if (this.context.children().length == 0) {
+
+      // Build out the player provided the base tag.
+      this.context = this.context.attr({
+        'id': this.options.id + '-player',
+        'class': 'mediaplayer-' + template + '-media'
+      })
+      .wrap(jQuery(document.createElement('div')).attr({
+        'id': 'mediaplayer_display'
+      })).parent('#mediaplayer_display')
+      .wrap(jQuery(document.createElement('div')).attr({
+        'id': 'mediaplayer_minplayer'
+      })).parent('#mediaplayer_minplayer')
+      .prepend('\
+        <div id="mediaplayer_busy"></div>\
+        <div id="mediaplayer_bigPlay"></div>\
+        <div id="mediaplayer_preview"></div>\
+      ')
+      .wrap(jQuery(document.createElement('div')).attr({
+        'id': 'mediaplayer_node'
+      })).parent('#mediaplayer_node')
+      .wrap(jQuery(document.createElement('div')).attr({
+        'id': 'mediaplayer'
+      })).parent('#mediaplayer')
+      .wrap(jQuery(document.createElement('div')).attr({
+        'id': this.options.id,
+        'class': 'osmplayer-' + template + ' player-ui'
+      })).parent('.osmplayer-' + template);
+
+      // Mark a flag that says this display needs to be built.
+      this.options.build = true;
+    }
+
+    return this.context;
+  }
+
+  // Get the elements for this player.
+  osmplayer[template].prototype.getElements = function() {
+    var elements = osmplayer.prototype.getElements.call(this);
+    this.display.width(this.options.width);
+    this.display.height(this.options.height);
+    return jQuery.extend(elements, {
+      player:this.display,
+      minplayer: jQuery('#mediaplayer_minplayer', this.display),
+      display:jQuery('#mediaplayer_display', this.display),
+      media:jQuery('.minplayer-' + template + '-media', this.display)
+    });
+  };
+})('simpleblack', osmplayer);
diff --git a/public/admin/js/osmplayer/templates/simpleblack/osmplayer_simpleblack.tpl.php b/public/admin/js/osmplayer/templates/simpleblack/osmplayer_simpleblack.tpl.php
new file mode 100755
index 00000000000..a645132b067
--- /dev/null
+++ b/public/admin/js/osmplayer/templates/simpleblack/osmplayer_simpleblack.tpl.php
@@ -0,0 +1,37 @@
+<div id="<?php print $params['id']; ?>" class="osmplayer-<?php print $params['template']; ?> player-ui">
+  <div id="mediaplayer" style="height:<?php print $params['height']; ?>">
+    <div id="mediaplayer_node">
+      <div id="mediaplayer_minplayer">
+        <div id="mediaplayer_play_loader">
+          <div id="mediaplayer_busy"></div>
+          <div id="mediaplayer_bigPlay"></div>
+          <div id="mediaplayer_preview"></div>
+        </div>
+        <div id="mediaplayer_display"></div>
+        <div id="mediaplayer_control">
+          <div id="mediaplayer_controlLeft">
+            <div id="mediaplayer_playPause" class="mediaplayer_controlspace">
+              <div id="mediaplayer_play" class="on"><span>play</span></div>
+              <div id="mediaplayer_pause" class="off"><span>pause</span></div>
+            </div>
+            <div id="mediafront_playtime" class="mediaplayer_controlspace">00:00</div>
+          </div>
+          <div id="mediaplayer_controlRight">
+            <a id="mediafront_resizeScreen" class="mediaplayerlink mediaplayer_controlspace" href="#fullscreen">
+              <div id="mediafront_resize_to_fullScreen" class="on"><span>make full screen</span></div>
+              <div id="mediafront_resize_to_normalScreen" class="off"><span>make normal screen</span></div>
+            </a>
+            <div id="mediafront_totaltime" class="mediaplayer_controlspace">00:00</div>
+            <div id="mediafront_audio" class="mediaplayer_controlspace">
+               <div id="mediaplayer_audioButton"></div>
+               <div id="mediaplayer_audioBar"></div>
+            </div>
+          </div>
+          <div id="mediaplayer_seekBar">
+            <div id="mediaplayer_seekProgress"></div>
+          </div>
+        </div>
+      </div>
+    </div>
+  </div>
+</div>
diff --git a/public/admin/js/osmplayer/version.txt b/public/admin/js/osmplayer/version.txt
new file mode 100755
index 00000000000..f1ff8548958
--- /dev/null
+++ b/public/admin/js/osmplayer/version.txt
@@ -0,0 +1 @@
+2.0-alpha1
-- 
GitLab