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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"><static> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"><static> </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"> </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"><static> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"><static> + + <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"><static> + + <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"><static> + + <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"> </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"> </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"><static> </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"> </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"> </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"><static> </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"> </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"><static> + + <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"><static> + + <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"> </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"> </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"> </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"> </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"><static> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"><static> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"><static> + + <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"><static> + + <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"> </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"> </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"><static> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"><static> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"><static> + + <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"><static> + + <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"> </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"> </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"><static> </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"> </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"> </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"> </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"> </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"><static> </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"><static> </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"><static> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"><static> + + <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"><static> + + + <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"><static> + + <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"><static> + + <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"> </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"> </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"> </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"><static> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"><static> </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"><static> </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"><static> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"><static> + + <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"><static> + + + <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"><static> + + <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"><static> + + <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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"><static> </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"> </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"> </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"> </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"> </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"> </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"><static> </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"> </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"> </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"><static> + + + <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"><static> + + + <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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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> * <p> +<span class='line'> 33</span> * <strong>Usage:</strong> +<span class='line'> 34</span> * <pre><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> * </code></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"><</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> * <p> +<span class='line'> 12</span> * <strong>Usage:</strong> +<span class='line'> 13</span> * <pre><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> * </code></pre> +<span class='line'> 36</span> * </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"><<</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"><<</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> * <p><strong>Usage:</strong> +<span class='line'> 36</span> * <pre><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> * </code></pre> +<span class='line'> 44</span> * </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">'<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">'<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">'</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"><</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"><</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">'<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">'"></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">'<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">'"></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"><</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> * <p><strong>Usage:</strong> +<span class='line'> 35</span> * <pre><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> * </code></pre> +<span class='line'> 43</span> * </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"><=</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"><</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"><</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"><</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"><</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"><</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"><</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 zcmV;C3~uv@P)<h;3K|Lk000e1NJLTq001BW004jp1^@s6YG!L10000PbVXQnQ*UN; zcVTj606}DLVr3vnZDD6+Qe|Oed2z{QJOBU;Gf6~2RCwC#T6v6B<rV+#ee1m0m<4Bm zVG(r5bigqxP^fX3VbKs0Qf*=r2w0@(RR1uhrbH@ff)=CF*fth1ItT$YZ9_w9Ms1Mc z(MD3X%2sdzv4b#%S(xSR@7>$;``$fozPAnY5P~u9CWm+L_nqH4=R5a&=bY~jnrWKi zW?pvrPs5Qyp=m4Vwwb8xDwtlPy}~rNMvvX?!@wR*E7FB{jBf8ID!&T8hv-8?h|Tj& zbI=|iGaqTVv+D7AO`~t~xNYuaep9fM@aqf2f_vL9Pd#z`8;youi*ty_YU=8KF`==s z##U71%&M9ML<a}MUwOS#I?kNI$i}z<My$E1vGTT_?y$Q@U23;npeU;-RK>V|G`sw^ z6Q5jcW&>ih@|t_^tqBGKP7w%P&Fju_vu4$tKXc~(Ap^`<xvmL!z#mC)^<D9c_g<-y z_ltjdL6na23|ZiEx`E+mGN9blb!V`@Up`mw+9f(4d@xC?I_54ecE+q%rCS~lp-@!# zeW3(}Lqo>kUY+y#!V<$5I3u)jUtgb8#0v48X)Hj7M${lQV^J;OkBVR*oDdp|8KQR4 ze)(&6*hMTFS7@`_#4Xk362rVvqTt}5@DsI9nIf9bo)yt(R8;NWO$!T&%a<=xjBCPs z`|ZN%aEMz*kCvE(0m6uA;c!$ci$r4L$`zmR4fw=|uZ@?}3!k_sbi2z6NeV<?L}FAA zL`e~p78e$Z-4zw0;m8qTv)P2*ZkO~gQZ6M#BIzCwMwG@4;SWT`mA;TL3{B|HxI(wv zEo?5g&~?X9Fl!EpNiu+xhX)3Pzo$nO8%C0H2d%n9-TP!jvH`J()<0;7!H|uVd4vr^ z(U4SLP*5Q37_&TpOS5YdlZX*eSC=q}3TUg1JAOP#xvuMC)`bh=L`^)Xbr_rC0nHzE z2uHzCq(=gpRPJ)QC<fd#SCG7!jN};5XyqPKUZyDjZ*8rdzlW5=h=z+7#ph$k64pq> zKztX(!sK(8aJoGSvb*BSrImEA&VeLG@qi;77BI2njyt6C&q+C{l61^k`F}_`c;KaE z4@5(~;jkI9dt3=W)4iDUc&EHC8B?9K`0yYiF4W7<lzMuMa5zjU)QPbDl9Z2E_;G)N zl=E27Fv5X&N{)NL40L~V_MeA4j9@HecRB=9`NZ*()Ug=xeEIQ_4q#Y87v=Vk`};3M zO*4!<JQ3+Gg?KDV$`1sC7l0Y^KqT<yr4xH}qJ{KSag|isP4o}VR`4bdP{Q84mz+X0 z;$lSJ+AIV5J5i36OZ(u14=O+X^wTwz!RALIk!cvDt#pzCa?jMMQ(t`Gfd{&*e3a?Z zcI?<udGzSfHGx22K81zEJDtvxw4?Uib=O@lE?v4b39ov<-rCx_xVyW1Q!Ey%#<oHF zj8{>Uc8*LgofQ=oEh|^9e9zi_NsC#(e*NN0mo9B0!zDgx*Aku<(m7_#n3m_BdoF=z z0~}koZhf?~vvU(?F#M_pkWn(*;kUZFx@E<R6>nKdP~u;B;e|)fpFc10piBz@7Bp$n zq?Wa7*GfFh)W~I1sbIW{eedyjL{U+Zq~hXYN&JjC@PHQ>U_tx#?VI}b*I&O%u9owh zLBS8gJ;pEx9`FJKEDZ3RI(2F-xyQwft5&TN^XAPHg;ZET^XJc(V=NfFzyJ$6aNxjN zTCs~2Y}~j}EMLA{@`A`)a*PcGFEGF&2rGlZU?YUXTDa>XrOXKvCP=r*L^6K79OK+B zlL=vf#r?p*KqCvs^~D!oh-uTNNq6I_udkP5oT3>6Jf13uv5Hp@1KxlCebLm^BqmRu zESb-pJ15%P+vV%Pdxc@NODe5BuTjKT@#=wp<Bd1OvSrIeLqmhaAE)}TefxGPA9(Ok zph`RpD4+?0z&ZqQ@NfXhNTvIdk`gHZ$`OnPYPOK6T?3v1Psi$j=U={Xj~GI5axjt+ z5-<Hh!u>Q@0!A=l^_7*C;`Hg$Qb1i@om~CFg9qdLjTDrYmik#iSy`Fi=krNC2&<ns zaiTbM=#ZSBF=K|r@7%dF-c^wf=;TD?ud1s0inic%fGK%M<!7m_@_N0(N+e<mwOW|t z`VLII4heDVt+#$fK{*|sf_I?&*s){cop;_z;PE;z$J-ki;E@L=_V@R<?A^Qf84|A3 zyAeH9+wq>@c3d<sLFMJ;(g5Nynwy(nruj{nr)}9n@BJC#(V=9JdPCq5)VTb9zr^D; zz<V@jtX{qP<<X-@Z^Db}B0=8i)2AP`vX!80CulOU|8b8o%z+2Iz{Cro=%RV=f&~kX zLMar$-SmnQ+Yt8{vy=<)0t2jk1t{0#;#OjIQXQB^uGZBcgxdflR~ogowWr378`lbq zg~fGZ=FFL`q{K<PWg2a<Bs}j9nl~C78&A=;OyCo#m}mmgTvEP>wq0XyZ|^8_z0C^J z7zNrD+LrrCSQ`zs6a7z3#f+ydxrmZXV@F5FD2gkIr_>#zTykah?AiNikxBTZVq_(j zdZL*KexfRC?i(U(32cK?R!<PgP+4=vr}hK9w<|1Rg+o1ueBa$x<Yz6%x#Cm%0YUvh zA;rN{!}J5go<4KMU)O%%TJYDcAGlUL3_w3nPl@O-0bSTKAZ{wSn*k7+5JZAPl!)%3 z77GC-z70ODAK)GU2?)>h&V)LisUOIMSFw<l4WHHz;FoJY?OWu0xf+bARZi^(GU1WZ zfu+PFC@*Bi>)a0j$ZZo8&Y3eu3gB|Awp&);!2Liu?o~W^`Tau%WI?8ihfe5D>jz*Z ztmke<O~)KiDg6Ler}4Yz08}r?;yS~46eQqv?g!XC9KCIAZL+GVO$i59YCnMcR6Jjh z0a>Yd?gw=42e_HARwPUDwr$&FDOE4#Q~H5GDxNQ3Ap^2Fu2S%RAbP00wvly)>TX0X z8k1eSb|o4~W!?bBI_IU~xoZLzGPoVfgiq@SR3o^qyM|8f8T)}ucwo2>P?e|RhwTUW zl*7S?et_ETjQs%c6wI#AKKra5conPSN%_gKW5?dGexS+1-<JjNweb6HL_grL%J4|= zU8%+ByVDQQ`M!{f%TvRg?}zONa>XaTf@?Y7U$^fA*LuFcF5d^f&H4Vid>>HH_Y4Ms znNBbgs0vZf_u25c2Np6|UM4&Ys8rAQVB)HV4+}V=!<`sYSHb7|Y<OURg$&5bhL`;S z&i7nSQ8e%lal*xcG_lEP9K?Klz6ar6#dG1o1sRaVO%3xwXHq}F=X)?(^**T-b5wJK z$>)2k!fE{VBQ*ed2Y~o&2t3UX^#eHHGmycrzy7-D>+4H1f@?mt*NHlf`&4}5Z%-rx zvQqKTndk>_R#(4@z*0o-x^?U1(L5<}SbTiG2c_cq0v0kLi%WV6KHd+^ojbRU-jAU+ z9ek|buwg@5qXAxExF1NxvkYMQn6AoD@p|g{UKPOK3=uSHSyj*X+3>*dw?$QX*6#zE z&i87YmF;}5ejlK|-{tjs>w!;g(HP&<)O510t}c5&kn8zAwI8tX_hrF*EquNo$oRSb zrd+zX$=CPSfbsKwdiPB=z^3aTjl_twASBQR`dO3Z&ut4kK6>}a2t8nu5q&Ykm^U0I z%>$?ZzNK^SjD}uytjJRk{qyhEog+d1T)aTaOD#{_Ibs7y*`GH5=IK^80?J#Tf98|f z4L?|JB@>aW5tU`7YliucEoLTigd>rco_PKbm;ZhI^g(*A%fgqHYMLK5LCb#i+a8kj z>uh|(3DJq3C92I;IU4}wzCiF5OIFSXd@FkP_itUYlskswyI}?pJ$W_dpnNUJ8<02P z`)k1LML$_~Qw^we#I}vZh_sJXa~D5!V3a-f!?dbqYGzl&w){ZbU$>8_A<<0DGC~Z8 zN%O$&oo}DD7ng^VJ}?p6BR_xqJPGQ_sVf>X;^7e+P+C&FddsFi?qegMe8sBAzI<r$ z{ZG<kTh6T+8BykOzLZN0_=}4Qf4uXp&F!AbF~L<WPn^3}<?<cVLjJb%?Zde?B*Lm> ze<50UE!A+zk|pLt%YGK>9~k^_xT<)=%JIr4pB}W7du~=gu;psX^Zh{HfV=^D1M&vs z4aggiHz037-hjLTc?0qW<PFFhkT)Q2K;8gc{}*5YJrMgEa2u&)00000NkvXXu0mjf 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 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 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. + +[](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 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 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 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/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 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 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 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 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 zcmd^?`8O2)_s3@pGmLE*`#M>&Z`mr_kcwz5Nh&g=McJ3E!;CE1E0ryV5Ro;>nvtvt zk&I==Xd;cVGZ@>q_xtnx{1u<ad7XP-_m_Llz31NZdcG2EQRlg#Vo(48z-?(^ZVvze z|6T#B?4ZAvXnA4xuUoRUb~wv=A?1JPaIW7*|1BI9WRJQ85P_XwWw&jAn5{13;D@}8 z7UTcQg)kH{v$!C2?YO4BYMf32uJc~sP|rzoiMFQ5iuWa{Zz|s@9^mCxpkS8tBKPNo z)m}4s=Zt-#p4`1VVsQWf@Wxr1n>vKPTyjZupK9O(_gR$B#XePw@T6a}I(=v3sn`8+ zpUNDyH={w8<6Gn-e=wHS-vog;TPHWQ<6&jYBDZWT)nNd5_PoEhmk1KDrC*E7dj%i{ zf`2$xWA7dl$O2vpYl+q5Wd)u6poy_)Qc_zLqRa~gao)!+`5sM|Tlw)mV-;|gwjUfS zKwwwY#bM9SChM~ownKAZN|{{Bjs{ViwztSXxy?dr_?6e;sz!3*@g)#*0pdqUENlt% zN=o7_f(hulP}?@O0vc(YXaTgxHbe^(Pc26vo;~@O+MdQW3%?$J*cIgGb(s?iVBjh% zehMzl3j>)k7p|Ac6<`ra2g;adv&ERkuUYqrl2c5*jAMn-PE-qjwE5ZM9%cJMzzb|8 zH^hS1@fcoyVv?T<jC*A;y#9T)V|jE|=G7XL3S5UycuGI+c4_DI_<!g;i)@E|!#ZL6 z@8RjXyok+ou}zLddv{2a1XA(Y$((6{sWTo4jIQ!wQem~~G|~Zw^lUvC=5uFF4Di=< z!+G&I9orOWfIMT?NETH4B{FU`t8y&P80okRTtT!(6hn1uD!+EWy&D`wP>k*nvlC9b zfy7Zav;`)OmS6o5l8JLa`lT!7bVfiNc|rO~URvXsgz{o0*5Oap3X6VgG*d78KMnGC ztv#&!uG`7=2B{jr(N);@rrdm^LaD|9v=*6f^D<5VIR~{tsqu|v_aF3eu$FF@JpK9j zU<tB*-3Li0+5=k)vz;~tEWJU=q+~^4;``acbBKQAGn3j?BTX`Y0lQzY^^+`vJ5q8Z zvq-(c53!rV&{!)F1TEHo05TqKZ$TjMBF2j5_W7;gFh{HppCEsijN5COigeChd6-v> zI8q(>AW=>Ow|e=;<_{Rxd0|NJX&^)vorf-XiogcPymbh&dc!9{j-p6(C3jvcAnoc( zIJCAW%Kx}e-wGvE;nVwi|ABaan(pEZR;Jrc5TtUsRYww%*+v%4;>&e(I45nKtiDFF zC56Qd-g(&60aI~>Uo2J>0_}MXe>|JdV-w57K@nVza(fP1W=>mMz^6d>S87R-CP>8h z+Z$tMGfn{%hP(oDq{)=Ux!JOQw&{W@CLU{Mc5`;a8SDsM>kmlnC@o^Yt2p8kWZ6r< zQ7*c{SBRPJ=@RuF9DnW0_3@JSLk<~(qM>a_e>SX{{;k6uGtHkTGgHF><IS8<ig1^E z()L;iSkf*1lX^Y`7DD=%@((Sk>n~<{S=<s{lHFy<t4fTOQ3s@7PTV=yTLF5o3lE0N z%2;L@JRLIL3*^eT7u7oO9{L+Jy=TLr*y`%oFEx5Bqa_Bcz4SPZ>TyN}Jq3m~whCai zb^go{s&Qp)oLIaOoT4S4F=ZpjbcnfFSGk~Gi)mtgu?n!0)}CjltzjF~#Zkm}kY7{` zpn^}LP^m3*)fl_Yw)g8$?PmxMotaL{bbGi1%j^_tR|yQ0qhfyn`-3DCb~2TwQE%O& z&;6zQ!0gt~*n7K7Ua%Oi4@x?z(9uUHWo$>4uc^ZnuDq4)wDwbZum_|I7O8*~8&6Pe zlM~9%&&Sc+I2#^nb4ZPC!Pp`gzGjcOlaCt;Y(BHT&RP1IjJm0woL$-3Fzsn1(uoF8 zfp*A5kC^KB+|aM_mStV)mKBT5UIcbgJ{A}V?Hok8ZirxAI3w*DRH$>3m$0kTrv?TE z5P)21=_&-)f!pth^e4687_-ONGiC^p(Qn|37B~)1f#O)a$YvOT3y8^zpE4%&eGLdL zUP~k$e1`i)hVK}d5vV=sf(EnhwZYZN0W2v8_?s+cR=5T{Q$#1I04y!O8BTbjB^iG{ zN}{0daE1?^mL5;c>D&d;tSEi(NREML#%#>CslvKy8#w~;XqCPZ#R6?G^;JqLVkyz| z3lE33VE_`I;QE6sz}_ey+Q8JD&@{2PKka?e=XA%-+dPw|{K!E4<_`W<HYt3TwKQ$J zIUPVoNL(ubYpAOeTFO?jw7Vz2`yTSw1egGYxhJ{1L{L4{Qz>iOW()iy;!(b?L^4nT zO<)K71j2ozW3kJAHfmX4xKFb*LLANuEemjnT1y*j_UMbH_K;lA^hs$rOO4r6?00$W zmt5nTW#tf7hx)c<zl#z8{2M7vUJDXf9CJK~>-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$jF3*XIWGk)*7;gIa;vB;QhS>s4m6h8` z#A+BQ{0>NO)Lb^VmV+(xMefG8tG2o5D*EzL$?Suep+AAx-vd!_#k}yni(ceg?UBKa z>;nS(cI{Gbamtu{6$ktPcO3}J%xJcc?%rK;;=C!NqKxN4J@(qfqxJ+?@7`=b7sQib zh*B|7!z>U}oPs8v%VA483vRspo9jVZe5&%&OcX)kEWwph&D8w_rj2N2_^%fRQh~~N zd$uVw*=F!5BmWfN7DzT!XG}up6HdJL)Piim5?kxrp~D$U_7#h%^mzJ+)arBQwF45b zl8Yv9BU;L@!?57}OkRgr4yyc%@70JIoe}-K7`^PCCQz0!VJh=DrE6C>fhpL~p88!2 zC{MIgP>5!mp^clo^qTA(Z+xzDyeJ^z;9eu@37k^bQpH;^ud}bjHTk6zU4{bwPENt9 zw{cF*R6Z(TMeOb`_7wFT?N>cdpPuE(%qZQYEBSNOpAf>EY}c(F__S(UVBLqs2X@da z7#I<;omu(mP#yh3WNiy9iDRah(*69eYVF-(adqDt`?3<et-pJCO9l0H%k>;XIKF|T zNHfPdz#s0b@=!X-);t)HwRL{L-mbT;ZgO*EZ606fLQ)AtE9GX~UQ#H++|<3`-&v7F zKZ3lzs0b0RrRlfU52MbSuS6L>aORL#-P~iD$<YAD<={L0b~<@iCGCInk)xx)8aD_N z(|ulTapFFHRPMY1{h&Va^xSSuF&<YqxUsE*PjjqCtjG(l1LBlQ#WQ;sUBO3;!Ugv- zUQNNii&q9;-<y#3UZ*WC4A+kIrQs#KppgN$Sg35R^HlDn-U=AnOszhlmUQ?)P~CH3 zcRtnLmmG?ThtibtCuUh6%gdr6MZ+-(_PS>TC4tT5qUolrttSG58$06M+R_0OG4{Z# zVcIRfjqbVK@{P7!)W=7yZ&j*`75WK+y-dNRnZbvzplE)ZydfnzFoWYpwQ>H?#qd8I z!weN2)^5??eP&J`>S>)9!w<ha`1)uO^zr@Z&}u`4?YKwu$wau{+ap6glPcm#A`JBe z0y|I+-J&gwNvOAgKI%=T>YWE{W2GzU=jN{Mwc)67T}mVp{I$)WzCMm)1-o8dmr?@{ zM)`*CzFSxV%?AboDX7&gzmt<_1@?MgO@@XcsQWOdxG1n_<;@Icja{7&G>_~ln+klW zKlriKW(x1P3^r#nv2MEfA-6P9zytB=O&3a&Xx0{U^}DxL_6|^m1ft<bv;n_555gAo zR;LQK*pu^(ku$-%nn3<VK7#FJ;L&s!5T_ec4AL^{UgS3_h4>x3LMY=tSvi8Ai;h%G z$E1!?u_WpaspX~|N?No^2a>ADbZQDXAuB6;Q;lnlw(t&bExa*0F<3ugOa`^C#Nu75 z_cnNRC)M*s0`c{qt_JpKt&kzNH9HOV6<`Bpg5cNitgDB2{v_poipW5o65gS3><o{g z-Oebcl^Myq({R3&69WTAl9lmfpO@>!T00!~UM5JH;h*}JwOx`E@)6smQe^Y;1iyM` z07#%L0j81XOPXc}{AT~;N~v%vsrPVrgyeaui-Gy>D{UD!!NXBT+O6`ZIwa({tOKsd zt9LRI*cB7M5aZ@u!l#^9L(`$R-%T)NTzqTB6@vMPe^tEC3re~lL3m(bx(N7sM*By6 zNIo{C%syJ$Rd&19sf8EDMOF+g-5yES@Rx6Z^DpdP5pU!yJM3c5?HLfCzU#O2`M#?q z1L%~r+oRxK+Q-zm?Ic7#th172c-G7O?VGGDHQw%wb*m@g5!;ENKMULx3btQ2{cVFa zKoiOiY<T-wkY?vewqVORVGuUrK(q0^FJv(ON`%fe(SY9S6tZW@sYBg~2(J%oWjO}O zv|<UZV}Di0_u)62H{HZkToL$Sr|9xXR7%aDH=8v<5e@g%IOel{1SziZ=5<QKs{Ji( z50I9(4ZQx56N~WZ3Bef=e5lxe*MBc{C(t8AaxPkMKRoS+4^44yT?%7U6_zFtRrzg$ zi^}w-0HMOUt1Bi>m&pdIl;|8loTGvYe2){1jdsKzUlG61Xipoz<}zDaDO`HGsAOn7 z{0vwDbTFzm6Ay3BC-oxdaADjGoz}|9;El{fuGCVr<5UJD1O{YOd`ptuJ_xr(+GTO0 zj8AAB9Ynl#_Ekz_JOeBO#jfn6<VLySv_q{4A>5~hUG2yQDRd*hq#vyd9zpD-ol-2z z&I%{Njm@o}NKx7nvzP2`rz8s}^}1KKcEh4o@Hs>Os8}cQ{ax&{0b#pJ<?2ata{%<; zF!S4g!#l&XUZU9=#m<*+yl)GhliS$<O78<-MtZw<E;{<W7@1rT$>VZ%Y@3sg+)W@e z1kJyEO+q=M=H_9CVF@AxeLx<a=hfr{W%0hD!OL=uFK00(XQh<?zQ40J2xi$#)L!bs zox_(Jr`o|)QhHha^R%|x(3^4Q7<sOw@jI+?TXxGI&gbhheABQ>OrB-{uyE)y*M$b@ z)yG+oEMM_#kg5%m$*(!{QP56tX`S#(00%S3ci(DyE1DIul|dPTu%6Z(=U}2zLhK21 zhbUd5<vJrw!Rm{o38t<IeEL+P_e}SXw$v)+(%L2DZ4&a{<x{EN33ZF{BNhFk|ADU_ z*O}TE!OJ)Tjjl_|0e-R)Gcz%aC69C1pGTX1?cXBhkC}U%gEf9I&OX>{!JKDcBW57e z+bzg{)aYM5`r2+f-vZGD<u4x-ZWf{+ftIwP&xeCKSax<lUS#-w0yVaM=#QcSAB44F z3cUsQLc$G+`dfm}SA3*xPwfPBU%7v@w1x{dDtJ>}6Inrb9S8Ze9W0XB!s+erFh~~i p;S?2Q$?L?{?X#Wxr1tlYN#A^+gtTF>?cc9H!1650yvht6^M98KB;5c2 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 zcmd^?`8O2)_s3_<m|<+g*w@LDealwahEzmjNm7v^Ey})R9fmB~E0rzA8j&^0nvtvt zk&I;qO{6h)24nkrzdzs4U-5aI*SYs~f4S$}d+t52=PTX{eUSqu3<CfF9A>5_HUI$d z_zGBM0UcYS*`?iMw`65udmijd``<aGJC+5<g`@p#&{qJ0@KazGtG36PDw4L|sJj?p zo^R|(J$_@;OX4?9s@W*TXvRf$Jm?+lK5Zh}+89>;p*Z<%#e2B}yz~kT!jxL*@-n~5 zeLClYfoJ%$`}c=U4*&qJ7&8+i+o0D=j>#^Q_1utN)3Ukf=gOgOv>WDU?`=GHe>mn@ zk)`~0#NTXei+tn*!GV1Yk;wD4(vv%`<_1jC%Ld}@x_}oi`+9naAYLoljhLJQ0MQTf z)2<44{{(La@JeuVv>F!}bpE3n*0fPxd6j==p5LGCA#Ta*XsXQIo9hLb*FnN&U@#Af zTTu~#zdWC)!;;?y%Yw_Nvn$x?hHqNkA^+kq4yxu+SVt)7ONYc3Lrr*zpP<q3B~XF5 z=sP3>(0Qq*b#etX+%Vn@Xp63o5Fnme4n@9r_AfQv4Qr;}-9GSZs4wf1r(_|(RWN=M zA;AR)88a4c7E9;hkSN=kQMV@3QPtnGF5|^#7}{wk@+0giral;x^F`eXHUofHxC#!a zDVN;|yv+Cn4+R)gpgXkwW3_#GWLC0ZjX?pf!^Yhto_0C5vAO;~G|oll!`>my;QbGX zR4p##W~%TeYrKsMv{4i#_u_Qc6z}9Y*Eo7-*$^qeN@)sZ8;NpjIT+%00mu9Ls5wWv zbK0NS<gJIkU{s6cRe8tL?=&f~E>7!fy6|2@wuBbJw5lt<b-lYE5KfSbXcx8?NVtWH zq-<#LPUtTe{N<O7aXI>}C2oI?R|IuQ;#p2g!@0P!A_mU(Z{-S;PD=zsJM%vc@^Pv; zto@<Y!TuJd<jdNb-}|=AWTRZZ+7`4HmTUPsh8HylvqUR%k7o8A^s<6Wwu_(tdU~(~ zUBBsxq7iL?E%}-Do4jTophQxl95DXFZ2kpgAL@l+&8of{nJ16MJHX;uhVDIa>ET(F z_Q1#JO#xW6IS7go?mGY(47D{QQTLIfg>(Bn<_NeQ&Xb#ur&H4TjbwQ$+pY}UJxT<n z0(=xNts1#{_15N3IQvBbXwO+7R0@-W$$O5(1w_5G^*4XZElLib5$#OuxRFQN)e^OB zX^WTn`H;31M5x54_V)Y(@!=HB(E*}BvmPgiXLBeG$0afkFB->|X=<`fSlXL^3u8_Q zjvBc4xUn6s=!CdjB*zchb07M2K9|!nnh^;@vfD}T*{U1cZ*2je16>M~6T%Ep$RBq% zMvbTKeP`%0vZ&!kBPNF?v%1;FOG?;SoU!rk*$oGX9c-=7H@Ur}kmbJIu%o|O5A9Z& z&<1xtcB;Em$ZKHijTif;D;kekC3Oo2x1oKR@Fv>#b{FgvPmbhtH7lGeeOx}&MfzFm z8-8GMm&7m1#Xxu<=~L1_G$*gWn(kq8j(bgZktDCm(^p1pQQlcG7o6_+YQrx*8Y(Si znx%8LOL{DjE8bmJZpXXoY*4jd3<cq;s-nMEYcq`$>w<e|F{)K#^fX!$9AjYa3$}9j zLg%k`0ym5=-U>)kmr0wn<YU-IU9PQIP^rN-f?urytR*z&S*UBcdKD2g@jdi61q&$W z7R{G$O<y&@Z8PuvK2-h{7>P+wrKUSS-hrog@V6=Y1xr(Kzkz-JVsSg^@>A${E)f@w z={hjJ^DFwnE`tjq%;kxeNXWPI)Jz)PQQ~fFH$o_EW!kU(QW)q4X+Z?bp+yGc6syFz zvWxRERA;vO#~Q5Sqg!z1P`a1#6OP1_dc2!2EN-%ud?BN6t0ZPtbkt9|=?ivX02H7# zD&94!>H`PtTdY}Wr;1tmVv{?8MTnaT4#GJ2&)n2Qf)~z7xcTR6p5`L#YW6BaK)wVZ zdrGPz0o;H0J(2dT1`=ib6nD-TDLC>Sa@jPJ)s43(8ZWpR3}6RhGh!zV2)*BYgNoMT zNe5pL-eDm-y2b=bcPgLmtV>NmRiZCb(gFT9Q>l4mJ)R+`>7NIY5ZMeNJX05oy%;W< zS9>_kjY&z3C1!Q(f~e**y@)W@{uc(!jMmBg+A2$F0`X{-wh_(*t2gqJPbg$6R`U)C zfwf`*qHd77gABml2scL8$b`^1zPCT+aoY22`|Z1&6Gl8JKb@v_o>gXXe1?Stb-O7Q zKt_t*$b+b=s1TY<S8>$)r+;`I@>Kg80tGlGI64K<-IOy)YZ}H2Ji{X4UQR?ZP!>aA z0sI0Yydt7;%ifmC8DBZhGBrSLFY+(*vI<#9=x%oF2q$-w95J*B2?SHM@pIe{8Qj-w zgX(34K(K9H>$3M{Q2_p}xEhx!2_k|$>CgUV{p0e$E%hfqWi5R+d_l5=QQ^2^@v zD}D(PRq{8xCMz3uN7VDj;lE?9-~ImH+PY1@2O{GpdcFS2uK%`qXf|Uw-lLW@M@+NJ z_21LZ@0}g4wTZwmeth4{8mLDTPhuzO#;jN8gak9?)_wIheR?A8f_;aWeT@_p+DODI zI4I;ENPEOYD!Yc2IsH}k#`o)1*_cY&@>22aqo~2Zez-sV;Rv~$kiE<9<U4I)0Szqu zy!+N|;?6M&*jz<hd_PAm2**fkvWe*0U9xApEvcx0XGcGE-^8Q$c)|B?w_Wh(jMGCa z>MCOwh)MST<1eLg#T|LKULWUrloFe)urwV`kUdXunyF%FeTGnn)zf^|^Zh751-uRO zB!+A`@SL7|hI<Pn6{I;Ts`)umq~^?mRNfME%e%qD>6y%Hrjx0$v|;hpmy8<+BrbVJ zHLeDXxOcl=-iPU&cHt~^*;lXYq0^efIyq6=nca<`3<JVs`pKEjU4b|TUwvEh4|Sjn z(OOnEf_a)cX878DqGPP#rQ*p#-_U~x4d`cxncC(`uDp58eR=kYuN|0DH1JPi5>BO+ zZF0KeNgf!vyT907*nPBL`7(8CmNPxAWRoWE!&-NWA8)u_yLRB&qG5`284~H=!K`56 zMC5jQ#pgp6%qzjQEr?hoBejI)?Q>my?+%lb%iieMm4I!X-NQSI=x<w27w7`9^&~l} zNu({}@xBu0Ob6M56AQAi$o1XZ^{~=PYznK%;SO3zD2A#h-HzEy2tt||x#ayjD`J=@ z&^MRmpaL~iotC;G^m&t&aJ@$ktTIZQdrZ?=s=$~me24c=2iK~Y%^z-ZL^wqC7GZp< z*S$4H#M7I?k<+i^-z$=u-K8eX>4bnZw3c(Ljdlwcx+63}Y~smyM$e)X<cOZX;8Mz^ z#@BoK+Q6F!;}Rb0)WwCNn&I9Qyr?@Y%=Zoxg}G&(!jaHZ4#yZP*TvP44j=KUxGn6? zC);?DgRrqMs(kMFEcmI66b4#26cuNqb&gLA*i<HzY6NaM<rmP<9^>4a3YZaQ@w*<Z z(fmjMf%6@&2(v{UeE9lSg^F;#Hy^~^2tt}3cw7L(@L1*y%F}>pthcHRatAMm{AC@Y zD{6wfg#Ppz+q<fybX*QO{QBtIlSR;{4<m!C_2pJ$t`Vo>5#H~P^t25tiKmHh^fM^@ zKp|+0x-crL(hT~fJ&~+^5wMMusGwb#yRp|ANr~x{Cy@|uEdTcQvYyD>b?>~A>~}E2 zJ#_#5!V+lS&ks0*UfuFOJ%N#BspC?ktLlNe4zr31{R&s!PGi?tRJcL&sP589zsEWQ zpGqtz@pj7)69xn4tc4$RP7wk;5}Dd`oM{xw*kY{y@KDd(0V<L}RQ#|8;CIJC@PhX0 zWZo7_Vy*#dIzUSe$g{{zu$u5Yn(72bYDE=+)b+a-dGt%5-UkIpg~-q5c954s!{t*^ z$)gk;iLyg#zAcTG5USLKCd)DG8+}hnNlD#SW?!Q&yvJJzY>bQ#)QuaEK`krMc*m-} z4Nk2Im0UqTeBI~ke%<OTWawSB4&8lOcz-D$<P9R@`r*C53E7`R(@<vwc4k<2hDI^Y z=j2jK^<`YBkzO;W`up|8Dq_i=uh)yzcUT|1juSV=Kldtay&}!;DZERWk;=*8`{t1b zAb~P?8TxLoscP+r+kF!&B?8H$p2MMGlG~Y1I`)T`gjviuCu=Ebx6+4V8<*v{4!9<x z(m{`7k&FLIjG1=~nRHkUN`>8hKTel)^r{|{4d5C2UH&1*KjC30;gPP<BH-IOji0fB zxwybmn+ORfsqGs3W-d58SuUt#dpJ?mN2VUZv#@(jq=BvUu#+XbyI*ALzW36XhfZd6 zpnbw_x2#J^FGKaNJwN%d)?AG4RwsGfHz_Gfto1pI7B|8Z=2QNE7dU2SaD7^-@9Hf8 zYA_aH{kt!GRBJb~DRbH>-QZzcs-@RMe%-MGK^psbJ!Y$e--aox7JV-?q%OFH=>#C% zoGGZ5rJ$Dk;~!=ZnxT=19PrUj;nm^rr0M|=W($HG2H~Z8!gKuyT2$@9WuJgkJ}zw! zkdm_vy!nX@hji@@jMOK1QgHvS|6cNrpKGAlTm;{KNXk!7s@&YVIM%W<IE6R7;`;_W zh2b#+gb8G?t{B>1CF?59L}USC>|_-Ydu$L~gdP6mipZq~8|v5%$Jvq!fs(U@#e-uZ z=OD76gAwKFSVU7UsRuO|8O%Y~Y^j(C*hoKQPcFgOO{PHu;Xr!%_XMf!gAgl}bp{98 z;FRjoLFgL?FZmSu3&0{!_}WfVcDQq-Mvw&|kmIa?lQmg4iKg$J@UvyX)t{xLL!4>Z zLH0DHp{eCFDO^Kz_KJ<wq*(rhcGt?*Zg7MmK5OtF6>BfDzl(d(FJN7vP&Gkr@`e2y zrhor$cyDOdT_{tv$l>a(53K=n(mNYKiGASfFb|iGMLW+|!xQU)IqVL0t#cA#yK!VX zpUKy631~a?+&ug+I8KnD1IVFq7EFxKEI!oJeO;#d^*q+_ytu;g`#WoiWRy;a?<FtX zJAAErrVUaluAR|0Pi?&myB%YKm0?d9y9buuvR?jpF;|D~m4cIJa5e#e`GZ&4FV#z| zKFxq;c!^|!lq^vU9<}LDeAaSH>xAFDk#OBym#xNkLK%TuX)}XR@L8=fRt7pL(1tK~ zh}I&St<!^L&A*BnVrv^AXV1iYOn3ckO|DcZsaZnZC7~W%J(KJaSGyQHT;3=2AGqrx zJCb`tx#&lrk##X?z%MW{JsnG5a=n22b+qZ-_B~AIgo*0~c*947%!9pV>_s{*bQ(If z-HiH2jUMaKH`Y_RrpQJZPuZwI6F=<;w4?!hITXOkw6pu^GTrMlsG;>^UpN)`D7YD$ z@4>eh7@|ki+2VV-;wfQuX2-Yd+QXxzwa5Vdyth@=VdXTZF_35L!6KPCgx2;Ri((=l pPEtT-T=vXep4-{aYX0mP_Rjl>O6Ubx9e?!!X6Ml+mByH;{{yaOPon?; 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 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#;jH;N^Z%VA?R|9mZ{esQd(<U>2<!w4n{E5UY;_q2Kjdw+ z82?u;grSg`#RaKr$2IL$<8%^mo%i~NdQO^4v^7Omye~<8Q~6Hu057+~0Rg2Kxj!$g z_L|8%XY3R8<nG-Oivs|FH_p=B)FJfcl1r-lR0AKR&!T)T_NiKgC;gh$={p-wz3z|u zROYC?84a==-y$FRL$ECVCJ4mYI=QJG4=ZDk+_JG$hXLT(^ZwpmB3Qtdel0HV6@VBB z`QccNy?aa`3wSB4C03J{1$_2{CdQ&kNo`e#GA|Uwc^|vvdo*2c<;VMsMZj6wesHJ& zfn8A-hdn==tj|{1&XEIC%H&dZG>F=?y+!`XZ5CR?ue=UdHIfUDFM*m15I;g=VN2jw zQW9?wOhDI#+P0|`@JQoC3!pu=AzGMtYB>V&?8(2>_B5_p`1Sb1t{^|J%bZYv09RS? zQ*dcs7}$)taJ@vX0E<96P{ur)Eygr{&ALyNoMP%_94m}=qFVT)&CeG1DBBMLUSKP^ zp%%Q3$MEtKll)X*+$)3O_3x`4%cHY0uhy7U;5x^Ir}X1)mv&B%|A)@A$a>f}tP{5X z9-gkti`YyT+hk9)cZW7fAQhjT%$XLLI^&VR=qev36;`WGBOP!^&(?!sK6jSH0Dnz4 zoEMMNu}y&n=rd-GWI?rGBI8!GD*NJ$k&e5-6+~-9F^6tV<=5`FcY~t{iqRcncEU+F zkT~jww!oy(@~b~WGI8!lzjURX&IpJjFGxShOKUunP+rW$I{c|x0qM6!Gxf6n(;$D> z+QYi<x}98akg5UfU4?yb%FQ<_lxiHnYmxajFXIG|a~w7(HNLUz{)0YtmeTE#r#~Mb zEJ4?=`ylB=dthr}w$rA7r8hX4l&lC$d_P-w4$+T%W>ULqq)Fy4VDk&Mev)NyM@nvF z7O6M*A$C)kBi0HGMT_+xfQ^USTM)>*h_Rx%eSRxA%n|FuC&=F=<MvvnBAs(r9_AGz zj#LLeNR-pStzN#d`2)svUKrYY8VHp|=b;OpBCx?RZykcH-tb9~qbL$x$(`2<NV~cc z4z2Bp@;~m=w?YY3`1HQse<0qUrn@*pl<9U81gTtZ)sci`){#ZC_;MW`&Pf|5tFMu) zNntUAcOEu%z*Jn}7mF2zz<XZ9AJ69V*u*k%90)E)xjhFhGpDUB;8URcE48FZ6C~pM z?Ts<B8K(dWLtX(n(qsy9ZnmtSZMvX}iN~6m-JIQUhB$Jp^#`POloqkwRUB~%vh1bb zC>Pz}E5uCqbcy;7j=%Qh`glqEA-jx0(a<)uKO5Fe|JLD-ndZ-vnW<ri@n%jaMYzj7 zX?raMEa{g1Nj)C|3n6_>`G=O&^%pa}Ah(2<WOo_zsuE*m)B)+26L-$_R)8Mt!h_+m zGSDo8r$fejfn53aqFM*uLw|#&_iQ*6TU{OdrA7}lT4KP`OOMm29%p3GQ($Ogs{j^T z=g$nG8dsLaiNzbiDO&OwQ#OK3hnS0Xl?&>%m?oANs{lJ`?RhrZ8n!`Q97TKw{YAw9 zD)=M{mD(~_jj`LTd%q6Veum)Cnd!7lw}(5h%ub<pmB27LD)tw!KS(lRCsSz}_0~Q5 z++Vs6%x?XRy|>Hcg^2O`prn%u9es3C#&%TsnmSD3%3Ik^Yd@6-d%(I7kqT(B@dVX2 zIidXgd>qY<v*DpOyVTegj5UJcYxamc`M9CL<}>T-oTZ=1sGI7^*_E9Q)1F2mooE0R zXopPnh^c<h&G9wfvaCzpvSP8>i@+wz2ZDjo&Owyxh6t90Gt!<xg*qpB3A;LdY7lS$ z0mzk>u0miLxc!bue^LvHF?)<XV}=kJ{RX*cfn)a+D2~O8Y=!~2fS9cKDPuz4*MQLC zwM5dvXSiQv_>O@Yf!dQUXfW$u8(f_n07^N)-vpIe;TrHv5uKm{h_v`-IN^zwWc>Lk ziGsSr89sDcdOR_wa~DjrqV&Nd*$18(vohPJ3hSzE<Osy0Rr*F0h@-*OS1G9oRHEq@ z9?sE*0Z4d4>JPF2d!u}415<NC)5PBXwD(D$(;YW&^GurZBLnrDJNQ>wrSMtS(zNa7 zbO0G4ajgKNp{`D7DO<(T?w<Vad&plCU;-58p5*QlLG@5irL1Y2E%1+sNBO!E$v_1( zfer8z2=|SS#V-5VsAYZOJ`HMwI-D0;7GM{(mNwYz(HBeYA-SOGlhSZdjoDM|cX{lW zT;rN$<q#H!`nF}iixL3*8!1g*3lc;eb3BOa_4<e9!5dnSekj=ZZv=o92q$bSz803h z7E<{fE}<G^c|}1X@|J|p_rrh3+^FZ>owarQ0dIKLb<}#prQM)ytB73YNTPQgX^xoT zm>;yKSJ*c@QfD8HW`6&+mowOaA|A&~G0fO6&xwj;E3O9^Zu<A)9K!;JSp!U!mD@?g zY8W{D4p?v0TsF6soi+1C?#8#Pwz=pk`tnlA?1Px0KY`fa15t3ryzsq?UgTTtk-?2@ z0|NVY?NV-W%9wl=2mAnc9T>~ZXts~;-d%FyyeXrijORi<_S(dw_5@h&-fTY?#FJo% zQZZ1&ED%$if+n8JVM{s-ZoK@P>p@z4s`AoI6hYxE!Ie_Y)cpjZjc8@~uNMYVfy#J$ z)+sdEX7DK^{}kUAST<B=OhV@qPQ3Qif^5MOYwO#g!x>8U6^p6#c>0Lc>T~9`0}`*2 zizaU)TFS4(u;BenUWZr?s{D)Z)rc9L5&gUvz3iSQaF#J)D)Ts{YgagdDcI1S`dtes zPqb4|h-RIkjhnpmn(Q2Je6Di5C?MkCUL)!WoKn|P#al41v#-Q8`K1$Gh64UhPQj|T zaZb%tJ}O{A?Cvl26!jeKS3OUkp5@8RDBYwh`Loxb5W<^m*R37+v}#*m-G{{ocF-#r z7!k3ZS^4Qu9sNRNZ3`laW2TqV{rs<L?cD;oy6=sBSqa|O-#xsgg8I7UdX6C+-#}8N znd2Pb5BF7hD4k?$9t_ypIzM1<*V|S%xjC{nk1uo~sRXK(ax-o(DHLID>R#~gtVp6C zL0?}~gbLTv^jqtPQD@Cpq6{B6v&*Y)?tx}<G=OnA_)fo_PTo~X``>)z=qQNB4Z_59 zpI2L)xQ`!|J8wWgs82jSw_8(;#}y7~Y^&hY9P1G)@`CGtIi*tZ%-%&;$PuG(!M%)E zQ?T#imBH8dCZxUBX^RWPwIh9LcnL3#$befQDr@UJl{=}o0){qIt52vU9X=3L_gvVW zPqp_YhhpM6XiE7Lvn-G0Wzo>0;g|$_-7|ucz~*w%bW@hr6M?~v9dT}L=>UotTj13& z?Uvt0_uOvzMq4iG<D=HMD%Hgb{RAOirV!H1;KNrOXnvc#AtgF6gZ)OeasJT7@IUOs z3>6)gZqeU;W=<aJX`L6t55GM4`e+gS@%`w~YD0zXxJUHKM7ZDEBSSrtD&k2Z4D|#G zJ5UbYqAiR`sJDPW>P@EVod;}Vr7P*@=C19v;iz$4N+c5ewauTtKK5e;yIx(FQUec0 z`G)VlTUY|m2L=KusMRgMlapu#wt8MohK3=y`!J`tD6nYd%?xIZO`Q)skL)R%3Vf(P z__5Sx3h%fKF=sNdZo2p(w=_|}1M%ri7fO?8))sU1ySG;M4p4;zrr}4l0lzvA!WQ&a zrwX>%lJkv`Gr_u=K>kHOg6(AB(R3FOryElY)-vi|<TomX`W?JNDC0g^IYOR`j#Ny? zq>fRsB<c>S<)$1;TC_?BnyScjY6>_ZD=T|bjcbjz@D6V+yfHd4SU+J*2Dh%n;$5ou zHh6R=)$>IH@%5js2KH#JkfFCVI}P>~U;|}>kk|06tA}^~B;|gJ$UvSF-l4GX43DAR z&M2mp8OgiTaK4li0|Q2qmGNYsm+Qq^JM8yfCP<m#pZb=yU6K>>5!<CwWb^U_zj|i? zNZ>31rjh4Mnq~+5X8+_$sc<T(_i%WG<aw%#f%)z$Z5cPg!(K+(t@5WjB;>fP1Fp!c zcQO*#6cfJ?<K|t$r<_+q(>ZRxn_$Se_|}Xo1oIF7s(7CllypCW@W8-y5%Bel_K*0G zd~8UWeYCWz>~^hF3ond|tQcClJ(8^9FW&&?U)a4O-pE;Y*u|FHGax>F*Kg_beOF5c z&?#xRN5Q?ckEwCnNr-${XC=w-te5%QH(6O~yxke=R!_ns))PU07Pu)CY`<>$+XicZ zCI=g^;q7NZnw=-vf;HoWLD+}`&Bph>kiqyX5jxjI1A41d$R3nahq@CHULV#9ItIwJ z0)^JGy{hB;@SD|}Zel8~2z;<pba^ByrDo8Z)taD)hWlz9^I1QF7T0+5IwfJ%{+6}} zNXy#>UjN96MR@dt;EV`9RP4X&zn8ib=n*107cICSp7z6srZ~4Qg|Vp$OB0By{I<bG zWqMP99KyM)D<)2t$p)&F=o~<tqk;;2j}wB8cElfF5x>xAPaD7HGFw_HTza~wWN1A6 z3`7BZFse2a4{y#V^&;nRVcZOz*2>A?jm$%?)KawLR0cEz24qxxOOo9_2)9MrWpSg7 zPiPz+M7(zPRZ3$#11ti?uI!}bM!Dg%L#+uR+^2<I?Z^fxbR)l{AFT@>L2RX+QlMpL zg_DrR=GIT7C~b+^OZK)?l7*9c-78zWVbLo1oS}bItdscuF80}guwA8c^(47DfaBjV z^V@&JJHxYHqS+e7&X;ezZwsE2+t~n0?*m^(db@WnI{LgAnOqOa<8pRvo0E>*O&~J_ z&A)t2LOG)5=3$3n2_gi2Kpvgv)#L<a@xGzK%W{n`XE7#crIi1^zq2+7X4y>CUh2Y~ z!<QPT+96d^dRhJRw6@zEH{;AP@?1&dcUa`M?3O>A&(~-8reT$sJk0=L;m~ES3k}k% zkF%gzzT(+nRU0IeUvuW8pq=8<I^mZ94rY+=zSZ<rG%I8)gE9nVIjuX+&P1hz*c0Xs zQMyFSbw-$i)fY(<OkES?^r=MeneHELsa49QwM)p`B;>uzr&7HW>K5ZiD*8qL17AI^ zGqo>*mvIChU6+&t{A3|!W?~pi9_O$>k2d|<zeUO)Gxs<LYy4oGeX!SpInTgG%s{8N zTaf>#(Z721wcT{S1)_<AzkE!%S%`iFUee}xJ{-&r+S&bhk>UFZ+}QS^KZ*u?5Y~bz z^cLI;2{$C_ZwWqM@sYMYwG+^N<^Ivq8ZOwV;7xT+WCh)I9PHC}ut;VNr?<buAVK8A pDJs~K*NL^;XFK;v?e86vzWG22X~SUKzh8ZT<yn+@l^Htb{{Z&^Au9j? 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 zcmd^?_fr$x(#I1534|61y+(@kCQYRUL<PZ6L_`G%hy|q=seynL=_)FnPz6D%h*Sw8 zRRjc)P!fU>#1J|J2<`QG?tA}=`<XMlXMfq5-PxV<JqgyRi=0pqC;$N9G&eJ~1pt75 zuYfgH&|gb1zqI$)En8dKozER|``<Z5V<xZu7LE$AMO^_1!A>!=T6a9oQkAmvLEc4+ z@P6e$=nI&bU6QzQQr%WLRx3WL>p}l;?`c!9_U7=)_oXRss@};T;$&8#V5YQU*O!Gg z9<zBD480<r-M>F-b_f7)$C{fO+Xd$?JEgczH}Zh{%_`<&o~wkp({5Oty|?+?<Kcu? zRkq5Tu>kXlZPKwX7|ZNygg~6HmzmymvoK_mSuvF8)C0VDIndWf0P$JVZp7vl0SNx! zANDoa`zQD^fmcFWW7N5sLFYfHW6YWrRMrH@3jzV`53$SM$1@ccKHM*u`5Yx}hlUFf z*i}_g*vs=tx~zpA&}^7O28W`(Uc{F59nw!uli*rj#SOT!flO#zDa4eI@DUONTLu+L zh`mKH0Nt1B+NW1RqfL{ofR32PNI}Axl`zDMXa7>y+q7=x)9VYnhWxxCbxIBlTw}&f z!zH<4AQQ&o%~F{HECOjq9(Qjs8&~@^=Q>$>hM|*wqA=2dV&;oBJzvtRXgdUWg{|U* zm~q>mz{yTd@lt@XMS3F}-`6@<#^$7o))^Gw26WP0@@bD#2fN$<L*rUvIqDzL3ORTW zPt)c`Y^8~8u_f5LLYl>p@-I$j&+tv3bBm{USBww~Ym{e@c2P+8w!;w~SLOsiUv-x# z4=#rjTYQa>7mQl*f*PL$`kfYKwxwAEEmyv4h_<j2sCI4D*Pgfc10(SAk)0wof{C|~ zQIt(hzA1y1qCWysv98Czv?UzQ@rfcYNj}R<Z8{fUQNqC5{i$AM(rt@m=w$t;LB7s) zNA=&eyExt;mHpVd3;W+xm~K`o)Y^g8!}G0jWBHKtP%D%Q&v@3rVLuyl*-q*6pHB~$ zAsaWnkTilVu&pr5VT;e)6O=?uk_RTdpDVn87(l)-s#`NqC-D}r`UF}&%hbCkAu~FM z)EW8^vn2?Pu>e8PA_IpY!;y|w1oA#&ym<bA*8&c+$9nPb^L9(Qyq2m=W8ag7c|?mM zRe_HZWYnV8uHM@E0pqwR2<bZugh-?F&;`#C*udzwb^#V|c*IB%WU=m~t{Vl!J#8_& zwvGhZ9}j8U!T4%iT7Ta^5FXCZoE*W5G@D7hL=LC&XnYdO=#oiXg_aikl$C?U*Kn4^ zkm#X%kDEJTO3v`hCGrBGeUFik=kvL&Vi-|S1c$xMzMY1N!}d1tIncF8B{AFxiTHkZ zbKGRs!H-Orl|zm;8#6h!m^aKdUsA@zVNFbK&uuz_?V;-fekq-0#jN+`N1X!9`)Ic+ zgg1E#F*Cj0!rns@ue~`wUeSEaCZ$(AyaO4?g0;}Tb-H3^c=M!YYuRAj8IuZOt}@Ts zUkd<BdnA8SE(XDZh#!;xp*3aW)odS=OMEWLRf@ExKwllRL;7ULUU0tSrvtn6Xr#QH zX^zg-Ddo9Hs(O1_r4#3-yGhk~F%pcesfqbgtHU%_s>j?%i&d+cpr_N4VQ51OKW1yk z&vb!WXXd8KrCWi?8nWrrR{RXR=*#t0i>h^)X69FG02@io1y<@hwoz3SMR*7KMZo|n zdBh48+B4P+u{$jLzm8OX21TJW(x@3Ok9T1iT>>3S{vk3H>@VOzfO!0FhQbW$t!w0k zzw{iM-1!;vV2{BK7UA|nNhTKBdub()?<(^&cN)VLx3e79e<}|3g0#Uxm5>s{Ns4t+ ze8t6uSgH$q<6})WiScb1OBmhT<OyfeNqxSp7nV2K%RZA(w^fs}s=69y+zo`f&;Sb1 z2ASX%UGtt3`ZdnHyj#`0a;e1w&nnEr1OuTR1IRb^5zLF{B;5lFwN7*6_q6&|z#u<7 zkRvrs3C}!u_Z@-utPUJ)@)Uc{1R*r`4Sd-wip`y`BnBt66$0P@Vlv~V4e|Y7{enx@ z6NrbO;XdJ^yLu*gN^cs!-kfV)U`>)AQ}QA1HdDDpR3nZdq!myAmK5Cz#Xr*!kGmKl zR#1O5%Y#l$iz8%r?SZHk<bHTK+u#dB7DoGYVSSC244!bjM%#>Ff;Jj^D<l>(m8$!M zhC<sh05NxP!(k?1e~bsMXKadZp4>l}@jUHyw)6H~t|?<)q`z)UC+`}I1TNE3lDgB9 z1|T8CZWMskR8{e<<!e~#{nOvQk9ceSjDUiiQ=HvGs9wsM<aJGxMcz@-2ybTs2`Gog zvjTns;ogxk*cBfumCP@kXPKHHb{7R!_}GLkCH1y?bwyHoiB4$Rlq8&~*5o<%yDaug zj$!SJVi2=kL;H%)WibHmjf6V484)asIT^t5dgH^&&@GK8Kjf@@H~m0z_*2%EUkfW< z3n+aK6;lo{za}Raen-sf`_aE+ZqWPg-ui~^peH=@CTgSc%3i>ZMOY4FG{Li;I8R8o z&kxwwDeRvct+$OtGroV@&mL+-5l&*J=_YJf=Y@r`<Tw2Ew|x7e>_hxUSp19?6+4K8 z8W<?_9!O`*R63`QjV0q%&gQr4);Z{E+RAe2+@t8>KmOR?gAs7~ywLs29;7=R;ek!8 zgM0@z9TG0FikN&QJKP{=JqXK4Z?TQ+*;{sCzb&Pth~q##_1MCp_W79a-|n~&z!k5L zQqohwEE19(0w!O|U`x9SZsq>X^(ZwiMR9pH0xx$S?@X>?Xnz7zM>W!YHwyhJKt-G_ z%QTu~HT0aGe}-opBps|ZE~fP<O0@3GqIAJBOWWJwqgis+HM8loINGSh+DpcbLn60= zlR9@3TEeGOzu^6BUZ+Sls^W|H^{`p3QQf>~ovhwwP^KY%I^!g{drvT)!Qa@C@?8Tc zOR$lXi)5LlP8j8SOm$5(y;M3`>=$<Upb7O1POfjQ<}O&!I#A%4`qG6iM*)8)C1X|F z*{5f#o)j=6_70YMi+hg`s$Ztf%yDI;mu=A$eAyaK3E+%&>emmw+BD6ut|Ov@yXaL6 zjDXn5sQPrIihd=uz6}<SVx*PPe0;BK?B8K>cHJNUvKqLfyLWU)3H5c``2t-qu8}BD zHI1@^KR!_AB6pE2xiBD0%Y486Jx^=xq?YiyJf7gi#8QYx^6l9D#9)M}v1`G<vm%au z0(pH|9wJyr)op7SL7g{UjnIGO$R?}2wa+x0tp<$E#&!AZc5$zX+y3SuMMi+tZs8|q z`aRlXMZJ6|oOy$~0sW$BIX&tkT+VQCQ+p+k`gpHMu?JiW#4eG7WArUKgOBNji>~F| z>iqqeuMNF^Fe&M|L0wuLsT=K2#ff=9!~O0sQCQj*D4dCXl`yo4N<(}d@#qo1s{7*J zLW-?7DHsz6r7Gl4&M`lgl}1B~N223xwa@X316wMD(~OzhPWcBmb;i21rvb<!tp3+S zG+TcgJaD<=9cjL#i;LLUu2K~#^x+447=wwkLywD~XkM$lVFem6o$XeQVgB&t&_8S= zbR{k39^v2pCJt_@sa=;tkG?$m`eX_8@%`BFT4Sa4gj?k41h~)JV|^W?YQkv(4D}2G zJ5&tbrY??)skVYX>P)5RTm<Z3C97x`=5Oq`M^R$C6^KOmYpXx~{cI-+_B^_;r1&3> z@r>Mmx3~;i@b?FjQES^ir>D?ztPR}ibTxfY&rx<sv48REn_0{{t11s@0ohwV?f+PJ z=wq4HG|qknY|3C@U9@q-E~&zRN1`)ZPUL3c%x%WncTbJ1U7!*XM8%D20)BNJhAir= zO&4slCgmF<X9Km>fxJsRc<U+u<C$(?ly-CpNW-9KiPxYE;&WJpP>lLyVGn*OJX$#u zoia|r5-GdH*4r{DN#SZONQykeq1o@0w6yeX6^?c4;yawB;O5xmP{X7l3DmY4gLA6c z-{jJsQq33g$2EMq?%%7iN`l-~@6tPvgAJDRgI~iluOHp}lbG`<EFF19aF@)sJ2H-T zIVYc5ZXoMQjq)a+8XPnbuZkmi<!+Q{?6N(`jh8UNJ@+nezak^xC9+2$OXubBfAvfU z5J8!I3<LLEs(L5<_Q2F?nP3XB?`UL{=zgY~j`{8_X&yVt#a2$-tM;YX#b-Nh0ItcZ zcG2Tm<rBUTVi%l3rybXV)1Y_XP12>DylW@q0(nP%Rld&)NPHNEf23!;1o(PR^G94z zJ~pV_Hd4}AdZ*5zl^e!Ek`FH18BJ32m2HIcF790uZDKD!>SoR99Tc6p@3Z{*p|d$1 z=#aSAE9Y9)&rrMTAV4~*w-BehH%R^Mo3u0~&gPtDn>+pq%c+1ri=1RKc0fDrZKEYX z9m)!9eEXT7YU55aV@W@y7cy!`weo%_pf^z@MB|ujL~nNq*fM3;qwa-;HiWb>od9H5 zFa_7M7S;27_|4);Gcp#H2R_;@zB(F_Ts!2+Vu_bW!@bo`cx@a*N@_j19TKrBe@oj3 zq~`4aZ+>LQBHVg|q73j}6zsq2zn`+}?-nFJAIX0Zn)<_wDnGv=fw8I%N#%>E`nJhI zVR({(P{EwFRU?P1Bt2zvWHunyUQP+V&kn{$+T%{Hie756rB2*%nk%akEIV6VIy@12 z4lD;c98;N%gSX@p`;hZdA)IurwyLSX&5R?ClrpsabUGvm2BcShOO)O@47EnuWOAYm zPpKUrhP`(5R!F7404xDTuI(o0M7Tt023z8TIL`_?+mQ5<X$C%tKiU@E0$9tsB$!ql z<xYc}TG~DlBQ(Y4uGm^nix*Dm^sH|0g+wahvWNdsu@0gKd)OC)f;Lr(HB+P(Kj^<< z#<%~5_eSPCgtOF29IxJb-yS$Gv%3kDJOJi~d%AWl*?YYjo!SV><8ZWZpO*~Zizm_f zO}~6iMA@U}7hp#r@j`fAKpu^&XljzY^iW?fw?gg9d5qC{3B|wf@0=BaQ9c{7pR#!G zC|B)F2e?{7Cv#wd+I|;$JJu8<%aJ&7k6C8hX63`hd|kSCDprBP)dBz(4qxTC)F`?3 zG!v5PEt&;Vwn8#^)n`BQ+sH3(;D7N&!SwQ7x0~MzX9jJjlZPS9XSFBT7^vhRTm1YH zN}FK5K@X9$_#$qEsc#0KJ(J)$+w-G6rCPD9ZW(!(h<tGMOp0fG{Zia$<$&;i;Ax2J zO6d>drXPdGHpFEBKbZ*`85sJq+Xd{;<1L?#Z{e~hOx-TPnm!n29qzYcF4D1Kvyhpc zR^&fw^sgR$Z8MW^hG>TJR*Va_2+)o}%bL)aBY|v8yL%rm)4e}|n%X}ML{Nc`LRv9} zp8Wekq51^fZT^?5UXs>lcKv#;Jv?4sj|wy>cvDjwUP*JF0C}|^E|FM5X&vt{NG8(J oGzDbN?ZDFGwUhI#?)R=y|AN1mq<*0F->*Kv{5;CE+5{c_e*jc)vj6}9 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 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 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 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 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 zcmV-T5wh-yP)<h;3K|Lk000e1NJLTq002Ay002A)1^@s6I{evk000pbNkl<ZXn|#0 zNrEd&iZt*+_dj6Ox~lsG@`+l2;ja98i<g5G;lW@S1}Xpl-+!AKFxSMVcbs#esyOEW z08|xb1`)wI2O<Iy0RWtHu+~QJ4P#7{q9~;R0KQ{DAn3he&I#3mQWSq*=N#<4;~t7y z3&!-bj4{z#1ptgWArQ1yAtD%KLd3scYoip!m=h`j)e_g<Fa!L!0y9IMbHTs84>adQ zYt3&oCTgu1W1uxZyoej2_lD}{L9GRIE$n?Df;8Sa2dy=nbMPGly)~E_%nYTJICR6_ z2c;;!W8l+!UURLDV{UvJd+&qZ8@^-UI|f>HBM1bw);uGhVebtC&`L!GfYvI^09A<x zEEr>=_XfZq0<_kk>KCNv?|b~EqUjO7=bQsG!`>$!gb@NDAAawRy?1)nqd`!LqDsM> z6Qz_e;s#)OJu}Pe`L*5iG~R3U3IKCXAi~dJ8K!RKioH*GA2?=c@z4g#2jXYWF|4&9 zDk!S?(5=->m-irRZ2-voonz2Q4Ku^qJ3R;(R26eAv{Ep}$aC{+zSeT%eaAr20!DHb z5tLG}cicEaZqAk7+Gj)HmU|z97G7&-Zi(Db+_oViP}Luge|nDt*v|p?*_mF`3@}4$ z{xCi6HO7RBV$O*k(cqEhzn^QtU?|1YP6HR*DGSxit;WNwwP6u1^a#NRa4_0q=b>Ax zP<<@BH)<&m*%^W&3K3wfmG5h<W=fo6*n2@EpZOvN^zhWDcesNTdmrq55=$J!;D9A| zJz6XF-iZ}zW*B4UO=>Nu#dDb9=a%*VYblv$%*FXUh#kM4=aq!f1n0Q7UNE%q@LCJ! z7*3q!I|jxW*!v_9!rYidWrP<IhV0$1EdmEal`w!u@LJn**gd3)l51~hSkWS1%^c#- zIVh$4cxGlP@b}kR66sY1drN=`vdql6B62)uS@tac6)lkpf_)^)U5A<dp!nK5N>#(0 zD?|52(Qi7OW6-r0=5&vYF;Po_84{?>4Cm~yo+N^fF|pQ)2L<L_VHnGs0Z8!K`@rB2 z_WATo16BW?X{4f#8RCe`i1GXF1Wdro4ROZoB*^W3(4suCCes<}1sPFt$`659dqY*T z6fs}c-WiS=%4Se?ugtYFht^sd`mNSX9~y#2{q&wCN~6wy$G|Z+6umds!g%WMoPMv~ zyE{M>66MuNheUb`zGI*=;YkE)MIN?g5s!oqv}KsHoYq?Mcjx$lOVyvyComdTg2+W) zFDd>r4^Ia?i%7U+gRk!xKjqV%(J|-DC}V08{8SZ6z}b5zoisBXJAtZ#V-~d<5r%pZ zJo1;GbAZ}TEyWM!z~Kgw@Gjt%Kj)y<>e<V>+upFf)YEBbu&yxB7&D#1RQmLeR%?bc z?;RDzL$*gqi3mi+L(CuFOOzSL7@6z5LH?g%WT>^`(>uz8=<dn;xxF1(>3IhtgM>HT z%L*-;UR2ejp9D$2MoDMAPEi%CwJ{^D=A5WbI6NF^!K`aQ@MtelMKw#ncMMdp&I($s ziP|I}W<ag(Q8p87E(oSOK&JN=VCi8h;$PSL>+Mn$Dvmcm2`Akq=Nt>_iNK$NijoG` zT1ygczqm!CP@_qRP!PddE1{mAAfcaYC2E&aP)ZG86Gzip^PzxW(4v7Iy*>Q$Uh{(7 z4b2vjHhy@ycXZqDZAjWm02CD{t<16m2rS+t>cn9M?X1=LumRBGA;Uc4i$sHYw)aYF zJDJ$&+4u1DJVTRZt%re2(I|a!coB$bJ}7gWO^yig`Sh#;DvDYP)ae=W(7m@L5+|rz zQO)`W2x_T8A0<D7$8&yw1@d$eN#;dDL-cmgS?N841(;o|5YYs)eGUZ9?g*B1PVBvt z74jTxWc+&v*h-6jKK-X@XPw*oME(}<c_&NQ1tYePzidacLn6Ck9<FEunXkOgoGV!r z54rbw$c5o-581spHf~vBegpVnV}{$xmI5fLCCd}N_UWEatyO%#<0)B4L}$Ouygqi4 zDl*6R-uQk;^xXa#57Ud>JanoXPl~)M$%qbVMf5mu`2(`vI@nT?A?iE$m7<=*qK>kk z-m|4-!e__=0c;nU-3Yh-A;^d-ONk`gacd$yRcrBw?`$TnQTZTz@0=@u&y^8MJ)6<l zdo~&`IpJA|E1t_DsHH^ho3LOhZx=;E-de+2JAf*>rvNgRBhROMaJHY`$Fc@*ki*lX zwbq}$`5ro&h`obF-7szs<z0K-mNvLPqkxsc%-qA?1!;PQp7ahUiadUGs9L>ETg#h> zS{w9{We6ajPls8sskpOK*m{w;U)o9#ayoc{i|G4`gsI1cp2h3eQW8JnQPUxnpyXhL z6u-_nfH)#EY?yBsJtgZjRYm4pZx@AK;G5}P4FdDZJq~8Spyg3jLm=2c;=m_czVoCI z0yyOn8+H&NPsPd(XDxFtDZ}o->;S3(@B7IQOM=0hP)fPE%~F6=O|A-Q$)G+#_*-jO z8>xC;0uoLCUOyVvoC^>S>+cxRD3s&}ubkUjO|)0m;8JSl3iGc&*1k#u;^&g;L~Awc z9BC+t#tVLIHm)egYq!LNQuOCD3{w@&^N^vn$7nP@)tcAv{CX~zkwWp<d03(_EzB1$ zz@9mT#C(0n$e!A7q!|GSLP7Dsf9|AX?Tz01PulqJZVFKY6A>5cKRw?=G5;9b9ZOZk zdAWPv&OzPhpy(|%j<gG{`Gs4c=Sv`7O_~S|NWQl<$?!86NHj}S0})A3b8@khP}Eu? z{BFMfO2$_|6IJZBQ3|7E;sov_bBhj;pj@d!kesuYQBGwu{l46bJ9AGX&nc)gyclkK zZ>+sTNr}2>nuj_e|L}W8f|=#m<u*4+y%|8J4-G@*g&^!=pJRXku3EmT!K)cj`g~a! z6@8*P<s3HoeAwQ5dh48%?1vHJb(K7~WQ|4yB^w0({Fq^%lfAEs=I>_I^j8QdrGzxp zaLx{iSDkqH!}tR+XIX3KTrTy5lu8RH<ue!1*p(1`D7vvl1dwy0?-&omx*FPTV0xAv zhW4lTAV?Qf%?zzow5aKPFZK0STa-h|l+;)0Bj`{VTWhA0;U01@_=aZ8_mhN3Ozzm@ z_TFIU03pILP2R~M#lXL`@HHMI!N0$<Zforyy7>!Ms>Bt^ny+)NkY=etyVYtfp4Y*$ zoZmW|VNDfyL|nBYYBz2J;G($ZY$(f20ACK+@cSBb!tl$ny#`-gp#fbn2_j-Ak$;St zniv2SEl`$=47p>;UMRL*@UoC@?8!ftG4G^Y^3_D-9itcjykzu<;K!qYm$mQLqesPc zuGShppZ+t|Oo1V|y9lyvb-DMz4y9es`xF@w-eQMB36+g`>bbRG$JnuylDZQcanF;T zpy5)BCJyjxBI({I^<}=^*%2e*6&buWZ8@`AYdwv@B^dFO=#fj@ySNhafB*THv8256 zC_{!J%cNgxrT089?H`RiOG7C&BjSfWJ+s~XSqN}!`bkhy_z!KH_oABd*7@GOYQQXw z^F9jz=vq6xYx%>Mz4(;hfr(NLjq}$V8uZdTB$r~TLop&s(VvH<v^(Yu-D+k9Amcir zOIxHA&sa*y*-|O4#&A@`NaB_N>vbi15rBGE9J3HM<;P<b&HbPQ8nO@M?rP*p0}KL% zh-Jw!7*2SaswE$e^}GBTbia%X08Y-gO5z7G!KZ{P&q&GWRZx_<!yI<e?v59~V+4>{ zhVKsUOJYGbB|v_TwYrp=WePxkhF)buVG&*LwHY~U?fly3NU<~W9Z!#4<9#mik^?0F zCTP*Zq-R$vGJHNgrVd_9cT5rOnJyCYPt11MiU9;P$w*;W^DDzhjCNSA?huc)m~ADs zYc>@evG(55v#jkbpMZCIG?KnW{bhIWia~iqzITR1D>5b6F4D3swtv=I4?&pupzmOv z@{9<gjNRE4>$?aW{t{aC<?L?go!3gGGq5S!LxNQg>r>kTkiG6PLoEfpQFJ5Iap8|6 zl-`>&n-Bv$gzL`(WjH?MA3#nR*`Keq!Z<$F@LZOh6H!a^&)!at<&>{lN;u2UpgrVR zT43#!g}SIOiMi<R2>OkQ`a4Zz?(qRg{W!>S1YH^0s+v+QBgH$Ml~V)Nl1R&al2R0{ zy1@ZS#pC7w9J({t0f~9Dr=N0UNhN|{^R|dY!CHOBM0u9->Dz6+>Sb%y8Mu*B-d6La zm>hnw#FbJWHbtGP1U3YK+R6T#_ZQ(9l?{!*k5N=gL47B0F0OfAHUdD*ibX28<H08W z3g;sx@H+)SGs!Sx`QU(y2IhoAAU?l(#5Mxo2}9Yk^mr-U$a7Tod6$I@)WYMGcMS&z zl@icfYrW3ia&Yw|Nt$+|`{CFA@ERi-$@M~7^_^Q?(9xgn>H8hgW?q$(gZ96xOdf3l zPE4G7mP{j8MFq9CME_5_D_2Ubh<U&^Z|{dzhLXYVqm&wBOnJ2GU;T^uE-JBE_k>j~ z;93$JeHxndkndp~=LFN>5yvP4Vw)!(mWKL%$4@0NGt^R@c+~3Z04;x;@~bhkr}Yts zuM4S4qBgI?%GO$QaXi!s?rG4{wR#Ks>HQzO8=O7+%7Ue*0ngE%qurQV6gED0S?%-b zQM*S*OeqQ_+G+}T^8o?*0U|Dt*|DEPlBW{>*(~^t6m!j7F(NawTy?S-g2kkw_tdxE zWf>A35)OjeyCFcJ<(d;WkX)_tpVwoC`ltt-G>q^9TQI-z`9Wp&y9`4Pxi~EI_v{?O zCIQHK@D=HL@3E3JgT#!V2XZlfV?Dyc)zLLmkzmNzD?+L&D$CB5Lw=XI*=M>%%g^r| zeIvJy<-@WjJCG<^E9v!DGW8l6i>2EmqI4gvP-Eku?UiosdNFr4z1g6^_@>9F_ee>g zR&`D5);?b=Al*~-C9ikb#fbv*$3t`8&<l}(a_y^5a1^rEP6}$V*2tD}#G2FF__L-1 zNKU|1;7-@e8;BJuS7FKBEru6|-e$+=#jL02UYLi_hr_;I(3~@xZ@UAz$J(X%8U+ag zSCtI6FJ?I*J*3ARsUs2tw77>tzRd=MhB+x}u+y4QDheVJZ)myF$Gs?q&I@pSfcN2i z%6{uO4aDzXPv6;+{0IX3?8Jb*H@HXU??l%BF=lf7{gf;U4Q6+ry9ax$wfa(vir2~$ z3og!osXn-tMdhE~=K7(B%zU&h<e2m&_3yeqCxSHOqHJR)2nh8l%Uw$sC%mRo(!B$5 zXJovGk9&TF0~%Xb%xXA9ey0zqLOi3(wH7`f7u$9Sb-`foT5ve;_4YU9R_fJPPFh)G zdq_1jHjTnGphEdZL<;OrUFMMPU8hV<tJMbXOOvgTQ9ZV~<H#_^S}TX%Y_JiC`+^9G z03{^e{2j=>qnw|K3obJ=<4#vh|8vBn$qaeE7DR~=#^;%H`9OS(4K8B-Rr+{1&!8R6 z#Y$P{#F&LNln=enPGO(@>$Uiu{{Ton&E{avl@p1-hPr<Ya<XyYw$WR2I~QG|)8aL% zcR&^AY|P0qhTrP`U4lL+>LW{bSDye8vZH;t@=qpoMR0=wo1)(RBNDC<{w%tshwr@l z<p|uVG$0!c{;}B$xOc_LjjwCnEjYxn2<Ke-WEaKy$aO)p3qoAmr$<wBN{Lob^ltU^ z-X0IsM}A#tpgfUTH1M}=^sRZ#rPdK7g9|yt0jj9{8wqWxJm?d;w{CjAQdGNtnew-< z6^U)Q6yGSdNO0z8J%PI-6*4VRbwqdd?rG8EKeBABF3{@^qPHDoTCiTf!-W3<T`jD@ 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 zcmV-~4tw#5P)<h;3K|Lk000e1NJLTq002Ay002A)1^@s6I{evk000h4Nkl<ZXn}p3 z*>>Z)4n&KZW%>Vq^jP!2``~P(q|Ul}Nw-5&AcjH#VA6S>S(4^?)-VjZu1iHx=sZtJ zQdySq*>M~yib6$ENRrO;)UqrZhC$;vs%=|URV7Ip$5E0r41?x*R#jE1>srs}x-PBj z8t-V^He?ycQGMSF`6Q|Ddlf~YaU4|?h5EkNwr#4aO7lFcD2kBbI1c5Ul~Rg#rO)S+ zc{!V}>l*(a$5CC^X;~I^U8i}TLkX^+>$*ZH1aYOIoWAdsb5_n-WmzictfDBi@4M={ z);NwDhCw-JUDu^;+jL#mZC_t2DHM%@I5=lGjzi~pe%EnOUd)$xu_UFGLbI>eD}?nm ze4oAipa|}3UF+w0YTLG0gSX_I)ijM#N}8rgP1EQ+PaVghlv3=6LQo3wBHzC6VSvir zg$-~iN$R>z$8l)i_pl_I!>x19;T2f2EK4;_6Nm2mKD=R?rtpqsStLoX*DLm`sw%9% zZJWBTQ(2a`5UZ+6pU)=_j<r#!E3dBWIAfZoDK|}{ZQDYq>$-Fthq|td1EiFcQi_8h zyd-Vgrm`$UDBPQvWF5aNiXsHSI(1!Z-}hL@f&0GK=kw9~{f-c0KdhKi3WY7p5(@V4 z1S_iRx>S~BSZ7^V<($I;9D)tUan!!=0Y-h_#~NP1A=|dSx!by~5p(WxxU|QeyZih7 zj<rQm2m_&@uIoY(RaGhHd;>W`pzr%%&>DszP#A4IU4=COL|xZvnkM2N%U#zM*1>ZC z8tDrn9RB$Ze~^U(R#m08ZEpze|0X0PY2Wvd0Yi0Nr;7MMpmkkU*L7G2%OA%PvE!D( zbrBBhg68g`C}v&PTWWhgbzMjJAXi=2x~}U6lqjw5do9bNrfC8&-Q`(-o~Md=o;A<2 za?XK{xVFc$YYHtd%c8ojZ!W|ESWmnoTu~Gnh9Rt7mSqTp%kKNGvMfW1(==%uN3H9s zuIu7JE|-HRVKvWl$cHRNN=Y8a?y6X#ZCgo-*hYAN0Hd-jwJb|0aaood$V}5DNvf(U zQkLg*&+FqjMtI<H%d+V6`Gn#z*f0$7uCgpOP1BcX{G>EeZpt}lXGs7EuEn9BsmK8h z%Mm+#*Ioa*uK28NTcwmDXOdoc4`ApPI?wZFU1xHxa4-a!aQE{(zoADS#D%fA=SXK! zxFG<?#t6Xg0F!YXRhH$ARzm%zX}Y;3uFwBdN<m1@^VE5sx75Y{;0Rtc48x7)^6tLx zm9}lmxB-VC*^lF>oO7fFzJ%tRrU_SH*EOs_&c+L-Y0~TUx*;l7^k*E$*z-6JHBF=A zIMlXn?7=$nHcW~$_yhi+q@pNP;l6y4c;c|c9fZTv6;v;!bR#KjeqEQkuDkJG4usp0 zqHxV^+w^+9Lh+6tAU3(!2@nj7jDlrZhoXwU@1rPyzmh)Kr0cq<MgTVH8?VIPvMd1_ z{u11>>$(6Y4t`x%Sc!NiC3zgP9v6i<IqO2nc!XyL)|O?d0%G5FU4RISC=>AluYlmY z9>09=$-JcBJdAts6XD&JrC(+TwXEw}%d*@K%3)JVxBd7XfJtG~G|iVwqjfJH+>&kE z23lj8XKf1-;zsj4E2X5muERC)A_Us^T^>@n9TuekfXgGtaU8+j`96=64CDgc%d-4( zX%;%vJ1YWZIf$ni01Ed*A(A4lsi)oI!!X<`8Wc?}jI#E94}k$8lyRPC9MGw&vnvid zP1862aRCP#Tna>;rYT&;NdiCd2GSYp#&OiPZJMSj5P2AeoA<bItbv^5oNu0lLMSu< zG*J6I&s%t5Wh%eAu2pbIKqaLVhzKR~HValuDaB7;!+w7i=R9!kVHjfF=ko~xu_&o+ zS(eDx9;?JV8HRQfk9!GOqmaHay6=0qD~EBifgr>aRseKZ>)wFixWBV8=qDEPGV{sc zs;bhuuA1jr$8p@66DW}Ipn(9L^bpHAe>)z4O-d=!4*>CO<1|eZ9zhuJ^5Zyk97i0m z>pHz&uK*6#gUB4rt%736x5xsX+;Zwq$f3w5@Af7I`=oVUGiXOVlFtwx!JdqXmw3K} z(s{4S4+}~|A-(V9eJ>vNd2(qC@Jxf=$a{Kc&RG@kj^M;3tcyC-`&_sw-315-hanbG z7Ruq^WmyK`c;|#JhSNk8wr$(3hlK*Y+ks4Oc@z*_12n}|5f)HElY9vwVPqgMhlSBV zG@eBV;ouAja)FXORJ_$oUkj^aaf$`xMgb0((B1;g?E8LOh(KQZ0!ES3OlaH*jU%L_ zTZ5sl>i|4z*>zp@e!p)N)9YN{m$>#dG%UP(LIp+UA#J63o^#VQfxg5Qaey^IZ-@vS z*r_LNS-KR2hxevvs5wO?z2IekF*z(t8A~Gq?hG=MHmj<NwC2{X&|K3r;Z7Wcp9s#= zG)<(jzVCx$gOa=qccUVrH+7!ptw#3hMpCqn96LZ+_QZ>PwDNkrLRsDjfSKi-zcK72 zflX6NK^?LFU!6j#Bo4sKVO0CR-->qDZrgUNg#HQ-I5%j#?|XOzcz}GkH~WyjNSDJf zd<~I*=oF^kw(XXzpK;{Pb||SA{?jzw8U~~&G|%C&8VdKp-2Z!M5i!94$o#=G2+Oi8 zqq<Ayd1g`&FZbRueJ)9n{5>w1B_S;RV^8>K+z&L4qh7C9j9s3D9~^kU-yu9mPJQk! z?_lRNmvEuITo4-w&(E&wf^c(K1d$Z34~X$Ql;dUIv(Ba{;IMx^l$W2+C*GM-()<1X zr;q_a`D|I1V2RLJ>8IcA<5J+;$pQd_<*+c1yK>vM!IlupNk0XNlLU8F9?<+bfNR@U z%d-5_VTA@e7vLR$B@>eZ>p{IpF^~ob1ciLx_p0kUn&z;qlv02R2W5gm)6d&H>$*mN zS^DjHV+n7yO1}vFdcC6I=%I&V7=j}M${}T@<2W)Y<;hh662Qg@Jeozz&lyp)RDQ}$ zXHSy;ab?1RcX?kMud1pl<nT5!&+GMyVW4Lp&LZjCmu4ozhp-n8(lkwQQ#1-8dG?!O zH<WC!EIh&~E1m@SkU!ZI5OPqZ!-Cw9B|wo3gAC(1-so=SEmTnSS+u*m5VMdKZ@YTj zNs8PJLQ20>6_f@1ylL*Orf2V(t_CCq*G8E>e{uxpN$a|1v;w4i^IFoauy_v3a6jV7 z0m->7Sb$L8jE5ilXD~dt0qo7wm_N^w&~rYXIShjeN<1H%;NrAkeCCP;_kF+dXf`Cy z@tCqKZ#1*2s+&tAOmN+wOu!8QJc-^IZti<{{(YuTlo2%f^Z8^n_8gi?_gg&wPovL= zwkr7)!JY);Ilsjl@D^g)Cz(`7o(7+DDfX6rTS3dRDE;@}e;Ky|xQIonCZE@m=XeP@ z(udXv!}TP;FT!EwdDiRo(!TF8vY`s|Ub8bg&>9?}RZHrjfl!uZl#?DpMNz1Dzu)0L z^E^kq01VL!`Wb&Xh2!!3?WGuu$IDOF_{@q+G30%4z}vyz+w$tI>$(Ub-yZ-bTmjW$ z9LF0FG2ekLy<V?yOHz@iFDemgPY{!s!fXDz+Thn3Bn5W(s1xDoxZp7~==}zP;}G0} z+F1JHL**qHh=|)Du%{*Bh8qKt;#$%3>Jz;wYGA^Jz7-8Y>6@-nO1CQ#UbQXD5^Rfn z&%F~zV+t7lkHSfx6^R_pJ^Q$Pk@UlG%DF67@}?PKLh?t$P)_0<AfpT7Whn0LK;+j7 z$?-lmh2FA1?*Q=&f}5CRjIr-~qzAOf=mhkY6s?=GEN}g<WmzIdxo(67o2Jn;O;OR{ z&Iku%A|?4XC*FyI@eU3v{mzoGIJ54iX}-k+uuTs3i!H=9bke(*#19_gT-<Nha8JVv zldkLj8MnaTr2BB}c@x*0?|y559v6zEwM!LMRn>P~>cs(#JD(llM(243i2YT^dfxN0 zk`TdqUDrjqNR<XKK65pbL?5;K!+V}GxYC`)rO)RRdDxqIpU)?(NqgomTIn-fzvJi~ zk7pYP0`a`m${u)(zl&*wcQ^?n_Hqj83PH)|d8+VsC$%o_g@z@?v;eX%>DHU(uv~B< z@8R}d&JoWXWZO24;~2D)(D8ileP(~RGrqrABH0A|NauNGcTq0_=t>fsxDRQ_2jYMe zBMm~sc{*htR^s8N5Lc9*jX9q`@m<<d#5&cNXB5JOv{cviZ%=C+#|U_|LgJ<b!zvCS z+{NH_0IA5!M1-cCLjg~)0wW+Wq!N_9ZJX-4zOgMI>do_fn`*!(@X~pne_h($l45~a z^D7M;7@o@E;Iw{am{|0KlL;JrJmx@hiUhCTq~AK4OKr@y`8_umJpaDm?`SurZQC+h zhvefDFsEf%qSFX%1O$A#4lwb#Utn=d`yp{lAA*sFuo8sD>)>a_MXu-Z`54MbDSc6z zi5@g822XaQ?wMY2p|)+~k0_{8{IVHs8RkCEMn2t02o8Tw@w`d&oHp_}s?%h^0C=aD zn+3gRzjjDJmmCPf`O7G|$fanUYRd<0>;p>Usx;&MLd|oIRaMokUk+7eyaN3s6hL_C z_u||*j&Wro<(%{9^SSk>p4xL(<8g;2aeKNaToeNfys1a4#xH-fw@)#6hxfDHL#T!* zQ20#x9n<n%`q`3H0XE*}<$!)A;dx<<bsUC*f`Qlb?-6(?|2Uv4@-N~*c=^FNoL5OG zo!nhjRisHkH*Umxn(?&aGhn~c=PAcqtj>^}W7DFgf<aLz*|{-IhNq`-K)<>O_Tc8; zC}8x9QUi3UN&S8VTK9P^wIwMGc1B$b%Dan#?syI%!)zHsfZ(6cCxFi%ni61*-+YJ3 ic|PWy-Vx>Rr~U`dChL~nD+I&<0000<MNUMnLSTZ`K0W^c 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 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 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)#~38k_!`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 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 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 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 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)#~38k_!`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 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 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 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 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 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 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 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{;X{3=KszyL1xbWEgT(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{{5C=l}o! 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 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{wzI}^MB`Dm+sH{TR1w<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>m#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%*{{RacS`YvL 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)#~38k_!`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 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{%lKA%m2<PMM!x3EgT(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@f6#}Hg8%>k 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 zcmV-!HId3gS5pcAP5=OSoXxxkTvJK(D10U)xha&;LJ=@j0Vx4QrD^Cz>7XJ~0wfe6 z!4R6R8Vkx=aqVjZ1x3W(JNB*t`>wjy6?I)%b-Sx?ZVJWS{l9(h`~AM}3(n1)I%m#3 z=giz>Vkzjg0&o>zfgsG#8~~;oQ)vK!vOKYWQdk79s-##_=8vHuy8^kq)Zf#yva-^n z(#Jz8%lGv1^YioMdwY6&yJHUbvTBK3SmiD$v$q?@Q)vhjmF3C`OXY=936F$@Inr`@ zke!`IZB<EWw^~V=hcHi?Bl5_VmUvbPOFg|j_@1O5%;X;`6A9%~S&CFzJS>>x;zbk- z%L;g*$%A+aGO1WpR)&WV76*EM&fQC16o%U{Z@w4bo$u}L<&)y=?eFE|?>oeuKiHqo z?<K3|REx%n<ib3mT&NZHa`(c*UMb#uf4;ZB&*0v|eRwtE(!4@(^?wrX;p7E+e&)UZ z=Fhy`Zg-ZJ%ZgR^C@<GjR4ghHN#teNrCutR=H>c}rLq#Ce3-Dbw74)=NGkNKaxW{8 z=8mrvR*2liq<aHBdl>(3O~Nyajs2f*a!HA&mb*-zBohD6++``%r6SKHQJJ({mMg;S z_L?Axjm5Ue3M)i;5i)6s%9c{0tV~4m2ia)_NM_Y2{)Lh<xlocTiVhowr9BD@^ZdQT zy+Q|t`ug%iy!nHNdU*{U9O~;AK6I$Bk571L7(Y1B^KYVBZF$n%a?;5fZF&C(+Iop< zwMk`#`Gq*1!~XBJ{(}mhD$x4+smFJJABykm?G?`V^X3mx59Q~@_X{878!~ion3r#O zctp3l-b1KS(SLXDf7KS<+qr5~{Qnbo{Huz83~5hI;Ty(-P>NVAK5oj!MG--Au1F%{ zc>xS(dg_n}S_pE0s&8K3D2)Fm&E(vK$Jd9wI-)p6+d6;5*mGW~hK{LWvpIII9tGw6 zl=Vv�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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 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 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 "core" 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 "core" 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 & 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 & 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!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"> </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"> </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">← 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 →</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">← 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 →</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 zcma)iWmFtN)9&Ju#U;q%i@Sv-xVyW%Ep7=K+#MDT!56pS9$bT4aQ9#VLLd+>?|bk0 zzQ4E5nR9xcs?$}~-7`I1&%FG2*#VHq_&C@C0165$0Cd3r%F9mxp0u}>qb~pffcy#z z0{|}<0Bi|sS4$g!b?+;J@UjL72cRM&BcmXrqM)E+puS#j&{0v*-vBW&-(X?_ae@C8 zTp%_ME)F)3fPj#YfB-~JP7b2_A3;DvL&E}Mk>KKzkP+b#k^PV2|F`kd3&2AM+yX|C z5bywqcnC;%2rq+x^4IuK5D*alHz6bd0wOXRDhm25`d|4U6#@Ve1sMqy_df<mi0J6R z*Bi9|B#4Lvz(Yo%;YO9f*RXJ(rR5<&3rUeoB_tw7FZ|l4Y3UJKG)JeE#w!)p*uOi_ zU<H<@C)wfC=4X(7i}&jKwL4U#|G4_ECj>l1d>Rd86mAPzBmzPScOJ<QI^LI601)Zb zKOPbuKn(B@p<3rNnvB69o^AC8X-<8E6|);V`!N+q?W?nk{Lj2&E)z|k?9wfi!`qCn z+HoJ0QtOkM;X#}{IB9B-577Pk1cbVEq>rj5gxF?RuK!3xRfKo{+<8#+oC}SsA3MZV z$GiaMgt>3bAG~g&_7+F2@3l5l2O~2(QeX)}`Al(#v)`W#+cEQwgqCy-bq{u|lM*>U z%W+>r_gVbYE*%UUpf3PSd{KUho8!Yz?8bQs-`Yj*=N}yBi6qb}wM(UwB1U@xLCZr` zY4dXKBIi{vfV%ghjSG9v@;%P~fl~(p`#yF_M<kbk`YKAPPXF5vg>i&h=azqo(jt5C z2eOW!k+;*uIe)x8@I)^u&eM2Z%<*7nB>BDNJ;RBPI}0p<8=XJ$|7oT}ELE(6z*Ke; zfB3;7>z#8NC%n=)6ozVp)PD`%E-%mquK7<gNE?k%!98g?n+u);B^fuWx>C74)*;>W zW_0d>HE+&Nas8X_qgqN=#cFq60IE2x#owQu6>vV(__uVdidCMx02E)b$-w_$-L5p< z9xY)_u3bU%aToSCVtSfpzt^hzPE2Zg-6n7Tp^F~o=>(dX%Dezv$O^#erp~*@YWY`v z_g=rsPN9b(_W|FEQB2E6fXUYnbOLqr<IV3yjQ1uMC}vFAK2+x1cw3feQMZ+nDaB~W zPf72P{eIkd->eW)SF%{9(thQ}9JrF04Y|ttEu1KPgdZq$F+))}$N#e<g6pwrA{Mhx zhQ$GaaXV4W#AaDcwN9z@WOk@kz+=bj&)y`JMw*-KGUHByGIF;F@^<k^ydXyGQY7?` z#W<&`<52+DzInGu{ug3htTR+mFM~M3ZbwzF%_uK&2fvj(l8-=bmEC+O9Cfed^D^NU zM5f~vIL+O++`wKX?c{pbmliJKHJZm8=CK-E=af)?VI<+H&V@=c)b6ZjTI^^Z#)x?V zg<6D@3h5XxI_=^MGXTHTG1Tc15zrz^q>76H?czKYL+^02hp}n|pB2jS&&emtmD!u= zC4J;W>CVm_?j&j-9nln0kV1uO-=qr;Qb~O@@?qCpYD*tu^`$k_X}TGCQ<1eu@jC8@ zd|)Uid^;%-8&$OkX*@d)3BzBum=<mWtB)}6hU*SQ0e6j*RxNpT$t_1$V-^`BHEf*a zRzDG;H?$OVt4ko`O%UtO8ZCZ4$%dRKC~|~@7VJ&uw_}`9KHfeE&00947)H$16gUN+ z)0I>GQsAm7`1~wAb^XWENYb=WcNt$$TW}}N9{W@r?K<TsT9?RpVN`Gd{ENh0muP(< z{$E{h@h_Q{bUW`i$V$F)DGdA#5%gQ+!wLp_8!v!icG&(~&K=sooawkcevy`sa$@Dp z#OKTuIjvt%Fu?J^mXWd_zkLo4Pep#Jtwkve%1M0pL~~N8v2X1pXBP@__<W$6EZ-|n zNA*sSLiujlv8*Th6y;Ysg<t91r?#Uc(TTD9?@FtRcrO6Hv@zam^cJ1oe{(Yvf5!D_ zbtch9G@jw585EW61f20h4aNS_X^R#^9<U_X&{y*1%e)%ytGX<i=C`%1>1pVol05tR z_^R~L{fznF3J;cp20V@~eG(E5pcpDP{W#Vbzx{f2Urk{EPAY#NtknfgVEuYxH!fJ9 zSf@$=BxXMZGp+SCNT<}a7>6`gKOp}aY6r7b{n+Xw-p;J}lJe9gNV~4gmX56aPI`Ae z>F2Y;FYY)$n$lDGQ<-l1pN&V>MGpWXGM(oEa5gsj!aXsFxU;o3AxGts-SH3LC@Dyx zO3=q|12T|`hDSLPG6~vMJ?ePmTjcl|p(s(>_&A<~W8zL%xOPN#s%1&zk=#2Hx9|0i zlh;z01Sga`a3JE)>#_dy&!C;3iL2_lP!BiCLPpMfwq-s^n1`XO3L{2^C^zbM%Tku? zVyT(FBu{+;*Vv@}O_Z<_E7nP@SzZ!Enx|<hw?yHrNKQ2QDBQ-I%r6c*M|fwN%+77B zUOj9{E?023f0Fc_BEmuI5d$06g7nHUAn)dr+fm#belZ>Or^Bb6X<}3davPlKSKIBr zNg4@h;U?dHHnw>(7Vd-MDO~fzB8LiDCAnN$nhb}*NBLLx*6kwdt1_p{9rXZaTE$h9 zl!;h=F`UvQ%x$4v=g4yQ6LR>pyypjL%4k_Juzv^euuCK;+-7^1uJllFK3Adg9=NKf z<^M3$;YObun+e)HaOdj~=^Sp!U`MC5^|{VEaH&l&fzBi%?IqYYLeF$d#+fsm4Q1Lv zc(rW%Uh1?4Qm8U2_;xS|DJh{nIZd*)^jvW$A5VTUgAaP7CXg{$GF-}jT#|&~XId`} z+Rx;77=v+*AVhHD_BJk|c1&)8L<OROxTK~Wn{{MUjGIhqbt7B29lIP=73Q<Q)5=2T zB}wD<-@ieVcHNJ^E6SQMCX3GYuP$B6_LG8Ky1WH9g2Jr}Ub8t8M#@#F_U{o+`Pf-s zkoOsjjp?p~l~&x%tN8PJS*e+TRO=@HEd{H22s6on{ISjgoi&^+USlqV$p8-{wSIIs zcn6V>0D%@anK_yP%#$FUam<)V?Ie*hjF@~q92`C9K7b;ad=Nt`7ZwS&Aq5sxppY=5 zrz+s(CXaJ5Mk3-5uWy$E?BcgMgmmDtF963pq{8RDw~SkB{~Uua&pG@k>VF5n+mI?~ zZAzy@QHpzgN3X5bkzIMu&y#FJqEFlFfJgYyp39|~yNeTJQ|4P+++|B(YR`&iPEVa( zxMyc#opMr;gotiWe6e&gT^a?JQj7#04#+t~oe&7$2}j2*rd2LPMCOci+h%N&h_?PC znWorQ2&3=up&9RU1y0!lOF}~qqNoo%My;@Q(V22p1Mt9qcF^%H$K){FdXu?um${kH zSvTp>C%K3UloF9x6BdnjUlZ9r4)W<6JO2Fw$l3M(U0muhpk~ndaJwjhp-VzPBN?)m zh4=IPvHOFsu!u{(bhS80+Izh<)-#6R?Bgn2;8XioS|j(!r3yrMsZ`QH`=gKSg7ac7 zQLbICC%4{0lk`Y6BHbvSavX9UHKp)6_#tNw-!L)}n?-D?Xy`*B2@yZLIYYprrzBSn zG<!$X@}XD>5i<j#^J<3|%1`*j5Tp?>Yhk_%4{J8Hd?+GOYOxA`h&zlzPuEamo6hR7 z=c<n?X~4GoZpKFf5rgyg+uZ3*qW2|e@t#p}2h4yNa$0<pdnzA_)y@CGMlf#PPNMfS z!1D-R`$r0%_&Mb%3VkT(lh9!g<m3;SVM9Jp^63Bc3bpe9%H|}_luoO1cx|A9Sh~jo zXWC^?-{{S%eTo|U?*B7f2STU%?-eT@Xhb?CMDV%Kc?aF(iVHLMecw<2a{_{-KjcOw zd&a!u{Afs6+i;^V7QL!(1BzwQ5c87bZ8s&eDqcHE2*gn)#%0V}15I+;!b>Wstptbn zXbYmvi(-!6&|(aydg=kG%Y@?<z?YH)+2Np2Pi_mkPE>5Q1`v`Wkd{_`hq`eDg-QA7 zYS=?Q)jfu~I9{F~77`Ph3}PmAj?W~o(iSOb4pRF&{N|5eVBKLG_6vZr{EnTB06bq= z|GR>*L|!r$EbRXCe10)V4aek3Z4DO<kK!ZyLGG?f<3@}5)(e0sxlRsYlY5n7D?>1F z;^_sjELV`n{wrNmoYrSVKxwVQftSISuXli(X$F_oJW`zn2<6Ede6l6X+YSd|NMic* z#wgP2%Roi1xos%zLP5nyd!b-?Ztalm>t1zr0-kXm73M^FOKxP6`cOj&5?OhUcQz=I zdIZ&o-Tyaq-T<rl^C12l|GpZGJ5~ugpIUfe`RaQ_jhXXrCsSvaVU({S%kdxP?y|RT zWYp^9gvOZ2@C-@%NmZvaqZQ}T7(^f5QwY=hcd#2fxlUf-qK^xvTvjp3lG7<ihYwH} z6?3CkG0VeTWO*oTY}m<ZPBW2IQt`9Dr!(!tz$%Iw+lcPf>VVod2*XhO<YZ*wAeY*Y zr=g@KWXO#Hr&^UOStXi!LM=~;Ho`beVH%%yZM?c_Y3n34=Yu`Swz8v%X|_ohQ9xta zdl9I)_DOf;R+dXX{ZzkWZ4yhVm9estqRJ*}g;|n$DQdB!q-92VzH>=olM$#an0b|V z8$Hew>uy5^mIcQkg(8M12=;|Wo{R#0%%z)HqtKlUFccM0Ay000C>WQ!$dvR$XQ(fL z2coK!Z<kq<*GY2Cf&7{NgPMypYf^t3OE&{4N`4u($}6`cBn3G)E`lyP`?-7F@fJMu ze5YtvyVsmgIk!0I6K*ef71#EvG3bX%EO`;YBLZ!wJ9Jw!C)afaBrF)oHUrzB>&cY! z;xd0nRS$X3fnXNx0{Ru9UC?zkg8B|J{zRVrQKYO45xLM?Tc0RlI-EDEOP|vNhp)~Y z-JKRiB*ek!HaQ-+-Lt~Pr-!;eV4fs+iyMg-ZOH_&36-_yur6iby@uuryQ}dTxi{ZW zmk5g4oCW-M*8}wWb{XW}pVgT+Y${eQSUR+82%FMnn9S!|5CO^yD;%NOmsTUWBTMUU z`u<ov=XIK^EKKA<D{@<W3k#}kWs=Zb2MZz~y^W%hM~*m4CJY&la&?1!GpF;2{ZO1I zYKL-yc1v+1C#-~e8}>CSV0Ie6@5AZy+t&tSU#I6I$Ey*2xYD5y&t;C_u0Bs5Bg2>1 zc!$CwSic;GE{dNA4m4S&Ckx4GXCGPv0I3R$G|1Wdn9Ke}ov+(Lk@KCVkm%S@YnwK{ zO&4M`Po6q7OGCr2VRYlV6J4vSLy(sFvs0B9;iU=`&6`J+!Irc*QpLxx&uW!bd*<tt zFgjJO&)!khu!!jLjWJr+r_<_|=2GWyooW{r@hacOXuwaHztG3KAT>0jr|C76*T=$+ zTmA^ox#yfes<nHT$Sa8Ews=ZHjL_pR?4M)d%ofQbUTQ%~gW&a9F+GDPDhL5l`A9Hj zpn(q=IX?b7HReP_&xR_rmWX{$E9tPSAbdJljdzeHjpp;reUw83lsvf=e%6xP{@zgt zs%y+rTA`mdM&3tbuR;EU<gW>F?`gTv!c2PD3&2Z-XT+cb#tz3J$s8c*VDS+-H2b_j zCit80uiCo9%&uuowL>NnR@3(dHT!y46{&gl@U26`wW3#!;z7mjRA%RFEK2EIcxlGm z?+1sanF0!&j(}!%f(`WK9q#HeDMc9y6~_f{opYK9jnp%*n!09$-Oz+z-3y_(=}cgR z7WeR5<(6Sh9#pVrxB>x$Cs`Pmz$L3bR*t=0I@`3e!r$0Ymaq9uxWRc9hw+xIjC`Lp zRk6t6Gp*HGS@@*tn)c@TqminhF1ez5KmHI3Q!leenmtGyBaenkP(bs@zji*IT~n;W z#nWW<S^yt@m)xIt`zJ1ns)}j3z3Q4!v<Z_ebv|+U1<+$P{W^Q5(>KOAUGEWp@>K~o zYG(&FRWOK{bUa?3?4H^E^LVJ|a>rZoNXK?3{(5ns-*OiiNFt$LS-izcsbDjhB5LyI z=$=Awmh<!4EcDJ`|Ir|v4MErjR6+SyHv|b-tO0{A>uwNC&DOI()k915S+JsrQ8Bh4 z3<2B~Lpi_Bnt6YJVd~u2jn-Uxm+O4&_Fkz{_slt>45>Q`9LSId0Zyo_)UM8(EPPRI zxY6xf)tN_>ve({^wMGb)y*D&Q6>XX14R#z*cQ_>vBc?GP;`a#EQge}5=TSd~Gs!1s zjmk|Y?56X(BsD?FRh0O(&trQg6-#R{5SG>furJ#TTEcz(>L<(QJ{vP8EOqah`R=JE zRp{ah71I;{3I&JfSHA5W!)_m36g`9z4v9Ptb!l(Zwp+wJ4W%>gxwtzX=7?h=;Q+0v z3DZM0B}+V!@x+jIaKV-yB>BjAh>J!<=;sa_Qj^MMP0k92w!8!iw3yOcsBG2v4cW&f z&JgruC>XTOA=TAw_wz2kS@GLrbHHke{E$2vN+)NrAmfSbt@47)1z#oKK`>eNn=elJ zb%u#d{SHoPHwY*0Q#hWwP>*z+7r-NByOMZXDO+3l1IJ!c!~q6Q0o}>dG~Ysk>~XJ4 zi8+1>HDHD5=Aat##rEP~Vbe4ZdFEx-aMfqZe7lG0y-l*_PZb4az4WI=#hmx{db>$> z&UsY<d6XTG;2VqJJ&GuH{UdzGPv>{|ivsUe`c-5|%%Eu6eA~TWUZ;Kf;=O0-r_IgS z-Q_u8Cl|e_{QgK!-$sRPPPR8rD(oG1GK&Uyl%AO+ooO5JePmvFf+!2FC*oNrLwCVU ztfZz|nGOHaNB6|f%%EhrAfWBhJAuG^GB{8AVRbi~<FD9i$g%S#Gm++(5E1H_M63t& zhvTO*&W&ep`Z!(aMBvJ-n)-pfFGm~piR|OlwRQ;tHu(EaysP&2EH#x?7FN|xfBk~e z187Ydd)GO)(#4!m2kdtU2EC%Qf^=ziiYU4rX^3h1w2qEh4ffpe5=B*cm4bsFnvoIV z!m*x=l2#(U(0GP|@^+5<E+Oj~`}69tZaH%<&iZm!juY6V(vzsOGjEsc8sY7o($qyc zf0>u}ypCxud$aMjH;XQ-JJxq_u%}inyHOW+jj;=nnkv8lB{BT0`{cg-c7TKUxQ6eH zJqnilSEp1)LR4eb4L>e2|3@9PucWT!+*!-p-3#`Ca!7ljNqa(18DEHJSDRoC)z<nN zNV{kg#%Xw@rKF{zVdkM{Q+ljkMjRFehuOlf8nDsTZir%z$9;3fY;qk$KKd3_wr`xW zO$#|M;81Bds;;L(S2rAhWnL~Z1;KD7z8%O?4Jk*N!F|Hd$*+<5HgKq7<m>(skx6Er z&pfm(PmY#879VhXJo$?g?T1qOX`jZYB>`x$afkQ9SH%cqe%0jACRbW%wFqWdn;m(_ zep`rt$64cT_f~9YC~Oz^?`V<YB5es6se`aOIo(xxKLs+}Ex6!u%_q`QrFVu|qva*i zjrAs26C8?LrWI!|sh0fX#ADpw%CB}MIxo|2HMNkh=Er%2X^Lsj(A0G8g;1q4m7LE- z`MC&1Z2Vt8F-DGjIR{<7yO10pk#^l=jhC+)lO@`$oVMKb`eIJ;+6Dqo?jDNl*9_v4 zwq1PPg$YM><RagTw9HU$M?ZbJE*4Fu>Txv2Jbb|kH!I42D|;1(XHRs*Xe4KX!Ju6g zrHze4@}*`4>Pq-3ed!mT<7DD=4rodSqOeH6N!stbTm6k7HMqV}YF{B|tzdBq1<Q?h z^Z1eL+()twS&VWi52Y9ynSuuVGHbNtROR1t%WJu2BC2+stB?L4K9{!qU>+J!Hx3f5 z{<7cH2ch?7P2P}l7zJwEvF)AL+FoDTY<|`>ZS9sZ-Gb*dh3G%%OJ)?NNPmlJlb%7- z%MkT%yVCdkSVeT#ajMiwzS&Vo@mbH7V70U;pJTY^%eU`?zRoDvG|7)A4Oc|Aaa#I$ zK9w!Qm4-{xhs@eahL|lG8^B4aGk{M)hxhdOZSA+(b@wglX2Z%emgpyV+r;<zvM^so zS3hHUg;@J<>2B8!d?>4DA9VJ#1y4930{*y~D^g}fa}xRvXwcT!(T7F`es6_s%6lK; z$I6X2UIoQP<YQ$DWi}0I)Z?iIFlwwA<zT!o@7t>7@(cMz^X=qU%a1pmkA9R%f=V3B zzpa6E-*{|dvNA%PT0Td0u`i}CGjMz)bD&KoaBZy^OrBc+w{H9>vk8@z2iYO6^Xv#s zbgX+*{7RBEBzTxG1hq4>U@D3a(O6q&%+KqE@)vz_G{y0hGi9PGb64SuWN&%<*11KK z+2Oo3hrCv}#1anK-_ORX+zH*c7`yLXO(}0WUuuYNbrmWqQJ|NR_h!{3);jp$j}avo zk{G4AyulCWZa67iSv%!!H(AG2qUjo7Pess7Z$g0Csph&@Oy9@3RJHtI`^|-$uHDAW zJb)k(neC#e!JM<yTp`U2)dPh)s!XcpEtMUAhR>6^z&`LrQ)YYmqt187!qB8^mWiTQ zwv+NI9?Cd`<Z5F!WIPv|Pu!Pk!1G4Ti~Q9tsmbjr9r6ULsK1K+;KQ`rGv{$VOZ5Er zm_ag%tqJS^V_0|<pllk}y~PNgj^a$LU_^S`TKQ4oXXB$)j;Mz~pKetXJBxEn%FPI$ zowlPA`h7Sn-;(bb4d;7AiQL2RJ(&Mr*Tk~Sx~q6|kX7{|^6QZ?=)<_7m03WQrbMN4 zi=l%YU!jencDo`0XmihnZ{%BH9{(*CPYEEmIFs_UB}x+kKYxg6q0Mse1WBc&WnSK) z!B%rsGyG2~va5Fw+uj?8lu_9NTm&{`8s@6-Kf7`{3-r8Wkots9rurlv!gp@c$<C4F z?y4;l_TGVZxZ!ZQba6zB4OwIcOAWAQWHOwvkVf&034n1x2Wd!F5#ce_8g*#us%@;0 zl$>S>-sHOI8pgh1e;>LQtrRU-=zys_tdA>Ay03m*NCQBIL+GjH5e89l4c#itq?~J% z9IDG?#BEH9>9sH=57_rBz|0J?`XmfpAd2w0c|LNBl7>0uxo`mTlpR)=n~A|SL>szj z4=vPT)8JdHGVrQqe25*aW~?OqP>wMWIH9|k&Spn4hBAVXCyG9$9E%fNPyjp#iPxLs zGV`%Z7Ex0Ztn)qi1;7{8Kl!loEF2iPL-J$leJvCXlBRL*SLdBzVW6D$;H|C5iWbp| ztNH0V3C%q(CSY?a^6`5AQ8B9|-YSWLr6WDqW1K&O*wCHP+C>-IkDljVVStO*M~0ya z*8e4)NQn9)1y&7*5rLQ_qbv2r6S^>R4dk-INtFQZ{UL@ixt2@8;3>`c{d_Nk=s0xx zX=}nEJ4yvGMV72HRK^ZOL9I%Qxe&{_^zQq7x8ShHdUnA5)`3ytR?T^;KVN+_y^sK` z9;X-C`>)gO)>{6$uoWlih|IL~>qkP~C830#QMWsoINKro>XYSo((ge}|BV0Elgbk6 z3LVnJBQ?g80*#$~1g(^HV5+jFkeQ-Jk)KBc*eSXUR=yV0<qfGMdzd`YNKBQ~4775| zps(h%wp=jeu`JkCEO<<r1_e2Hw@*5Rjk;evqz@Gnb7D6*c;`yiA$E#}HydVCUit4x zkBL>|P`9~TES1|#h5zQ;r=&u|((GX1N@))4!)5is7}NQOljGLO?`M~lY7B0?N&fwE zkTlzSKj#6p0QHPxk6h&`t<)*J@e8w~e;p>@`dj_PAH+A9=%V1Dm8h25CKgYTEGnn~ zN%7^vxB}Mmg}nhqnl3`JWBhG<v7t<Fp^m?lnSTy{N*@<Akt+SZy$FPlTC4d~N7h~l z0>X7{9$vNdy$3o{w@DGkvxaSSFMzjV2R@6F_}kh1n*a0?0%mH_^Od%tL9RI{y<68o z7hR5ruO&;<Y_=RqB2Ni5WQD5CU;pm;l!C37)E<KTkor*kv>Tm#XSDhZpq07bI4@;c z#o4su#W?KF#C39wwtcDmP>aG2plF0@4kr?B>jBSO{rF#`Bw`gO-^a#E$G2W(GrWK9 z{PV3<pzdGUNp}2R!4=*Vcuiz8>iPXIA1cS^Fi_&r9(>_gEN9&TM3IF7$%TWC?@p5> z8g`Hn$OBIMwYb@0!m(#G-KO{<ywWMT-|f*u?O<Hm`^pfMPHa3yH@a};fe2VA@)0(w za)pd04|T5wkFYxR0))DRK9%cw*cpmiWFx#S!5VKxTEqHYlN*AEq@l8|ipx((37AHo za1XnG0Vt1iv~+|QskY5W8|5-fpwRVoS=Fq$mW~M3<=WUFK~4nsUkifyAJ;-$j(mz( zglc)_Pvp}0INjwkl<>Y^7zXlmP@vYn6Iio=L;y8?tx_l`)J!;o>8Xr+Ao?~oawH2y zL&5E&z&!&S9=qgl^dDS((r6?z+{jhJwB-r_8dUPHbSc68;KZK_qy)LvMJ0GJ9ci$t z8zCWZn})r?gD3unM{UbZo-J==L*<@z8tK;x9V!y{-UW>ST=Y?rNf)kvFM!mv(}-MR z!e8RMsmk6$b_d%R1mV_5kkj@O<YV9gz3?jO~Pl-<ZXpYw_k3uo>NuMtC7d_iRr2 zt(^r^XODqzoS4~fxd{fN_vF;HmThYB$dl5m65xWi$d15jI*ZX)R!V@@0;UlKNEp^c zBGHr(Ru7Nn3R6N)!Id4w!?j^b<w@yBbkR@g!lNEnwkcT3mXOEB*rwx$+sPs;ax44Z zVPx;e>p#jcrtvFT+qRNKb<siP8?(Ix@{q5`AaZ&wL1j^|+k}%Hg&tR;JHzL75h=@O z_Y#fNty0C=U<hAV&{|@U`}}d{<mGF{R@YbH4EhDhyLpV6htA95YJ^NrO>4c3Uq8JA zkT2~5>~e26V~rU6U1XMv_5*a?Ro@huPxoiw_sDL-uojkx*j~~aRV*p0G}gkWw&$;Z zilvw%PsQ{<{dm$q4)YeP6?6K;G_(C_s_bs${IwWL-}_(C^=Xy^?dPeOiCBvmp;9P) z$16Kc!T1<-7(=U}^*HcaHl0M+Hs6r7+4*aAE#5`~e@?=AbpsAf(fEH_Ecx<h_rF$o zh=^-JcOzMXdqi;WremrhO7o-FS-v?n^05B>&CPRUYUegxW}yvV;p0W34|~Ee<0Ud7 zN#mrVI)|_az+3BTM6Jc@eIDh`4#~{a`zec8!sw<w)o5`_8&TXgeXPXS=v2{$l4B?6 z=9SQPmEf)WCmPkHC$LINFX_Q6B<=RaS!0%4GXfVaQ6O{t#8@g?yG<59f!lK0UK9E2 zeu5!anpz03sBd6bpgkANf(8_dB*4BNNDn=S?2h+!TA}K`X%<p8(5JpF9PNv{2|X3k zI3NBYz+O(40%@fvtc26@ww+_>D1^>8(Jz$hllG-W=t1Y>_ue%(A1*GTKde4F#MbJz zw#VS|)8Sn{|GKQWmuE*25vu`@Xf?k8%EH=I@sfdi)rWX%_<?jA-#jz^>aY?u^SiPf zY4@vW;%btqUcW(?XJ!P(<hniPRsPK+==*W<9CQBtpQBpQ9E{yE(*%4@FFbpgw{{u0 zdb?V$1;&8vfQoad65=j&N(>F<`xO5O76*|F==W4Q9X3zEJf*G^PTpt*34Y?9d^_A4 z&7R;^HG(rdb=z&YJa;|t)m3TnI0Je;RPRdXtcF=OK|ItI(M{)YJ@nN@M)x*Nu<}j8 zg+Nu`uXrKU-FLsFL%5uT!rt`@7w^T{7=3pR-suW(b26HFSMVVpWQ2W{?jU`mm&jXx ziSfa9SnGNyu(8|VgYDQEOF*0KJN|B!zpR3+R2ZShP)FZ8VnyB%g@F^2siniRx3zp3 zFu#!TiDph{EFb&u_!oC-Qj1V+M#x`(%8PCRvLH79yv;A3i+=*9b$>uBmgc~)@{2^a z!B0^t-`(!M8xgefQM7CFy`F!5&&lEG=aOB}8!|Wry4o+?o+@Za!)FP8ppHJRC(S^U z+!K`hMnk9+%vj;>-O{s&ins?~s?fg`BsK|Uud=v~J@gK=IpYZ|JRP@Ug);nJS;O9G z=Jr*ait<=Z?kqlfWz#uLnuN<+vC8h|&4k?t+MVT=+4DJGSB5~%OhB6eMMYer=b02g zR+)e_6$`}xLg{hXfm-aVo>M<w_O@`nrKoc6F*E?zrW(03)q^E;k+w0DP^~5p@3Ub) zT*gmagw4FUg3?B%kKjy}N&$rC`%&asP=B0==Wv&P{4149p5ONJQ_qL?7-KUKW@ay4 zckx3aW9PGu7o=rFDVoQSkT7i+I0)_WXjY`Wb_zlAt5IRruV8WZA;{__IoM3ns(Jsq z6uNaghw1@hr_omtNms+4N_$iSYd}k@m&79try~*40hTybbt!+z1Z!G1DT*;n9KLzs zB=X)h|DqC2ba$u;a^^uiQ1<Dx_Uya6^C&x*o#GIvWhP=@9af_oJ&J!KYo~hs5vC!* zJZv!#EyY2Mjf!ahqpBnO>Cn^pC2;%C=_>)A*+OrM{!Y^iYG=ofw3AEDLU<aCZzuSR z#Epw&ktGi~`dym8ax*JYwoEf-f_zG}F+77?g_*Z9J>z!J$iClnaa5i|dZ?N1T=CcD z)f79N6H3(VW??>}&0rGXW4Y=E*QiJnL`h>Bnm3A_K9yk>3HTt@)D>GJ-&CCrk!MUb z)~G1789J-VIkWFXt`62sXA1ku%YAm@wWn+Pspv?RRDXoz3^M2$LnvP)gU^&w0-=@Z z$V0$q#zs$-P$FeYl(dv&sH_mtTUVo95Y?~ulu=naPONd3^rg^$Fkcg7U(Tvnc)RcI zq9gS<aTI2oC%3;i6`!D2k+RsKz0<!V2BIR))2PeTd(XpPTdk@mki>EF%60F|jy^p; zBqm;YdjuWb_cS_FUG?4FdWcz>ai?tRR;#);)m4v+DoETlc{rXsl2RN)weM1tdvr(t zz^ETPaMqUI`!97THdFAl3rYNAnqHXuv{^@k=6BD@ve~z9I3i4?rN(>D2_Esgqcmxz zvN^y>V8AI8%<uGN5Sq2VJFh}J?!p<)nx4CH@!nKm?dtR!=5sAekr$o`6#D+WGG=n_ z>-6yfC(&f!*U;@H@4X%47q5k-(+<xSG|ekCZx;C!FkTjeXwTMHujT3W)6(*T;n6!` mIi9>9DHix_v@+rH^)bYFwEbXx={WTNA1GSU-%{;m<^KRR;-cRG 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!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"> </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"> </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"> </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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�S=MHOAC!<(FJ4SEtb5V zAT+%i)oTmspQIoyX(^1gzD?C+ney~ONs7V+sBC=AJGC+nP<=3?&(`VXNO_#4jjA?N zg^KU?A@DLj%gM-y+k_79I>P;)`0%RuyM(BYp}q9MZ|zL5jehrO+#&lara|oqzvOKe zjDjk)qyI2^S|ymCDolow5g&seW7>95_pHLu^Gc>mFJT$4MIbB!EDBE!b}m$ITa?|g z35e}isQ7x;GxOY<FZw1%+YQM&wcGoyd3)0++bmDc-`vEk8x!%}&HVQ6=EaK_v)TM~ zzBoNSeejUHgb9XC_}-d@D+Cg)b0a&}WPWEGuL?x;v=-YLV3<_6v3x7*3dG<9Vs0Nh zzuUXpn0n*kZ(<j?C1?1vi%UZ@(wJ^4MY~jp851zrTf|4CCzjK}1kM_G1B|yQb<Bp< z4P&k6F=QMRqA`WiLB<pvy>Pch$3z=dx0%i7jjb3Jn&x4iJ?a8<w777$vsvsxZ`)hX zv^sKGr@z6oS#fI>&u0bYNYAWXpqCAeHZ+{i;c#b30(#a|AvWh7F#Tw?12jV_D{TT7 z&9t@ZVqrqfWeefGc-e^BY%N`Q5`^vs^j@ZkZSgEN^d~1L%M%3XA$IvK0k!`>%HBiC zkt97640jKOfCdt&N_9^Ujc2qqyZ3*GwOg}0&T?+Z)?HPpphal+`-OW%0GZXCEA}+A zvoe7|h+lppfEuo+1`6l;^jj#kh16*czgQ}yR55iHZoqffi|J@c>4+C*x^`C^@q@HI z#BRSCzS;4gG@{Y<;wOSFvJ6|JIdNx?MHZb!4@F)Jm%|GlglK5QqRP6}3~wlbG|tGe zkL<-UoJC8nqH(k~Rt457*OEjPftJMuO@;bQOm9}XTPb#pX4nzdXY|%ph1>&6OeCB= zli-?3b#1K+phheeNgv}hqDKBV+aI+i>Bcae5J~5n_VSty%ed*U$>5{%>;kw!dm{eK z(ynMDjW)wnvq0l6(5(`W0oArFElb-vfpV?v+AvFN*eskR7E4xDOyxp%2Q3^#%dpd$ zl*}EXnY?DzTMY5MVWG=cS!r0eQx$CI&D>J_8NX3wF>DoO>l|&hM+Kv-ErhuVsiu{# zw1s=q^0Mo&gTHn%*;yN>I}kI|X)7-+f&V$|)fs5TLPJ^$wU$i$8emm7kmELi7`Iw@ za|F%Jyko99q+KIs$GRMEdCoSaK;7vAeRk9&*s#)XBxbuyc1+-|DOU5JrXlTf^&`dE zq*sb>O{BjC5Nj~luT%cT)Zr}c6KJtv&l0D%G302#S2aQ-Z0A)IPE!%U9<>7ef|hpJ zNl?zp@h_MhLUh4OBb5m9ZXk2)e(01T4oAfj{nq#%3Or>-qeY$1YjZl~yVDkW9%v-t z2|eZY_K-a;U&iCXWH6bh^XtV74(Dlq`1RLc;TgNWnos7_>+75M_wVCgPm<+<E8}cz zYFI=J+2FuxoZc8gCC|jFy2FG<L{&Pu8BJP%m}#L-I3D2tAnhL0jFz~1x!L+ce*fL~ zAKrg@T&{ll?I*~OK6-{CUdZ0ThUYODCuwTU5;_zPJRAE7ac&fu)6#U`a4Dm8(=@vz z?djPS`s+cU|NYC?FOLs(dK``V&dETK`cb1Tk2_}$Cy;%S<pKv4xo278dN21-mrBze zT(RFOVLg13WtNSS8jkoR${2?sD=>ScVMMz*Vd0&1Gf_jW7haGPxtptMOeT>Zgg7(} z_NNn^gF}@O8yFXaP{)LR1hp09;6c)tNbc1v4@E8#KKds5DlJOL!8!E*c~L?MfF%#E zgP}8=jmOtl*8%y+Gw-BT@3)>*+H_d(q9Kr7JcGQvbIf5O&In1`VJUryi+o+`<MH&g zdV!z5y}cbK=qqSw0PcJ&jU@yb+<imA39k~>A+eWf9$O<kjX}I@Z%Z3WYa-}b44Eq; z-SSm-wO=Sdl%BhJPyr3@w2~;!xJ1t@EUjuvtC|%{Xyr`(H6$vZ)!tF|8Eyl*0hE1$ zWC^#jlaW%$q%`)CBjpR4SEDmHBw&2LYWtIZ;B$Ppn_J4hM2#{mQ7zrXShGwOji!Cc z6MU9w@M^ZBVA{QBm(}8IEoUdD%;TrwJc(^t7?iQ#3@1{`zf*As=&rx8>nqO=@W~I- z4j?*WxU6l0uV-Bw93spqoG=uVo(_(%2u<J+)FPCqM(~}=GecYJbCd6`?X-iSil#AW zxSGvPDTVlNd*2I%DzDjxTd6@ed~UirM|%`f{I?up-5$KAjX?`nwTv|<KSFmlQ-ErH z&aG+=UOC>mF<s5FGqIy?A@Z%S>sI`-Gsph+Prlt5{|R;Km7r!jj?izV^X{@4vZ=ib zcwAr?Pr@>6JX^tba7geSaw(%Lqt45&inze2I~l}5VuG*_4}ZGZ2U>F$uR_$P4g3JL zU=gh4C2|aXY-w}`32nd6(i{#NV(UIV9d>DYIIQCB^YZ!OX*?K=dP#q=SR|njVfW`> ze*N+HUq5{La<jOe&94^o1$0hj&5c^kf^aOSkDE&dgRqjNB%us<`Yb$=+6Zmu?ZVj} zAoRB?5VM&=-aSFndxUNbJ_@wrH?tYsJELJAZqmQ~?ca~v?QAw14n{AV4YB}*m*pwy zDN?QOqtPD(ra)SMS$Z-l&I#J9;=`jAVvCin&uZH*n6p6#gw&#ngXs3==HvShqwxfO zb37i$k^jfnuXR~K_;V0Y&OLT+$q^Q=W?p0%m!!hjj*SU&%%JZyC6a$41QsBNq;wQX z9<7iPHTDrmv_e3O@IrM${FH(I8v#Bf8pGR3oP|o>wRFf9M62YzWr#m4!Z=1K!0~`u z;?!shk665DWakxWp=q@d;O-nH6G?l-conO5$bK)7l^^z?JFnonq*zMA9SB)KTwTqF zgM`9p#hjW3{h{rhpxVOOYuCcoC4(e<EVY1T4(%qml`LgbC9=*nRax&3`{j1CU9UI$ z{nd0zJt4NF@b7?-*X#gRq6oLiiBtxEAgCSEgUS_|Vc<}jAmlX*z-q+hVO>!Lx)(*V z<G#k4O5FG|!T>5DWSGJQf_&~gl!*F<tt<f-sVRp0M_4s!dPmLb0C3H@x<c%ov3|y? zGZ{i$b&aYZK1uJOf~9CQVsSiE5)%q;>ar+|lYx|0U)BQqA@dexQBgTbc^}VoRaR$k z3iAJENj&b^Yu3qk>gd|>_$%@hCp8kA(8v@^YFF~$e%<Y9HK`Xh?HY}S@P^|Cnh?=U z#G*7!*-_F0om4ei)iJxNvIBR~7-U(e9Nd``YEpB3jc?>@*T0H3Wb<HJb+|;V^sUdy z9o_AtYzzb1oT1o{P-E}+XS`lpx^(*t*_E_%XGWe6pPL3uFzBq)0m};l)SH9uM&kl! zclu&BZR;N8z!Vo6%uen9j4VjNV`{7#f4S}{s$YS|x+(Ts8TvIOyXn7M!RlB2^x1!E z^UXB;I!Q}MQnXMLD;{R|h2o9#D2?eV?lBEXH`&*U#85>ODp3a5QU^g;;vEky7X<f; zPZcHzkqzlVuW5b_Wv~dNC`#g9G8~V}lC*s5Vz)m)EZc5ZCzNw29-dwx%=eSzhws0C z|L*SQ=5{ij7e)EJTrF4IIQkV5(%tR-Vm6PHIK%-b0;9NoC+35dZMUJ*VKds2O|tT) zsjV(P3O!|6x<8(>EJK68A`io8GMz<A6~Y@OV-*C4;~u)TIEwD>?jN<cTyKx46P15@ z{~liL;ra2f-W;<NG`q13<1nULk~E)akp#^MQEQM*M18Sh*k;wFUhYwFR)!EBvKp+Q ze);g}!#(s^!y(i&aKP`bZ{aMScDs@krYt|wdOipztcxK7eF^s`xO*X>!xbd;s5&zu z!6BQB;7uaJUsV;;5^>v%GLW<>L)@$l3Lyk+I1dFnDDY@R>vm3whI=^P^9?QbAW?9v zL_ulzQ4$^XA$|G^uJQ@uwG0Jf_%KD3hFlzI-3_O<LamV!_tub;D(oj|j#ra(gYtb7 z3mJrQ9tCBE5}xTPg-?EWeUm_g4z&njFdZsQSP@gvRRMLlJSP|^o46$vTe4fdGwc88 zwTAFDo~rbC+V1zO&1Svb!hJIxPwsE;lO#d1vPZQlWq;DYBnyqI<c(%XO4`T`sB^r$ zVE{K|Rbco=aFZ?9;fj}x(neYVsWtQ5q@rXK!Ci>>YP@f7xLa13-K&~;`MAO@Dk3tm z8zFIf_$desVc<0_gYY?Q)-gWrbXDDS?ylXhr~&q9fK$`MQ}K43T0YW7qkbFJwrrt- zGsn^eN6i2T7vK=WgN!Ih*=*e8ER%(9a+hr4?in=HI$!V@L+h3-BO385!D1^$I6Na4 zE6ACywNnCN`zTzvvpWSHgJ|H&p69m9y0$9I5U!Lp$a_=f!dS)#?Lr**m&RzMwc=gK zLDdd0ZM=q)^-bKec$;0Rx;w{C)7jw;S^tgm1n9N8P?kY|jsx(z&<FE|5GIDLx-nJf z=SRAJSH8m1)SlJ)Y^LyrMm?<&GH3e>Qs~)?n)k<^*VXQC=2+Tuz2qy^kv~C$Utp}> z%+~D~^%5=Nn&xJj&CPDNIo6#ax!3-cR!(W0;|UEvFUJhJRmc*Zxwq=iMw<9=6qKyD zjHD<PL~%{Kmb@sTStJQ~EQAAGw0I@j13<@69jg+0$`gbm;>v3>93UYmgA7gIk9tuu z93~0m+&JkE@}gKDw~)-1&(G`K_E=_N;P>Hgdoe_o^=A9ykN^4OZ$CrMgzVOj6Ugbp zJ%n!Y<~1C_W+`Ev9_Z<X>{aCX@vz_Sce~AIwSiaN?e=?km#f(<3ZwaKb`5=Yl0d9M zgY&@G<ldJR+2=1`wwrZ~CIs*@`Rr=;?(Tj%9AV@)y5H|3IHqRU2(J|dQzI~UDXSEZ zBQt!u6;U$r*+jQ+;zCOLHE6{l^L>QQ_uU70O?VYtxWU1of1v;6@e!JjA3lB8>-D(F zU|-dy|2&;e>-`q88eFF3dRdceU4dl^o+KpjRyD^tHkKobh^1TGM#0_-KAc_%lyJJ> zN^!I9>ND)QJj;TnNjFoOv6iTu^96R)1Gqp?5ac;3L*Oz@ka!bW#v&kCK>CHBAr!6& zlutbw_EWU5rmTuq@Ho9U3VRVh2uJ<?0PdS8xW2j`4g1E~LN^Q8=3!J`YYOZ+KV_#u zWPLzsj^;H)8sl`;45_8=4u|FQ%WA#cr$>Cjz>k!Fv$+2LyC3GWDYUKH>Y89sFVOn9 zqP2YqU$C|m^~Y#>K~fpD^n8}XpgdZXnE$Z;%CVuX$XJ?CSZp{*uDgWc!W$7yjSOms zr&(I$C0Ub^-WqNdO7v+aKW8k1@UE*BNys)hG8*msRE0`ypA+Lb{U)ZQqmvOOR$4-N zyklm#Gp)T*y*x*iGg1U04wOemPrUPPUHll6FL-;*ijJ%d=CL7*Xe}~WLr5s=2rHbJ zI&#w+H$c&bxMt9A_!k?OanngUg8d>$)P+hcOP444YReZkZerBo_}lx#YjD!+(%o^4 zwsypfJ0S&DW({Kf+#+tyl<3V{v|5xoI8Sz><HdW4#g*1Vsw1r1fU_F1%d5u9+VY*- zjdUqVQkV;Kd(p}4#%Wu(TYyF$lq3yo<H}PEyAr13kq%N?H>T~<9lG^Grc#$wI~=*z z;zzk}R$fzU+2Ynoc)prrn~qcZ1rJzs&S&?;Ui_zYAL)V}-4(-Po9))>v6I3(=sUI_ zb|W~aIBhS0eH1;?>K9$ewI|N)Cs_w$d^I(su|)GOma#L!jwNUy1>Z)JV<qwFM;-*X zo0Z0lQXq&4slo7k7lZ+U5R_Kv;&a40yW;H!6zy7hkb!5jtI2c%iLe(Y5MZ|Z?doN@ zT)muf9NxtdB)$*=;?v91<J04Ivw@~0Lg53SS6s54!`N8c;`3-^28RND_GY(%cKYe% z<#;?m7YqHybUN$zlKBj!LX;n19He+xpo~Bb?+b_e>*wEp{`HrKr-wL*{`&o2rjzmU zc!bC_A5TIQ&{d1Y_5JlNgsc62U!m@xmCa)TX9sg2Oso-Xw?j5Rt|T#R6^G@HqU`(K zhflp;+-UFe9v;H$FTeZ@Df`36Pre_}h8a(IO<WQ90<Oktvx4A09nI1r{qpsJ%-&=M zMUs>e^qO$~a~zGbJD#?LR>MZ?cylPlvihX9;zKxx4mj{pajAAwL?WmNX%Q2o%!d<8 z-($EprC#{=AnCznH7IahlAvuv8{@Sd5~3%A0n{v6miFRafB>tC#UZ2%+N6)joL59{ zOXS+BC`2hP<;(GCtjJB*v~k~oU0a`BHxE3Iu{7QlmO$!4gq<sBouA-V*)5kZkno}? zzM4W=c0C%5rjyC-&CLYf7t<jb?V+tAj(|0ZjH1+N<rL)*tk0ts%43?t7IWCCtYdc} z9>&xaHv5fcHP)+TNsiI1|BUlk)aA}I<fLJOukeM*L<wz`OXNF|qXrsa2o?5F;#=^g z;uR*5jD64AU~1R>FvVHXaD%Hd>o=z@fPuKmHM})Wk}I~0CsPN)9P+3TiAMBh7EMM7 zE4W(Bm{JYH$3=C!H1Q>8U+vNlEq5KZ%QLMHJF{}>1d*AT*V+hrrpYIoFlA0_gABT< z)W92u)*G$`KWjrsNI_6vu01y>aTf9}qO=KtN)txGaS2N+Fl#AGNL0}n(4S{M)<qTV z0g4O3$0pHs<@sJ|N?1Mz9rf8?uuObQuxYcec;olau~Ci~@#mOo(Y2Us@~&x02>eH# z??}aKR4~i?3i~hie<D3^A=wXy)1qe;4wM~D2ogH9+a}j%iso@<w7$ppp81wI<*O3s zb@DdnXme>>Q_;=V4K}^`PNO^8_<8B>z{A}S(lJMHsUW2}&$~@hxBFpnMmVO?7EX^_ zs~J<)DSZ)2rE%cu@m5tMWd$d4=)F^x(0rLFk^w3v!JV3EeUe#B5S@zVMUfv4N24(8 zrPFjU>_5LeZ@1fD|M+9I+B`mddH??7`<q(`xNy*`_47ae{`VjM>%X3#|Ibg~eNuty z^^);;GU^YYN1^c%d;Q^)3k7?cr-vh2H$g5rosQ5fK>IkE%%UJ3j>qs@`@_DbVjrS8 zhMF?RQJ_L17KGN#e*4GgKb}`hh_{0%fsT1P9>U|iSuXzwLTFMUy<txq_Yh`WA{WC1 zCc-jBu_G*obb_QnxS?iRlSQj0p+#-MM@Hm%H5v^d`@X-qk9sjF?qZ5&L^XuNQ+hH! z60l!3tGs3l5FDc;dXu2hr^Df8`4aaBr=tA*%UAfk2^0`m5J=X@gbN>gs-zJjjwPii zSqY0|ADFntl7lqTmc{8<vyl;#ChNwsf@V<4r=L=WtYjr)c<E0->o?1Mkf^0A5h1QH za8*|MH}+A9G|h59Ku<l$H_SA(j{sXAI*5qkn;CMFr%Qv@!t2d?xgL$j<IoQkZ^w+? z^qUSdkC8#f)%e^oSj@EZyKJXlp2<$9-ELRZC47L%WSS&BxHAJb9ik~_6odr+WnD~E zXBH&sT-jdIu7PNsRujOdW@R&OK&cLct`+~$@LZrI9^`MdeS+%+`Km%aWNl?9X!uol z1w1BD>alVq646UCPvT00J}vU(@(fE5c%CY>zX*it`BCKK$}+=|c*TSiW5F+2nw4~G zo>A|OO)&Tok%g^!*;&?jlthrAeCtc7gpi&<QrK98`fMsAEb5j<wVL-Nv>al!DxN|M zM|yVBIh0D;S)!diH#1ch7oxk+ep^`HMq{KQq(jWvDTm|+nOR=4nQV(!LP(VDGz&XR z*6|V+D#KCS8t^o>lbxkT(>t;}HM3WxBt)vQ2x{%Ml?Q(i>2=ko?P2Ki_Evr~5xV53 z#H($w*X_8znSgLCEZV7o+X5J;0&T@9Yt!JN-uBwFXT52b)hiITyzECi!lEr+(mMC~ zgb#rzt7K<|Y|kZOs%>NAWT!-9Qzn{T*>1^c;9EEDgm$b=3RBKpN0G+7_c|G0@Rh&C ztL|=*FMe3L)q`q<1T@=vwwWH04V|5fXj#Mjw?0eav0<DdbwI@WcP1)6;doC-EWr(8 z-AuC1Dji95ehd)!X7B^5VkcKqYUn_r`xL&yC1tVd9eYs_L9IHOT!kv`Maki?OY{Bj zpZ`dqd);kEv)L)jj+^cNc&zgBu-mUT%e$NVxEH^KPt(P0F<%UZBZ%fqBFge~wOZ{@ zyOKD~5Q89_!WTEUckkbQ#1U{^AyO=g($gNgcpv2f(L|3ys&F25+s%)^{RA=Suit-v z*dOv^w%%?Qi~0MzcVAb}4^NM10}zLhgY`*Q2-!vXut0~(D3XxGB^-?(v|p3WqBfS` zYa<;dDtP80`}POPcb`6fxO*RlK}D-KVR0@N?hh{yISUGeKfZhw;sLu)%;z}-LMRvz zL`EmMT5r(T9Y+$-TxJ?wX^~Y_W*J<_c$kd+fUBxP<5}`ZXDeraDimWt>E2KhcttdL zY|@m(-j~NqgdRcwFy!!pN6-zv0-}GCM36HwI3F7ITktW$AtbUqQP>_^JPmml`Zl-< zVVoGmcS$SDz{*cmfw7Pcfv9~W{f$agCXB<I$!&T({QToD!|7z$?~g~L;b0K>Y>SIi zGi9~Eg|WLS)5V8sOJudU8|Wzsga8eH4cQk?%6KxFj3;p%Q(r}cY82+gAZ0vjUxj-X zZG4Y64jK-Up>YmeO*Ev+@*_z)r((Y>C)O?u>SR|OzEP+G`v+xj4huJDsmU6bzJ_Hv zNTHM-Nw`pHk=aolUJh)-O2S|dWX+YRbkq3S;zC(jn&p!{)!KqNv1s1SqL>$<6)LoY zB%lJ#x@cglsKZcXcFZ}?SDZivlceq1j7%YGj3FK?PV*FwEk|(%+u08^D?QU#gY&+T zRm-H^7Sq^*f_`nUAF`5kEuHNXL0#AtnX4ef)8<NRuOqx*T-GFqU-CB;Y{TM(G%lzu z%Gb@Pt*pFNNmC@fNfPIZJj(1vch}#Fy)ZVCl`;t<Ae4P&({MmVhm&L(eby<fqbwu3 zA{=%B*`oE0Ia9DY%LnAj-7b2$E;47yTz00=(n<Rmo8~Mm>nsoH3%ar+-PGOGORm_m znUfo)DhLt>Z`_|+eTqiPko}|B$(2^f<cFcpbDKHW8@}KIX{W(!UW3I@r>}N1ZSp$c z=qfBdw8ffJw*C{XG5)vjM3FC)zpQXgL)sxOleU&5mT6Ma&(y+|2~A|+C^}ipnEFT| zm*!?{^1_=cI!JUWq_L`<T}TWY2*Sk14QhF!Euwj><dLGsc?g0|rAyig3l2J{pjBvO zCuxRvK%X)0CnNYL=_kWMKj~q?o>%E{e_ZeL^q7{}^Acy&D37cWrn}y3(mW%7?0U0a zKd+vjpP%3@`n>_7zmnc~FrphvF0QVx=hu*<pld)6R9_WEN^ctBz`QJi2--8X+iidP z?PvJrrw`w~yStCV5P~2a%V;>7PNq1W0Bt~$zt(jx?uGCdQ7`EwaMmD@6Y`Z1fd)TI zWhw?aW36Ni>lj%37G6u2Sy5JlLGmv@{Pq3q9W;X^&`ACYXAPQx4tTTO<aHf|QB~oz zb~GM&KCa1wAlUA<x3>sV3xnY1`Wn7GoQ_|<eu303X}y}`ZW23Tg`FpM2tLAh@$*Mf z7@*xkKx)P^gyx2fk>FW@R}P|3pt*0|d2-zhjh-su@SiMq90WepRg5shf}kR6A_5SR z<PcUCgE$(*ahjzNK>JC|y7%~|RO;0n-1s?UPaA^Hq8M^re}F&lKPVby!_lo)%hh@X zDP2OJ%BW$%Vvjr*YCt57L_6;tC7h7c@w7SY;6B0uNnYS|*E8eEbUvL$QG^p#VWR=I z`Lsvn1i;OxXz3)4>yGUnjU6rEcGsG9AV}1%G9v^T<G{_}>Q}%;z%6e;8n1!k@fw3B zNZJt*Z744V#TQPQH3^#fST9jx^AL-u8PUwxDZGLa{0q(}-iKs(K+i2ld8?nrs|OZ2 zA%YRzsWlrYF=JV?hAGXpF#-F$3*+;P#W{(YGrxeHk2{k(=@foEt7F-1hS*e5THDTZ zoRb|`2+d4v$-*;s56D}kMwpELlVVSs%lPPwL!2@yLpq$PqwtaEptHYhds!T0dL<)E z_%3oe*sy<wu?|;+c+sM@=(P)PhE;e@70uZYlk_R!MYU<<3N9(RoP}IRY70c^b(B4L z&?{aw#myM=(odL?g~EG7)4B7XLR@Z(TfzLxJ$7fn-mI-1zD&5NU<U+t$YdR+MLX)g znEk$*14}ov7fm<)_B`3^?w`HpALGWklBqFmhPG^e$@$ot(_`7+9t`_(x*3N%F_#B< zF}Qxs4YPNK;m3iY!IrpE^WIx}jUBLX%VrK-K6E=q@t~_wg!Y&O%?&ZCA|vI2CYd!6 zL}-yj3mn@|7siAHQ%2Sbd94#PvW8{~Im8eoAk?NAChT12fs$nzAz4C0KhTS!B#Nrh zC_|NET^A+FKNdCiVx%erDdCSl{@CocFYmtl?&HV7WCZV=rx}VMQfLn2csib3%@;Vo zJ?)~XHy8}p+wJLi-0U`xHsM?pc{UmhRS@N61zA4o#c7e#NY>x)_mCU^$G`qd9QBK; zfVB7S_6`Ez)8m6C=k(EN3{M@hs+640$BGt`h>*_n-QfUzI))AcT7}X_wRd4PWZ_&? z81gDe*zn4CH#a|g|HJ+D4IDNk0SH>YRCaJBTCfG&%8)bQ+`oVK4$a;Je>@!Tk9#;D zDWtMIeRuzElni4y+_<Myu-t9Ge0f?Q_A&^=q!-EXl%|lt4yV-4>x77K)=mOgA<hvY zbip;Mv``V|0TH3ZD5N5$@!_(7=8%La!mtmw2qA$nRx-gCPC^Xbuk^|jik85IFG=2r zI3c8MU)PXjpkbv(sg9GF6kKX+6HBuPg&1kfU05)p*o8!&C@BgluBOxb+gl$$eh3#m ziIZP``|WwNd|I#e>1mJ*MuR>oso||Eog<cwY5cSn2!ATz#BaBoU3!9k7fu4)CsD8G zF_j%YFkU%~v1pJ-bQ3Et)dg(gzM2tfR<^>yAx+0nlO0AiFC>(EVsT+g5!%xsw9z=r zMI~(MH#<i`Q}q(cK_=AdkhQBgOyJ`Tb(9wnr@Jt`F=B~MBom$TJUkpp<_jggQN{%E z=b~v-1hI#jr9LjNtBRRR9w~L9!<D90E8@#aZk>Dz6uNa1z@k#QCg7FYK7-Sl5U)u> zl2+ino98K<cL|NL9>%m@)7qNkwJmbZoe`0&1o{_2O-XKH&Y#<521Cq03dEAR)WT|L z*q+PK(fTaDBi;0c&J{_S*|^KHtBnnLyP9P!E)3H6Fj>?Y2ieB6i&lkJJzR)Vm<!x+ z*XqE?vwO=Tge_;+dzBhR7mBN2sX;WR292O^YXfo7C0qYgbLqa&eKXe0J=cV~Kyy0* zZPS$irhMDjC8?G=Yj_YKh4{wSS$xw_;lgH-ApISE=nksCUE=bDpT*p*On>7S-Sqdq z)fc43S2|e?-OSB8E>AcgU>6(7V{LIhgAk3P2*Lw+IOx70e;u^Fq86NV2+sR^I|iTL zEE-<0wv0DxJWA^FBxy|U0@SoxdO%ZZG48_<goHOd9)uD^ep0QCBxJ!V2A-+%0^R)> zGa7if;j62Rc{+q}sjC8Ks%)@or2>fb2=98_ZXu^a@U4oH;yA8<A}Nzz58DJG`-34w ze2C`cvx52(2a>iz2#=7^G$WcC0n!D8H0ZqH3&I^&|M=-gXq`WP{0{2<Lwd-IygwN9 z!Vpqy5cSd=rEUlP0UXV4yB+n1Q4CFoKOBwb^Vx7X><{`kiv`kS@{(8X5U>#MS|M!& zy7-D5mEPUm{oB9(>;3h$3Y4*60@CiOw6MD+$v4Y>yZhtup%=z~`Sh2V#FYj~AGyni z16&X&I40vsK!=Bu3GCh^G_SkeKC7w(;cdMPJ)1Jb%3{kzQMay7XjGgLKD>Zaon{$5 z8HyE)gpZyZfs}C=j*@;9htQ}A@*ZHq5Q!byfec))#1G+(3M@iOKg8ULBYpY_Lo^lm zG5CRA7@ZDBS($#n=aV<9?<<~E((Kz~Y>^-Z|Jv?%u^0LN`%k0c=yCZBUE|eko>v7F zWs9rDXxM*xetvm*Ii#l&?G1<v>q(ShB3O_?1-J6B-95fMKR&-aJbs0P8TAK?`PKFH z^>j3WgF>ty30!eKZ_9WKZp84(w$QBg?<lNnJfNEx#wmmb0NkKf?0ILH$Z1DK3_xLV z;~FkKnmObDv;CmuAG5Qcu>K7VX+d&4<Uu&DnxyGS#j_D^Nz`^UNGaK*!J*ZfL}8fX zjD87LJ&N#Ecw?a575r1Oe^N~<B1k00b-V95U>9}0wxQ%{ziOd69?Njrv_;cc$qOy3 zWz8(Au0K^9L5$l$N^2e2bVB^8+2|L?le+P?VkH{Y#&o2z^E}xQ2+vKBnRD4Fdvndh zr<$q~x^Kw)NL)x)wqPRRbZ@O85<{{@XL!m&JD%6zcZ9PWzm#z>_I_{;tnGj)WvB-K zd)b?sRz#z<FqST*m<ABh2$zf39kch%ZE?pb?o3zfRWEpk^=`Dc-oPGrTXPa9WemGb z6zv};ktw>+;EOeFcb&xl>7P@my1jXKkl%vcI%?Y&ip@On=pwavi%ffHY5%dWXerfJ zoQ~5iGb5zWurg<sEgdh??(jrAy(gIni<uLiz1M}BTwjrSm$B+bq8)Y{D<fMIF9O@w z0@ZkpWk9vv2H#A=Sl3ZofBEzrLM}wc271F6D8uLz&Zep%Vib@QvJ82LDA8C#(t?C6 zFu6)=NyguiRE7w7%1(#P8vbk!JNR437jfK!m;!C+DmxM=1*dyik?jwM(2pR9tu~u} zFM)tt)jCALiiB{3J$e*D&W9lW$JejN-TwXi57evSG7P?nzPLe@*7fy#(Tn5Veg~0? zG<hmS5`_`8vk+n6-JwN?4t_qKjg!G-G8qm>@K>1Ss)96*)o{><)cfxJyYD`IT1=-N zu6R)q1d4+^hZB(R_FEKD@_i0=aPHT;?c?$#3VYD$GCw4W;?-)oSubxEw~+8j0Lz0` zI0<`#ma?}C$m{;gYF(kCuS_xfmeQ*C;Ux&8uqnH&7#H-tC~QQvjwX>qT_1Bu^ttCV zV+n7oAc`<!K?BXrnnGDdsHg@BDxn>ZN3@v5tt6(s!lP*^-9XT|&qiY;`K&knB<}b7 zJT8KZ>3c4g^Wc$Pb$J`7#34(st`|4Aw}<^9%}=*Cx9}DZ&(F}?&t_9NO33-+(Fl$P z)kD#lD=%x@G{f_rmgQ!<{`~p#)6)~wUVfl%7T5Q8_w(5timE{R<Q>%L23ScN8ZjH; zVjM>Y-Kzcy;<pe*2e;0QZ?VGM+D_c9Yb8CU#DrBovxoROtca8j_a~Z}AS6+_5udPG zpEA48`lIgMt=NcNa?<nZ44PQjoS1PQ8k8XjF{??roj`9boCJ>$LEAOScb8-+EK%hI zQZI>J5o%9yWWZ3sO4MxJ%PyL<+i#dVo*g@TY%EJ-NM_{Guo~SOh4ir=3KS2C36(8< z&+8hkGpmcmAW>(7H*JpL?ZUpWE>DeDxFi>KR+Qnwg3-n`=WEXrRurMYOk)-3H1)Kb zpc*$gA<88-E36?U9X*LFgo-SSjTI9WofcA)&!liwY1`tmnVj3(HWFiQ%&W<SnC~`e z9D2uN)Z1k`JfAdlP=p>2oG<oQ=G!_NUZV~1x-EVs`D~XucF0S^RLTE1y)gcQ`LEP^ z39B=vx+d$wj-v$=%%r@4Yn?Nb-5>QjwToA$;2SM<S8waAqPQ3bH0F3z?;5v!clv(f z+*+#hzAOt*>JQX5)m8x16K~?lNq|pEhqLeSve@~8RI<=Y^-q;hIHy+Zq)iGXti8(7 zg-}{F(<)iCoJwN)6`z`+GSA>~&#+I8Vx3jU^!FgWm3baUvKOKEyCgd~R%^6|#6C(% zgzhv!kqGJ4<oPj6kH7u4-EN;=UOv75ZgG9nOM0c}Wyfr@+kN-pW2^$~#=`n)Hai>- zFPjzQMTjb=EFBF75UC+r1x4Y9VfvgtKRy5Ommj9nX_jZbB#FWhj<yJb-lT`^a$SuE zqjZ$6R_jDW&}uwBJr3dojtj@vnj|>rX^4A0$o=!l3}ViI{QW<mi@jbf{^f@s=2r{o z(M#z5^X%)>SBae15NeOjYSZf_aJv?D87Dn9KH|-tl725tFbu+rvu>5HpndHn{n2O) zJ-RC)Ed>)Ea%dJmefsVnzyG#h?~1TuD4gI8B1u;uE%>Y^M^h#^6*w>_qEtbC7-*bV zl!xO<_#{<Tdm(h<lzo$=hnR7t=z|+b-f&oXT97Xe#&Kw@D@HZbQwZ&EB;|6ugNT{* z`(*co?XS;<Uo<w=I3Qv0FyhkD9SEED0xB7(V|K^g_4OPIlh2P|;ocez=Wr5t+s%AB zySiE|*Xy5u{%OBI?2pI5-)%O#&=0bzJnc3?7~S4}7>)Z-l*9;__iN3n$Hr?q6f2Tt z#k3k+ZrvHvsfH?o0xC#x_bJJ^MX(`imh<&BEPshmGL5*DiY1BQ<KO}n`Kh#O#^mca zqs|6tiFhj+TF|e@_f_qZ6qY`ab`ai$ObvmK$_hF7xM6}OxFYPAHYc_rQn>7Ia<HW% z)BYIQVknPO=e%hrMJvK085Aj_Z7C6r(4d(FNsZm#5=e=-M_fDEG9BS3($2#g-Db~c zy*=qvrL0np!tF-e+0<6zO*nxd8sa*=Wcp9atcYJ@@)(>X9={9HC6gp=W5P?RUg3#G zOp%KgqDxrtG`?nmFf8QOlMS<AEih+cO68Y85Qk=uMd3RIF5RGZeQTp^aW}$hgyT|K z(NNvi3T+S<+=$Dw0Bzi2TD)z5^bL%(Ghu6YSC^@@aX)J`lZ_GGZrGT&2hsAJgDb2+ zcH3A>(;&GnmA2T0v2L=L_S_;tI12a$xT!O&HjR#$xzNp^Z(e9~zE<SWot3gaFJfdf zH24PCN}a2lH8nz`AJYQpgl|o*crfO*UbuGL<S0t~wU0tl4Udb9N(7O57)DS{!q;eN zQoqi)T;`Z_IWAEX^n>0FOI;-Rk+Wf7qY(7C0b*b2X@`~p3t{4thEb2MorW-7RJm6R zv?i?}!<>>5Ur^y;N#43RMK<4yh&G^ol<JaEpsO%2MOo+h>2Ugg{`R-u{`mdl`%m9} z|ChmZnpfp^e}K%pm`<R&kNlwDA4W;MT(7RuW8{ZrT|j{VVLCk>;jJM|Z_`tM(7(OD zMXF_4@cjfIWS1Upu5aNOAlr?H<6+W=&l?B9DLs7t{f|-H8)GYm0ptYT_HKVX97?UB z)vGI$W{2fwUsUDddhwS}e+i-h<9u!kX$n&fqGZq?$N(aM8IQ-%Om2^R_@LU_<8VwD zIO9h44>DDXyj-rA&}%{`2S1RPS&Zo)*(QWQE)ncTGKW{=N#X~a?M_h%Yxx*86O=KU zd7TSwZyJqmMAkh?*FlVh1*B447AQ_7CBlZ&4C)fN<srEA&>K2H^T8m5UrOR0s#cXb zsz9eH`7NT{L=wf&>h00m;y50RVnmY_kYb^TV(T0RtJh>#M*@Vp$|}#->%$((DM<OJ z(_uL1PX^=X^>TaI-rd~5?fbA^K_VQF#*k6=d$@?u4a4avAsm-Q2~Bog7ID&lfA?-O znFO@fB_^)LL@C3qu8li2fq^^EGX7<|;B-_`e!6i<9CF(xN$A){=LT2IeE~BkYG)f# zvlf<*EOLaxLDl1$0BaD$!2<5^z_;$3PK6h(4_WAnR45R}Z*}Wx%Nj;Jxv1H$!vcu( zDKCQ45#54=K-$49u1B$y!{QksnTWk74G|}iL0O#%YWPyf+wd8eq#`7HD|*an58BY! zI-FFzb8H7qOkb-wAQ_1w31*D(U+Z>s$qE<Ti5ikjX9fu?*lQ=xK(e=*mXnsYf)5CS zw`(g_)hr8{Q-nHK7BW^7*wskZaK<_j3JPC3c5+=iw`k-gF}I1c3MFAl=3!VPT6Zkm zh1H&u>1ddsn4UBnR!TOz<eb3^0?p<Z@XENK@o3UxSjvsS@U(&A?AwJpzkzcW-OVoD z5at|b^$j|c6XQH<sb5c?-7Cx1*{_S+l2&<8IH+<5(cV%5wImUI-4W*!4qq+16#|d? zx^o)oM75;hH)|=m!s<MB7=|9nkQs|KK6?cxA+9<b^G4f}%MsO@OuW&yYR|ex>y9$n z#SeAs9$xF)8ln}qWn7}83-dX00%Ptj!vFb=45(==$lbrY-;q)^GE8I!R{4l1VZ~O7 zmSpUTp~+|rle&h47NShI&!AEgm}a~5TIV%nQ6d5b5Z^T#7y76b<t!x7!$1-A5WXsr zG9$Pdj-b^<(geEL6VM#)<}Azma2!6Ogr1(Cce|}mcJagU6q4L>vwD1fxWB!JlTl<@ z7(@C9P$DF)UzV%8t1H|MV~2@LZ^$nYCJkElsW^_Im#lRO2jBDkB#hr(-@h!^|Nj5} zeQ|f~lcIf^7svgPTdVzcZ>oA2_afg*iJHN(QSc9RByl|J1ra>bq`YD31UHe;oI#f2 zsXdQ9(V$6J(9~#_iP2`gSwl4wMR5|xtjvH)%%pHEXfe;6lB&pO!^!n@{`c%3r`=xD zh)mha8&PteV`wm(ftk2xQmAg+XTA8sKvL&K+%vjK^6Z4Y^#H#tk<J^_E)`x0E_$L7 zZH}=h^J3`0s`{`;b<bolfO6zi<<MtA%dG@d9~BP=4Ng(86Qk`zDQg8^yqnI7x`qxM zt{vp#m(^-9yBhQc%gs_lSp(NAh@RK$mzU=p1)ESYYBC&NU*C*IV`zj6LJ%KMha~D@ zt;v0_b^t3o>GnDgbL00STnFsHytt+2a6{y0M7`2<hVnM#G$Lha=80K9B6@u$>)=+H zynsR^i21I4^cq`LhtU;{o(GS`@d6nrP!W8@Lso`OGQ|jrHml?;RG~=ur4bhPWZ;Ri zG+9v~ffui{h?EDHu#gqf(RhztbE!e)8L_`G*{Wt1fIXqH1aJaW@omFTvMV4MvCK~5 zEMF^}0g<xnZ`=DasDqUIA-cjH?6C|OKI%MqcOjpxlN?h+BlL?#a|(K2gtK9x=7bAK z8Af=4$FA1gY}<)2laVkDqk&b2(QAyQXfb;n{Xr2|Ra2HAM1W*2533^!N~ogY_E0gw zOb6qxGNPU9bGVSU_-784hVwtQ%Q;cJXt$5HYCbK>8|{S_@O073p7(B)@P+k^?0P~p zLYSuG7T3i*UnceQcG=#V4$)0x9@!xdv9zaWhaaYsjXEP*%^}2`%Tr@&_O$y;%GB(G z!SEL*)oWvc%H5;1jpTVMHD|<VEbpq$XjzeL>ZL6s2Uwz(H9dFN?YMgdYc~X_yX#@E zHJj=Pe0t;)*jkh{BL-nwrB1tcv6zsv0ln{CK<@s;5R&M^g4B#D1m}VB8PQM$K1V7n zv&&lZw8};<o=Fn7m_%y)Fp^&Gog}n@kbUFulpnKx0L@#_FJ-26j(MmKCGrjf<CRcT z5quFYQQ(V6!hMV40Dh=?xCM@(RYDV>$_nM7tW#NiuIsSZ8;ys9!C-&fA5Mo+(uaOA z#NX(h^6Y8#vVMBLxmrNN!-0ShWsT``GMc8R6He-+IBX9u>lcVyhy4MbkfJQoB3tb? zhis3d#4sB62Voq<K?J`g-g}{vkOm$ezW&eu^?zkq3K^mwCd4r(p#W@0u{QAurGx7O z-`2ju66HljL=b}ZAWtjLv(0{gJ)iqTUiO@Ys$muke%P9y@~SM8I2sOzR}(n?bhF!g zb*X3#Zz-F&BlkU4u4l<594Kp{+Tj;QX#O_w*fiU~`D~3xLp)!Ux=fE5G_*cO=zwYF zgtCxOd&r9LS$I;SFim^C9=!bOw1XBffD#JD3m{_pJiw*lOAQwXvqBUoQ-xs!Nga-L zG{*h$^UDkJ%7&w3c08U=^Vuxv_4oS&oZ;Q^$VmXP&C}`CYzl|HlcL{?p^|!hfdm|l zMgwA75%8PoHm?GZCF~lmLWI+E?GQ8E=-v*a8%!n(4x{yfum~-bur57IH07-%J)oo@ zW^nc-Nd}>Ae4QPTgmXIo3PFkBtZTMZVRpalO35Q?2l`YWdg7pRRi5Mq%TAm<w(;fB zAKY$)eq>hzDA`J3KQFKQ&xG~_$vwH4T05_0&Q4svvxpJaBfN8x4zF}EZF823wz%<F zI*S-w{MI#Np|$B!R=6}_(J|av_yM6RMQd<n;RB+v|EX{rrka&rfz7dYjvY=1+v3_( zLtwESGtx=dmUL&lPUP)43E9@R!q083!F4AGQ#;OxFptG*w6a_4x@PreVzm*bLs^cM zR*1frf|y{=EU9bUYu+4~nkE~3+b@8@%+ePZ${Jobb#?Qx{aU#3>X{v(6r!=Pa2J<> z5a(25yIiWz#_7%>o#K?NJKtAM3$wO2i(rs%(3t`l(LHu;fk%{Ojq}#ERwDMmEDNk_ zyVR_2rLaug3*D<T`^63;OPuF#0$Gao^4QX-w#>kmj>iJ7qP?1yarS!N@A?0v>7=Xi zQNmG^-USwZ(86+0pmj(He<*D-j~_IMw1Lk_UGU-<>lB0QYu3FDk}^N$$IWVuIn@is zlVPADDXJrymx{`(NTM)6_>hW?L49}+n=NFvLL;f7NcnNp?@1M*!2(wOp%<b#9%Sg< z;rO5b_|N;>TMBO?&oa~NGgAUu+s%Ia%YXfN%F?IDhufQ*tNEhv^NMiG@Z;P4p{Rd7 z9uBM3@@e^k77lp<DG)8@`-8>5%?G{Sdb@!Sj!YpHL}4$9dv%EkuNTGeUeJE!d0JMb z&pIbGqp+R_hLj))t6}91JZT&ql56==>zG!zS(=UqgX`I1mmR5$HdY+CSv#USAkGF# zoJl}S8hrZjVK^N8=TASaHye9{5J8fZQf$!og=9tl0!cr%&BaSoTP}s7*+}71R7pWc zlKD|x)>)Q&?5SQBL`j00Dk$^9Bf}`c3wtTX(<x*@IM_fEP#U=(UW$t0taF6io6T;U z7R6}LhmUlss!^{8F*iw)FbJPlFK|H?qpQ3w*Q<4mXz)Q<me0>mPtg9-F~Fbe#p2`p zk5E)CH*1LL^Z6B=<Z`#GqbN<Yx-R>}VK402QJV2|8@0@Zcgoqf$$D1k%csUTQFZ=* zzD*m7zZ3hC400=SnIc~fUm@{Y`7Sk)2J~x9d6fTP*EV`zHa|85_aKRNN3Nks2Fbr; zmO^C@cs@`ngqAjnlN$<}RvOc;sdLZHrYg8W>w+}b8Z9MZl|nk`7+T_~lHf$j1O&IH zS)3t<CgWKn2;4w%6vf-p?=nfnr6X*EV#O93{WogkjCHXN^DIw^+H-hkoH64;A%Fql zUxJZuPES>`${D*9OTo*1o@r~+q~uI0sY~XW1g`Ew*#zmDmgUBClr!2y)ReUppB=lG zWlES0q-<2fQu)HEi?+m6`al7dqEKAqCHhj7EIOfR((PHzOqzB}z7JGw@!odI+;|1b zSNa=&Y9H8m4T{bx*L3hhoJ5Ux*1TSP!3F^xowCdPWNe1!S+wXPsHA8`PtP)aL-%fu z%V7+Swbrpi>Fx-jMaQumX?HoT?ZBOVRW;i<Ypy0OQAxCt03FneY2e)AwVp=hK89(i zy^Zvi>4>w~p?Aw{66V4OS+Fk@7R(f&jj+<HhMmkhl?|7nc71zkT&2y$7tRQ!YTD%z zs%qr@xb)1;u0q)dQe`Ku4VROycxiXZwN3<NYn3054>(b)gt;D1a4m{$A%+o^8x;Cc zc32mLvc{z`U!klN0UChA2SE)cjc6uF!(mbPdNmS{jo5Ebf9S6e8p6=;1z|NnC>9Qc zdkGw0uB*R(|Cdvq{`&d%2>HRq<I6L=?`F6A^~>)u3fyCjQF-;vd~yBmJv4Lk=^P>{ zJgAU{x7*Es{O8}FUY1vglxEQ&$-t*5MlsGJ%{56sGQu+sP=P@rP8AP7Af^VkGW1+< z8{;`4dxVY~y@Efx^<s7f#Y(*^jnB*w!KhkKSvEWhXc#ZgPh5hJr-Pg8tI=q**{tBi ztTx+Ue*c5i73>lrq|}SG4Fra~V3kU2yWs^PS7@}hl1?}+a9s&1{YF0A>`2}+I)sy7 zYv#u>(UY2NRJ4Nsmv45}P)|o=Uhxk41JWTiBy?<-_;~-+)#kA84~Ed@oK6S$P;ibX zqY3o!rwqPvTr3u$QZLJ;^!>%v0s`!E`SSb2m;GUHNakWZ9^c*F2T`<IuTNQaHJ!j) zAoM*>7Sq}D`uVWm1wjlqsV}i7H^!JV#R2iUE=7cov1g#0fo*4uV{>AZQuEY(hM~aH z<NyTqB$AMEkglMTAj~t?C5ZUZ+VK_H_u|s&MKLjnwvdumpp*$Tk08i#)d6UrS76o> z<Y2};`l{IyqMe?_ijW^L4(6fptq|43NN>{r<LrxLTPns`eWP(rs2DQrIX4|1PSSEr z+V)ULhft=3COx}Z7ahkushzBn=20W5mNjBwq&imfARPXwu%X5H>oc;}Cxt#dw;oHc zkf({24yI8bb>PMgf(;?4*n>$}a~aa3R;*P<WL!m}3DOBZv0tQM+#C+rXfRKu4DK2l ze<HSt3~|yRYmZ$t@T1oqR1vc=rG<!7-G%aIxOb84fkL*zb`Me8$;2DJb)5m}H>byK zhBj{jxXv43S`+A|**5yjv!V6sv7r0b^y1tQ$vbm6?k=HCyFzaCQbb##Hr=H>|1>;? zmrnkR6j@A@r+teGBD`PAP4Mg(TeeTJbiJwe-ac(zkd-m#J7DXh+_8CS(lG1czai2o zTwT}&U^|5s=7`CbU?yJm-<DX_<lsLUM|ab(q)t~<>}0}<g{CBbSLs=AaD|voX;m#L z^jDtkp-Uq8GT#}(Vx`J7%b~47&D^RQ&c-5&6$vQ92`;=cu)}SZ7+_g4oqJWbJLd3O z2~v@wFxKP@QAkw89ps@Rw#VU+B6B8#xc>zL()IN<1e+4FtwABA>$}^Br^lav{&_>q z;(D_l3`e)~`TgzPY&brhPQQKroJ8@z{p<fRo6K-SOc9*ASTP=slm6i0;p=w0`~JhH z<nCUQRC1{+1*Jj|9`l?8vrv+`fL0iCKLi)S>o=lEwpe$ZZPdsHl+<`(bl$GFPsvk1 z>4#y&3odPEXgskLY<HShCA?ClP)QK_^13X-I3ABikbx@m2}0N}U%os%zhsBK9h@q~ zh#ty_HRogE<JudbG&Yn&u+WN-qNF3NaBZxdhbun47yyYGPS7KSFKJ;zZH<D@-YGkr z(iGZOUpf9>je=>X3fKQZ5J1X=4iS#FEQ>>)LE?RPdj}mY+@sL)_WOOv+?(yDDDtbt z0^SsQ;;&B+r^CMV>OjaOj&H8-AYqp|RB@-lAPItKxrDOAo6l!uRb=qZ;Rs4ks70g< z#=}7z_eeZRpag}{1R=DVv#N0>AmEI)5{Kr}wZ_RAw&SG^s*@!giCq%HEsqm=r5vI{ zyDZD}8PjkUjp^tH!i|eU&_rP1fvMqSK$ceozO{i~Gar{;0Tn)RcL4bxK9_1lbE(-z zl(Z(DEXrpnOU+meWu&DrQu9p$evRX)k%~Q%1u;ly-+>St%y>0ULkLAAWa|Pzv?cr* z+0-jec#`gL24xEiGQa`?DN#5=HcnZ?PK;^Dh1f6tA6Y!H?G;&OAqLrj$OsQ^yr!MS zjTn)EYJy&)PdB#FXa~&Vep=W`0}Y4jj*Y2w-I!v2uustIs-_=vIVLd9H3{buIKV1s zT25BZq&TRFInRoKytKfmg}gL(16cJ$^h-u^i4|>g;6#1{QvEnjx(?~{N@3&m*Ikga z9mN~FJ@ABiB`)o?dO+UU)btg+>rK%N(Qa%T9<k|s@v7q%wpTXXDcWY!*fBP{J_;V) zP;sZ+5SVR-++%6Uc#VRXO~SaWs3|jXDt_bRzD2_7KIz6ZL#}ViM1PA1)%L<X$Li3m zymNICf^@hQU`;E^F7WD`<LFL31jVYaWo5<bX#+s9qYh+=rJ~}>nwGy#cmbDCG)NUe zPgT%Nm05l~Wwm}m4oY42W|Ll=^t4Lr9E*41p%_HPeY!=ZlW3oY4tl2{@0vlZB^u4* zaLJVU0iF{yT_7EK(sobN)An#&u2xs``PJ#_;pu6=JN#GiGdwio@d!GqA}{;><S!pS zzPo$>``6zgD~x(W$N}5^4xXhfM`kS=0{DKGq8fA*M(^+L`*H8{*Dt?+`F%7T^`f|@ z+7TY#;h_JF*x+N%&gzDR3i;#LG`%AM0p3~>_{I0Ey#&c4;Ftlj{%|-_Y#c&KoAgoe z5zLCr7VcH$g}6cVYDj5=nv=9rK`a9v=O9YCbfh#Z&_~@YCdHF4BNb+%teA~jw>K<` zM;B!n6Y>bTB^YRsNdmc(9XmamvZ8-Hx!n55tP~heOc*7@QL<cbiu6?YL23%P+QY#p ziW4{$30~d!xZgwHkPP~|DmR-gB<cBha=*9^Rq*)o63A#VnP;ctcDtF5CJ=a@9=`7P zdk9^#{?Huuz8_4c<LfJEdF$PN7xm))aI`-ji@LbJn#1uwy)6AOn2v|X1Jpu!5(oSJ zG0U=;{vco0oC7QjL$0i0kFmQp(XnOq9RIeXNpQ}NXk(>90I`*|MDq`g8Nf6_!;Q1J z_$P1_Ticp8WN|3MxP+K2cA}*m%j<ZO8G;i-qi#zg6)HgTP^-Kz91{saTR0lUgOR$Z zG$#k_6{Yj%5L}^AB4ZUw-Y)ZI1Y61qal~wqD?Og0O2=vCrK;{2`&c1K#)KQ|A8f4t z0d>Ywv3#Z`e=x>0gcL|5A(X6<1L0+)*Y$=IzLhyLx?@P{#HHLC5(+-yGq%U-OB+l6 zc0v%?m^Sq=OQsN!8h;Y0#@h05B;i4&bR=eD0gOEP=7vnsX(MSC^klA`Jc*sc5<JUc z$!Qz{Kc@nC{Yo^WhPSewwq~>X%~kHVdg8Zc*T(xMuZh#MHVvsvxYkm<C4biLdA0kQ zhPvJTMY}C_U)$X35X~JVL<fQ9_*D(usqxixs+qKt<~6_Znxx#ct)}UPWt0D)d1L<# zS0k|0Hm`%+gQy*ni5@L+F()JO4#_{G6gvqRd-2_?O1I|L+Ts#L``OLw#P2KH2pby9 zNCt4!j5yS_d27pWD|)O;l)GD~<|FrZZW9dJ%*Y%cc5CC^q-{y6T$LwlrBQ3pm;Knw z(j4;6%gYK9-AvbN>cvrnPf%I=a5$J<>%#bzG}3Qb5Jgeq<QZ~8Sq}RH5k*)H=S5a! z0j`3BTp?!?`eS(4vdEsFU!bpjSuWus^`Z#+%a5Nv!QcM)%TKG-8nVc0wHXY?o6SLq za6Y-Zy}gsZ4-M9V{NdpfOeYi42!SF(^&rpO-UfmH<>Bkg>SZ__!`D$1LDrAs2-4mz zJ>oDxu;ZI;CXh8tlD}}|z6rYGe2}JdRyL}t@n|@o&fy%g2sS^UR%DnSX&lNC1{OZ4 zAs;4*yY`Zzgs4ap0}{?pzx|S)j!3$N2Og?$MO`h0{tEpiYg|y`>Z9^0JqJcrf!&r; zPk`+*?eZ;F+DaSv><go<9Jx|?yT~w;K>~+Z<V7+VLS}t_d5ZmLKAmA6s;f9=ha}IB z1Bk59CCflf$AiJ3uY9@LY@o-zzP^FbyIQWG#DR8v`LaBm5Ovi<`R)MXD}+OML3o|j zY6UMf9wt?pWyix17Y)I3xrPIr%_mUJ98bs5U;sVk*M~1Ya<!-9kqP1QQxir@E#oz9 zC{c+jD_E#RJ9DES<(ca_qxvlMI<Z4#6>=?(l+^ioma7{ii&c=Q8`(%>fnH?2BJA=D zS^JvQIwcD$OXh`8DzTzCOzCgL9hK>5_R)vH+#jmYYVrA%K)>IbXT^%>N3=qgY<xpj zlajP2Nl;e!mL+Kz1wv@7TGYzki^^-1vxV|hqhsJS5XhVu{aFmsp{mBP(j!?HUz6Js z3r|A#U;D@$Yn2u-K`Iu7rKz!K*k8N@uqRNoCW55gM%9I4brGyvYTRc@n|kfVHgr*H zQiBn_0If;z7|>^g#S`#<A#~_?RY@VucBj}A<I+J0sQwX!M<0X$0ptjx2@pflp74u> zF;;cM_MsMOQ90v6%Rg*1DQk0q)v;tA`QPk=TL^S_fBbg8Yu?Pw>>a4jz*g;Y<jpr_ z60QDrrtg03#_FO4QkXM7(;4QtRn&5FSZ;?c-K(muheT`NB$`0w5U#8UDOw3l*>1U; zG}jEn;h$1A#!n4Ozgbr^>Qvj0FGWY&!_C8`T~#%|Xh-(Ka^2Ze%eVY!A19wwxua}> zZyI3tKlO(M=<trmZdg(OPu(8&6!=o~Ag~3Pq?J@nMK2_Hs-puh)IG0Ai=wEv+d~~J z5xX=VQ`?8L!dhoFGKFhg$W%2BE~pnF&CRNm*a~lz=o5$nehGf0tg~DckqXdyp-$o9 z%25Hf%Ih-C^T~L8e|OjG^=89K6vq#}{<B^}Q;TYs|M9<}>kW}myMf;r^b&Y_rz3Pt zep<f31q*SJY#La`Ju-#`<n`lm4*?|!;~)qSij~8+PBmJEqYV@%OSUbOG{dx-_y%3+ ztT+_~Ar#HPoiSuaKd*|4;kzsX!0=kSS3?=HXh7(zyhxF&8mi)$Gyj!31O4>;`17wn zmvsdnO%NP9Fzy~i)=)vjNdqYun&fsWBBb9+@nNB<6!p9AhQyPvE!$6_2?wnh%2Jo8 zB%1W2s2A<F`$!3BYWHc@Q(+HnHq7a`KNZC=Nh&hgiy|NKUR4!G<E!ZyPTFR@;VK7C z<HO4nWDiKoYrHDE0L2k~j|_$Sz0yN5>K^<Je7ftaD|o@}W*0+m9fvP3OZetuF^8ue zei1%5q?_M=|C|-Y_uu`c-ydvuJO3z0;~|_DMUKam7+c3N#Y{qGs(7X=*U?n#MtH9? z@ddsbuV!6gflf`UXcUoX(dxL4hR-yo&9={Be>{S4;PQ~Hohq+ZmD3EONX<@1oHnJi zI1pAZi&7>92{>tl`Ju#0j>TSyx^@JnqG|!>RDp1lH)-eURv%Teor9fKTQgitGs@nR zzUqh`HP|bj7)$E2H3N|}P0R6PNmk>d&5LwQ9JZZy8!?OCXUGewH)A%YFKlG4i1A2h zeVRE6*ZAYv(wtd6%ZpJgh-d>AO`C`-jK2g`UZi{*v$4`?X*3w1m^Ej-Rvk*CDhs!* z$e0&i1cflIS~yjrKUn2c<SG@JXm}0Kir3(-(Zndp<p4d`o_1%C9fE`v8v8T(sxIsI z((>Wb+}@(GT1<VT1>&@`MVr<BTo0t{+n^k$@$CaUQ)52c#yVn8=i6>XZYjp1`_Vdb zV2!Gs@wyrsjoQw+Tt@>LQw~PXZH-_GgghryBS+FSz%LtqX{%tj{*-_`Y30Bes)%>l znF*upeqp#2lG@=ZJ3C;Mz42K#!0@<O`$XjJYH`>}i<B)?@6GA7zPtl4%4^aUsu`Ex z{Rvgn1>A!^WZ@p_2vk+MS*_sF_@si~AYlSLs^~!$@zB7h@**tIe2*=};OGi$5(__t zo8BZ5WE$U2Owfi9kD!33z7)L(eZ@&y6Z0W-T!B)n?P{SG!{H#rObri_&j`uodI^o! zcsfp!<ZwL1VYHYn@+^Z+H}V4%i|F-ubQYn~WtitVWK6{9LMz-KK;InuVNPlX5S&oL z2R?_7lEsD)SV+@Us-s%!S*cnBr9;J4SRhoP?F`gO$!Hcs*Te>H+Otzx_!1&WkRmXL zA^LDy%AbGzX}MaeFd@Mothi&OBH;wQLYrbj!4xHqrIpN}VI_Q4-T(p+pbaMtj#&pt zAM&s}ClV|YNNpm*<7BmBxE;e#p^v?%(juRZC%LYmg8A@2?(;N*cN<>K4_O9h8E&-o zdhH7zNz*2fegMCl9uBLrm`|^Iy=1*x7w`(xaaGpG<3S-VyMggk5bJ_CM#ar4pG>Ck zZOHd3j8G};a4M>DHl9GPS-!j+PboCSFOb92^sk@3`*{B@%hRt<dw7K?#^rj9q&T~A zbCs;ujsk^d02LeJws;K(PO&kfX#lkD44Rx{u6sR_NfH*5#Um*}9s`7bBKP6Cu`QDB z6<QuYv1Yw<BOFSC2t`(G&}%Kuy~gIgamvxk#$3p7Ap$f+MLMsfL+jD1gvBH{`RbM& zZYOrMb$|v@G)niprljF?t%dddHE*s7QPcttR1&7i_AAQSyb4Qb#d1foA|@|fjALI= zIzp^gBbH)Vhnv*FYGbn(v$#=M73&_sqkSnTTp(%?C(>@OT#?xb9Cs*Hg!-yhhLXn@ zmY&R22ul9i*h+7uv0fpKUSwRLAiE3^JStqniTA5Sn0g7%hGYV^al~^%UK;k+)y6t! zGXJ`Z0HUP`%5c4&Ie$Y&!|P~tw*aV%5bgHu#!^{Dcck1^Rn*?w@?3A%nl4Pe`MXA( zy^C(g%}%k)?Om;_w`c_;JIE=~kbfG+4=bHCd)CI@qH$;P&Y;i2vGARgN{1@c$@9i| zEibV}lDEWWewQ=q9etyn7&~5p=`6Wu8zaw7j$dF0MwBcEe%G|GtUA~$LV)P*DQvPb zXJYNOLoY5xQTe6ic(m$ZJT77Z_K<!u@M`<JrPqtS<0-37<+fNo2JyALN)lY9kye+^ zG`6<NKvwb@`$#rp3ezciJVGMZhq?-bAW|U_k#X=<WrYkCnW1};4;^ugo8~<KS=ZCu zd^p;KDug6)cYmLsj)&9fdVVz?O&=b<eE#}Xp;=RyA;qZ(<7hUWqy8dkO-E525Vr*W zByo~w<k4H#Bp7VcG^PJUfn~ND#fP6P<=N!4A>gwtuvPyT*#6?q8mGe*b66p55|YO! zG^rO5-kLVezICh%eDt)D)=`{oCE@Bn?YF;v{zLLs51}|EsnMXGWKGV^d73g#R)q*@ z*0hTh#(LFZ?86XHRftF-dLUfpybxSJ`IheI8ycf46&YCwlc4`Xn34xZFN$7v+rNJN zZkP;C`@>?fm`tZnFE5Mv9MayGr!QBtE3M0~kB<>vloD41Wj!9&>kTB#)qFaGGqBn% z5t!-+hIzb{4Utw`SNj7lbm5zu%?=J>IvS^^ba&XzCzA;K;FrgjCpZ~Zb;z^)hmY^? z@9wfP+iW%of~{v^>@$X!lN1|BDz8yF=Dtfd)Ed%E;?hpC-lP#cTQ+Zq@LHuF$&U1z ziYMF=3dQE$<m9aRe!%TH+N9NuHVDCgXs~NE&m(D=O88nDq%t9d)1dJ^Hv2<$J6haw zCu(grI9{}h4;JaIX@bi44Eh+5&WKHkwbdVzES*3G4!j)X^T7jLX^m~|^w>M|u*HH~ zTLN$^fJ9JANlQCvV+AvW6{*l`gVbPV1kuyozAq{$@UEJjdJWTeApq3857agJ71{!b z2Ax_FKMO7`{7rzM2t-J$j)Fa|LTW+&;Fe;FN+U|zy)~LVvLljY)Rys>!!B#qoJJcF zNZq6(tDLo-vBrpjR#t-n&s$mM%<;j4Vic0kPy@}7M)ii&qWGtWkmpv9XWzVROuO3A zwgaf&(xdqQGXcHKxboExbYEXO(Bhe_nET1PdmhdR3l|m>&8$GE4zq|;xI)(>W4qO} zrTAH57Q*Z5ins$24lKzUsCE}++@$;!yxeJrTMB0_+kv@wb(N%QNB7X^V#mk)yt=ZK zY2C`yxa`|ry%G`5m6fEy)e(IyyIWqZ^~Gg`8WGpSb(@K$jO<Sa5X`YJ4JgV~5a81i z9=zrABW{1M=TY2)6rf3siN@MkLyNi!&=!E68BZ1^4M8jXD|DTOWQ-ygenrEqAon5d zlyy<oP-@`WsVWHH$CuUm>gswjnnMRX>L+5*uOA;FGxg%+{`NjCvM-Nc3v~R+PFE>H zcY+8`|6nj!u3vWh9dyBP_a*~${i!ka)~7Tb4hC_EJI<m){bvNf5S$W)vAB`ab<bC! z^2rV%ETIH4toDa%su~Lhs4z^xeS9U@1syeskZz59#+J-gRa}2%DYTVnv*WXQEBZZF zpC2BUtBpiMS}$bGfGvgy$VPikUJM5`NiOg+l#B|X5jIK$z$sHEhv*QKa4sAf!=!at z`IxxzV}xM{*NZhMl70dw@RViq=>$%4o~5V50qUCAmy^i^f?F>NN?jF)d@>qcU(L7s zEm}!lT^*07-EsqOyIe1~8%Vl!FN)E*2`?>*TvRkM3=m8Xw=nJs1tqiXb_?IRzPhcd za=qC^Nw44UuQ#i&PhTBE+q;?1-`(B8nS6eEhAXhRn)Qhk&U3%o)4~ewwc)8Vg%ge5 zdV`m)sh9mmBt(jrPrW1>;R*KUgWFnC>cj=J)!PydbWNNily;MiDjMmfaP6kiWe~p2 z9`bN&k$*69z&u{oyNNXI22AbNa#&L_1-9$s<{EX>!C*=1s+LwUQBxwvr`wd3=-|Aq zTe?Fv(`^$-N}C*bG^<Y#MjH~JV$}n$t7uP#PK2}~(*#Qn#=xT+he7xO1e1uGI2J5C zY|YA9rk@=Y7!?JDm?*2F39N*{)Y1x!_^f0JMJxipiT6%)XU}<-V}eI}DoOZ8-*40< z;p0iptr92Y#%=Og7o4gjs(DbT%L47VOfl9L)>yGeMX`+slZXsM{RCR|Y1{B2%BwcQ zk(H(FW+Bx26aO3!_)qx3=RBfUyIPwX-`wxYx6p;=t>e)haSG82s+e!O8+CrBB?7pS zPct+(XTRl)4jXwXx_Q;Pax@QdYCCzgwBhsFca!m(^xZu(qT4Qa2>-5Ec2fpRuWh(X zrsYyQmtONaGQ1MC^w15-YDd!alk_2|#MMa0!W)ichgqc$iAID$VuCtinMoDRstM68 ziAPd(-$z>qJCp*}f&gCH!p1CIqo#YDoW~6GiNw7}d+}p>gj+m{&_c!|vsf!#XF+C$ zG}LJdFYE$IVfBHQEF`cDaROOMX_=!5i8Tzzv3gmQrz}T1+p1X1XOKeRKd<I<h~1wb zAGX`g$4?(;)7f^j&hs4lvB`KcpG?VsLML$#&F?&uLLZ%GXfIF3FG-R>x`3mCpM+=W z_pe`zGQGclHyckOV8Wvwg+WEQwq6{U$Qwe!=<#&I0dEi*nmM12$FGkMr>q=7UQc?^ z3m#5~EKQfIHKd=-Znr<Br#xM6H*iMRyDjwMaA}~e^vId9EXzTE7)H@%yZxX4_y2l% zSz=A2sm3P^EL1a57(wKPbAmQFgm8wx4pA!`r;Y*n^3v{5Fnk3m76P3x%Dk+|>V>;x zLgymA5)K|d)qcMljRvFPAWaWY2|#W>p5WMI><5q<?{97fgCwhp(I9zzdaSGB{_Z|6 z%k_FQ8V=!v>^HltNaG$PXul|PBM4K5V*qwStVr#_5ONgDEUd@y-xb^&nA&}Rx7|XF zg^LKe{O8|(fs{QN&ppKNh4;6&P%S}M4T*d<n<a4~-4kQn&WI7nQaDRI?_yJR>E9wn z$AYFaHl(gnvga@R2_g1~9c5V@lm}d-@yJ+D$%Gj;-=k^(*FXfhY7UPb<KcT8l<PLq zVRrDl4(%<o7@rl^nzTJJvvheE)ok7bHF*pYBp*TR9^<rvT7dy)=|g)JDO?sc?6&4q zy&5q=>0+Mcow!{)i{mpwyxVzTy0c=JoY;xZOvMT>cs&vmZFUhg|Bb1wE}T6K#<%*` z?3X6mibOrE2_(l1I(|X=pjhLoj^84iJ2kd>4a-W3E{(=DQPx44*SH<8J-Y*Npf771 zNC&FvJk%tej6SU##I@bHJAssocJvi#=2G7I{HFE1j<VMoJw{%vg#U@|`rPi~RX!FS z8^a4DBd&Esw{aD2>u_#&-<X3nE`e;`Cj}>7WiHaO-N(Jb|Ixy`v_5ny%#N1ZNy^QT zi{6=~o29k>v=_tfTqQe5d(xShwNSNl0K{9Hc>C|>VdN8|M)NuEQ;;j;{D9pb_K3zI zn6UzFiaT>0`D&{tNE>|;FlS3t{Fb&(+K3;t>l)F5@|mFMOhiq^M0m*U2%@A>s*gz= z`Y)Z;1-wGf4=E%e^oQe=rYMY6f?&flA)QUBqP8P|EKZ{A5)q^(APrn-&5p;zAv>mN zT4FvSqoKSU4*Cdr3Zv`URTu`3FVCa?2;t01^!iB#2{6yl>QJh@D$w0n7zpeAqz`R0 zycX29a8!_e;C)|So<ov<dU*H>x%2M&1`;sjMebUT$77bCApJuUdRRTd3qwx^X&Wxb z;k1Vod(6|PrzK>4K{f(8+Bjy=LlPem=L7|2?h;PHYO^l$91<!DEupiKkAA;Z3AF-L z{P40r{`|`^&4?mt$QUk&qo_9=Kq@<(PNex|D^S+%=X?+n<&v5&$qv}KkwXU`Ra6C> zdlGh}3|$o@n{J{Yz*AY7#e5Fm$tx7PhO?VNO*5OrnHltw#rzr?;@%)0B>l%HJVo>A z?D^#d-u>!o{=8aNb(!>%G)o6b0%cGfhKv)zYYp$qZU;0OMwT)A9Os2m-re<Wob*<! z4TRzA#Wft{&%gcxHNw?oN~h4=F7AfI!D_usPbX-#q4%}7pz{+Y4He-v;mYaXc;^kA zGYR%&2La)n8=4ucaK!kU(<BX;E+llAtz%vD*xtM*yJcw{15==(b?uo(vs!TrM@2O1 znc_;Nwk~U;Yx8%8Wog*4%}1h<kYSSs$^s<kZimRmrX^v0T*=Eoo{=XEr!66^qp{cE z7@DNfbPPO~lkU4t70csNLXhGIt4!O-B(3X%a4*gt4mE>k7`aCAhn$^w%!Z~=1Ucj* zm!)oWfLR0-?_LB*;X;R0xs}tu=GZ|?-wRt=RtB?^c9%j3S*<%HG11ujiq_1x(F}HK z8gvFEt%9g%z#>*y!8_8jv1Wcusp1uUXGSc~_rA@dx4REMTm80)(lm%@E5a;Zujhqp zcFi|Z?*#?cmT`7FE}WWV%b)6yhs0U$%XJ<f?b$8)dV6D)UCw`6c-=;tMZ%p8Z{vd1 zSXOuKhnbvj?RhPxP`O9nf+}dv(&lZilfvz365S${ch%O6q{|)boDb2KAnw<l6iIsv z`Ci3#EOo;Tw+pA{YtaI$96FIKJdw0idaarztFz~JB|ze>wS#WC1u(CBB?&C)t_+yA zv^__n!bee*zO3_Vy<S0Fn2cuuTEx>~5ekg9*DR7qt9VxnL3A#UdsCLdFu`)ZsC1DY zwB8^0qO9_=s0e@!4@3kF;UIx*6ougrfBhjj4fLeGTimQxs~-TCKxw~!{Rw_|JQ`kK zEpG1LJv@B=+yDOetNE-y7=H>Q)Wj)~H#`~)p-s;qneVoNM62M@aD>X!d5T%g)4zTB zBMhSy+SV+E(0|(R;Uqy5hQ0-8u@I3aIDA$}?fJ1jL4q}ij`H9*p@{f!`vEd8#M|j) zsz?S1(yv7CDgF5T7)IfAFp-W<^SpT}4hOiCPN#IWURMSJO$ap+y!v1OZE?u5259_L zqZ<Y7mJyXk#<e(8t?D+f_!j;Ty*pYUp^jn2H$6t_0;kaUV|7vF74m~e;~^X%oa+Sj zpT#~uhCxsHAza$waEPN;Wd^<e@pSAZG1UBDo}S=%rqk&m%b~5mU0gwX4`o3Vqf}Rs z))|Tu@oGb1moCv0LKh_w$+5|Sn&bZZwjcMl`#qfN>p7g&;+Nll6~6yzaRb%KYPW@q zI~xy|n<b?7IcHx>B#@ThAUaft#<bNcA30N+^U0AhX9@${rPfZ9hpkkwB_o?38nV)K zM_5L6<yet+l<i$GESctrQfQ7n&e@ST1MV4TLO3>1KDXA*jM2giv_*1qQ|jm$)HPUQ zFivA?YpO^h$=s9+Yfh}aF8+j7Af#vt`kHtg>;g`^5y31SVn+&#_iAitwQ02=nhs1@ zr6lRFZ_<S_AsCn{aS#lJvBqZrb+jc9u!sc5qMRNvli^mc7~gN?CHfXe3244a@~e`l zx|Z+bL=t>!%zNJL8S9SGL@?7@P`D4*xi`+iz1$)jwq{38Q!PW>OcMJ}qU)wcw1@B1 zs92ATka##jm4OvzdIhuUSQMPiIp31XvN_nC!JzD*;v6iizm2ZC@cv^6w>cmDu<sQM z(TMYzvmM76@AXRCG+y`K8In=B%W(#8B=cKshdcbM%CnMLr0e2oE63eVZCDUS%cf+p z1LKCv#<S$gs-3^?>|Z%2x~X(qp5wJ<4=@MLwo7EumTDK0d1uSn@od(}U^Usd?x@w8 zR?x)f5t+@JL{8)dJ~H*{v&}n>$U2UvoPBG{WW#Y!*YBh1$XhmpFUdj=0$mNEJ%XpG zAI6B;)Q#XNiON}F<eGdHaf577d<xGg{8pM}`^|Q{Ss!-m-FEBYh*;y~D+u8oM#E&- z9|lJ34m-$my%^=Rk|>5U;lF<T=>Z$H@WY1>&{shxwcc)_VTA@7`mH3wrLRwr<~Rr^ z{c%wi(A`$(DG)_|@a5^@kB2Xs$d>*70DT{&x?kK327OeMzFI)$o{lH8**u1<9fZTt z$fuo8k);nW&(PaJcIhQOxcJ8`gV+nlhJ!K`77npn)jBPUQ8EY#%8M{evL=N4XqXHh zUmpMQ(@)#YzNX^3pA5c#cR!ho4dUF9G@VtIaC(!Ho_U(TDJ86Jm?5Kcc3MLWsgzlk zA?cd-d+eR3NEbpPtSjvG66nK^>8U8nev;(y(>Z>D)jb^2Xp|(q(QsIl`F6L3M7TK| zH`~qkpFa7X`26@V9rQ>2;q&sjE^|2lMV^&;7O-zFNgPK(h;t9>e9=yz($LJjzrUYN z=9}FHMJQ);_**P@{OJANT~_6*?Rv4eS<J6CIH=!G$J6O#Vm;z$l;lXiZ7Stwt|L2l z=Gw+CpPjP3F*f3CXf-JKVhGPQih|Ixq^M|_nhY<pZt7k~FRBquW?Z(N^S2?u{ew>u zt$4|khcN6GQ7@P(Y<H%nmE&n*2Uf3yHK@t-gEBk&(6Ip_gPu7@8|&ZBQp26bOWJ|B zup!E_SnR12U5OF~CO0OFjwjV%fVyp2x7}pBMa63n%v`ud@fCTn*r_ksytCVc&z>V) zn<+xLAltx?f*?eiF6o3xUJ!6yB3*+bE;NrsWAY;|3NO>$6t-oAwEp$%1Lbs(94M9Z z3~5+$tBcqdC1?Z9resj&BBFu`=mD=Btm{Q*48uAgHZhxvj<>@yYMa|PN25ZB?$G#b z>HF&EU;if`gX#>C`3vc~Pw}dyZtXMN%2|rD2|1s<rrqrh8F&uU=ykXsZ2l*OYcU%) zX&$1S<Epx!r7=`6=MEEZwEkzxR-I$+s#>0XSkXD|^ZSZVfpGJ8D}2)tc{bl(u6q|+ zm6fd>BxlaBoeHpZ2zz;`2K%8Y`9jRDRBatfq;l`ALMqt{_ZC(*D++sMRU$arOVe_< z-t=TJ8P3oVsX#|Ne!~iCOO$1`T;$TV0=hcpoBxlqH|>riIkE-AJ@(v?00=I%NUAC= zJv|?$&zv*=|1Z3mH~m^ttEJjVg2a}4?CxXN%snD9k*HD+Pl+NyATuH|!pyGOwR=kf zPGz}ofV@o_5a694drl~xXOwepUca7Ar%hRvUAx)r{>Q)nKa0uy>)-xnKEHsT^X_0- z%o#QeY4-J(UuALp@zd>3KmSb8i@<JzCUw-Z8uRtV_3ho~_wRqAgIFvU+x3>&L*aBf z|Ls@5$p{2j<@NH4U|Ct0d7f28A*>}CIvO9CTA5}s@se)4)n;=z>`l`?JUvBmyg(+K z&>Od12M%*SRjdnP*<(e7MxVBupFe*1^y$8K3J;2sbeiUTNAB>0bt3{AY&HP;CA3Y@ zmIIB{wN-o82K_*+I!FmO1m0L3MzlfEuT;Di!iGip<Kud>U0u$XWpQ{|ujaG)WHKcz zUNwhBF?;v+O_HRa?zh=wHl0i(MIU2inr5@x+PaMAv%CAd^=1_-)szK&c#=`5S^z&y z?i5~BrvO%$RM^xrx(;c!+i%OJy|`Esq_}^)&-3Z4*Vo(a?(^qQudZ&cFR!+nExpCn z#RZ{o-o!O}yfo1VRM%ToXE-b(?C;82GjKW_dD?hwPFV>JQym!>G0-rtns&Y3W=V3n zxRB9|5JAFTsbVPn`;3JT)afT%;g?$P)5k`AotQXV$|_WovEOGnB6vFZ&^mN(oP@Oq zXtgpPa-Ld}q@~k<O$QA!)qs-vYQws*vGp62yc=lP^DK1CP0c-YJ~OPg2WCu886yd? zQ1j)8(thLfr00pFN;DUU(RiT~!q**Cf2@q0g-#j<O&GLwEiRGtC8`LiFierQDGfW# zO<A-uzD4Ozbdda(nf)LT<x7Ww4s`@f1+dF#z&hf$)A<r2y-OR0OG&YerB7^<1kRtv z5>BXL72ZJ=8kGh#_PfwaL|fyxVMA@6p{OIh=wLK{?&XaGWskjYmD_I$WWQK6&g5Sk zJ5a=5T0?R*mZUFfs|*WPr~KzZ>&+TFdcD5obC&$o9ZNB@cCH+-xJWwQlq)QGk6gHo zfzR>Uzp{HN<@RvhI<M-rHbq$@l4Um*e0Ac=e(9%mWAf2;KAoDYGxREP1F^O{bNTv^ zqr@VD52Me%V{WH8(i!Nv)4avV7Th8j3xcm131G7+gGfuL;{#{|O*x0fpG@RrLIwxx zM2C`t6HryKjNf7B7%~%O+Z^`AI^IEiDxa7zG8lyhj*r6HQX#A7@m>;Kau3$90<$4R zI%8Zw5r4v|H%<~0$p=KKyrB;%CVUx3<)L_dSlxYoxP1K@@*Xh2t=3OZ5X7h|N@8Ds z@nxRp|M_2k`}1G_Lb>n{-~M5i=V<29kw!5A_4gk?ZMIv=4cpxwoh^FJx}vWXDTJY8 zUj7Xn9aM8DG!A-5*>2El!)(u*#p2?duYX5q>S^`(@bpO8_psj+s-sj$i9ceLRW;3W zxg^X7*qz2yNc`pR|5a7Z<I{@rJA3do!j=Y|%>-ptb*%Ey^W|ISKeIDL=n5r&BekH{ z;SNgJ7pRl%WF11=i+j;@3F+17FzBjMDPJ76lv$~~`S|G*MIwUuZCmg6JG!~@G@WEQ z<!6e`goB?}EBfS@dHVCu-xHpl&Zdu#51ZAhZJRjH`o(p_y*Sw-Xqog(Mc3{C?id{{ zeg02Rk5yYQmsj-7pYHGCBz=8-MOW$b-R%;@>euV_nhKZe%L}Ro80(7al}k&?t!o{* zo{d%$JouAlqTegjvTi!Cu6kj5&D+#mqHsS;G!*H;x4WImvc-I1wWDG=xGON%j3sB? zVzB`+$G5+wT;Og5FWdq9cHCG~m|kFLFX=fLv3R&55J@jB!)B&e@+&wNNytKaW?++9 zW>%c2IoN)k*zF**u(QB*k>YhaeByZDao(}4`zQNFz9sH6iqFA*)F$@J&I<WRI>G-k zOiLE0JZUBn3Z~kOl2pQ(6w-05bREQ4iPr2160@~s%8!?hw4_~M@%B(mdns&XlrN<8 zk(>fg5G+sJz2e}pT;q6Hs7DTT+Q~Ecgv?}A_URVCk3i(yTdb9Yby+dJU-^L6CENk> zMBBdOV#b_aW6#Q3seV~qd!zAVLW9$fRDSIz{Keg&6KE)Vbau4ktDm>NPgFrpzh#_y zPZy}dmw90$YXk9a65TZsd>er1D8Y}u=xA}ePohTV6;|9q3}1~NH}^`kfuGT+=M*-1 zYM4-E{;6d#&dlCKOBArgBmvF1@ja(FCF_xr*3la<Mh$!2+wl$(929sq9G*FVPK(MV zmlooNC@wvc>l5T%zo85tP(%!Rtqk^R&33z`JQ*smrF7WPD^c>S=$-2pi%}Xjw@~e? zMB2LRz^B&p=_JeIjFo-_vH*qFK^#Zb(}RVM69~-knNd1T;;OD5KiytlE;B;ORr~4o z6Kut*>ag4Grt?XXy?ga)v)esBJpLH|{M)a-lA@4+)=%$0tk?S*>-~E+ML;1z>F|I2 zzyAv)DZ-|&u7C6OmuZ~I734sMa+rJbXacuP-hqs8k~Veqv|7_)#7Rs@?(OThkg6z) z$IXiJ?!*24!{Z}m_n+Rs52JXVLC5iF^YroKCs{#GvxJgzSGR<N(<rIy*0KZ{hxS46 zIRU#$MLZkxkP8w&n94Khi(7kP#iDxHvNX<_4zLuGA5of9l*=~jb!ED*=kpavX~kFX zzDS~w5^d8~*H@R<*Edw7lub=2kSZRk1HO3uX1Csa`uOqc=2cAJd3RUBo*`m?6WhDV z@@12OMA(^TSC&*kym@t##?gAUy1%<?=;KS$$JLY8@y)B7{o(NG?tXc3{qD^h0^*y^ z>S{S#UM#p-=}f{kYcuu0>!mFV=j-A}lJaF<#_<9Gff)k@o~MWX(1?{hE#(Dh8A3NC zmThnCH9cH)YaI$40+BiGL}@1~({Z)wpxPka(+f@s*G6c<Tt0**@QMVECgC?HjBHBq z72qDPtR_NG<usr(--1^l*f3E$!9TzDgPW=o#nOT3j2$E$8D}jZV`-pFW*_zD6UsSB zTS>+t7azJ;K00QW*<O^G2LU1bB8FbnkRk;Z@1RAls2G)@BizTZQX%XgZT-5IvcuwX z?>Mi#agq(pk@1XQ1oK+@))U86KiKP8W=Hn#Vyr7G#aR46n+{<-q4*avw-BNuuw+M% zNjFhkgT%^~+=eMRXqaoB0cjbXm|ze}^g~~Jo;k&kvuA7TQ8skjU*5*R9Cuky#-C^R zj=~YxHNQZa_PyTF=j>-vS<h+1C!Pm(jQ_-+>Zp=%1?tf*({TzvssiLb@5iXavXk30 zP(6E5k2a|Fs6IYZ>^T1avvS2dQU@dRL2p+$bX+1B?#VL!=)?pN_uX8dhP&hLv~g(m z<bAa$*9I^$9c5+tvph5r!{i9}n6XDUdcYn5PEVJ<mhrLzyz~l9(fnz%qMG4)z9hs+ z5i$<sHs;{O{xQ<3gm9}?DIFeoMPQ7o07kqWFHp5GS;DhN-xNdNBCLw)Ff9{QqQH`X zC3O>J=&Vzs)j@c9dD)u!FMs_rAz%uE)5**()u)diHmk=Z&*>0$539%ho|QHjf`_4T z&wfzsi;%-l(==~xUPU_UY7w!}GKCOV2A(2<Z$8QM{h|1DcSmXOdVSUMvhQR%S<aW! z>2#7$2-aLK7W@5vHk;qyKmPs4A1U{zNdg_OB%Y@UYyQD3sH!0?J;_oo)6m5tWbf$I zY*47PG!%;%O0m3{igA7#A#Y>z7KVBl6%zI&oZLCR*eFhLreLYl3*_`AI$+9l^eL{; ze4brgEUF4@@5}l8o8Nwu#nEQ7nItL2mZyiu`FuV}XLsdY93`{Kv}x&eI0Q!_eNO0k zN7_5fna0T>2fID|rCwcLe)YwdZPQXBCuCWchucq|%clC`&6oS_=JUh-WIBEO`gKj^ z%ldITpIu}5IFt}?kDe!X1u#cD_>Oclw49au1~V`=C5g9zuom4{WS;2fxmJ`+cvlOp z<7>j`EO*J4MMGFHBKK|wqKb81Qygu@J;_TJ$!4Hv3-=GawmkvYPpJGX)=B({M}iAs zs^c&t3wwTPa-?-IjABJ+QZ|-+6mB8q7W8?{Q<2z?1)1D9AOe)ng`{yQs}s*uhcA0R zZqFN+z8@qqqz<qnt)gSOhM*_1TFa8FL)iqHGcG7f3NWsudczwVpJSW_ud!Y4Pb`A^ z+Q)s(p77&PZoITv$e`5^5xi*9z>-xb8XEl^+96miKF>a0^Fk+6w=w9Z3kU&V1A-)r zkU+(nO`n|hzwRZkpSOd9Q?W_Up7z>tgF#*(z6iaVl;lM>jXKUDXGufjvkUzQSwG9Z zgF>7-%GoE-Rt4(Uww?xaV*A31&uFGQ%7VSXmbHG+%K{n0BRq5w1SK0gBBMD(?EC}O zaaYEk>{tiNp67B8Uxll;m!ciU)Z#mbKBe=((fuSp)MMtSmk-m=Thq-i!0ifJ7=gGU zQ3k4%!??%FXZi?NI}zf*6FDi^>jW4$W+OsMrOoDXO<!M3W}>_bS;YkSqJw&ryGLW@ zZP5ESn)#wtS8|x(;Zx8UjV+%V9f*n{N14^rri{ZR%m{l{vvgXOQIy4TO7(rXJM7=Q zzDd*N!+i&lho{HQ!)HqTRokrZHYyAWP*aUN&2su2tF~%u%u*s|>~z@D35B<pPx3Tl zEl9yRZpPDjm0j#jz=61K2!&Is{@w4tOXK8l*vsJgHvB}1FVAuURFtJ=^VzG5ORORn zhc(qDfuaMrUR=C>cN0cg4boIe6$Pbp@RYlDN+>@tNecXJD>`p<7-EYOOxunXneZ9Y zRi(pdx{9(drLHv1st#l_<q1mA@eK4Vo5ex5x50EmFK8EwIRTFMx3?4~-o1W9HydR~ zDptPx-8XNquXl$7B4!frcN>BwbR>6A58Fd=aSdg${bmy*Tw+_KLj-Cfor=OL`Z8b& zwcDbgZ(Gb4U%dNDgArCu(rF9d4R%U2no{r6W|Jq$a=th~4{J+x!1Ce(+1FD{kJtaj z9$gKCBY7yif;(%{vmT=-EgRpZ?Rpk8FQc;%p_1X0^@C+@;JX=ElJx;ydf!$|hbhF0 zsh{;tFlUj=6y^R$jF$q&l+fFu%ka-Qe>P|HGFpFeK|znJYEQLdj)9~f_Wa|?<w##z z4Z%Wkp&7rF=gG*T5UV^lO60Kc53QI(yY%B~0I$iVdWEUJmFUy5)z7nt^Cx(ggFV?M z^v!%nWztR`ANC@ln@o$dgj8V0CH2rc3neT4ZIR}dCb{-5IK9V_)&8w}K_#X8-J@aI zbfiIX%!?XUn@lh)2vdD-S?B|n!wM=raf?-bW2p``^l(zW<0);>2u8!SrwcgQ)ME;j z@^_2UzHu7ZKs^U%=Ge=qZ)n(ODjDOg^0TDq^I{!p_<fw_pJQL;?<=|HdJufIL2!)A z#ggmzHVB5zzGJ|9Y%J)eC^GCnqYE~GVKsuP@$ldr3t5dv0FH)v!n=2Z`Nt$Vb^uUr z!lV5wM26K@oJN)X1?^AGB%QAB%oy|QUGM*vqr<oX?h1lHcJ&~_q*GnelUz_@Ikfjp zux#@AMeH?geEHJ_ZrKd&Cy@T31Ep(AaMXx6CQE7Y5<t^hVS?x`>B6Q|DsdWkX`t8q zJ(K0~;$}f-zTRvIw?%2vv`tah>!)=<dDNIR&)s4oMu1^ewX5B3et9uV(|uJMw+v!n zHltvL8?kDgtXJ}6Dr6012=VC1M1b|dq1<;}eQ|m5^}8=8Y4*5T&t|hEPWFdGSr&(~ zD#}Otb-7qR%^&~v!w;W6eT2DvUFVk<|MIVY`tr>?La20^e*Ed@pFVz|IRCUi5Xz*q zM~L%s9v`H^T{j_{n~N?e4}%$mg<)G&9ZQSB0GLjmu7rlJ7?!sjA+Mv9nI%cv<*)=c z-Sx#qwJ%Iv-CQj5B;D`!RBC+r=FOLHzaXqimtir#Xqt*1g{$R~N`~9p+ewxzrnB|> zk<KSV%rP-9bb~bPMllN2N!@PB!_#^*%_m=c^>vyhj}MQ#{jO}AvMAoZzM0GyKYw_? z+N=+|eXzJ#tscv!rng&OT#D_ZR!+}c4PFbq*J+@=l7cJkdHY?ANo>z(vHer#4CEz& zb$)x*F@<|M@4!0tlMp^x%wHrnxcBHtByPU#l#K<f82?^&3?QUL?pHGWqQGcRQM)yJ zhbg_|Vc#;9<KxFkIUw#^uqNo09JH9*Gda(Ce<ssY1;-LWN^H|@D=RJ1(g}NH$cut< z{GC7SkU3h?74Y6u(v(-;an4wuBz=0YBNEst#9+o3GcZFjZFJ2#o~x+dQt5e%lCM`k z=x35a(1m0CG;rb^r<o42;e8buziDarD=|27g~AD$%LK<QT<t!jz_%wPcrlPiU`9kR z3Jc3NHgYalmvk4MKPe^=44y~9XeO=AaVk*ijCYdt>!|&4I*I|OYU@P|rP|QX1TO3^ z%5u4mw0ddQd#3Z;S6%(FhO+A)oJ-ix21d{2uGOfdIAi{BMtH>Okn7`htnhr-U0LNG zt`q8b|FeCI$M#G7qcJ&z)wsE&{4_cWj;K=R*Caos(2U1r!T48gy8l+LeU`=b_z#?k zc^@!tDWy*MA8WAny7lgWlrft)u#9vnv`nh#6VAS&6vo01?jWrP+*yH6)C%)}O~`c? zXOlD!MH!$oA;tWf5VAQCR(=Z7B)`1Ay!-t5?%{!cvgj~DCa?zi9s1b-_K)c4HQly` zrq$)E>wo>@pDve+f4u+k@9%#Oy?Gh^M<}i+iwGqF!~wjkqf#T&R*~$0au%U_Kf=k< zjMD%0^0G0eF01>e`^U$pAK$-k1G6Le$kLZxnh*@VTwdf5lS(>X*P$#3{<7()4nfno z?P>z(RAWcsGR69nv0z0LsD&P77^R`w)z!YL^Du6cIOHOON7RNb#tAO701F}X>X0O} zG>M9$q&i|To!TUReRBg7Nfz$Dnl0YGdK-q}n$RkhDK^+`H?zqsXq$)oyF84R`J_7R znxYI@$d@26MN&9TMOf}?T7trs3XX;~J}LYD?zi92MR<BzKde@Cm5QpoxxRY$<yUo! z`81S3>ShDZ^DdvHZ(iLHq$ad3CEU12bR;&^ugS}5ka3!nq3nDz8JX?aZLdbjn?4eW zL@-9CpHAJ5L#W|vWO~IP?fSs(Lzb$Yr6?di+K!UFsPa1{CgCruAu0{>6r+<d_NYC` zqd&iTDCA-xJ*hz4x4d?hL~Fw>1bSc+59&@0b=*%2|A_8^sMr1QjBd})@}?8YdS51% z&lp2+k1086p)c3ZznN#JItLU^_E24tbG5dsDx_}&lLo&DWwG+Ettgtgd3euvbHg_t zPU%6XYJl3_35b0IyJxE@j7}IOJHDGbL3<I@s%_}^OqiFgdfKu4csDpv4oHsvA+li$ zXh2tl7uX_PiBOh(F*?Vx8PDL280uQj%@!ikxaq3Zb4#S*+x#&2^jlav%q_vWJCJou zepMQJd?MypYC1f#m;4NiKeJdgYzuZ)?b4j<^PbIEVhj`blGoKkY9!ijM{Qy|&c!|7 zP|&b=L!Deq-A{J4#BT=f`j~4Kct4Y4^AzqH^)^fB;F=e5=^1%#!yq^eoRIpEKHK2= zkofdh<i9ieg$%EcTJ&`1#j<)5MOe{AV;Ou4U0{&8-|dnlnnam|gNCWONhsJ?sM>JJ zZP-e$>RR}`5~^)0Dj<@05~Z<#UAj97^VJ=`S!UH5N{TV1z3gI%PbGHt^)`mJNt&kY zRSby$Du*`fO;c8|1x(T;o6Pdb8%jj4UTv%L=TEn~Z7JCrL|GP}luJbTAfkZSp=WMn zixfk@vZ>bl1Lo3(?F+4S|K!ZDLJE_GJ*>7Hm<=Dco7Fl_(?5Ls-Oc3{<)nSN|MBOa z9@pzUPK%--lpID8`}u-p*0$|>v#n}MctM(HnraTN`5}{=z*;yC6&-vWMmgIybxe66 zpqW$&TpHkvSk+(+P~NYLvZ4%*!5G~GbmhA)Ork|T73vhEtg@T}4!t8Il6b$_q);N# zPgKV=^{b0HU5#S52hWSQG>uPS^xb7u?Ka!pZcio4Y_?clEMMQeTP`mj9-cmazOBl# z>CCIE%P+tBs_oj3A3kiiTSNHTc6qGovaa_+H#Jh#_kFWI6@^L<tFfc)BRz^ZoQ%0~ z3S$y0qRqUcsmC0slg^WO6?W+d$|RuGbiG9yCuT9j0~MpH>*7#R_5oigiCA19kd!Pb zpJ%jzRe?S`Ff%fxbh{HuAIk+Xe#A7<U|qf)AhNZ-UCnCMO4w4kC;i+|qKxsQu8z%z zxr<Ag=4iR|WZLH~Tb1|-2@D-&9Tfjs6ne$a*I3Ug7w<wdw$+in$<D)X*LYLMY6;`U zySGfR!O%?hpFYke93d$)v|WR7ciWs>4D~{rr?ODPl$yH)Bl!ib?BF4<0!Q}l_d$hp zErr3rcjdr^W*VOqtGk3STr^tfE|{&03=303j+V1k5S(k{tC2^K8I0{u=8FTRIUJc3 zot@79f;6=EG{pVTcb?s>;b;ZiYpvVCF~T9mQA^p5bx!_ip9ssPLu-%5y+%DFh>f?h zg3(Mw$!?W0suzbB`4@Xq80e9sLlh|Uobr4|4mvni!UCi*XV-tZ+w2JHVrN8O36*S% zHqU@;_se;=>kZ4%tP00J2*wcBGs9H0C6Dh7HX?Hs72Tp~3h9R;tm;DryegW|tj!3m zMdXrH$?I!pe~ny?$t7iI(4#4}UQ8C0VCbjHt~->6YImrs0?Zm-+G)B5JmfI$;*^5_ z{_UYQ_T8H|3B(aCCFSpa^SifiUT?SiAK(ADW=&=sR202=_4?}7&8Pd%-~aS|)mH1> zHct~+r-Hr0gyA%uPT_$_PZZDp_<8E@b!8j4{neA{v@u-`r&8soikg)mo7HCZU*G@z zAOHBig#uM`F`s|?&9{I0;~y8(3wl~vHM+e0{Q2ko&bA$^?y1eTz)C1!eO;C{oR)M4 z56GaQOM`7Dx~fS=M^f>qSj@n65W^ldj#8b^+BV{4v!*88S&RNC>qsk9AaP7zDVqk* zToMw*4p^wFEX#+72MX^n^j)p!xtdOL0MyNPI?FLQ-|r}=Lmq*u1gdy+#EOhi3fXOT zcMlKS-G=VBSFfm^ftKX$r%&I1cn|NNP`|o){hP18AaMWFho9k!k>?b@ZnEsno43$m zsjDPQ*$>vB?P*3~T3W}wBZyVnj#nFk@wm(Iz>+&FfG*5d3-z(e&xr_8iz{RL5hGf& z#u2N6k?yo@%^tez-TqKi#h&hjEW?5w%%`F26o@9QQw_FmD08xjD50P0H^U!??$!9* z_|x&h#MnjFUsX^2MaD%98TzCmHr`_LX96z;?LB7@5WMVq-w(v9y2wzw=!7$~-1t}W zW<6KSO=HA!kWo*|F9@GM7K9W<E;hbb+6{^W`+^*?FstR<%^=?)y<%y2IFY2#?SNYG zuNL(X+oz(QQX~+6l*@Z8)pu*<y7#oK!O)D2QdrNVZ#($>p@KdQiv>f-?e{U^wwE(; zx`o`ukR4JWITUQ@l&~`gZnaj>piqa52}V@gv5MtTQ$BZK@Zq&bu02ZA&%`(Ei~Ogf zhvir|iji%fgB1w*P>b`0lzonUy?n>W<B$8vL&83j;@BAVjOT$!*eI#MlnRc09nKaF zcG%GM3EO2O)oYa<sZ#Z}gl85P`kSTyXw1nj(n)?iUKQeJ#J9oO^WKL358VrcUVK9| zG|#(!cBPHGQ(H<w9e!5?2*9@qB1@=6>OSstBE@$8XG6E8hh+|W6<hG#5rMrD#wHCW zItk+}O6bh0wxKKnx#Kv6Yo9F3b<RN#vC}lVZ3w%>Ng5MsRski9{o&Bo73Hz6f$>Qc z$7vA5G1ml~Yv98}SZi19ZPU*4{Pp#<3ZrQfvz0>o`Qh`AA3kI{e)r}z6EefMuit+C z?hAr4NWfLS+Y`Jqp-K#N8>NMY0dU8o&CZhtuxWtRdn{8^LZYwC=Zmtg0(MyoP*v!I z>2~|w$4|F^{r>Mi{rG)RH#e`Y|M1N>zxnd(w{PC&`2^<nDw|Cw!av#__6kDQ(V;4< zl5pleD$B015uJRjP)J2d2Y<pgQi)}*T$rb2ad=!k)@@4{7#m%YO6M~wXj)3HT1`{< zEoEsYKot@tupqPrI4Y(=Co`aHNYQsg$FSKD1g5}|C)sMXqQEwv&3AhOwcFWzlBPKU z^tx&^bAT*6OjCi>bRAuAszIoX0BAJ9{9^g$^}E?5|8RTzmmhwZWGPiAm(#`dt81z! z?(aTTRW->clzy@-d;R+D&D9mCE{4sD`8n%Y9HJMH)1ws>2|Z|lvlXFs9wvjwXU763 z;~inGkD9=~`6<q>F01o+I24f+(d~2n4U7ONctXdEPOzxxR1F<J-3&>TD6|<>O)yv| zLZ9ws7F-MVXdS|nUzyhfAvtj%XRo0?;P&-_OM)z<6bd3|c?WDQn_l?Ij&hB1fRQhN z9(mJ95K#E=F-ne=a+;1JT?bVJDyg{^7|IRhtj~=dQJnkeZv-|D)~!Iz;xMF~QPoJn z<H#;IIB5*1lRl*NEkNuSC?`tQH%WEByA=#lg*_N{tNF~#>M^nK!p1j+KH8;Gy<MFh zdeoAJ18KSU^Gx0xvkY@h#5WeNGK*j-H-K4AoIwlv=IC><n=DoZFfqan1?`m3`FV(N z)(QAI5)&QS?z)@*<$d4dl`8wsPlEkra5>oFEG^7yPk8hT`N7MmR-NSdv)+vA#UJj4 zYo344Nj-5QR5E-~oea-M#BE;l8q_P*vqQ8;tZDu18uynmde(#hsj_p8Z++AdwtZ^s z&d!DzP<uYL8S=2}REN4>Nm6X^+xYe3P!!k=TYT&O)nFvp^3OLAo(BG|tz%Xb#F<1` z6C&IuEwe6W>LX}POeE>(hwB#jgKq2^%f7QYx3$f_sCMP9DoVO8d7kK5nuXYWp|{2s zZ$k(ereO`c9_+W}?N2|xT3+4E7W3r=rLPY^|FkI&AMfwy`TYO-w||>XGQw(`%>hnM zY5ex)CQp*b_3G~Fsi@isAxTA71;HG`@H&FYC|ci2IrlVxZk1sMM(MJuo68Hzb-7`A zDoBO2-Q&~a-=CiT`uG2Qe0n0lczt>G#k(*6_dovWa<Qb8+HoJ7;x`5L54Z0hS5GnX z&{mtL&31n%Ysfe^c+O|gjD(~mU6!V)A?j}l2M61>o0u-kv$8H*6b%8~odVTV6=m}h z`<~5;E?}0SPi+Fq?F881r3#VzNMVhrqa#7*j3-C*<Gkwxj0Ku@Rc^OydIXo37t_hK zYpCq0nSvj=Ajm^p0_caLtZEDk=rorX*WZ5o-Q{v|_jvdH4}YIdC)XEOR0T{X>F%)I zY}WMAW_eC8PG|J`)$8laOL-o6d${wab-{_>nMC-&3k5(@Nkq$ouGfEJ?CTeT0v|1T zlxu^*a=;UKg^kRPyzJQ`3$QIWoatm6@bj74UKVuIH(k5m@5;J~bXZnR9J0eCMW{Tb z6x}FjTlEJ#a^<n|SgAqi*2UaTR5~M@aH#K2WddaKt3|<)HG9$O=*`;jb+#-Xc-LMT zjCX)}Dk|bpEEvPGL85TYCN4T0DI~D0xyx8iD4)Ft?Km#EsX1R+6aY~5!Oh;&rg(Qq zJD)xUZ<V7dvetdvbPaGnWf%thgQL64mjaH(kls&2?deJk8)Ss;m3^Y}qxAkAQ5E^c zD#q(tyFs!ZI9wdTU9-U*C~qIxf$gQ#5gp+qK_C?)b8!bye3uOi$HJ&XX5Ox}6C)ZY zjS{$pAJY#yeOFmpBKm}!eGUr-FB=1&D5d-YM7CqQCe?cwSm#jn3)HMp7CW*8wtZ{g z_x6vaI-ilD&j?HoqxWYP$j?vh+0l%872&Bs^h>4S*iup*32icK!MEV`aSnc|FbdAm zujB{ge$b!{NUaU;{r6;U)vw!#))&S1SZChcAq2YZnjjq0vJ6{0;DN;q1omCrae|aH zr4e*@8)F-*Vyfi{-$tO(V#x<Gb<FQIao3csfe|34wn0OvmMw!QVNlvl^PJKKrHn+Q z4K6h{!8nB=o<&(mNth7mp=<v9m;VTp<X`eEj^ovCN6C^>@>gH~=JM6GhS4v*GUb^) zWi-mZ`OOXCy!)qzhCp6O=_;w3n$l~E>2cP!AU!eu)xDxSP)=tyy8}HX*<`N54R4lE zPAz`=`0;=K`QPc)%CcC@W|WiOy?&d78Y<RN>{THk=|!pc^Zk8SQ4Cil<?=(xjfIvj z4n-AaNus|9Dd(8wG`gA|Qxq*onek$hr+K>H7nGZEbe-B2Mae$AD0B$9se^8?rV^QM z9bk}rGhgIUTw@#s!zIH)MN}BsG^a$m-fY?$CC#BaP->Y?Ca=<%5_8oQo%5a!!X%<R z%*}=hDXWEmSsj>2h2MPp+c!7Y508&OfBJm=<~4!u1`bwbu__LSJ$9q>Nqsm_Cb+r2 zSuPh~w{gltNV2x4eAp4_>H;?y9w?y3_Fc+>$JBf0i7JB{uYUSjk+J=~%Cf6k)P*cK zSm>ctbgVF{0G|xFo)U3M=SJ6qZh)2&RZMqm9%(jUrjw^qC5-Wugn8KO2=aVMOF`>R zc5z6da)8d22@ojiYF@zWodK=Pu^sO00;lf?qC3`{0Pzi&hm<kR(2wn)vgJLW;QK3T z>mAe_`2kVlW+d#we$iCv9*lNs@akhaj9fL_>woz$z?O^3IVAGRt`)&A#q9{`sAAkX zjPfwRqH|%lE+smP<H=k<a<(2Ev%ia$&aQFGPN&AS-kH+6Jv2uvQz9xd63!Z6x9PcE zl8HIBpafUpQ3$q9c`X=eGxaf8N>4|gA9&Gb9PfJ;Ucml^SbGy|4)zyyr*D}OIzqta z8J9<$dK>y#@3;p$u+{!4uzP-2SQLBsBxS8AR3q8xo}B$pPIT3gIoZ%v3G6Q+;9q2o zy_9#)A>%<7@1<AhKU|~E0NlRm{L-mKN8E{*Wym`FB6~UF&p7J(e;QuIjuLj;3$L&e ztYt+Gi2Gxb#4f=)d|^}pv1nl{u^U{V(~x3U3;V+kD}QlHDU|*n3@<Ty<5^~*f*Q@N zFpn~5P&5Rv4p0fv!GsWWKFKrad{jnQu71gepL1R^46vA&Wz!&~!2h?u{)JxRci;U! zo#d1>mW!)A&3?MQoyYoOHm6ut*Ch{J5Q62Nqx&$8qt+E{om(fhM_n>DOQD<}1FF|m z9A(pNLjO_}hxea8z5o32uRr|b?%|GZ+qZAt{pq{k|I4?3&~db0KWX2Zv&_N%{BZa2 z_Lj<xD2%HHu1|S3VUg{)3~CjrqJ+CWD9n^EIZT9ghejXD8G_uojR>uyg+N(tM=29* zOz^Z)^p?XCWaE~>SqOzE_)wv3ZbS4@@oG`bVK0O;VpUTZCzu;D$&3CqPt)0)a%5aK zRZ&;6I)WsU!0Ctzl%g!@wdlu6(B?E{+^gj^LI2xNpXc*go=@)Y@91smlL|3Ph$-5w z*J~<he)IMV%D%9FX8#E5#pTAmp`QMsj#VcImxJE1#EvGru6$)a7e{b*6VXx|;U$eU zhlSyT)-Ii0T|zbujr6i;m?^^)1TbkJ58lD(KAlWsCxvcZzn4-r)hsDxU`oT$G@tM` zg}6aNVJjSuKV8OiP}B4)`bJ!d-0rLq{;e_2E4_D^G0zl^j{fK@dwt=;{ac<#L&p?j zTWwu@LGxae%Vlirql)JQ*&&jJq6NrGkA2ADp{DLvr~{v+z2}AF`g*BeUXHS`Md~oR zkljw(S@+oqv(4{*C=UI&R1voUyAkS=J&-;tY468qM1VTzY3*vXnfgLN7q(O|STMV6 zYI{A%^Xe1+dsOH->tjnR5#MlKaV^{G%)<hu&h$eHCur<eY1Bwx;aOwz9HKgzte=9# zb0_}GFwxb5@|1Z44q^Q`0Wo{Jr~7;ZN0gk+NfTHdH!A!Oo~87*|7>y}X2Z{m33cuu z&jNjCjQvli|M7c8zxp#A@|?bfC~x%HH{!Kgy8R*(p50jjo7a=P!cM;Gq}>QF#F`sV zo}$%`hRRW&+O>>_v7!L;L2U5o3CE_ksVS38vNTDu))~FPt&d(nCV%qj$62ltpliZS zl$IijaZ#v~G>Kx093@*BM7;A_JDWuuPmWMeKwjL>f;`XYRDb-(k71hq;rGAC&Cybx z2-cf*yqKn@;SF7Q0P%4k+-e>NmIS$5o-_weV1eMLyMacF`G%ugRW_6jWgYM554WFI zt50|LMY&6+*&o0B@(<ts{`&fw(tll+fHFMrE9-i_-9FvZuSa_OD2ecVwkAxV4qcSZ zWI9h$mdVw--FAx(Ga*n=)2wQmEQur72f%CwNUIB`(`l4OW@T6VLy{$yb-wAF;slih zIxihiGyN30)RI&HV~~E>-36?wG6MRWTu#3G_PZpBA2*M5ev>St6Ft;5Wp2fuR5p&V z8fAhOdbn}W8t7u$AfIHHmsh((vEA>lFPBscJ*`$Py4?7lo9oLwpFTX?(;2>f{hG3G z5=Ly|2)=uy^?13S_i91V(@u@jd)4++u^s>+hj63CDz`l5dxvhFmqDKD4OAFxLw5!4 z%(iK3mvrg2tik*%!Rg~6u4RpF937O!sBWWcB9bO`C%(2Iy@M?;_ekBU39H6hCtmD~ zlg0!YXLBIzqwZ`QP?CqAV0vo@PY3G|%)`!)iF>vY&xW;|+OnLbg<(KPA1l0#70W{~ zPl!3XD5g7MYzr_3>ssCqt_haUjXlz}*cGS|unWXL+y(Al<5%~9?6fbc{ht8`xqLFc z`h*wfa<v2136T&;JIUXA*e#ZKGr=GR(ler^%gt&X>ikA8FKhP(c4ovXmP7U1R)HG0 zX``guW81M-lHU>P`~tUU)Q<?*PLEJjkHKjN%+zdq$?|C9&tEz~_Sh!j7dpmAGn#W{ z*?$XMy6LiYl31Z~i-5Sh^||%r(-)DYdG!*Y{Qs9(Lwmkr=+x;Ic<H^)lFou7mdK0W z{8HWX3kkTdNMws5^tMPNe_!+*yR$#lIlJsr;u?qVVHhk!Um-$|^X@?JGRE<!@f2z1 zeV{_ZzN|4xl)#>kt3r_iU`2Q&XL%B{Y?h{3hvnTvi6|c?VFK2V3LBm}`7;D+jzoIP zLgR{nor+>*ItFWP8fI~pQ7--X;dVM-EUuQj{Wjk%k|e#kx*;T8y(%~RA8tS2#!*t6 z>T-GY)mLAekMAE>D*~PY7HvcHPpg7J8@&x-@hzJ)&>Pbq4n^^J_qf~c3EbU2+--LI z)pk=pJ+{V7^4b6P-M9b8zy9lDHe)=}l{I0d8lzvW*4y=e{@35jeE~N^3XxUU7{^h6 zT&){Qz{^X~QkYZbrXQ;TS6fVV*>H#QYf-2@f$(UirfH0A;Ax)4goA5{iZpQG?V2P3 z=PhL4J21&v_7a;d?9F2pZ&Ab20p^Nfl$NR0D%EPam{au-rs$AU0-_SZv@NruK!3(= zmX-OnPU3{F`GGevLS}yL4`s;mSnF~}>3=%AuF7(GkzZrys?H~q<@{ncokAx_xv5+4 zqb^FUTmsUqC8Sz=N}d|Je~5i$M+KOrvP|%z@j|+h@_>`cu8=Z?IA=%K@^C2VdN!>A zVE`Ez!v!??`J?Frw_yr3y;BV5DK>>@=ry_o^%#{xwTy{cYcLw{IF0q#k2pR<uZ&fv zoxW}`Y8xtfs@%MIv<=~PrzOYOan3mM*cr4wcqopgdb|-8p&__Jg2VX@S{7|&1ln0A z=?Bke9^X2yjg>s3d;Yg}o6JsBmpjaTJT^}DlY8H8N5@O@j$|o4#@2ybcru;??8Lu7 zt3YZJhh~abMOo4X%d^z)!}@)0;b#Ry_B~oc;}WM=;|h8asNV1|IFlia>KX4s{kD3v zDCK+L9w=KIJX2&m5wjed<sk>NRTiE?!>U0{j}?n2IqMTp8@_;a^|3?n*~Ie;DdZ*i z>#vLLts|Z(KMvdFM}>eIn$4zHxqc?}^?b+q?6K)%V6E-11KD4Iyw6LPvwiF%rI!)I z;FsSwTwGqBEqFT7S`T{iAyXo)Q%!17(!(UoF<IDlM>~!p`|{#eG~u~Q;-n!iw>XQi z57(_dmgHaqRQx%Cvvz`87cy3wvu})~$!)ccBRb^^Sj1~RjVT*uI#v~766jCZ6vjaj zq2mZfg3)N<1msluzez{nur$?yAamGJKsCI61wDr>ri2pg>xzzaxmb!vUY_Oe-oDB5 z34M{0C{SmXZYhsK+bU{Ix7qIMLkXP8KH$O~tzZ+hU+=bcS?`O(YK1@CKi=2qU$zhQ z_wBZ^T~QWUmfhT3fAz(e7qb~NXG_zx+uiQ4+tGEYn(EW%&%4bgP4h5{>3GW;?Pp4} zMOi(rS2l_-E@r#kp3Y&C=Y-L>`yF^@9f+5Fgp^8L=73)+3->{;(wM{U&>Z$nU5i#0 z3aZxB$UR0(`3Sr!s7?fs+EzAC^CV3y4ER7e3V3oypHtaY5R_I_1W|PW3mYML!&nL1 zN)@J~hIJNAP+>P3Sdc<~O}LoeAk_2uf?k16pRV@B^0K6WTGw=C=#uWsLIa$8WeFhk zP}Zjd--`|giAK-L8BKj;Hxo2$$Y&VVCUcy}es{>NNEl0(iE4-qJPz^Sdb_Ov=rP!( z3su8f3+ryUqe9hVRo_wUBJreapd<~3jrh}YV&|P<1+}#(%BUD&%7Pl<U2#yAFLD*6 zBJVOJ)Q*r{b_Ss1`A72T9zAi)#o**QJoCbO4u(yOkfk7m=hKNM1Uu<E4Jj=hLchHs zC|$In#tsm@pOhA_6lWRhVzd*}H?9xS)0V9O<s-(l-?@@yD*m4d9I;4*FWhITtT;Z& zaG(LPt>L*y)bGHAZs(;}5m5uS9<Q>D>X?zc>+qG{<e=Xmw<B3c8Bg?n?2>&4(5#*{ zrA6Gt4m4~>Y#t>ixf-F<5|QbzVLb<*=+Egj4)vLk(KOe2+ViuWPBx2@4QXR=a8SqY zw$BZQPx{h^t3x$%3%2gw(7sCap19`*zRx*L>cn=!*#e)q2oL}1(O>lF$n}Upsl1DV z4Ms2aGB+)FwxD%(LwfYUs^@0Rp|fvNtT~7OqJLVcYQVBFYa=-bYrOiH?mSQ8S0pM~ zQR585E93@u^bD9A_#WYnq7)PpCRed?CJ&8yN1gdyA-1n622xUq#3WS5G2D$PA=GWt zGTR7a-8f7Xr%z=@YgI_#-Cku?&{SPbcjZze0oSPXLq!lLrq|P^s`u+H;TH<H`@<oh z&JSgk#Be8|-)8gq<@`dhDLW0!k|;c|cMu^yI_&qKKJJSBa(OwMO<uox6UQ;#npam1 zL0E#k^UI5d{_p9L4riJqzx(nldR6+gD9d(bnb5g+kjjEjV;COxd&*gd@_<jKqvNYr z+a1+DO;L5Q(Z$eff^oGf4|{A`%@<h+_X>LcCJ{P?ysK_2%7R5nX^+rYx3HICRJ2q= z?C2UUmsg7NFy%Xftzp<u0HL=rY~@rp0ScM~EH*=k&fwcRLg$bg%OM6Bl-2IxUR|qT zlEh$RRV9~6&U)5THfQ?@0*!lg>gkwu%lse8YO5U@q|0<pwN42s%GG>2TV7sOhhkss zr_&i-mfdchWD`hjQ{pjQ;FOMx$SI4@sZ$h(KovgY=o#n2?<O&@RH5hv2HyQ!5_4NN zT-S6Rq28*HbBw|mJ8vlYy0Qh+*|wc16vNlqcsIfZwzUx}7;;*p@&fTXroV?6(O{{^ zE#N77kpwdqLfu|E-g}p7uULsh?fp${uQ#Lyz+{e=XHV#uJxo!3ufU7{jUy>*lQ{_J zbu}^U<x#LBD=BYC>VAUGGo-p0P(?efX7@dkPaXfZZ#X-46LWV1Kk;kbRxbJ$y?z+u z+93-GJoRDOIvYh6;ABA0EHR!hvr$}_WLX-;Bl9AE#J$+4dU5wgvgR=)b$ckj=Y5oS zkM@Qg%|J|ohbyc`(pvp?xT~eccvOq%sb@A@x63HQYM#Z1MvKdk>8z7taaUyw*+<(@ zau?9e)D68;eZ*T9k<P%_evUudVLj1>4#q`l;I)z2c1)%ZPF=-+?!i!7h|2mYvUGFt zvy3NK3J2EyQ^Qt$bUnSu$FcROT$AuzzUtIyz2^l4?EBAy2+!Fz^>a408u36Q_KNAA z&3&8Tj85ce!|WLqIyS$adO_LI>Uj>vYAmX46mzvRB}Cezrz&R1h1Z8VQyRy*!T7R4 z(-MZan&1b=Z9GpD%57VLj0;Vnq|?E++!17f+M+_QJJFzkTBuJr5jZ$6cNj$*b}*zk zicCQzX49?Wq-ov7@3f*IoQ4VIbg){hs*RJfsdwA;)5GH=;ZZ7>K_F45+`?T<X7nCe zl%%jwgzR&kWpr~s+&}Eg>bJl7-P@aaKAlkLe%P$<R!>jcJ?7bLx<Wwkn|JU2&wu;3 z44(75)qZm|o99VFiE*`lyt;f<*VRA%@iziwvwYeF-D>^RbuASElPJAE6o<N|$|H&5 zNuD8CLkAOc$T@gfIZ!N1F7w`|6_y+&)~;^oFNCgv=-L)q&3PVXX|P@g`(48sj?ODd zLa2_xGC>>y8pT^MyJp9(sV%{AJxRE>u@@H?^ZAS_pcdJ=Lv2L29N&CMY%RA6ITY7b z+prBb!8>}j!s^TU;`;KEUhw1neV!&4^NZbXQx=ECd`3`ezu!^$at-ox#M`!#u|#jd z46?<3=Y%)wdnXe!9<3RUHc1H8FwDV?Wl9|`0@ZVTF`AAgBk3<xD$w5%6X`x{O<hp| zW3kgEPeGj0t%dG-+lr*9RVJe1%UM3-P*?y}QQD?6hrR-H-OyFCR8AF?i*qOVU|o!d zgm@^)Gt}Z>+i%6#@zhV;|KvRR4c)et<>_m$V_+pQhb(;&3?^}$I6JRF)#q_1#3m?H zbXsH}?pn{hD{UCeyLqhVT{h6%pocD!t=?XI+aNJ($6exp2m+*0&SjQ<4@El4*(k|~ zIrRIwl7RiJ*)^a$MvoDveKC9#=m8BG6?uNspgkyUXWOeRaT<&;6gMaR*s(-|->FvK z8`zs@Dc^()o>7;KU~}$=_lC`bos>(xiiz}{AM=fyoC4G!)yZvs_UyJ|Rl*8Dk*QI4 zLO{#+d%V2%Nad~9mk<J`lZiOHyXy8}Iw=;^U`hL;BF9Jxj;?&9s4!14UIn32n8YI1 zr~+$W<Swfh+u8$k{>4FX&)QOB(=j&?k=tK6g~{MKmCTOFAxB1y>YQqrd?@CaQvWN9 zOhK=_I#dCXWM9UV4VqhS1a-RX8~vKI!mnoEpm$jq9}w&MQT83bxEGXW6(JD^$I?a| z>i+HsnPEXs3)oi#%CP@m4+l)486D21p@2<sKIL{Z#R0>@KX5(}gA_u~a9)Jvm&LFX z%Tp9=xk(iA?mlO!z*3sD<(~3SN@2R~_S^l<+b^!Kub;M??|=9{OXJtq*K~{pp-<B# zT&K~qVY?=%8y$sm-BEu~_UY8^!$S$HbiJ&ar`7sz-~ZR&zW*Vc<iDAGfu}Hwm*I3a zTf|WWEiIc<)q6R+KphW<GCQ44_S=nUT~!T)L?{?dr;ABG-R}34AOK=OoxhB4KhjN5 zG|+aYdt+aeDdom2Z41~HTQOx~-8;Gmk|bR&m-Oy;j}L5_FrUq4QJk=B2*&C~anSHf zhWum=o5DCrq2^JQXdBbtE+<pu*sh^WChL)t`Ql=^q+=#LUDsvjx#eLfySC66p^t}d zT0-jd_s^R($X!WPw>D4lp*^iPO;cSi7R%*jRnfVYv&p1xntgGg(qu7TgmKt(t+GRF z$XAo1;SdN1qzl~IrjczKKNb}xvoBpy7#yl<x7+Raho-2g=7>;m(A`95olrK#J~c-` zo+O%x4S<mpDL13?fcOdh1Jx%K9A^pI$Tf;MQ7yJeS=upoA=81IGGrBABhNHw-fgG+ z(x$9A9%<@|Zp5g)JN7;62Dmc}+IZh>lzoE%5_#M2{+~?WnG1Up1tWMBC4lZl+xkh~ zXsjolgHbwnon~QIsnOIg93OMg?;o%jG`a)c$k^>eI!c%GS7J40%{GHt=@awd4&+A% z@!?7AyBn@r@w6!YOtQlvT{Y}W4W>YW?Yj#8>vrsu=ods!XQ)gTV=lUr1q=Gk1tIhI zI9Rr*yHQ<u#Q$>pS-v&Q6ASn5Sh<foC}r6(79V^I)QFPEeH2EKgY1d(u2#e5U4J6I zQ(+LCm_!FBR>5YJcKD&tMOl<JfC@$Ti`k4Kk8kyk<k61lOUhI8`n{>K%5>ixR<^IN z?Me34BXDaxAMcb3ZhKn=V;w7d;B0zXOzRn%N83RnavmOcZI6<mIFt11;?Jhv>RI`5 zih%u1(4D~F*8dLW#dFI@CrI~fx^<Uegncdke3X5kXL_s%(`^QOD1yIqKQu}a7!LVo z1F^{jEaoDIkSitMIF4eCV2VzfX3+pjT~R37vxbnDJ2n`*wx&fUr=(;W%et%b7Hoqn zPQ6qJ&_6*@I+#RMZLhYQNtXTb_rL$?!~6Fi-+x{`WLd&ea7M~^in^=y>iy5}_hlKe z-jl2wP@o}5d=;io`{LjK{O2f&*W1m<PoL}hkWEr}Dt7H+G9@Uy-md=FU;a$FN0LRk zKjeA7J3vl~F!a;YQ^56ZQS7rMe|`CCGMTM6tGm0qEhQ&{+DMjB8Yd5{CrZ&_7*_;p zr_*GTDQp3C*0+`nr<wU=nr3MYGWR|~nS#odU>{`^g7So4_BaKb=M(hwE*AN0N(r(o z%k5^p-5n?yr;|ylRE=3^Q?v~|a+lZF^f`b5UboN#4O9$<7I-}%4A<ydl$g8*QJgh_ zA*h*0nt^8%WErIm%G@e2v-!L{?3<>^p=jL|MUhYP<;4X=NQ}^{G%p=m5s%<WaNx*5 zmR%Kl$$F03K`%-ydx{(w>CQhK4j*oBA3xvIEdb709L~|})~IqoRx2Q-QC3hSjbbW} zC^P3-4)HDwkI{6X17N0GL;tRlWSZwyS+5Q|s!t;oa!*lFs^-06XJEkiy0)OOK|GXR zl>5(i{JdJ{f!J5AaL;A02(}-vPBb@kTjj1LC_T3b@{mDaaF~Ji?4%22yJ{?y4-FQ# za?I)^h6{7ubC+4V>Un{$f-}?=w+h9trfuIf7DR#o!aFq$7z5mN=7ndfaZz^=><gSL z0E_btlA`uxjM|G+c1F|``wRRinkTm8&fj~eem-xaq(ZykMJFG)-~-01L>o^xas z%;`)N#FhI_(S;nHg>vt!`#w$IB<SgTf%s<H-izMKvLh>;Xf|66wUbXcMPPb_*_5C1 zDp}w1Y-Bsw-+B+q^U_jw<c0kFy+XFffR<6yeE4|#{=-Ll5a^8aJiWQT{`Q;S#jIMW zhEi~F?-&VM2V)-fsQ+w-)TPuoiJr^8!I9SU3#eIHtp;JqX9L}_@1;`upJQL^(Qbt_ zIh3_$m%;k4I0VcJ&%sL`N28H&cXkzc41YQMcF&4~^D|)KKOe0WYo6!1VKZ7)Fz5>P zB<K!k8v&*R3`4#^vz~ica|Mmk7?RM?6^<xZwq^(UivX)JaBK~^aN@>a3q@#5Q}~T| zgvpG;mNy=m>LJFW@TvDlP5B>bl5%@!%I&T$O1i?+$%Kl}&!6uoF;rD?bA7|bq~7k< zl$So--5Ct@z-Nh*2v0WW0>x&Ngo6)z$}1qWT`w=+F0X^8Ee-``zq+zjRo~vepUh^L z^M&X(P>!nzN48y_P5@qXc!2bWrF1)+&FKUyC^&YA;JCbIdAWq2M3&yXdM#sVEI?=3 zAu1>X()Xixj2$3cvE{{_F7EcQYheo*5Zv5>wo6w!!YXi@At;+JOVZgipUx<i&j<=r zs@z}9_lE<US-@l|iK9Z74V?g1Qo_1}4uzl~#*q{$6xBZ~5Sg}UH)9+cm(7Z5nvhvF z1gY_Pc5+*4dgZ%^J4)os*_<wNSri1lCs`hA7*csfDDF~r#x0*3_NR4iKFobt8bTU$ z)@gBQCs`YK$^Ok|dwctlN}H}~!M=_$sG#IZR~-I~Snk3Un5qA$U%-X#Y-!5|ihwO0 zYQf4KP%gnq*HD)PZ`@Ip6t5A8_G6@U#I`pLgx4x`Ljv?O@)UN_%8%&6;G7?TQ(+cq zjuWDdI{6Wvv~dqWIq$YmFpV$l6$;ys^ImVTBed|)>0`kCDRd+w?YfuByU+|7$Os45 z^&z?I;8ab}U)7e?c@RfC=CeuP!TFFd$ipDhFty4yLO6GpFD#54cz(O<Aa}k=t6eu6 zwE|lH9ZPnDErI;a)=TVY6SC!;Ctn{M6!u$2Cq$~F^la?0&yX6ndhB3@qx@LFc%xY5 z@sQPyaHe{jEBoxjm4;i7)dxe#BbQw3xKrM8<k^bRQT3qu_PbvJmC|g~Up1a??)~jm zKj09)y&dmN4R7OE1%59NMaFKk|G)qJKmOzI|CK}`#feu}m%FOCe0BBq`n8c^&*?3F zK8+nG%kz2EZIb_rsE2y7W9{BfkEX@;+4}~1yg*?`3eRKf4eQL8RIfJL>wzB~fwjlS z#0VG?I#P28Z@+ndu;@CTBWIm-o_$9v98Y}5sJG9)P9XXy`{FrgQ(w(CcnzWgAq&_8 zMF-<F?g^7oDhfD5V#v@o($K?FOVGtpMyZYtim;r;sxje^MDygV1JBvuQJ@qm;`I?* zbGOWO#_ldNZkiHOmwbR7uUduL;q0jDnxxFatZVCsr-vWD|Dolc<i05F!{edc6Kr}~ ztoHlEPw(HaHXFJ*lL%HqVkHB0kN_^Wj|a#^cLm;!@Ze-Jxw*W$y13ZwwuHlj3fppo zwk%H~xBEQ>X?h5-x{UrU;-STw5Y|j*^9A8T%9oHkq$3m`Ms$0r>WEmkT~G3qo#=w5 zM&3>GL{<Dc#uWJI1JH<dNZ5C?+v?6z-9p6#BOcpO5W_x)>ReT16|=|7V#k%YCg@M! znZ$8{{U*zT7_sOL?~0-Y^%pS|j!W3^L6ea_hRxydxLT)EI`*lhQn{+pg$^bJpa}_s zO>OOZy`c+~rD<DMovODy{G@^+whFcoVFmF^@QOp>(xJQESq}$A41xDh<+Db6Bor{z zv1xqd_OP*Ev@eUFe)?(sv<ArTs!ln82d(C|^>I}3Et4X{R`|u+*gA?s+&y%y%7Q*0 z*655osJEH2s+g^<L5^c4e<UQ$FlxAYV=*LEB0&>#vpaB0w%$obX=lVF;<};;+%u_y zf#S`+X+T-Fr#-vM9l;^gP8J(l4ty?M?@Sl6<|G_t2fqg}v$&n+eGZ)QQRoJyfqG6^ za=s6NG@?zfi^O{+0tO>D^>sN)fL>=ssf#WA1WUn1gY9UTZ{IQ@iAA=3dI&t<jH@Vc z82}ETvkjJk5Ue`T&I4JOg_EM{SfELdh(0IVBmG}xem+P)kCc(PTJZi;{mzNUwLPjf zC$Fi-&3d;hb^@}E^Cmq#uyG^Q_B&=hYLp`87>_!9%k@@ky(BhAgV0SkUC|Ksb9kp6 zreEHI6|ZPJcvf1GZ3%S0{Ksa@?9X9#RRhgI4Nm3l-Tj-(8zvGOX-}M(BfZEvJ}PZ` zPKP>8Xu-%M;iYwFJF<dO{qA*t;-lSI0oRW7=QwcMKHsyK@3H+s_A7Ng+eDwSkT^1C z5Cn{<%Xt?>6f*+5nnOc7>O#ld^|LQbe2+7(d0x$Emt>)P1ruz_3Za9%t=q)qacLm_ z?<f!`F3HX@P(qkarWuqsT3+~Qn0*1&OWwM}8fr?Qg92Y$btv3He+elKw|p+{cBSk` z$zA@LFqZ9%GYUlU!3Za)gNA|yU6j;zwGG`-g>W4(34tMkY>yB3cPyL(_6ca#P4~lx z50C3LVeG0wfMzRSFhdC;(GNmqv1=(UQLfUw$dyIm_4O4+2ZGP*)w*t~2t<sgs&Rgh zv|!*Cv80bYS8<$D_C4&2eYwkX0;4nf&?sBePo!x&o6NR*Xl>?cte_ROxxc$pp7_wT z`HZr0lE`NtQ)Q6EZ5&T#)26Knjx)DB5EDZ%ns~WP<5B}#fQQsIQLIgu$VO!xYD|22 zjDT>_x^7Aur?u`H0>Wj5ZY?44IHGLTV#wK5(5Yy#2uv_DjKqTC%Qx@l)5(XsPfzQ0 zz?BDdyNr!7un)Ioaj4C5nnwsxA&@y8C7lQpspafC{^T6hmf@j{5+%NeEIk21EA}?# zY64zR3^-J=KM*LVfQ~J-w%Z?e^tyBw{D_3&rOp)(@^&621Xr;oWgt&M379HPD%>Fc zK!1x9_D5Gj4iBK3VgQICyU0q>d^b8OhhobrG-?Pg<XE~j!PxM@k!oG4WX&t5Ic1&I zjO(H!a5_0i+sh6qnJRJCgjfp4g;2bTm0v5Qo2p||87;Y**SkIS=V(=A46m7~?8MB6 zbY?`i!_kbj%x&?Ec1{M9g`KU)JX_@isjXxLM=#T`Nk+x5d`A>hb}X+cc9O&mW@K?u z>M0hYpj!&04NyZAdo1F`fT{V0L2mOpBitX+f<(tYmDY)E%aWt<J`$rn?2*o;;uT!4 z$7#HDWxvlXslges_ep$Uc&Vc<u2BQ&`WOqkKDj8!uojpZ8~Ta{ld$dNrFlgy@Y&Zn z<@I+{CtA>6DiVhjjyB_YO281v?eF!Q$d>gLoF3$eh%7gj&<rR9lpNeJGECF@aHyKD zEGoL~H=A8)I+(heU_{!tqowD8Q6Tevxfg<Ciguum;jSIGB^><x70Hgiw=ClbSxq?l zDfbX*cYAOH<^>q7{fgWR9qFFKHoSs4?hQvyyuukCn~L?B+P)zyY4|vig15pO6g{*( z!NDHyzSud38z9a*ruryBwsR@J4TfE&7{wHtpK%nU!^wlpG==hpd~*R2r8X2lLL($+ z$~yGuQtqpz8pr_G=+5AUB~<tUd+%WMI5FV8COWKC*aQN9vF9pDS~EMB%94^jTDfSz zF{_S1T11a^0lV6LoMtSU)hcYMwAHR&tv7EjufO}|+e1-)`uvfw+JQU6$bTV<42rgk zNg6a*QB0EP)oe<Lxh$)KZ+Hx1`En5Q%MwEKv5MoyR`78Mb<P$;hePqOS;JXq(FRbh zfM7_hqKoB{eq=hI?W>A@niAi`?Jec|(2-+<1Pm$nd=h4(Q=-e6qUjmRV{@^%h*da& zm<B)wr5IE|nkkrdS5$|?-tG^@f>PyV0?w+^4Z7Ju+i@e7(;<A3n8H@lr`EI<ZF&NH zEuAAB^twC*oP+BQtY5%mzIiAaQZX?<9G=z$kKqoP=JY`;x-?0g@Y)UtWnrlkNK?+J zcq)n#8{Zh>!^sgQNSZg#Vpv`wF@|DI<Uk~_rgbQf7d^X{qY7n5>?jlb3ZYzv21^5* z&Mp!Ybc4PEVt*Tea~fg99(N%NJO}+uP@!%?1Z%-k?Re--fR?Hc^g;=k#UcV6w$OB= z3k$G^f)&frmah18G6gB274>2qBs`jo>tI{Inj#OZ?hG<nC@d@98SspyfqLVhvh5YY z{Jw~m983YabuG@J#b<ql4Uea!`go&Jb=I%D_<h>Wy%*&>C4>m;gf`u_vvp1eZc|L@ zV9>aAF?U2i0ZYbdWH2-i4QqnYsVkvsyWzJi2YW?PwsFup@DjfM)RcEAl8&)8&pi74 zPe5c!THIFV)=s1Js4tDfH~NSJ=TWW`9<gF`kC&wSCJMqA0iQjws~eM>?3tcv|2@0} zEG3Q_S?30-_pX&sR~x^HqkW}whA-wprWx)9z5%=+`5?xu{5y^?mJXv1W-xc#?YiSa zd@-HPXS3JWua?V;>+4taw8UOQ+<I%|XNl2e{nHDj+{F0I*H8X#?D-MC@WRcrYwWv7 zr&hs7TiWWpn$?k{_w(a&J%4GE`@<T!He1;zGS=fueUh0)Mq>=2+weS>>g-<cY0~vd zr<mYs@xzGSLGT@N2r7Q^IwhLSTIVn?$Ox`hT}6R2N<qD)5Jlm+ZYx_uA_M$C9{r-N zp;b)~w&K;LSfgVbfjiw=-#_I6vy=;judp+cL<&o=m0T0<%L*~mjH?RN;0U1j>3v<r zLAcvt3{1yUfki`yf`CQ&j6(Fq^6J%_Hx;|`73HeN=+HTlq>+m9j8S8&(qNKiloAL7 zU0+^?3FuuEkz2-A`6Mrka<|`NYKl-!NhPC`Sr@yf_4ZIy^!O7@yuJMhb+AxR(n(b{ zl#S^kO!FCmW2z4b;ay!^P_;zpTvlZ&SoMW9tnnI(;7LSp8yO5D>pYFH7R3TWO$V<t z7!HPFbfJ+}jM}$dx!u$0&`GCQnu?Hk0c_!Z0fA1oO0yyMUnx5_wj+caSSon-o8s`a z-E|N(6m|@Sq&7Gd41}ZAYE4O<a_g(*<xhu#pfP>=blEn$EoJN3bV_L$ZTqT@<LYs{ z+kYyyQ2#7gKto7>SoaYGKxy(~zF1I3pXZTHxChSbn5<Au#~ee*)1X2>VAFZES<#m> zZkXhG#+Qf6qgY<K^Kx&j_Qfd{EsdJl&~6wis^;t*ti)EG&`M-Yo+lM3?^M{OHbnNd zpkwg_0FFsK3FYURgQ<~yPK(NC=)76)HXq0k1szaXt*}C*@KoA9l&kTu3G@c>cXS9Q z7`giy7bA?D9~oz;$Hk(L3HrFL=OiOW8<5uLPL})(#0gUP=58+u>>of|#_OSD|M5T> z(-|vX5k{uVR%W}l6{?^&)i6B7Wg%yoCODsR;~R@~KQYq9BOgRI?Da9m1k`TOY3bS8 zUI|O{MX=%<Ba|iA@gEO{-9_M)`aS~-9M`=#zjaBG+u6F)Mk{?*ylK4n)K757n@G<F zh(njV^H!B2`_-vnGy`Te?D1xfK3Y2(XDQuFr8zh*wvYowSoX9-x!wJ|H}G_2dMwJO z`SAJU$IrJERpxnqd2#X8+jsx+-JdR4TLvuX&~;_TBBN)~su>7G+|>D%VQx=KAG$t+ zZi#OJOJ`$9t5yrW;8(`P!LbJQQN1;)pkBb-_IS!|$14QdiGGQbf=qgND9g&UUJWA* zoSn#tU`F>mxt=hh`>)6!93v5-mY#`NISWE)_VIc^*tGPfu@wJ=!^6&`K)Wfyw0(i~ zpd`!FI5nmzv3Eq6rKx#YSxfggjxGJC(d4W<B=R^++Yp(@GGb=2t4_kAAZ!6HA@=|x zd1JVl%4W{#=}<NyFk@p=bUJQL6IOStr-z4om1Iz7s2hs?QIdr`A0?#t;r++5s<s;} z3(37rI5SSdj7~`--&p$YG@eYR1Sqp4p3Em5YhHtiGns}wxm-W3ilT_(HcxZx2%2tJ z9PTzx`|U0S5iM;SmdQtcqjX<WTE>*6vy<5cW#Da9)>R2Ki+2RrZ8?#2qGi|_mTiux zMn6bbT&08`F?;XWkti^ee4cCho+u%ZZB4Q->b5)3HQsfTy3KR?M7ZBxmT|~V4j~55 z3Rzj&(INd|Q`H2-2@aP*mmv9QI!M-aWYaW=Vg|Pl_f&|ye*Jneo6Kf26!)-AWHW=h zR(Vb(!T~A0dsuC#Ora8lF>5Ho-WRiZjw!ODq(*6Zx8HAe`&m9&Lama1&88|tNa^h1 zaJXMRG3+#KSX5JjFRLO+5|w9*#Zqo>G<69P^U4uKHkkIHd7m2olBTzy2syB!no!Iq z*XX%N^vAlWc)d8J>nW;-fJD$^3g~ldSY9g8imePfW)e_g8BX)5W@*(R95(tT)(ely zI`J4K;!~W!bkDsE)u5tm{o1VJW9xMiw2XKhS=zd;sr5TYjxXJ_ZlC!OkD>{DnXHps z7$hz2&?@t$iY(nMM*?K5eX8$d5nKlIbcsU=^KzQbCB^%@U{nrZ&EZf$G^darX!CHE zYQEUSR$DuojPiaG3sQTQxL35aen-h`QcD^V%`$BO^qnHe@vt^f<M7{0S$Cu5>_KUg zJGq9vr;g{BM^aORng<i6U&>N`k;%4Di7`SP<yNU180dktE1a;S9)}e(MKAt!n*99! zl1v)?>KN}Z^L~N5u72-ISj`lU@9rMnfA~mYB%xfZ^)#nqdhyj)U(C}Sk&P8{0&9ky zYIWWaP&qkOdCO6|_L(f@@Kt}IeG6N(y;Ls(;2Xjt%EF*;^86Cm@n_`rC;STzKV^SS z*Ycd@qS4A8p9m$4CK^$eBPKVgjyHp~zwO<kFcQ^s)egt3JC}pUf6y`12GEIfN@$$e zH21{YZb;aj>q$mf=8YN{;53x2Q_RZHL<Z}MD|h#HkS+|;D1|{`OR>5oKr9#w#33P= z@C~4bB`YLguvn|QPSLy5lww-NeZh#AnmRe=V|F)s*n|mPv-(gx+&?UCUbU3X(6VI* zTuVtmd?M7g2Qt%~m}RZ<axtS*pp%;;n+Ali2;5t6rz;A|@JM7=1GG4mD%wV}Z<=J& zG)1~>O;uFu;?NXLp3Vrj*2q9XKAF%B(Ub?x^2&z-*qHL{x+pYrg=(O&Hi}coMp71! zkt&cYb2W)TzN*^>+E_WHB%!Azxzn^dfuvKzPCk)V`6SaZK9lukPuLa#y<_>=2wEu+ zK*BCWP}21e+n9Cmg$-YJ5XPjmO_40eg;Iu_>?-7~F&OuuF`jnePoHjAyDd~K*l4LP z3M!{Uw#M7<c1nlP^Poy7q(qrTahT|2GRf&q$kKE^n?+H=(4k@YyWAJhVEO*T<|3cm z++5p>E6T^%wIx)&+1)=rPz(#PqOE3mc76S2;JVWg8|y!GdLwusLc_~MuyKq6Z@))B zOSfUfV|v`SO-m0C_TLh^#iKH)u@TNDuAUIfn#$-$O3#V)(ULH5NkKI{H;FH1u#VJ@ z+QXXa!n$FrDJvU5vPr_=BN|AWt}EzhM50<HZCoQs*Y<L<Xg&<XM0OrLGd$BHO6_x% z3CY%-BfRy6y`;lHu&hwF@DYL~uiPFWFGgvml~~mL{4h)V3-8%EIA%s%AJ!=o*|L#z zqs)>6r(42OUA_+~vhdRU9yB&xNg=wIdPF7bIm_M#S}X<~EtP-uxQZ=+k3^dMwpb4% zM;FsOj=Eu=QDZ;jQ&}Z@s#t!~D0U0YPHmMN4aSLxh9f<TQN<w6@j~TQftMzgi_*VE z*PADr)3l`BgqGnof0VA_#779_!KU79wtxBlAKTS>KAY2rT=MjAwZSYYixcY%EX-)- z%5@byssCjA*`q}JQr`VVBDGe*uL@aPXJaOUm1^Xcapql|gt%92>r*&i%`wY)%#94Z zjLgd^ns?&o%efYs;@CY*Gf_U&Zv3l*LALEBxc%&2InuzS=o~>~4_doyi9(sG)7r_a zF^&aSh3|cB2+b-0nvkLr7(kc=Cx}(Gg;+3*XH26Y{)a|QoWxNQQxs|8zFN27LMM=Z z9M<mGQf+iCcy9!|LCEn23YL_0G-p>d&BD-h&XBz`);*=NY6;g{400{|v|e1jnh?0+ zi%zK#%KW@gXV~e6&YBWN66u?(R~L(!0j!TH(^X{^Lo_;B?>14E&L-2A8-JkqhWc@} z{`~RNp(>}7NtUJ4B&7^@*q4N7=@VIAF28ttLpX`bisi-P>o2}qOsC*YQQ--Qhrr*k zG9Nh4h*^joZA+lmG<=aYKYVnQX$V_jdW0yg&Sz7qa*Dbla7*6~$&N{$s2J|Gz_(>p zSE-KjY)Y9HbS#CXBTC2}Qn-Qdtud5l3znm%t4W_~%Tc|n>B2Phc81Ye>|AUWR~ib` zGzte0=q9Attq%vm3Wwd6;AvMi;E*%(m!+7|Zk*=X<>e(^w5#Rf^5UXyD#O}UMNv}a zv)&Tku0X{LDAB|E@Nn4gcL(mEV;EeN)x+cCVSnI65hh7GpU(&<qs5K(I1pVNWA*`` z$TR~0g5!*uFXl_UUCWD7Fe7089Sj}0ab(jZjnQsVXz7<F)qj&Tr5AxWVP_y$8ltZZ zy$;^jl5us&o&%IdTfXO(7g!z>x>0MLE^^3A-|PX*19o0)$1+K%c+1?ac=AkHmSVW^ zW_Wpqac>uRmWPa0oe3|y@b;j@21f)RWD4C2+d9bXa}z@!5T8UJBXA3^Ec$Clx<q~@ zS<<9DkM5OZ30X?%j(a(f(NNY~ym9<>N*Zj1!Q04M_s}gAp~Islpp+(BgrLlrX>6U; zhEJ0AXsGS&{N$PMm{YCn;Qee}AKDEsg)oM$y3*!EO!4e8biYETf?uZos%HvTV|I}9 z%Vg8$mX{6crZ%1mCyX)e`BO6Sl_etMCdxy9Lz))K9^2O+cQFQRDU#_naH3&c=+N6g ztX5A?>reNO_jh-33X64w=nmeR^f1zoUtV4~)~CM|4(=P#?hZ~=rpMRf$Xi1Hlit5_ z?nd>)g_HC+`o3Pjc@WA7URaar56mTO-(HesUw;utujCH?<X7Mp=v6PH7I{62UKP?G zg2>~IS`#p=>t5XJ9fL*3%<ApRxmbu;y_rjU?+q*~$WZj_`k_D6sR$Tkxr)My5^Y!I zNlHM3mskSCcw-w%b_6es<8$Rnrh^c^a5aReSbUBrl7ufK`UjL_(l@7=*!nR8C8dlR zqA48}Wp@}1wj~CQpylY;1WgdpH^mVhgj3L@97A}Kq9_#Bf*t$~D?+Fgepl-)L5d_z z=y^C)MTEBuJN7Jk{qD`H*EgHZhAM;Q?1J)Sn?{6ODJ+BUgT`r?M^2l1d)WVc`=M^k z_0<)nfd~!=wyNO)u&>LAmvzdrDeICR!7QPSo#aTC)6eUtySvZ%bY`O1vb<M$sH`?| zgpFYqk?!dFXH@jmbofwUvLS}$P^*a}LXk~tFs<%nQW(-P5~75&UIXn5O1frh=NUXH z=`=Zg$5?Hm>|3KL5n=pJL7}Bj4Q=5T(wIpavECuoTcUXuNN<B_NCBg5%tteo$hx6C zt5DIYn*c5HFmiXQ7AXNF#gHx+G(ne(MVzE}4^IvAs4F_d4%(1Of;|+f+~{_?T0okc zD)f(^KSM;C3Kz>`0W7n{v&jUdVcp(8K7oo3=B;8o1WINRB~b(sQMOcy&P#_CA6w01 z<}mU>L4hR3`@3|RpqyRMt&(9%5O+KfO_GFQx@f0lNdi0Nu5PiHhQff3mTqwtNkb1N z5^YsN!`Kzkkw`Bw6k*pXr!TLav=Qe3AKEbsG&0l_FGAaKG;)1wgNMzGSTKWU%iy0N zstoMA5DwBrjGb*K6J1_c?YL*)MYoa4xwqAiHoM4T*C6QacUmJ(0-pK8<6FZFKIpec zM#_BF>_9oe@)I5zV$}<dBWR~Xb0hRbZRIS4k;q%?m9La*GdlpNyqbe3I;b8&Be8oG z3+JBDlYE8Vto>$=>FX3;BEph)Aexu1qwRgAgTOv_Tz2DCA%Gu^la1@>j<c_br;ayu zdMyzvb|_rrW3=zr>a6xge%8&K+rFd{!2{nzwa)QazK4w*tViMfevWeFZ6Vv!B@eA@ z(o=<9)CCocRBJ!&c2u12_WPV7T0RknPHC4G#o>Sc<<GM``~5fH&L=aTSexD?<kXpa zJdpPFoBBoU_}s0smoXdfeD(f^C&|^Dp`CMu8tZeOlXM;*Tc`tj+#(-I(5NF}vSBBC zctIfG6P=E6>%)wez*swtM-8JJ%ZbRHYn4c$ieUz9fHVW0G{kt!FTTs<iCvc{_)|fJ zv`O%nV%0RIXb6K_ttUwiiCsd&Fg%CrDpo%DMX;n4M|l)t3lsg;8u5rArwUu|Edu5Z zJEqBEs~H_(tSHo`iqcQR4r?7WDOzpBS|$J?OL!m_8^g|Bi(O4nZ~}TP=8G@B_;N9u zm2kON^XZfhsl~c2YIA~O*)+epx}@m!^tiHYwu9vyR2J2Cw*&d9su=*#ZCz4!r`vgV zDAO#zn9Wf}bS=2PkTdLn4gea}wm9r}dkkxvdV4s40Bp^Avo5RZ%QtW5d4922(79Gc z!4@%0L1RMzLcF-p9eU~0G?_#RcwW05yeX2H9;X&_O*+>I9ce5Lfd4I0?@*uM-aFzs zy;_Wof|8vsFj$BvB}Q3<1tCn9>C@`4KO0FXL0M%8+!I0!x%lmv4n~iv+;6S(N=BCt z`&<|uaC?IFq3G?<SHN^NQnAW$Y$-kSP}wZ@A0O`NBTC@OAf>-a>DUxrXEvL>xw#>z zS)h`mlPlnv!23d!9T#)TzY~i4bW;^n-|V-r7X-7uqg#yWc!tU*I!BH0L%6nsM&)4- zF;lcpq^?6V8XM6ZN$C?W%7Ow=s^NbTXF2_D1Wcmuz$()Ok1Obt*BC8h9GYlNw@}JG zp2ciVID$t`nkB@wD5+`w#Y^CloLnB3Rfo`l6IKM{{h!vgpxNY0CcAVSJLRykh_d_D z+3rNfL41e@5Gj5P{NNc8rtp2a*7bk27y)wFH)1KFeYG$09V`*UugQH7p`CRsZp@cZ ziSHx3euv_Mz`|C6?T59ZH^SCB;|!%Z9df@PhhVg}zHP3?jz%7vYoET4+m%cc7#T=O z#_j?U$Q#&0(i>2{ZJrAH2DkO!sRsY}kzV%*<1zo)jbq2DH+0g+%AV^{8*T#9ZOpf7 zEA1cb*C|n?!os3CUPrdd_GEfH@_JGu!DR8vwzl^xR8CEc6}6P_ds8jG-EFJwp~im4 zfdZ6}wNf3^2Tn&8@{MMJfvFa)OKddQNs4DyW&zrBtvlZ)=^cxP1SHB<<8HwT5dmer zH&*Upv^aqXDCNBCCnAo5Hfl8wFB~eN1Rwo3cE1{Z)<JMIS?F0=s<$rlziaEArmVyL z*8gGfgbIGq4>)-K&(Iwh2C1j=lVk14UTp*WBUs(TD?z<T2GL@w(%^+!>#%a&p%WcP z(JY(%e}ui+k|fEMC1$2-ySaNTxz>hd(7<#<x}_;iA%%RRQ20g>3cr^hzz052W=OE7 zdjK?+s;tT-A|rgUT~&F{xoRGswag@dLRMzDySbUF-t8<9z8_JnN_8tWB7nPaMOsp1 zS0I1ngmFoYAtl|gAc-EwS$o~Od{xpi<wP0zp$Gg&{u->Os5~2Bo43qWR^^ox8}jxU zk={85HNh4XC~-pvCk9mSFk;eqIOfqV>AUX3hwmN^4=F-EmlV3?rL00!Gs`R|>Gfta z_x<TO84%LP{oxTO{?Nl)9(c|~idZ>*-hFsKPZP6D;6EkAAVkf>+~Eol&@$5&O-e}z zDO9(0*=#rCC~tUrc-Y&*cE>);GdF=5UDs`LSmY9=0CmAgg^I7`)6x{Pl+=>FB2A%W z^*ohO`n2-x?c_kda%lLsQjn2Zi^-kIw{<4P8d4u<2Vzj?39FV2Ne<bvuw`o7ZA}wK zD=`k}<i1bojDQk|XeProArDaE*_6Qdg6ky8zRxP3G|ynTv0c&RoVhws33XF=PH-jT z$mH$2;p4*tfba&0arsfsQYXq!Sw+J^5CcgYSkc?I>LhwjgK9=LZGFAF0n>S&kc6T1 zw1l2vLv=$B8^jhGw*BEG_ioef<ULRCKFH0?>O6(HT^3me%b4U+=>}BbVZm@3VEv4? z8lj&k*|7i_=y6F1ta5m!1ZI~Ko?)k)NdX}l$ON-X0Ex8|?pG-yb0+wj^gL)vFGS$i zGW1L#390}EF6dbvg9m!16PXA*idpJep2?<{RR#IB>);m=2v2~9v`m#;67j@QOqft= zNQ+SKKeMYK!KZq^aHayk&Fhp$5<<CcsIgL~sspLxWRs866O2pTGb~PnRo<qoY8BE7 z@l<84!Tz*~-w0W!tW<E(Li%YDlctwr<jdpRKdC*W<_DGxR0vzGjz7`ac+yjhgLkzq zu-{XJIM11%-qs{hKkNx%o<7ane`q(WQIM>B$#7-6FIr>pNL-z<2w*#-k5ur@UzFW$ z)lpFm4Ig}(Txz$(5r(Dq3ja>ZT2ul<camR{b!!Qm&H=f*+>;{h7RiSlSB3%qT2kmB z$3og2$N%)Nf0Q@<+h6~tY8uM~$3T$=$AMwBo_wm?mHt3J>W8)OlMb2MTCPQDNYl$H ztXkYkiGur_#bTARbaw4jr{5QCUZHdTsUQxYcC9}tP5s4kN-pfj(zTJ2o^{h#Etjw= zl;ey_SEP}-0DNbkctU&{Xn#!D**m(SSn~tMkrXkYWvdKEE@26SxMYlQYa)&@vLx}B z|AyI{N&009(@@giUBfn|=Db9s0lidEJ_^{n<x84L?L1??2_P7mkzO4?&e;R%HuEFW zm=jV+iKZY#VG>#*xu`*NT59a(dfTM^-1LXTX@qU9ZWXITWY{$%cXy9}{KKDqF()$& z3*BI{BE{I0Emb+e%k6G64?U)TD5;!;3iuftkbk<N+w9tU(|&vZ@bRz*7AY$+7?kgv zWrQyE^R%cB&X_>LQBIWs6WKm&c6n7uoVmW*g2KD_w5gxpTyL973R&Zp)|$C(CI@V} z#h4b5@C;JvX(vxamc0~$nJ<cbQ&&)U&axrPjg;1XFOj3N=)OZuT@FVnZ2{g+M>EN1 z!I3`kJu?GjNLdarm&D+*Vi^c6i@GYOO)a-f%6hC{IWMQRoYAHwfWe5?ilxlh+2qzt zYASnpqjj>KWfSrCp~;NaN09YURy7394pNmaQZ42P3@DKcfWOe6kpGj5ke7V?_)#uH zmV|r-G#f{`chgcjn@e6Y$^|d+U`k-Dn3oO>bqI*b1HZk_Z*FcSlb6W7-R+vHmbzK; zDgYUDrEx*XsRNTidKuaP6dk6$@afWrH4iX^$CiLER>EnWEb0`RSyDB?@iI;8qCDXz zPXT=QR8bN3$=Fxb2UU(L&RmnH^ZI-!L{1TPA=Ah)TG32&<zb}uY-1S9KhY^*P#1KU z_$YPBdUSmuo`pP|Y(?>?*P9`#c~-?Sg0>wQv{6kSa+{e}4)lP=XBZA*CpRbNg6}5_ z+e8HkZJ5OYR%+l5?Wv%WI3zS)+r>+&C^i5wtO92^q~`kOXd|JDyRlERy_L5bv@|}? zgTFTyj8+Hhe^i*0+7LRI1{N#=&?C1eb_=|IcNXl%nD7Ig$+N7<lLw+n!w=l`&}2xQ zS<mwLz4&PKwF@WaIy28%ez^$NWgU!epHfR`AQ{2xVOb3Z&gnx~`AgbIb@bYzTuU%3 zR!VZL8D3_~@pL-u_haAViOAVYgsc2y&hAd^&p;P2p(7fH3OJB$F4@wO{M*;x-rhX> z+2<8l182UtP8&k>Z~CEdgqH28HD@&PS($@(DS1-CSUsZs4=PkyU61<*xih!BYxv@< zHqSnGjMC(%g*$A7DWp#n`6T_X=v#*H!ygEjEaUWY;3G#dipjI|mA{NzXHjMarzFv> z)0%aMNM4~o>`bhx<%Z+*jH=EC4r6)d37|l^W$~y1G9`wE`O*yD%z{mp+On=|iP<Bh z36Js)1%&A-6@t2MNT#Lte6oaU8ym+!SdzpoTZ%sOF3cAYHiMC45+vLfpYoOQm1hWE z782=g4k<<FWRo>H8mestA?3i6;=|qDyYJo%<1BAbqp8S}U`ZbL`!{di>~_2D)m4h& zrPNrHyz1ua8iG(|CcjUBBc34~T}dgQfif#qyPL|UkwWb4`}g0yL-|`46;veCv?wxl zJoJ;p%_$36gBanu!E>4;HADCCaDsTU+_Ej%fT@J-+DcHCQm<~Cjeq(2-MhDc{pL+S z&CtRwOqoH7S)#F2x261n{Crg<8>m;xeUqqDK}JjpGMB^Y7UH=%OrShcS%j60&t(E3 z3d&!TQDMkjZeAua*v3X-kmN$@^D79RgyZpeICazh=*AICNCK0^pcHx;A(|x+5*u0T zl9$MZ$=^yPKKH}^@fcv=fX7$jFN}oI&#rH-udkGgoIryUM504TO2}gwxdU?WjNWBZ z%2x$lEnPn@{lf!m1_{3-sbP{RB^6b!AQ<9Y14<Q|&nmfBlA_j>*}kd{kB?}mNx+l@ zvDD%=ok@<iDwfOkkM_XO80;rW`s6EZHXF1J5L1h&KFnsGguZ$s^*|~2aqzaPF!}C) z`u60Z^5BfdWa+Bl6d^y_40bCK*RF{_F<Oe1hDWhV=bt$XaG`MQGgEIEY-EOBiK*TY zg$YlFG}9WC<C-)4hoWtMErpq7Mbat)Q@%2oH2S+(&H__rsm!D}X!cH!>-$)6$6AD- zMWY&CA&tXk3YaYt)V1-e0#I<AB!(Iu%o2mK;d2c(L_)D)!0xcbX`4peKuEubuw6mI z>8Inv3q9@htkUlzmPUDE=&Z0?N;lJ0QsNvnsHYJzXT;`(mBt#q*U~4Kg^+$9b@lx^ zCxq<6g<fGlnt8D^AJxLs$mG+iA9pxJucK6jzWi#-V=he&d^is~Kj~D{)Hwp>`2QGk z9S*XKk5b8Y17ukZ)vU6Z+DtHlo}?0}Bt<t?wh1)s+|<iIWD8^n;dN&FQ~$?5{jq7P z7tfww*1P`v)i{^t<%LhGSGywc%}<eiE@k7=l`G`6m!3kwemVA?oFd6C7P#lp!H<ub ze_B}ja*BK&ZKTPk9pR@Q)Kf;WdRd=!y`LhoZFf7Z>Y~Rar}}Y*0sk~4leFbSCyQAv zDCInF5_@ixn-radETU3yf|HSf0~ZKSX!S`t9M-H#T~PFl2n@hLQ$g9G;E=zUO?*`p zFH8BL9CfNxf|%lg6eDM9A%O=Hg}Jt6po2l}b<ErCib&&<hwwA>-|a#X14B}fitqtD zX27f|Du9{jd<gDoAh)!ng+o=<+qSuS_WbtxYC}ifW%lPjl_Z>)VcLAV+1+e5bz9?E z*!1~}+ne1EF(b<Yk0j<QnBZx8m||vGKD)jBc=z!SfBw@r&p?@3cs}9wE`I4GNU*M2 z?a+7!CNO7M9L;WKimS4ki{`Wa)F1Z;3}#f2io;B)PBBt%n%%bDZZ}fN$v3I%s$qH| zF*mV@?((XH?IU@gx+$bA249=E0$Ar<@&>m*?16AzX0{Lm{szjQpf%Ix5qqBWHw@+r zsTV8RlSZD|069hl9ovaDlN_@oIJwk^vz8K(y*OuU*emCOV`upiSXlwRmL@Ns@8FYI zf}b{Y{RtFjYgF)%{Ynb&sp+InN#$G6T*woslJW~xl8+R57@_w$Q@*Qhs*U7BXg`#@ zO)D=$bT`SisqqBINuBtNj_9&{iGw$mTu33*Fxb&5*a!6I7pc)DRggbA^#eh9hBi$Q z@08b)uvEy)kjDU8mmK#GH7%s1)YdPektrVe6sXj1#3`&#pWr|2S*I&x)H~%Gp|(Uo zcS%(DAQXe}g^XpKS9-BRlv%eafRVo;xk_aVc{W6M8g66)q!P2vrD+d{Z&&CFwpNu! z=$>hyhXK`6<T~D%<WmC)L%;=b1K=65+z94OYQm!OIsZ~tMQYARPRbja=-d}k!>3x% zD>3%04XK)x7rJ2ako2n>qGFqsu=OOP9mPh@xT_FVIo3z9!eVta;LrL{m}F;G1$WP* zVkPy4bJOBds_@gPFioe7swL~qS*MGJ(j@S?Ur%UlMX01iTqA2|cD4PB6sV_JvJNNB zS-pa{SU)SQV!awSWZjHi_x}FFhx@zka9sKk6~G9)bW|yn5}>}l1B(Pc9Z*{JXi~cU za2STsz*EGpvyX7<PTNiU?D_`EKPyb>%rQ?*w3jkT9M@j3yQsDto)Fa9Jx*2ulh_Ym zzxY}XC$TM~UXupAgVk)87{8}Qc77~R&G1MPh@#y=1xPMbtm5^V3lrkCd2EtTHRFC% z$n3oSv+p@Blo!%hj`Xlg^{e8t!+g=Q1|ZqbtUl4ifFeJS2{vB&r`*+UMM}#x;%%3w z3_r_pYEz(UkdRVnCpI^mdH>gRGfwj;rGjMf6eos119Y4-idW1!O*~U|f9R?~RTvyZ zQ!>?Mkz7#Zklj-p7%a~W^0N!!^?I|0agbALKTbuFKfk%%ZMSv(;m!MRWocr#P0yBb zoF6_uNHl$Mvx6g_wY%+3w)Y@s`?Am>fC3;eP(T-1mMlb@+jf6A{N<akrC2HIg1H~m zqu_<ScuOH-kcezT>rh!erBXu3SS~8GB=RJe5MMHXG9V4Dc!VCLr6KcPR(u__SwMO> zz|VliVu1n20kLJ-KVv^0PRE2YAaW}kUo5cCOM$Gi*~r~Kf?*7mX&p<Dalk%%mP_fW z8DB=k77DC+>BC`6Eg)vgBB_a7Zr^iC&ut^oSE8RJP-t>+5`_*4R6WBYDKwzK7SoZk zu;Uca-9=Lva>uS5`;*T``GFU=&lEd79=pfxh{dohhjFaS+SGKVU=8GKXsWizFfY!g z*;3I|*2C!_cd5rWkS}6QUQo3ZpF-gk`L3Cr+O|y7nn3s9qGXj^%S^z%Y-ouM>O6tm zQ;+6V`i`{ef)!&ViCU<vG;O;*oc5>FQ9cA!Hju+9Tr0}z+4E;D4G^{OwR)4pDW$eI zHIf)TAVO3DNeJzBBvlX7KoUc?(C&D3zKd5uJuni%6BXB2PNRXO2BBSP#8#(gcuBD& zGp)Im0hJjQq_Qg0tP<)L`A4YA3Za{{zjI%(z?bxDdpc?{y#)7kdg=n@ED>P65QROV z>rBaU7oB@x%R+Y}-QvKCV}86K8*pj3U{j@Dkz#6em8lHmxlOqSwselh%VG6@rE5iM z&hb*)40@olc*VrqqVuY{lFEHoxuJ-$Ugv;mjONarN4%OStkzu|qNl6u!x}e95;iNG z@X0zLoYgdm%kw}cg52SwdfJoAq`6R>;L5=_g1(Sh)w)+}u8>3xYk7H|Nb;0vrXoxG z*kgF|csShO-*dW>YH5Z-i40CuJPTsCq?)odGUw#1K<gs2Ra2H@{Rj!@l+6>_=u(Oq z2y|%cpB#F{B>IR<UytiGZ@FmLn&>IAP6X7@(yOu=-LgYC^W4<gEU1)gPQ1TVQrmVT zhplY4swfQ66=9_xC1+LaPoyrx3Y|*So$?%azfXozVmf;YE8J=&1w^d*r$gKe1xuY1 zXHIowP4ZKStn9*x;j%q$qxUcl_a*Vw0;aE)9rCbMZBARh(Ry0GigRNUDY@yV^3ged z!6tT|2ifGMl%O{6%jzyE=b>Ac5xNtqPlWhu6vQai)Hsf3hoxZc_awX0G+zkU^5~i_ zc7~pUv3jmi99rU#9PtHk0ove`G#i*`s?o{Xd7R|1Jj#9FG#e@Dq>gmq<=YSM=3%C( zJQnxyc-S8vZ(m&Ru5RSqmr`|h2rzQ7Q<y=lN~lJM?TXzerO)Ab`t#Rc1HRujCePz? zmcV9<)JV#2wPJvT6(O*Y$X^z9YI~v?0032G1RRwR)i4Ttk>hBZC6Ph+p0o)`>1hYe ztXTv0A_0a|D}cW|LcfILqOe6>FQHCprxXZ1t5P%4L_vN?t0G9;6@VI9jP3~QQJ1;3 zpLOa_BYMs$rT<ZbrU=p|MZxK`*C-(p<Q(7wAQ%dR1j(i)=4Q6Uue!+0I1E(O3W{hL z-7KNY?Va4f+pDXZ?C=~?VNKmNqm<|4eCUq-*vl$w<@m-d6jNSQp6I|BNwW-Q;m{Lq zDzweVX&N67C#kbp3KK<(p<`QBbzMs`Fj2~TfovAK=$yb!{5e@VxMo>3Iq`i2Q$Wmc z!MaGtVZ8hJaM~XwD$31l+Nx<KA*zE;XMGs@9wK99sSu}@gABsX5!7;&g&cW?3)r%c zUMMO8%%B0GF3DQDZs-7ggSMu;=Jw|HTHeh@$$_<QSpSbeUnFFn^B*<QWM?Z&&%6pA zPM~a?493O4<fkhZS-pwCwPP%j_ra#EO7y*0edp-Y0}D^ya7Io(<Tuf@v1B`_wgsCm zhOQKl>wv!s8}Ja#gJ|cnNZLAcSvjp4v?-+KchK`TahQxU$()fXYiHI&bj^`Npe<R| zu`)~+qme0V0Cr8R8Z)bC#!N{T#Jo&TFyyYJP|nd)cSXHsEZUt~DlWuuvIPx-CClOr z&9ImxxaBN@63(K^VeN`*mmx7`t&AZ>e^xG}gBG$q@ZN$|9ef=KyJ&3%iXVDrksEGQ z(>s>Dk#q&nmZ4ii)IOzbwOp~BNFVO+Kgy1fmDKlg?&1nT%0ovA$W}QO(@@AF&yq4T zWmaW`V#AUXLkxUVEQ3=<b1P`7%L+BNe);0X%V*E4tfHC<MZwaLr;%B{wr_N=s!rsE z1F#NQSge_~b*+h`s)0W_IjpECq!Pv~$dx1vWm52PQK4V6rdvp!(hw~xKJgc$K*$Qh z3ZDkX@MFYd0zx8ZJIbG?t7=DBaT$rK$wsHDuxdf$I0ivWBBHsNaz6!Nmjv^}p|c*i z=l}+WTc?#Vwy*ucJR`>1Nuw|E&+hC&<REr0^{<B!UavgSrbw@hJ8(x~4Xe`Dy!hno zi@*pp!#<&sooOm$^{a27PORls8PsPj9A*-)83V}vSm2V>8;U0SNy=+CX~7iMt3@{y z@B?hZW8W>^@L(URy22URHm_d1e0=ygV16v8g&W=YczT$|&)l>O0n{QXN8}(exPZK* z_ed?V2FjSespP;7@9yr#W!znF3~W*psf!@u!1i4sC0SXbqwAIly}Ota((Zw$rS2Ws zW1e&ij+aj3fR^)2c76cK$FdpefR#cT8hGeoc0&PYAYXXEBS0xjS}qSP+l-a~C_FR; zkkSya5UQ0~D33X!niG1j=4;}us}4wJ*@{vvpSq6vSuKN>BZD<d!1wZI_DSr_p+K;( zZ}yV1NcM%|3caFY(>A4q=c+Qq#Og?Ffb_~TKwe|o?~lFhtlTtUjtg1VP2Jj!X||i8 z?;IQDGu1s8I?@9l#a5?03<)K2ABwgv$}Bmh6Qo9Z$qnfAfwp`_y-axzIfYJLFAKqd zp9WN?tX#?D<TQo2e1=FOM~+1HsJ!l0N~upyeRu3m9&*r|cH3?@ZBf+nMGsKL?m*bh z%p!-o)(BZv0r6mh!uEl3z@1E2VPSQXWh4ep!7C00>@}(X`;Ytm<Njee!JJ|kIt1j| zZ8jUueO95ySX-vFgktJIhO1UjX7%lH>FU<Qxv#Q<NI!&87E^kiGa^oN&Vj5l)3S!m zSxIV#5q8-SD~nvjl{ykh-C1<H<jPqMcM$?5=&t@ptae<0s#>04%tXxqFAEU$aTKbi zdsxWiBXu;)CUmT`RwMOQ>ndoiq>hRVL+oR+bHJ+CmO)GKMH`#3V`-x6gQDN?t&<37 z;><<iV@9c5%Gl=Y-9=<|pt}@n+qHT>SG-cIcpV<AN~i*@;lygvh_5pg&|LAoNH}5& z76%RF?=3nxPouYEP;)m)1LPekHx`yBE1k2MZ&1k+)kPVnp*!_&-hOv?cYo|Ai0UAp z>$Sg_+nkCsshkF~sa=idzDPyFyk9PRz*x*{9Yl^4KCoomEVAPDtLMM`+0Slv*Pd}2 z!u~<I?YMk)urspPDRRyLtg!QQHOxdrB`W<>WTtI2BdR(%T`Gx$vm&Du0B=B$zifHk zpnoxQOBp&|#_rG4XyQD4@T-FQSwAEwDosoFPbR@n3R<gEmODf3R>$g9TRVxuZRUIR zZH73sdXV@;fdgj&XN_m}$IJ|AOdBl=G1~es8Z$teZvn~H@lMbL(V4~PKq@uzCOw+Z zt}OFSnSIfn?rxq3;+{dB^vQYcqV>xaDRC1`JlQT(Y&d_c&H_>W;Xqt8G*n@h#UroI zFr_t<tN_w%0)p1uow}Sr7&fY@kT=i9A^HwuH=a(%u}Aov#-*R!&Gqx!o2n?JzIhyv za#Tym9S$d{KlX>iKr?xZW7&e2T;Q;mMG6d*Bo-Fs-QjSQbotr!P71P7&ix#m+YCc( zSQ`}ynn4msk!fPJLd*bm2je)CHYw-ksXst{!rKLa6QDsS*bFEbj<2xkU;-MY$Vjl{ z4b-+x$a&z8lj9H<7#W*Xu!kt|bmY)vKY7Hi3#bK<|H|=)SOzT==SENGK@%51ZEd<5 zX5)TZnBW3<jOG`3M5~msN;DX!f}I{Bm-2jziWMBsrV(^0StOx{c62A1ihPY4We`4U zmV8-~fx5CoRuvVLfMy3*#z99(soYqJ<+ARprm3%s9vtNbk6?sX<1jC>a5A<Hab$Q; zV<_lxmbcI3#}*=P@iloWbi<(f9<pblS0y<jddL8haU)NbRPZ8Akh0(qTm_qWypGT* z!d`0X?N!@uw_7>62FP+9hf|NPamILMQHM#$lvE?JEzvPSHFvFsCE{8WbGC+!Zaaug ziIX*V|9H56czl1@&%+?=K(15rqkTVC50A1nOOwGCJJniOO%aTenjqrfBV$MBR*Ii6 z#Q7=bTsyR?oaU8b=`psKf6)#!(o9uO#;nz_AJxlWzz>uTopI0wA#}L`$Z|muBX}xH zQ9I4#!KW|<p*6Zr2TfF$PB7<1ejhM6jDBW1uCuFHwOy4${HpB}sQD;2SK9?CaD_JV zRf0NIVx;J_cv^kz=y<qjXVx&@Xfs|R){!>LzNFR0DQ}%oX(%dZMI0*I*h`4o7dV+> zyDn%oc`5wlXRlF%2F$BwX)LLgH=uHpidAL^mlV+9zw5BuhYJDfbY(GfkU=q)r|@#7 zBH=33=Gu^pBdhh;9pAir|JT2KBl(=0!^~pl*blQ>rMup8&RCRH(+;xuWiiW1v@IIy z_u(NF8OZpui)2?iWYl;zyQ=v7vsb_U^>1E0yEQCokc>EF;wFtCEQrU@gq}n?Xw-7e zQl&}x)aVW@5kjO`rcaeB6dK^yj)eAR;R5TI5*3iuAq%C}7~Iuhn`8Sq+DmeAUlh0s zm{)XBT*ma?SX=k$rBaxQE&Wyee6`0=L(15$(JTt<*sONavaX>F?=LNnz9;FNthO5J zP_#Cm*Q)!1-Xo`pMA>X@2y2<FbKf)NfCgF`Ch?1YMY#b(2aa-Btwm|_;!YA4gjn>X zog-5EBD!1p-$8)lY>6m2rh~yS2Q@L1;Kt5fBFDQq5jvf&LwJe4qrn*@e+l_Ysb(y? zPf%%)Q<ayE4;TkH8jNGsPc|!@oqMUdmr)+o&CSi#)z$HCmhdZ|(skYa<9%6I1qF}5 z(vhPd9A$Vz$ni6PrjyofB~P%Q#=O93DIZ<tRl8|1{v>$DO_EPY!hzc~L*Q{4<+gYZ zx?#WQ2phsLdElGvt|=Q7YLi6NP}=fJqWWel)#u^yFv)!bVG^!8@|5zT%CJR>)2Wk> zkpr*DaxF>fb|b~0)J(D<YepMVpmB1^F*(!kZ4Pb>9P}yKM7~xs6~Ni0@|~fZCclPJ zehAOEC@@fz*Mdp{ime<xQeKQeOr>Wg+Y**^ws2xMzzn0vbLa`@a((@HJRIt#K4n=H zQ-G0yEureQNL<(H67pyK$*h1(*JH!BV>vf9x^zX})~#gbJGpB!uwy6%n8-?LD^XN7 zRe|?Jd`0l3;E5zUs@0ysyvP9?XCPq0{R$N@m@ERVm&E3?G0Bfm<H0N<^6k1nq|W4N z9uE6KK39@I<`lASi#+#4)kv{%urND>01MOq2|22#^l3cqtud?e1`NJV{rLXz;lum; z$K$CRsj3d^3t$!Ny1lu%g<rBEW>TpO@*RnB1K6H-EQ&Vcq|lycv=boeCAg<~n2(rL zl&}^ET#RRU6ecUo#^=z-kt9GOx8#$#taH!ix}S;d?z&-5@o>!dGY%!PO!AnIA3w?| z*??D8ArXX4cw{J;G%qXoN)~(s3%;M%2EFAusCr>Bd01hjn9!m^X0O|8WJ0eeC5}(M zX4i4-dPJHPTkcgGfpS$Ss5tInPy7>oC9gD?uuA&)B~FVC2e4Ejdh)P{(v{k6PS><1 zy#R$Nb^yusYOVC-2(<cD`9$3;SR@41t?{vWdWLsJLikyFY2}zD$^$#+aAe;`G#XgN zr{hVgg3}2s#KW<ZC^={NsngKMj74H0>im3=GvU-Negf@xarf!RJix9K-+}_G@_eDx zhk$B|>#LuC^^4#B>NhW6JV#T9t@6}IIiuB&`AG^y=enLqvFI!k$Er`IuuT*U5mQpD z#V<1|%h7ha@|A#x1QJ`;hK?FYpTj3R6;f43GWd83rPF+El>>{ypLmOv9&EDjp{vfa zHvS?TP~3)J|5b%R0xHimU9HMftN7z3Q&kGt7`gjNZ^2-n>g6+S4Gl!3tnM6x^{p25 zIFuFdKJje;<kiK_b3)}n`K>82@*`Cj-ZHi9I52=pM{o@~X%hpjkAar$ZrsjUEx1?p z54oK)bEp{a*CYU4P1&>XTj1nI$`=RKUA&AODJ6<wEJL?GwiKzXI?K5|Nf{(XmL1*B z4NX6G1zN28d3&GSOCrD9ZJ$ZBJ3LxB^@efk`pU>!EFMqY0ZLU1C^|{n$z3i=x&Kv> zS4Vi=kHY|4A2-Ou*lvozAqtb)MQ#WnLf|-}<+CJ9o|rjta+p>%Zq$ThZlvvPakbmk zRdqZKM=8<e_GWe~XPDGLSvHnggXPkyB!%3g3UxL5*i{biAPJe0yPhU=uD1YAND)4v z_|9_@70ft|32h$by7m%T>AS?1wvz)9Y!m1^L)#0ll^7htAw4XIy`0f<kWNxX(-RoQ z4+=AADCAy!>G0K{p+kll+Ku#j*M&}|iIPb?dd+6mx<URa!Ec1i`chg9MkJ`pj)$5h z5aY^aNtjK|aAh%a8D&-1a@^;s{D*McLXHb7Pqxkr`AJFBhXv~r*9dSyp(cP70Yj4? z8raNu^r&9ILgt7rnPMv{YCW0Ecp_ASi}2D=R8lN#<fiS%Ufy<^AY+-VAWs7H(sn16 zaW22_PTk|<Bai(cPZn+b(@8P_shx|Wpk-m8B&G^3ru)<B!^e+r@9yQugf>W`<93WC z<h3Pd<d&+Bh0WJSTT1MJ^~9F1ZsQuAQ+oHEt!@&Mw+Z@TLS_7l5Y<L?L<>g{FSKD2 zj0VPICs$jic4BenIs1ek7j7mqoG6`^z{Yv$mSs`NX1O<#IGhIc*pn;{lWBR%lz=yR zQ)Bf)`~>|ANu{Ti1<DpM7e~ffjMrv?%2ucnVM4rO#$3ZP?+@CkQ1X+U9NNB(#3cpR zMCh<q)#wu|l}KBWOh7b(dgV!KEW|{JjK@Ti$+h6j)kHCPyB?K_={*N^4r3@viUxk* zKpKDNsGWA^uQ;v(m&QSdA@?^#%_nmfcrs_DrJ#l$vCY3qD5eWr9l)lbKfav$?r=EB z8FbyW?&ZsU-AVcIAQ8Dg^-^7+$Ho_9!v++Ts054FfZDNunX#B)i2#&>MRO;Jr`MbI z%h#`e{j0xu@%$O=u%sSHlt&pYx0HscHNH_`9MOd!m9bIajMk}XL_Y;3R>c-{y6RMz zRhauy`q`@ig({8P=;*ANMf2p~%!laRS;s22i;2{cd;<HC;6cqneu!-*isr1R_R0L# zT$m+4A?sJ-zMN=;2`x|K<yoEi=ne+$D#SaWaQ*xgMwjH10dMMmz@0uLwk`@^5b!x; zp4kq~X|+W7mSOpul3_Fxhs6dJqA!9HRSD<IcW&?uaU|nwyX36?fxSIPftM^y*VA;U z>IDQSnjtcJGq2)lpJ+t3Jz*2Dx}7Gk9FxHIhy<!}keHgnT|vs7`BBdA0#|ZCc?>+x zu{%=zw3@n8KVWn{cO!*u!#vJZV=~$nHz`UWIVK;Dd-)?dmL&)S&5uMZJ4mb`gsx$l z@1$au2f+#nu3klHYasfpR5KaH9+0dox)3t9ivhhhrkuc+2aR>?<)?11cdQFwfT5|Q zA^poh=or0R@Mq+}-9ID)m8#U$lTNl+rA8t?Zj9XKZWv`JLjKOtCKzhlU=K^sT5uTQ zEG!i~o22s!f6Jxb0_N2*AX#<p%hTALS-d;1Nlb_{%8@g#2Rd}3y)If2Mk*k=gR=Kw zCA&aa3yn#lQKoUR*!>(&Na79WByIcwOy9#7a>}}nGH94mTF{8)@Bn&#gs?EHbl}W% z|JWM1ZrZA16c3e*wuK(*#F(KYz(qk}9M@&U6>1mu0`3qp+*}|J4iZEu$qOoY*9YDt zNl-@I%|-H-O<k8oiB_!(QVYK8-^+??+qUb6{ry9|ZNEV30)8{{M7a%<EVq;V?FR|h z_lLvKkC23nqDxRQ$7~++hy%v3eN*KZ);gMotAk}Yn;qf!&Zx*lK_y)ZK}lllm{D0N zqF~g-z(VQGXPy$SKB7%d`{VJrZ<^h*-VG$WlqFS>W?5dPBxiL=9}dHJ#hXe<4oIod z)WB3*65?ep5Vw#HorWQdgVmL6ly8MH6O}aWxt5Fvw<K5CKn1rIM^w&{JCx+G7aJe$ zJ~r^Fy-oEHSHbMKV$`ZVmR$?snU3a%T0MG&tx>GRr`k()W;Hkp5d)?Rp8*5w_^Fw> zL?&3OjVq%#nGmVNoSH^-6<P!ivOyt6CW5v&`;F83pq7-Z=QzgJwkzAJCfZXf!j21q z&y{m26O)W{+XFd)tjb9?cdxmEJe?cK_^MXkYCm-QuKWD8WR2kT9*0rFt3)K(L6X;I zfY%j|`#yzp=?DU%B|eRbpghP;k^lDBzxi+e?jK$}drq!Nym|yn^3i>=E?Z4>j0RTR z9=Z^c9e$~jt!#o2X+e>NovyCfs#)VnkP6W{NWMGd20##SPwnF9T!L_E(m0{j*QG=r zpyrK=qE01HNM23t*$I198&4QnqF+f=<BI0ev1RoG(h=Jj>#}1a2ql8tC#Oq`C3L=$ z4a20RkwLha80%~UNs1~@p{cw?BA1Wca396Yf_ApU?5Cjef)YH<>~&a@U_xj!Vy{Md zAXS>LDFo6Ms6NbNF$`U5CAdm#u5Hr#agbOz%DXJx8vF^P_{6GOu6uXr-b<aAoQY2i zX=ExH^uaLE$a&UIv;5%z+K8OtWI0I0Jxv4Tqh?>ZrH@yHH?O8)pG!hLpB@j}YSUbA zi>8&6POf%19!|$&6+%<yw_91nR^o`4vpX}Tv6Gwe0fy-~?24`SzA_T{IRDKn1lYiJ zhu(hRWNlYwQs||`Xr`=Ax!vX3W?gD>?xdjkm`rLvw%}O6(IbyXTBL0#i$YGvJX3Cr zwh&T^Ou_gMDUD~Nf|x4Mtg<jKhJM0h--CRNQV)TdHT<-|1kwW8%h);012%R>V;`Ru zWi9p2Brmjd$Ur+%N+aIR5QUJa1&<gTg6<OdaU?{{N#)d(btYebQA{~RsuJ+DB?WPC zWoCyXD~MgfFx*AI0q!w8T<B`d*gF!vr(}k}5Wv=ov(2allI6Ck8hH;6F){VFRG~_y z#pei7mCcJfn^iUlbPE9VGaVQNPn?%zT$oS*!Ifso3h0!$GM-L#RX%(6OjgKY8l^Dh zpb<LI>v+h(lEK5Rp{%NL7!HTy$B%nm&NW)8N(~5y<6&^~@gQsLFcDElQ*7ef5_)=4 z2nj2ysARdnegB~;i&xKXJb7mTxhUi%sseMWXbB+VOk6u#b`_(*RMN)tf^VEC*Hh=* zXd0mnhzd}isN55#n6u{NvRfltRkj%A1kf#&%u<d*N)gR-Ml>^+T9(Nlf~hGy%T53Z ziOSAAm6#~GqT-7I*bJ((JG5S+Sx$<FSmp(|)ny@1vCK&m@-ElY(I=9O{Oce7DCx_; z|Mjo0pWi}8ZC-;PXM<iX4LGj`aLE8AM5sVyOqnxKIeF4Rq{g!92%^N6#KBY6+(v$k z9>>)2V3bVG`dQ)0VTtmcY$$U-0w$C`xd0(64swc2WHChS4XPJEXPjaZY>^S1?KRfM z??tF82CiUNGjy{L@1y+(w$wNdU3bFl4<+i-cjGL7C24({Y^y5Iit7ZExN!og55^CG zbGia@4bY9*G-#zf_V63)#|}sU&a0ce_}gFq`+xfTe|-M@mRzJIx;o%yIaSp+)Zqy_ zR0%%L1dJL*6Hd+9w%&ZXmt(5B@!Gf0o1W@qiu0nV^eE@o6g8}^U55+$a24To_7-BV zG@MPVNzZgCNf}xs0AR%0JVOK~(>?gruOs#t?3q!mk8`~;f1!bsu2Lsj<4}HeHr$o+ zsw{_`nN+1f`q(oA7zrR{WFx2{Lb1G_Zt7mY$}H=bR0DP$6jKHZ7<s~sQM)h*Sf_Q5 zHbg8&2goShB$>3OW^@6-nnewX;upQdk>u`k60wm>pL;3A3MpZ#dJ0c2On$AE8wbMD zoQK_f7>kC~sBqhj`(~3w;moj%^H~XONj*!_DP*AG%8H%j+mAEjlj{_NcxG^$RL5Fo z93M~nV$)P**~^s-{jnb&9`0`ov#p!9E=!wtZaFwdE&WXLey=FgnM$b^9b5!nqtlC| z%5yoa^GG!bMpZ&gM%X&414dv{`hwbKW34N&6Mz~HIiz%#$BQ}abiU@8RiSZ7k=Ts; z*^SWF?lJE~$6-OzWdJ0>kKy^+S!EW`Sdo>8%)w<~)k?fi%`){1NFz&S>`+x%#(*ft zA_&lar2dnH6e(eHnBH1t)NnGsBp94xiD60v@lMbxy{;|^Z<y#~)+qN7pejtgrvbeh z`SdLC7|6L5TWDrwwkRY^mqP*oAU67_M4SiJ(7~($2R*W9hY}JmptAzJsuK3lrkR{7 zK!vItZh`7};5Y&SL=5-<v@(frOJEl$PlnViNqWMJQcr&VYP)OOdW8Js1YTDn(OJr~ zx+xpU1E8)(d5RDjGG2b{-JOKVoGJ=9FDyJ{q;wrI$Sm@@ufBW#POe<4@NVeQv4X{u zmyDok8_5+u_HP}%iD2rSn7XVnOUN@AHqGOQyE{oZ=v8g3W`3*g16Y#s6_nsX1q?<Q z6uOvqdaajO2dmme@}z5vK8H2@3-p+B@USxCIn4FVGf4m>!+<$51yOYJh{8gG1kHQ8 zu2auIB2a+I(nBR9KhRTnD+4sX026^HhN1FZ1Q(H6M3-b-&g>?aYQx#nXahXGIiLEm zmk(~L3QY@1vd1Bj^yPT?fB*S+*Uz4P`SSCd>nk>pNE}*ex|j-6lpI?0X;?*?R=H;s znLsmmlpH}djZ7p=YZ;6zF!E%)39A^kVi;D2b4u+}5VB@ipr%pZnNtP|rw|kENyJ!v zn$hQ7)volT79=zPp9giJ2uK`|+)*-J$JaqysZpTR>lNsy0H4?oQaH%}<j6qkjbs&h zq+t%UFz?~Fc2$}Hvm*B<fw(#Vb$OOGHC=-JW?W$1?GUFWCzJ*J`t{3y{KtQM`RrD) zX(kGsa8?l_pI2MGFm_EMBb-X~$PFyZUFJi<u0RAOa5B)w({FXw393Cl(fQOZ1a=fK z`s7q4Q{hIrQOM*-({eEWLCay*p}-2=ih+`qNl*#^0xl6_X>`MLXGKqCahz?lI3+c! z#c&+A<IKT(t%kPhp<<p?xV?`p=<jJXlEmZAQX3JXrKl@bz7ivKfcoTifIvGFqUEO$ zDZ6|Z32B%KrG$Es?Sf!g<~ceIfu34Y0hE~2aa>L&&B#Apt6LQ|vbpV&3bKxmnAf(& zIHmPk`$pHTD+%WpU!<Hm=%08qS+iMsS))U~@jMFG425%R2}Yw=kqHJeKg=T%6?kn@ zTzE}qn5khRIF3{Pco^DEwb?Xfh0Lov9lGPKdnW799S*y)1hR_WLHL$VRpk>p)5~|Y zaSZ{otUJcmMZtBMlj94m<b`o!=9m-BG@^e&-JRu#nJA<}<*Xzk_T-Mr>X9Re=@vdh zav1=4skV)<CN;F&V3^@SCkry%sgoV#30RdYadL!VSeC1|9cazLkHaY2R^lxl1cu6T z#LDfNFz5%4b+kjK15j)&IaXxd$~DR%4Xw&tM_<sC?K}C>CHYYjXyxpv$k($}FC+vH z`=ykKSx6u$marTo(vLHs(Qe)pZB951sR%6na`~zYQUvri&__bsQ+;op3QtJ&E+GlZ z%<}JTQ#V;5->dI?rnCT4LpoR@IO0>Ed7$j&gsJMPX&Qw)0g5k|t$l?#IW8y5@uYk= z2^Dnporn?3cI|eu`FMCgj3d|n%x1+PHykeym}{a}kY%#8fNLKzsZ${e0la-r%nMHJ zZX6(f-wzTTIlsXPURDj1E*$KWbF|W{+uddvMrubvgKE3kwDmSGihejru#umUWUol$ z{a+j9fya_+moX<#)$qosG&@yMY}C8J0ilRlm6_rwJV0y`BFqxSkv>YvWFH?7i*m{4 zj)uy`DhivTf8l51lB_I=ewiYfSB^ht<;k3}LG)$8h*0ip1^>oEwW{3NIY5O!QHjUI zyMV;ETn4r@I@@SFL)=8x<`j@$YNJjz)0ba-*|ZPey#Mx_Z{9pU9=~|;^7-@UIH{2Z zn6p;Cix4z0@9bLdvUzBUNvD*_S`nXpfpxI&S@*InX+tzKq7f?jSK5|L>9%2FFBNN6 zLy$_QYY$d!GQbndBOA-|Zlg{n575RKpvI7k8YZMh5iOpDe0t^vFI33UBF&@Rp%E7} ztz^lKJ)~Pk`BQmDHGt|Fk=tmA1@>aKP)n65WfN6MlIuBP=MUg0%Nnc8O}3RyaqK#I z?Z5lti|1EYv{nmfKSjOF^bA~bYFcH?xyD7I@8i=){+wap5Fle`qKFNH*rHH1jEZC1 zLW8qh<cyperg09~kv@|xEN6%;A)fX@VJ3>O18WOiH1#3L4CUd-2$&+{fQ>@(^(nCe zwIWC7mQ{DfXaqjPp~90;W%SBaF!q9*_cU(f*xM%;HF2geI4qtYV6QHjNKpt{z9AOB zCyjmnbn3fW-G_5M$`)_p84{mVri;@s6aX05+>8$L37qH#w7c1Rk^>hDWc{{U>KV4p zPe!VjIp@$S>z1TFU+T=XU88A|MYU?&K67%uRj|ybD$q|fWu+E)hI}Xi49kdo!V?U^ z@?L)WAZb3=xa_i7+Zb+;*jQUYj1XY(<Rxzo{plz%awx07(WF#rp8YckFP!vX963&r zXU4-6X|+`P^U#sl#`ot;F3|GR(|{K4eg@)&)6@fx4B1O4VWjNWz(j}yHr7)4f~tB^ znSqezlM19ms#vyXCYRI6dpZK<5H{z`YJQH5hrEwqR2r{xDj#TSgfvY;Dl{_29C}+A zYDv^U9L7;fp)W*QxnZb%lceIpw8T!BX)2AmY30vo=O-`7GX_+tcc8PJQ-TAEacoY> zi-tw+VtE>-!=WEg7_l{NKwpt#!-1eXNa&#-agdEBn;M4@I3%g1tQJ&Di(Ijnb(z;n zvO-QX%_Pd;o=Dk;2EvqqxRO%w*3+pOCQF{yMH0hjQ(^eP@tKsyrwMv()G(L7$Z;-= z<MH7^(jj0}r~*{W_n3!|Z@-(yMM*#&gH@_t7exzt(niiQDLA_QX@5L0VaQN4q)Eja zFKLLZ19{|GmN!)+D|?nZAy>YbysAEX`BGh$4M964lu0m-$2Tp&_)^Xl1<(}N0w4iE zX^~WlLO^naJf%P(r=A#&ao|NnX=ESEyU4PzI$iX!1xNm8K-zNZ?(RMiSB3s?!Dc+1 zL#HJN<H*oL)N`P`5FniNZnA+QRV#c~hgn|p16iUdszFNwv;h*<kaJ0RM6j&jFU<38 z1y?B?*#Kb6qelY+Vjw}{O57vR#eMk_DrAx+eDnUp<6+--{oVb;)%6uP+D%<%6pTNs zVi~^QnaauYYYFiLqkLoPqTMMGgP3zzIx#T=Fe}1J*{)B{g^>V5lgLCL0pJdDq~H#* z%3Y#24*eg2E7Sfecv?_Ioe(}aKhScJVuQ-<4h$-uUKJ|VNO@7ZHAtpRPQ^3;)ry-3 zdWjr%@F3-+My>_Y_mNOYIf01VU6{PWs1zn@fU`;LongC)Yhjg}f`wx3tLHbbpS{@a zS~}nmA(yb1tZ1+^YMzy7qPEkDIsyPS%7>!HkYdOIXrkImXH{%uDanNzXT&uj%cUFw z)cYLTKNA22jHx#F(JMlwZl8L(@XrZUP*yQ&$9@+(UXY1(fUIz|3cdw!N<M`2!ou=w zrIiDvVbe9lcsiY!l~!>6NyXl?;Ue1*4<*1XC;9Q{8!O1vw|+dCatt_RSqeLH@cfU; zW-Y7oIDbE9YY+5-+2jvAnj2;U+6vAn>>NmPlkYlVQuq{lR|h6ZX{CIa?X-+iLyg*| zpY#CA@JwK2v_$j=+spXeFqWvvR0>lyZlH~`+N3Or7VAzG^*o(6)A+fc@|YD|s00%J z$!SW8?yw!3yejjdI>ERXU#F?+gmV-KdAKPV)Hw~AU5<=Ug5csg`9r!rCJXqfnVf<u z;Ad%QF;62e3RpbI0T!jKMG3`nnQ~mDX#<iBXPGbsC7N_1AQHkC5XZ(d<@7d_J(J0! zb9PuJ*?>89&l)JGAbvXxeWWlm{nR5FscN;iV2=Un+*Mviojhhy<o%UX-|vqPYV%GR z&BX@mU_+E<LDnvm^d;FOPv6pe5p~mc3runf1<f3SKADCGc}-RqIp@x32k0n7lHVyw zUnaim$H#}q9@AW!2hTw&$9X{$Z$KMaLLiBx7L(ejsmsAbF7X&@T~4xn*-~v&$(@By z1BUrUGEg^@y?3e^%O|2$ZA?A6smw4$kVkfaxWzKdm7Y#HoTF-h+essk8Wm!4#F?{# zb3MCTm3*CDoBFz^B{LK}rIf@_9Vbq~@>*_f+q4qoCy16D9*_I(bg-o80FhVMvMDwd zd{pI3@B34cl}!u7#~yIDOkzfcK47jAmBDGNmP}E2)P%IEb?~Klo|vw)t*47yIT;S( zCw8GNl@z0NV9wIBnr)mFYw70M|0RfPQBQBOYv%cI*mr$z>EVlBzRdvn9tKn%S&7O4 z;63z>EXA!3RQ69fH)Safq%>VK@HiS-VRa>WW_RjmZW4)~-Wu)ZVkS+{Ci)hMWSa7o z=Yj~0%7k1Fsi|Cy8@v7}Hy^VER6ofwOPO9&&C6G>#>L&;e+1R$;bGtR+x93)-qqFB zrml@PxB;+|N6==g<N%sf^5)=68dmSA77PRdIW?3`Sx1}It0qxL+f_c8r*2R}uwNNL zE{P(;DBK8|rqeT|aM`rRv%~?VDiE~gr2=I@osZL9ZrW0Cil0L6hT)$PKF+iCkpNOU zbt9%2_->px;~An8jiY0R?p-3O8|1FwI0~I4Nm64)PQf38Q^HaR6fPO^I*5#tJ_>9I zW%jSy=Cjw&ce`x~*0qZqu&7L<x|k+A%T1q!tGE)O78X>FE%sX1rY{x#!;?n>xJi_g zOcgYuS(2gb{z^Irc!y(mR=Lmzp}-Mgr_2C!luOkh&to`H_-yLCPVSPtWh1GvEC5LJ zuZq@kE<h%36&a<=;c7_&@<J5kiil?7=qQ$iMnZ(ahw}_*X0C-6<4;LvD2%Fib~H7^ zVdTKeKO4#FZ64dwD3u)4R@sF{y0Zq`iwKQLFkdj!0wIw?#~1YyRb3Kok%6BLfbn#u z@bhy)TjKnTkfI4bGbL=}Q-opuYL|YYW#~d=SwT|TLKAt7!H@-)SY5WQByN(*XSv2; zc`l__;XOOUmnmWyzwdO+icpi)V00m=($)-_^4;~Os<w44cXXUb`RSj3`9)KdfP0a3 z-H#KAHEKnot)xh+ACQ%LP8t#u@reOY9+2(pxEN_VB){aSny{W+A)z6fvC|}DamrY8 z{8A7%m@q?!l3!+Pc<2>NKho$Rk)jc^HdJPSRDn>0x<Sq+sl#AQAQ>|fWpuoOKrSGH zU#`lu$cU?)-D!XQVtO9^a2LPAzqr#-uAoSfg`0C+B<~PdWy;M#`9%PlGR%PAh60#n z6Wtkh<scYpa=Pa-C?;toWg-c0^7Akygu~!MO!7kcuO;ftJ1ru><}Wxb%H>qd%s4KR z4af;A_X&Kh>#MxTXxOqy<|;R8A@t7Zd>f8Qa+mVDEOq`mBB7yZwnK3bg*5Q*Fj#_7 zW1d59EeRPj6+;Agl~YD>)1Zb<(qWh#PrQYfA#qnHRjA1_;Ob{T*+Lc0bIi{1&%DHM z<W?^zlp*0#p`mhp6=5GL1}9HSZUr%Sv>L(e8)T^jZ2*>zDhM1sfMw4~MJk_z5dwu0 z(K>RRc_T%Ylgt+(Cps(T$xK3#1`4{`xwUN=r5$MP0QInpcm<=*XMpI-bCA2YNJx|= z6jFIsy)49TIUY_@)D|dIZ6)PjkxZ2OSN$tFBqpeecJgGAWT4YuX(XH7gx~-_S_gnD zI^JmhPf4i3pC6A9Nj`Q-eHtJY%h3sYL2J1r#n8*=FXZ3u?jCUXO16JG<U<d)(VOe5 zt6fRLm<RX^9XOXk6%Ld_XqDA8Ib2Xx)3}0zBtw3aRSRb-y)Y$Wavahq^laBLIw?$U z#j?SYBvq#eqm0%dTP}$#oyZ(YBDWVQe4dmxEx~9ajtQM4Lt_cDgcJ5=JRofr7;;L1 zo;a74%o`jDc_g%MmHRCxAGB#1_~}C!DKj&0Fsc`f#6!azy8bLiv*_$<VTy_chKavC z_*Yj~zx?X+-EO1QFQl~!7Dc|R{vRghCJq{KVHH-kK1856Z(MYqu&H@cO}i9g<jOaJ zvX{(M)VS$M|545~^vP!VPr9NDc`9iW@~kGUnBxpMN8ATYOeArHpAhy+fj$uw303=# z;&%a?Q#Q4a=seBBQ?(QhmrhEajm(5hOV5PO(h1AQG#I6@+;E3R`;QjBD$bTCXKlSt zesyW=LaYCQd}b**R+7u_bCTYdwHnUO>|wm;%rTwA@J!1rDrqqM<7hV2kivXYRXaHS z^%t@r@>{7FVo|GZ#ya;K@hBHWEy%m1eWKZ^#~~AAa3?Wf^1Utd1#LX;2tzD~JOCvS zL*xmc>D}tLcp<iqZ6-^E1C;>gpbl|mO+OxwRoiTeN>=`WIo@GY)VDWRXe1hC9N>n_ zqsJNS7E5#~E{kw{@^At}yox;I@XFOsG^P4|RMkUE75+VbvC)bOi*8&d>OoMF5eGQ_ zB+NWe6}oTe3*Xk!IfoN<HG{$|1V5958juF5?r7&_ly3w}K9=7+6^T;D!?Hvup<UTl zl~XNv5QOH%hjWJ}g~$nq%BuH-Zn~T{uw4ptn~)<w!Y_HTAxJUD-jH_cxFN%c$#iOv zXESA?zy!cw&SN@ZLXp53u#p%^7>sNf&lNS%`4P#&j2mUq!Zq?)#wQRS@u5U65BG(w zZ)CT@UeH)%PV>T9Uy$N$nK)vtAxOU6Y=SCRnN)Ja0S><?isd_$xfHTFTJKcKgsKMD za9tF)P3hSimy@ut$=%~=hL-k%`Wxm_8HgATC<D2%n@w9*1uW+Ymy#sD%#m?=v<*kF zs3lafU$4VF5^)3arNz?=%ESX*S1nY1vy{vLkArZPM06^;i01!H^h?kVbYNj_Xlei` zDE2^(Xi5MZN0UmgT%tb%ie*5FfOw%PLU6Gi7pnu(D{x9;E-V+A!4yjt<}gfihxX+J z3n?zI5%}IoE&e1>%C6c}1%O1>-n7lG-SpFR0^$G+@5io}EW1W#0+*`MPdvo&-y$qi zYNykKglmbAvRqIUvVEN_cG4yyZB-?gz1r@^$=!c^T!uyRgfvg~hojsINvAfqxAMe> z?ugqZJ9XB+0_j?dLtlLXRu;Y^RBh4uWnMvmLVi#lWNwx5W7O1<n>#uetw^7hj)JFw zY{qyC{CtjWlCi?|(J(h5|IVnY0({LS)<C&R@+7(Hkl}3re_g2X2#t4cSI{r8x-iV^ zA!t6)#}#d12R{0El7*MsLh2}PY^r8i6=6aH*wGh7-2tspTUsbl0d|<eR$;~^3{E~| zlrR4B#j{`j{AbUe-Jm>1B8xAVk+`0zXz1#D%u+-B=v4d|i`lJu8%nbzcM2b#Mg6?= zl1ishj`B1{nPN)6TJ5G%ozl~&3^WD`($TAXm51bj76&1S<!k|_Y+qa1m{qlFx3Yo( zKq&I4u@@D%JUIfS>|thU)r~oc=F6-znMGyMwJZTlDmz~}tnBEUfp(qJ?7@@wpPC|Q zHEgIw`(OTbIU(+n_>kC{ik3vhT1H0=EJeFX5Unxk>-*ER4z!it0C2KH`@^e7`dMm( z&HLNXKfopELMqIM4LD6e+w@ZENM5W!2i69tH5S};ZAVW4FUsO9WF2S7=koJhTsg$y zEV3V=W=TPSStDUtq9dTv_~=JlESFLwJ`BTYI33&PH`mvjuInDYd-v^kZ<<E-at?r% ztZT?WAv%>szR4R{kuOV>^7ZQcMsK)OmD14alN%)E!m;bfjn3ur21xCzz6`*nn6lw@ zNecMXWTFHf6g~k|$xx?fQC`Qf5k%D}X!0R>@#NI2b4QB7s+tK>nVph^xmPXRB+ry| z2!2-1mmv2Hm>Q~}E;@EkO6pM(Pbo#{{*eQyLj;7AX;J|P&&u7X`j8amrqpsD6G|Jk z+h&+5!N*xHeWX*bW3?+`ThihwE97v29U}dV4Z%XNmIA%Sv(`kIhg=J&ri2BmCKs~u zUQUkO+97e%(CMWUM-E*{r~Fag!$iF+@-hc+&4U{Zv&9*>FLmTKN;#qJ9iZ(<v*gE~ z-QLJgK77189`6sQ<7sr&_J#_|YFL6sG@96B4{=9B2_I%V8T+0Dz`?&hXS##hSN>cz zAJV8xObKlju2?AH2NVL8nprVGV_c_)df>qwL1N6rxRKDILZ$a$w?(`srQqq~3)Dt{ zF#)7VmHWXRje#dP4F<GLXm(OkAE8K=XOlFn_3)aRvK;77NTr+Qa$zGWQ;1SfN|&8z zw@_d$#<7o>BX5UgtfU@>T#j$^;(rdq>-)$1vHyQI+jmKG>=(?FtEMeWob!MhEM--; zWmXznSEfCF`1QlT^qbdzNawF7^U>5OLEt|P$iz64z-`o2Bfr{R$)`R%JWxMCHop7# zQJ%&qmEvbFUbfA4K+m?5wPIL?7mTZtf61qAc;)gPkJCtNscaZJ$>G2pgNi#5mBi-J z<0+*n99&k|-j}mzNeTQmc;?x`4YIgl-YF@xq3;%$eh3M43{yV^_F<#DjymO{{8VXg z5>k;v$t|9S>9`DC2aN-qznQAj;C?v*UIFTymjc#sRAOgG7oBT}?XzS<o#0gcW{wQ` zYy`YgCl6ERC0#6l;r2^j*1PTQtFOMgxw%qpCj}#s5FOo@jdtMag{5W19OYhosc;Q` zXsYaI251CHa=cueo5b_QMx_?7{X7zJbsVgOO9EqnMVURj&qf`Qvm7J~)VoO(NFl;m z{nF4W<VI2~qOBS>J8|M^fRpRW=pstL4HuzBR80@7^BKC0tXR1j3126~He0!8OA;Yw zoDqkpCW245=6f;tTm<W1{nU8)hbXP&BI14mpMElMfPB9sCYp@Nd909DO7QSc=1XtE zKpWkpwdT1)53w3gy-!MdQfnlR|ICuIpO++x3M5Z3v*Z#W?PE`yX!4YE0WNfRwwZ}Y z@+VobW*OsKW#Ol8f?TpBm=YDL?G6sF^YG@|H!okke7${zG}%GF8K?k^Av4K7;7<Uw zvm&~pQa&CsIx}%}FAw;5Iy^kwNvfWPQquGN9u}LP5G^S7!PX$ZZm#R1>bs*<YDLw^ z_wD;ZmNdqEGg?usq=D!`!VD8Kxxh*elVKVb#$ck$5e!ULoVt@-q&80`A_L@uWTEUI zAAm))uriW!W2Cg;ZnMoW>RUMVvfH+m5A&#TdTN(VIXb9P+NLuyVxt_2Qb*&<0+r~b zKw|E2Ko><xlB(0RR=168dk3{EfD^;=q#gm*CltFRmr90lOy$O=W~S+^od=hfDT-30 zo(?@~NZG=XDYdgDyMU_!)TS69oVIfzd04^)8IsqUnmMmhDvr`o6MK<T{UW#{uPRVF zW{NQe+YD~E5Qs>3*^+km{oQwWZ{P0w>CJHt+2%7-Bv}EQPIS+3OsFMTR1%PbZHD0{ z7)Esye8e~C)R5{EmW?k*QYlp_(Ir--l{&O7Kn=xgO3wy`&OjiLCXuun8-WMIEQ2dv zYg$LM<U|#($U*~YgJcjMk17LA&ko7SlxUI3*UkBZp4k8Zw6d0vc-kCpBot_516!68 z_K_?+OR+~3+HwlyM%FE^I<q}SOOg_q8_eEH-=ALfA8NCc2Yfq>|I=N1Uw(M|c>F(J zer0mgpL$7N$~1kRNy%)IVa~&&&39i;ew);f)o#8Yz6<q~_6vc+KAg2e;f%=1g_rAm z{rshTt@j`9yB@w8azziv<M5yVZS1FC{_Lx!*~mKHPy6w3lslRi&<{Z#2=~%-ENX*} z1%%^>ED23r6HH@0QykfVYmE`<fVp97*qYPnBx`wB(Z?)=+gC5PO(`jM=#H4JL0&|n zF$QcyGHQwMRC^-&{5njRVFWnVt!%Lp!w&GVq((V@^XA)+l1c=(Z8uHZO0ltk90aQc z^+iQliKeBxA85ZgvD7RIU}KJO)^W6iLRAH<EG3#9r>bFe3GykEb@L(_;ft5gKYRV^ z`s!N3(?SG{dRcl^^iI`Pj@d1zq$!8NDOjplvJ&7qc%l9Un{wzLP$HMLB3t^YT@8&B zb>-AC`bx$Px;=4BQ1nzD<iIW!@Y+Q|k4sEhAUMIzA`iiniIrC+LD3Y}US<OpVy1I; zm=K_CX|)vP#b|k*t{YY|TEjgQSg1gy4FSogXLaZ}xa07aQCCrh(Z~c)gJ9zf_^IN& z2*y7en12|9&kn&L=YXC-i=}l!?0nRo#Gp=P>_7>1!#u8|Vyk-79*=gIN&G!yuZ+pT zRZge!p*z`t#_dID)#}zSIxn$mEOBmqn;*<`(UVS!%jquuf#%Fv%EO<(loZXAtyCOh z`Sh){RYKYhr2b^po=#)gO8#5PIygM;yW_FUe<p>#Ed8!K1nOoS_m8rx<yB2xCFqb) zZjAzu;1WbeLr_;#!j>hlcM>Xs#KpvK+iGE5*j80jRc+H;-`tS?3yVeBvd*j4S{ihe zjdIEY?mWzOK@+koFJIk-Fp0&pZFD62~1@i_D!AMQ7G+cul7@4~XwWdoPOahZUQ zhA_57*KX{ZszG6H^8J2KKv0wJuH=pk18UrH7*407R1MoJ*$jCDkxMy|XPm!OGS=2y z3WhtGEpilK+647S4}<!ssFG_az>$=toLxaABQfO~TBs5a8YD`{U?xhZN!iv~0-k^f z!-Q$c(B=cSPU-;NCrLOQPm<8&sB3V8&{qd4(xI1xPocaF0D=0L(QTlZmF6fZwVW_S z3Sm^68YGs9<Q&ja9TWHU*MI%ffB3)d?%zMQUtqG^CXZkLTXOxXxw*#Snlt|RKm#lt zO8HY~IcY=8^*U*m0w^o0(!%nKjdadO3}rDgohD(zl7huFs$B=+V)CG=x~=SDv;^hm zI`&y`gtO%v0HuL8M)W~4MANF)Kq@JZtbTw7;gU=VT-tLvRqvxcj#bp;G&!`CSsWNz zM?lO>5@kRYkYnMfoR)NfBi4vP1-1_~t6=gM8t6Sp9Cnhey?*xm<<;&N{`mI0KUIJJ zw*UFxT;*GA_Hg=`yKk3yIP|s8>;1!ZJttN6tK;cSS)YiUeU*(b=Pn8L@S%GTuCX7G zOBJ%7X6oNMcK9)LL(%8Vl2`sFJ*m*0K(us@z;El7HLnwQ`I`A>3I{_M-In!1JY zGbrW@Nqn4@X6fC2Z<2kT7ga&iZdm_;U?O`_mR?mi@~Waj13~tY?Bj_h&9j_&5Yctt zeETM)2BBQjhljiW{eS)6e)+3k)~COG`=@{TkK-<Dwi3^-Z*Hr0BP;WC*kgkbBnbTg zC#Nftt!x=Kc4^D))wVs!sX5-A%=X^<_xE@Aj}OmYz9b|*pZnqC;b9&+R1ns}5~e6r zW7A@6htw0=6)8p$&^=gG#u$JCh~H#6aheK`a~vo@vu^BrS)ea&u7CO27q`z)`=T{K z@LE8IqFvgQm~H^@<QO5y(WnU%Ntv`ZQE_ao2{Dn!ek-90lBLm$Dv5(RmRn0i1bS7p zT)9B2da7TYhDgH9O>_|=b291Ru-M7wt&18~X+z&Otvq5?8<lgF9ZS1vdt+oF=VK*j zb>R1>Vh1|@tjOs#V|9>k&X7fDuqa<HRpjl$-~@?6^34gT1@E3#qR2Wj#Q^_ka9soQ z(+`~MU5=B@4_}xOldL)miZM<vV!50UMbXF!)%9{zJN<|flM16U9T&120BBWG{S}EE zrhamV68z#%5Z7LjR;t^RCi+>1=jVUzS0?#@&lea#%+VF}CvJkj005lJ;Ik^Oezj$m z5IIcawApQ?3K(bq^>=Sxe*W3(m#<OX6{Q5QY;rh2Psgg+OtPqfAk6827<77IRx@-= z<`&n~&6i*POtt7e6@W(PP)Iv3tEPZTR3$sCTaHYpB)DMARaX^^_ZC+;h$PcpPY$>| z0qkN#(1a>61{gVpgmB3&DFo4VC&>?vk9+o|j8ybfKUTTCU$xm>@AnUVKORm;S;Ph? zSBQCavJ3mJtYkGy#d4H)I2;aW?xPa2`{Uy<4)X5p=U>Vn)(8u9U!u*Q`r1w;Bgv<O zHLI${mSK0A(7>k|1{ej*z_XOeA`J!D*_Mn>D)6NQz_A$A*Q+S%x|S*|TEsAsDv%PU z(Bm~lH1<gnR2V*mbW&N-))+@oA?Xbqrf@M5)W;Em7V-d^vcY`F2J(<{#LhgE#6=EZ zIUHq+f^NtI0_xXY_wdl&zu*7MA$gd#<@_;gp5@{Ahd+OO{^Im^fB*MaS679U?~u+w z*Ev%QLV2t$i(E1i2cCgautKY(pl8c08M?vv7_!^yp@%xwfM~n)!@w>ax!ucL1(!B$ zMi40=2PBANe8u7(wTY4`7Zsn5<VAGSJ^R>vuZb#YS)|Zt)6hjt-LQ%@QLr4MLBr^? zHD8Bn=|WQ_=SH09kSRogLNFI_ytdA10LDybljT=e*V|3|chBlC=Qq{e?~40B++F?L zU&;5FJ~ZJE?aM#RMSh$AFRg73?@cASm}JI7=SN%AudV;=aQDl31Dt0bK8)_IOMBVQ zCWplp?x*jOyCh9P3GSe(Ve)O}(%P4|*Rp}%-6PT>nL$47zWMHLRpif~KbMSIqITCE z;qeXVOoARBWgJvhgGvoSHn$`JlG4fYm%o?8Jt0bq9|v4qE>GOZx*lcuY_?Ygru*{v z{B>|||MHjev+Wlqj9>q2_U)TDSHFF`eO_;`Kl}14xzT_5<}VUzWFKZ_h3P<IWb?n+ zY(7u!DmUD^;n`tGKD_(uyN`ptd3(B&r6TXYZ8q}YjvpT%PLHER9S30^v}$UYk;}G& zN~|PvdBH&vWIZHxHmGss`voP^%PvK*xAZsFx)X?WthYQdH&@rMK7ZY88-k4yv7#p* z<*u|9iCU7YC5t_<WSxVfcZmjlO05;9<fI12y2!vrU6Sg|TgNIzo)yM~YEY=Ie(VOO z>awatAN2gA9;d_)2w3Hu+7SQby8b8ygM7cC7=ZnrXK-+k1Q)6_J;O$GV60sEzW7`u zuFBTI>{biPlsY!5#o@i?u1KyVl_BXHA}NdO=8@i==#rjBDNd87F466a(@&)CS(I0| z-!FO3!(jFOJ&S(CZi=}y297R)tKfH{KBn4&)^9?&N=#GQU4srMtrt{YWBpj*cveF| z;B-)ORizxt&jJii=~b6p(tMYd-<&R#@K>YxH0h0L<=^t3jJ}|%(kvonijw>o>F9|w z9^5$sr)Mp7=ys+0DyShkBL}ryupFj&S&w0Q`~LpxZ{BQo*VntPJjQH9LkD1N0xG2X zuP~p_sJB9e6eiaN66&PyI-Isfj?hg(I|rxO3<;=ZA<whKoK!_N23dSf(?F$)WHlHs zRy8t;Y0RBr#LXj!Np?SIGg8@yx~{Uk&T5EplWhnlLc3|@n2@0Q{_S_&;UvrMW_MjR zxAGRp<DtsS_VtxKSy`qM_&v{I`7E><eb^rk_jm6k9Ks^%>iPC+H!rsYZ>4#O*p*>U z2OJTfHCUZ&CM}wCAa5X$6JA5pkV*AamD6Z)oKwD%`o7tLvyR5e1h*nqZ?dDD8x|;p zBr1A?DG|Xba8U4*T$p@vnb(xhk&`i3%T@Vb)6`PV%e^fn#qn}3qJu84Zsf?%HxNb~ z26(IG*$#Gso1A(Lk?^Bbf=up6>rmnOoYjfkwEKsTr{h81`P5DKr|B<m-bg`ER7ZK% z<1!>={&?8u@IXQUw)7{~jtkiE@U%~xdW)>tL=upsEVzFxO$%_f^04CR0Y;mU%R#Ez zIY|RdRs$q9f;_!xfHqJy8+l}gM70bf^Mafrrk!NG1Qj2q5*0KMyvj0p1)8d+Fkv)K z&x}m%QDe%8X_usA+p0F04AyX!UZ~U#{EPexBo8oWBZ4QvfLwheyreh4#soiieOcG9 zZm$1nd6zu?f64HllN;w=|4nY&cMo^J&x?OO${iX0$A9?w-)|1dH*b^T_5QT6|M&m- z&&k~U>eVmO;pZPeB<*!#i{F2I_q(Nfu*Bkm!|l)$nBi$!NQs>l68shUoq1~8_+?X- zzxe8lZC(BOuYWn723sLPlhsvz3kjO-b|;G#?Pxnl*+6~lMMoO}lB*#dCpzHHYI*5! zvV~=sB+5@P2b<*aK|rN$`WYkUg-jr+z^YbOeQj>8+q!shdN23!@OS?t_4pUXa<{R6 zeRy}=?&QHe?)Rs;ms16Tubu;J?_T}t%U9RV-T!ryew&QP<d0w1_e1*Def#Bq8^8p& zk_tZ@_EP>LM5SQZ1kQTo<baH8M!_QpdQd&o0k#yNUxE!NLGv{BlI(lR%F0upMo+oi z3~efj*5h(>ef5hkzGyd<@u^hzGiVbFC1s6QKOCOyFr7pSXE>gXM#UhH0b;KXveB3- z4hZN+9+i}FYE5YM06Xb>7_$r+n*Nn)v=J<lD-mEFBm(T9=Z%6<B<`SOUjmzVfM)`p zhGb(t9`}>fFinl#Rcd655ga})$rMXy1n*S7o8hITDuD~<Y1Pb?n+5_UTbO9&Ls~2H z?I7hRKQ==D4*fMIu95`Kn9q1kPeJWkyrnb!Pjs6(0RHhfraIGEcv9fd#xE5~5!h1y zR58cNYXU2`x~L#B*^QWFz}O%e8M<A>a0M!1fpE+sPktU|+$zf>v9d?dBIPDXGPkVC z&&ak-<h&=V!1t4Is$0{AMH_c3!C0RfQ=0k5Z6&_nbG{@eg>#yM*;+P94cT8^7mdl2 zs-LHC-e3}Zz1viBGFGK)n`XHJ@u?{LsRM-|Bk~1xp;4I*3E#v-!=xDcjCfGUI|!H7 z2Aa`ZD&=-Y|3uCp0H2b*0qB<VeRssEO37AKa@13FRL>fEg!Tk}JFnViyE<lq3$$&w zc~MCfEAKCr098P$zpkvK=dWJZyG9$B5>Tu9)%NOIw#spTkixL*yA%AQ0OdV(N4HG( z_aEc{-)&kcsT;Zh0t?MU+|e@}&}#T(C5j`K{ZO!=lU$~3D!Fp`b2Z=t#d(<}H@SZH ztZp}Qd5uJRB%vw&9gy70C477UAA$TFRO+b5hXIc=RaqS}&43ie>X5=*PC?j@kSZwm zD%qj8Q^M$Oe1s{*X<O#o+h=LDmHY7B!<%;ZJiC1+CH^M2lcLikC77oVcX!9`SXP_- z)WHe*xMw>V+VT=^400x^G{Z*fr^Dgc4+{ZiyW5wGv48#Un=jse_1WuJX#esMPoY!c z;JY<X!;r3?_D&YR39XLrp=KlJdw-JLDO2P~LM#?WQ~*@lBCDE~;4HAK+s#()32qmB zjzLXU!_B+^)-TA3qa$F0Y4%LYnNljDB%MK%S&n`i$0ET-lVhWy3+)qowg^urIdd0c zs{wygp?gRlWN8V29ZD>6AvpvDPB?3F2zr7~lhU8-QEsLrYHsw0Z;c(2moInU9hUpI z582VBVK~Xt*%#ZJ?Q%$l4@p)f)wEmoN%;8hHp?+TJsXYyqzyq*v476myRlFU2&uWd zd4ka=0PsZ%%zOoLX|RmIu%F<(5-KcOdBW!L@v)-;X%7Zd(256s9;AiQct*0a@%XTp z7jN5U$#d6x*o09S1*2BK&=gJT9$(f4png&;V(tqAu1@MNc{kiC11gnV$Nuo@+4H~s z;<}bH^0fbL<$wP9rkeWuZTFu}kA3&%KG|&QwrSBOB?JKnR)6gL!#8=`?4}Rp2nNDp z`Val-_hob3KfaT*Xm+el*wkQ>2asS@rBI}Y*po}95hG)ersar9Sua_nzg4?wkZ4I_ zE8)%!YJvq#DBvNGq{-Lp#*+(eK|k$r?BskJhu*;zrbTmzTzul3gL*1kdOvwpaN%Sm zCn1;|3kBy8$BtG|0iO@`fYNe~qAL<I#t}{LXsgBs4xCx&D~~4stj^OW3cZojX?gO1 zFODZPOU#!lBBA!@X&Aum-|Wz12LvSpR}(EY2v%lBaY-1E$BG)cDS-bxJl2(u9xOy> zl@f~XS1(B#Fou9i0vu0tjpX(vCkXUkfndV~fi|QXtk5;0n;!*XVX9%0OQ2QIHokeP zcau+JFi&Nw^<HR6;%@l)RXX3;rR$FOk|*MZqmo3qOWFLVmap@-VX17<WbW#)Ke`eA z@%riLrJ!jcCrKx_ATfoUO{r=4#4^c~OW9X=?v>p7EJJo$+O>GqS=W<;@xq3Jqwul< z%D(4??4t9;_i$+Ddw0o@E;mrwe7oBgbrsU;*bU#j`S!EVKEK|!>XupMnCinO$OK>_ znEIKR`Qbp7s04-_5DBTQg<gB4Fx$iugH}gbYc3)gH~>_VU8+T|g?6Jn?h%#{hhZ4x z4eJCGEJoPbO2OM~B$iNBeF9=BI5^ZEVMr(ouqaD8toO%*Y;vh$KYRJ=#qA4OqlF~J zg}uJsW)O)5>lRxqEmEjMpecO)?73`=zE9+Y98VoBfk#QhJtUikjG_~AY)O=oBUr-i zZgVXgwd>GkuZn8BX)WAgaaJr<Mf>N4h{U`>$ZXQh6&}$%nIdEF#{w1r?_n<~umolb zEP(s53@%Sxy3Ebh7A6^3`4XHY#)Sn#TkLvTqNk_RaT>dv-}<(ad_TSW`j5u-SHJn~ zmGP(k<MI7Fx!_H;t2cHz?cYu#aOd!o$FTU+9p1kC@ZzPEZ<6w7b-R^o2492Ctm81q z<CR<e)z5xWlv2ZeBrO?_wI7Gy|M@Qx9sY;^?!Vv4sT!8|?>|WSx!r8Rd>#6By8$=P z0~%)K+-)ijS8$F<ktJbFk}PyHCJ4*OI*=&KsTbj#T)lGKw+&FbN@)%%eoLTSh<XBP z&hpikbRCv(<JG?1lHpFOBr-g7C2`pBn8bkzbX>01KL+d?Cc8$(oWtYL0|YqJStC(? zCV4hwW-n^#NVQIw=|FKfOUU<!bhEri+dhs<_~u`dTc3RSS(0vx-<|f23CDd>U)@x- z1dO{s{_f|u_sM*hn5!g=$v<4*o{qQg{zKAN$*a%h$ouXz9MZ-XB`zc+lKSXGEU{VJ zw&0t|76Qf-cZ2;)?Cm-E{~3F;9!s+GT5Ru_$1`STWlcSIvt_bLYJe=kz7}lY+VF$l z4EW7|%fG`gZ20Zo7sED8U4fFwCMmMn&FZSk%E~-L%yW3HZ=bBGo0Ld`ELLZpA!5fj zu3;?N3bl_H`0M2gzts&HvhePZ;VXAM@E*UvGNrxBi=wVueC&XFptfL)dqWV<sxr&+ zwrbokL`RH>Yg3oI4@Tm2knkc=>5{1rqA$+BcjgZFeND$vyY<w;OHs6j51X5*y>5#6 z%Q^Z(9a&LW*45#5N6mvU+RVl3_G+MTMy0Gkg{~9ZgWFqfh&YMw$anFLw}w!(U03pp zhkH^J(Sb5})MLl*#1g(UT7ZZvt!+nw3m~JywF6}UfFxbWCYx(Eu{WKnB7b>veZE;6 zsn)h1Y(lsh30)&LHw@Z<ev}axk}o||^_>ZlLmkT~k65n_3s~5hdVLgHk?4tuGP!I| zxh@M(mj*ag4W$mG`H;QxohLF!ESlpvW+Ix)Y4M=NLqJ<h@~06A&<(h@yNcu0<~+ee z76wL#fVxyvuIIw;&JTlG%2uzulWqHzli@Trgbk0}6mwrKs(?*bm$+BOfRf+$7mFpj zFC(Rj;%^Q_AVKEabpI0omNSbGg&x0W0c_p%TYQAwS82-{PM(B}l&2o|?Yw0h82YQ> zGJd^p*J_NSCHFB@6`b7AKDEfmJuNY$J;6|-=!xeaq1m;T^|15os(78{P4;CAD2#2q zZDZ2ve1cpB(%R#{iNCdVcha)3jmC;`6gKnpxj!uu@3dE@@8)3p4c#mCntWuN`MGI= zg*i<8P*-*NF<-2fi2m^+L9c-->saDu^i_69lI3Ex7MTa?NH=w}S}qxVC<!@!`|Rn< z7gspw_wGNyne57pq#-|A_|8aI0w1MDQ`cfyi%M<U=SNg|>&@083e0#6*A&chJsc^# zVB2?Pk<$v-adC#T{Gjp!s+1rIsd$8VkLrYkgjP^D43#)}=i4*Qx#hshj4n4;KmxH9 zxlE0du|KmEdNbck&`{vJ^IO;sy8nH4C=Lf_Rxz63$QNXav=P%BhT&*DUg)$zxiW;@ z?RtYoO=MGzPly&{%0~KNjjx=9NK!GipBhT|$lc+m!t>qmB`kU+*>=hffnD-ud#;7E z$_LdC#di2k%|Nu(nxP{D*l}K79S*zO)n?<xaap&wM>MM0{fo1BYz~L2t1BD|T=|Aj z<h~!qJj-wm$w9&|doJqW*bi}kZ}<C|MhLWlG95k|^qg8cEqNe3%{22Q?3s$yohX#4 zC(mA-{q}bszW*3;@@9AV^2=ZT^v8d3d3NqcP8>vdl+mfPO(j%|i+svW3_Y#|!VfQX zP5T<|_3wZmgrEt1S_b~%EXqf{BI->9?*%{3O|WYEP6!ed__G)csnu)KD2b(^=4iyn z5vp1Ql1hkk>_>!PO4fi_D%mnXn*|k)6XI5=`n$F)Dk7O}efM;jo>{2I(`zk(QMeBX zA<f-mh4)R91bLy{*X?Ezd6n87lzXvT>lbC`x6MX5pUwIB?5iK%57c6#%DtLuwc4n~ zg2b|`Tg6F_8g8E-D(5Cl5fB?q0FfABS;Dv-IWiXb0C&)qSiZ2FI>|0pO<NT;iiE&N zO^CwJzunzV<A7xBW`&F#C}xT8Exr{bmXu|QOPd5C7ul0hD#Yv5J&I0CG0%_IEE__L zf8Pd1BSo4gV>aNB?Co!??mYxlv>$$~I$zZYWU;EspljPHn}@pOjH2D$yy%<pEYO?l zU#A)&zM8zPesHGTKt;hcU-^2zbecz(@3-_BQ?FDKZIKZr9Z6IDz#*cnqs4}}x)?K` zZtQ7Ki_h28uL#Q)M?;aoeYwHyQ1p%MI$dt>ouP0=&9zAJY>Ln~QX@s?JfbWO>D<WT zNT()hllIBqdk`!e)9`e{FdGDnS*QyI?u2C$g0&1CxUdl(mmzc!U5P7VP!W?U1}*Dk zS4Vf_Ue{!jplxwTH*tM!+-@B4a3<|%kTtoQSu{Ab)}T-=Nk=&UvL};?9rw-Rz(PGi zWBkB&T!@-fUsF_M!(nUN*3gs9R!+-M3Z+>n;1a?rs9`Clrze43k!KiW%}#nv{~Ba; z^45KedNj^&=bu@9560<L8a7QZ9Rk$!1_fwpM-?W%A4P~vsH14xX^Bi6OVnw&n*$3J zisS1+d(xT{=gLDV$mJTv3kL}%-%od(U}0Hlw!*|f&ys_U4&^HgqqpE!Ms<rTE|KLj z5VP?OVwF3+VM1(uAMX2&E?UW)07sa5&~00l$78ZtESz-`C-|G^-+nvvO?KQnIHo}o zFVf9s-IQfpm+wFRAdQnCPQoDk+28;D|M7qRZ*Ca;)t~>>r=R`+S4ry$b!*YhUca|i zE4*XZx5pww(sCWA@0z?UJzmjRI4$l-pyBMvc#uq|*52=L-O!5DrBG{}>~J_7_jY+) zE?1ENdtApx`s6Ut@yz3JM^>>WWWuJFVwQt&!7eFMH3FYTydq7U$Ye|u6m*;<C?vb} z3UzKAr#NH<dKUo;Q5wbZ({yQ6Xz&bjUNDbw5ThY(8U%Xs8AL{X5U(`CAaF&4D8~OO zib8aR8Oa^j4-}5h5cu)JT8q{P&k;HlImP6Lc6~GS?LamZ)fa@lW6N}qqYgie(aIeU zw{3Zx7K=8&X`7;}>xXCCC|MlJDsGDrHIC)ZQB?Fj61A+Fru?`!BpvEuqsQ=ro89gI z`?H@RJWQ;9C=ESQv0g&8C8FlqF;u2$dSyywg+Yu*_?tg`gJ*jkM|ga%p8Vlo(8B-t zr`zq;ky4!SBvkTkO{yzd*RzovBGAW=Tw7LoULcfr>e-qZiZW9TqNm#i8Je?jGQ3b^ zBBA0g>WSMfw6YSagrR6GkS0b4B~)exJN$dl+&F5kfo#$Cn@-j`qsdq_b0uz`qOqu8 zj%3J@?}E2SDKDZ&uE4u3BSSl>6G(%PGZNm(@{~c@ou@?@)<tUtw!4f_CaS(sQyKS* zFFfmmpZq9$e%=21>+oRvfAOh${F!?4ANd26VDQm<D&Ixw!V~$lZ=QBeVUbNj=72oH zooFqRbSqoKlL>6#%4*`oHEVILgbaZ~!t%T@WoL_jlvO!O?0ufw0wyPKn_ip}kwxvb z$jMDd440i^O==v1BdR8@We_%dk7xt|@DhvGixK%;cQrCe6nJ<haifzdQ{Vh2<#lSA zs=%QIBeLMAx9LJ<wH~_r%X?YxF792NE#vpriT4Np_RIfgca<lf+-DV{eAQZ37~PMW zu}1UV<)bosv_3I=wj)AB(xOSJ>k9xH-Dxjy4ieoNIVd^e*rLOrq@82@C2?FXQCD|3 zS(lsb2OoWSezvv6^und+-qa1PC|a=dwP=MRRNp%b`cq{snBhqzFl8V@KmmG%*+^O4 z$u~}-=VINN1=)8dMbu~2(@A^^)zl#9Ow{RBEv~IJ(z3)ayCEo(dN&qfE)>z#Y-lYb z=4qQb<H-Y(pJl9vcIHqVg_oF2u`IA>hsJ2!WsfHZu9LurlEL~YYfMvG%ti(VRW{Y# z@zjbm(7ar`0_~S20OfQHPHUukA90UylsL&!tSVoFuwFBf-pIamDrC!Py*Xqa-^si0 zprG~qRzpnapl~PVWFxHEcIr@pxSo4LQMcVFBz@w5My&#b5c=ovz~qTD6jkq??od*U zwQt|0!ISWg)^{dSLR0@P_2`|>{0?sRuKCkz_V63o_d9ildq=O*ClJ{i!|745G{-WJ zj)%?J*(zP&cA?w|Ea%aKM_t`~^X%K7|MKUH#VU=Wp{;MPUp#*B=<M=A62*A)_a1*h zgQHn*HrpofQTF;_h-bSf3-nb;#&uJp?#4SN7nhG8zjr(yk$p|ePWy!<9eYG*o=(J5 ze1K38chv2g=IwgBT&^$gKR{tEd>``r*|doqd29<Tn(KQ+lFIdhiNptsIJlP9f;c^u zwCqTM`07428j1Q7!8%1sjY}OgZvH%it&Ay{sGYEq<x6xG&h=)wL76OcK(6a?GTNSq zL@6WK`MEKB_6AL`056Z(p=%mj2&R5OyJSnMb)l_w{@AL%z$e^~R#)62e>e2qvMD&z z(`l&f(enDdybgCUxM5?JcV$`Uhe$xe<P?nqI!i6&eKj<#grB0PgGf~u;!c4e(^XZ0 zh*0;F&*-MTcyr9_!~Ql}EPYv<vHFzF7NN?v*N+VXK}}(T-W)I&RV4ly*%9dJ$Lx4; z(B|6KkN)h(NVs**na0!;s9W#*a4H7T1L20)@{q?1JQYE>NV_0j61*cmbgWh>4=Ga_ z(n?6boNR|C5F9x$+SYZQSH;xzH28}WWFsnRk5d{Y9y5())18#9swVTK7aGw_nKSX6 zmwh_TV}(O$88M+r#vzvcI(?X2w{JStjYgtU)Xec*E90@`Xd_FkWE(qmcL5ja4HXJH zb=*qZcOI`Fx>2RPwYqtMIP#NtRK-DgXB)jAyutbF_te9!+I^)Y58~da7q{w|Bly?p zayQstHtsJ}I-on|%8+oGy5TL*#<NczSf5VVqQpwV)nKq8wiuJw@}ZDNBG(_B(cZ4n zz;sQ;<?h&aLtk_aqNy*cKn`neBrFdV;t+a@Lr6!v6r#4Nlq_s%ve-xS$EvNZv131` z$Eu}Z5Jj(Ah1|8?{ll>BoyQky^^t1#f-fCZ>|5!jck|-jS6^>&B;EAE=b!2G2VU7} z=luee;qmt|ij^Q$t+bM;;vdYLua8;PW?j$o>1df7&OS4+96y`LMv@Q5d7oufohupg z2FgL#h79CTf16S@z9lA-#>s#hCAduE#l`u1j~}mBYv~556=;j312Q}=5t&8eT{sEd z%MqBs$+SRvYRY{Xl7Mi~2~g%*g*Iar$qOvmW;WSWp_PpswdY7rGx`;lIMSJ^+SJz+ z8mXw3&y6u2qtoOP(Q=d)%M+H{EC|`z5V2=Dy2j_KA6u5K!a@;KYVjE&iJ1C7<0Kli zT0&pvxzzF%CAo<j72Iue4~@_vM$C>c^{D2k-w_iB&wy`a4Nd4b;<h!-W|e5;fb<iR zA65B;d*!@JA@2xo+$C3GOj~a*dZ+K-hTbJzE|Df`uiQb4sU3nQ&x&I;cZbn77WC8x zv-u&qsXe)S$t1j$s~<SR@5Fblrq(%upWkV{@9fo-k4J<eL_|Hx&PN4<tZn5NjAo>< z!qCqAYREi&S7Y<F3dg%&PugPBDF0EClhHEhs;0=B;+SP=hBDTV(!li|+(!j_@sqm# z@?U=S<(I#xaefMvs}-((-QgYw$s)Ob|A8Nbmk;j;zK=uhIt$iitQ<#MEYMTEk!ICJ zi-~U$#q|H`1>7vF7bdipt8`W)#E<KQjbuCI*@4JIWUwG~;z&>poiWNL-iiXU6PF*< zmZCo>rRIdJQq?tn2bZm`$x^~+X`9M8;i2dk2c8M7@MQH`M*|&5=wVMCVD!gHI>?7( zT{4VLU@ev_MEtTY@bFj$$1lol;!82w@)Y8`3~htZj9O$y$6jReU3_s8j75fmt|fYC zRecmkmmUd*qSIr|36C4uE`E#~mBgN0D{#a-Ew)jk68=ExggAOH{wNJRBA15NnwqMg zyh$k0!+dPW*|aPa&sOT&?QAz?b}TB3!cUr7nsyj@PQAY>I_KfT#}x{mx@-Ctk6r9} zVg+a25%DK`P`wy1Pi}x791RYVC6Z?#3%O1tz|!S{&a7SQ))lfsG*xP-^Jz*op9^<v z2JN=WLFk{F@VYran=Q`|32h>{ccAJL$NW@bHF*v7kfsu4C;vqB4SH&h;|d$u4a817 z|7p5Jfrk2~rv^sP27`hPvm@haEu-U6lvB~);-jKGN)}6-wA#KA%)JqDaeX%o!}9v& zD7Y}{5|5VI-QYtIwkm`iraa>>#4s;9?c$__in`2hlQg<q`h33JNWDZmxK$5+pkDl1 zUH$giH(za6OXsXt)l+2=rl+!;*pENdUww15wyW#8LfQDcG2V?nn;=ve;x=E@73D~A zwPg@Ztyw>?Ik6|n3thHn3nK|#iG$cJXg-^QuLip!o_k416i<WGs2UQp34<nGmhmL? zda-Gz9hUF0oh_%S;SN=y|BvbF#hHk&DW8c0ZR@7izN>vNir9pY!)5c*b1LWlJ@x1l zJP#^+p}3Ll32s?zmsM}}@>^?O#Rw4r?#Qn7g0qVcSG79Zs+(_l9oFxuI8##+*_FyE zn1`T_4<oSFv9d)}o#epQv1y}OwkRBrNWH%AA{7;LOLi@;Ma?W3s$g{4E4OlTQ0@4( zwODQ5fAlC#6Xu|H5)hyxqOmew6*U=Ac%oi90tm{VC{Fm;5}-#2m5~*uAlFRj@PsOy zCyDaIf^oo+n_jsLnPrD9;3E!NrrvDLjqJui72Cm-OB0z%lgPSJM|Lnmlr|A(E(scR zZE{E@pk^S2`A&Q#I&=z<-}oJm(@EEypj3-^w+<x&K6zcYB;1Nhlt`Z06vRchhzEz= z&TM=iwNX+PED#~swky)Pqp3iVl*Jl?+V7r_4B5A6L*~=Yt91KLLgH@tq^CWa+-DZT zZz^xR(LRnSgAHVfTHm~$hF>(xoY0Ds7=8VCIJk9QMA0Y-(Iq7Nv||>y275KvQunN3 zcJLj#rmoGLdAR#%o2I=HiN{yjmmF}>MlS6+oly34bY<{gC(r4PJSqqXceXgFyVIH; z-$}ZEy!|x;YWsWDNYFQXv#<KOwT8B=ihcIneujqla<epcY)#jo^xCdhNVG3+U#3xr zKTs2xBK~-Q)At@ee(?A)zEF8QqMHeW)DL4}g^o;8PH&(a0e!I9mXTRwDI`ebPRT_0 zMgzJaUxw0nQYJa~J?qNB5s7ySIg&Ba8v|6@o}-y{D0y1fjhgGKE^(;L3>iHl(kK3a z=O@edbR<U1^?dPqqX<4)I`rsN<)u_TF|)B3C2>N$kCJ(gkB|}LRw2FMHZ77xFOthG z+80ZQ;n<9ARaC4cN80nD$td!pSQOdKVMqRS*9LJ)fvs_D^5Z1ljNy#mK_Q(>`HGO) z^mY)3@e*GVFQWW<u-v(cEQF+4xCB#WhweNSDr7aGS@!i*`fS=fR|8G0qA0oWnhe3! ziz7VaZjg<>KlHk5S~Qd{>((CaYZ#obQoP0izof?Z9z1$^*cEo;hMw((wvep&A9Rp& zAQA+MV=-}>=5|StTrR1@p{6mg2z4n7HH0EU!t2|)n_HKnztfSZc<rN;9&u}?qfQ6i zcJ1B^a5NV93T2)RwhH}lzu(Qag^rd&V-jd4F6St+!Id@P@x0G0B9-pvi8jWRdS<vW zR)e!d7B1(x662$&&1qp9O+jU8NZ9bqqD?O@nLT}gD4yu9*PH0}CZpc<kPn?~<*1&6 zuj)Bg-_iS7BchGAel=#Z*gv(^@v{5&@0{I-_G*27RNF{(*^{ep9-pVm?p5Hc#qi*x z`^v`$zgF-67hK96eytYhM^<X<T|OP3JZ)Z7H_z?p*<#sno6FDI2$;1Ua5aZcs5VY# z`IguFsFS>o<X1Wiur}jaRcPKb+yi!090ZYY-!{18cY$NX(~~-WUKB&i!Ez^ReMkd= z2#Vo=wLNM(yY0G)CFc;cT3NbdvC+;aXU+%hv)??s`Ptrgn&<v<8^rfjM+|Xfw->8a zJ$PRQ3x&HJL~8r7`u67v{n^x(ITHGORW`rL)T1ZIzjUKbvAeIU$$mjs>L6CfmnuR% zS}W4%M?AbAKL7G*^r)Mxj-fzUxBXO8wTyDuVl$}>y&HML3p|`xd~fZlw&~bB(<?=+ zQ3XbhM|}|{XRGx7<z<qllC!u>_2r*Z6^k-GbSR-hs8EXa$vc^F%}z#Wq+JM&oSx<) zGEC$1$)~a`N!m*6h9`@xHOsSovto4we^r(xI%4YBaEoSqb`{ITc`!Ia^6O;F%qYj5 z?7;aP#pDtK=tfqk#>0kfwKC>J#6uyr3`2{)LWzXCEjU&JWi6_mq9W<({z{oy;cnB{ zj^q*F=Pa+OscDG5NLCd%Dw+y~di1?flBGwH+@9lDR6<1Xk&QdB$-z1Dhq)72vS`67 z<A!7uFCFXqc(7tfaB?PiYwRpVuJs05m=k3@z79v-27o2r@zdlxejG)3g{Kpa54FU7 zBU8=?xs~bNsU^iL29~v%R72WD-_nHQBx@z?s_)5*clzeCB=&UJC@U1OqS-{5JtS_q zR>o`1_<aoh@aA{?zCVB06G?qnH2V!W^w?Uxqj98rG`RaBCv&LE=k6knQiRL8ED(Fq zVr-V{^UXF*61>9g^^2(?L3@#g%OqHCHUv_S9LbX2ES&}oe}&6P)UKYhgLq8`A<uNz zT3)~#)K_C?%nxW@ge%z&jgglM$r>gP7ZJB?+N!MZ2^Wi{gYY+y$SZwkYdFMYG*GL7 zj!d|+DFeOCj-;ezl_!rb-dZrFs1ibv6KBImPeZLcKF`((SV0)FkE4+!N!2#O!f3>{ zHbjIx><?X2WvIzquPiI{1Z|1*KLkmtXzkobIJW`o=(?@5{m!1dNcRnQmz<2V0^>$^ zPJ^(sgA~mSN<g%&W910vVS!+Y4!A2DQ9mU>s4udrvj$XkQ;AY(!nM*)uu45Y@+>kL zDGoOt>sI$=JL{KuS>irY!QTy{$R~+~;+HI_Jp{|~;@+hf_$4|m*F%?Bb{xd??D25R zkVi=^3+Abv2+R*19~s<teSCq)@#vIA!oFzrJ5Jw^WtL4L-h#f(xJrQtXX3wbie(;H zXS6-b564})SZEQ&2;C4t>gDbA+4kHQ3!G6loklO$?A~18i$!`~fG=WiA^^l`%IWNk zyy$S!*HA3A_gqh~r$#%T5PKY)MVbieL6dF6rb4Ds+;9tDg+$ol(+}Ruiu&qyXCE@s zJ}7D-Mz1uk8nx?dY35u}rAHGubX{{e#@6`n-e3Rag9i!)rIo4WL-p0SF+=&RcE48j zr0yX(@rhN-GZih>{z}aWQ;y}M%!%?K%c8Fr%ip=nuIO;-8p<_TB{6Y>S#Qgtlj2Q{ z>VnRpI|vS?<FWNcvJurDgy}3V2Sc@>q}SYW?a&(hkw~6fo;7p*&!xC<H$+8Q*bjpe zrXUyMW1kNV?noS-_04fTxBtTrSD%0SzWUWO=c^YllaDmA-;3Y$ZPBmp-we~jed&GZ zD|<jKpt@2$`dg-f!$0AZsjSSNRoNb=@>$<G@gj^Luha_JDzg@N_ocE+gi*Emi2g7% z9`_JgpD~=yCu<od0EavsLh8v@;~nIhX|f$n);QsW;?nI=>zbp@78eM~Z0u*TCh>v? z_bwjZzn3KOBxb|5I6(}Y+G?3F+Ra$gQiUPLHbNTIf(xj1Smc@5hOxHxBsdJxN+SPs zLbasE1#+HQ2Fvz@DqSb)xke|Q9rnoIaU6$XWKg|aGxfaz^^2FEsKBFh!zXS#vaJvR zNxP0lu6G##Wo0i;CNyLtco0D^4no9TIV9Tnh09n&IhyjiJqeaZ&smACuCzDvY{*Wd z7_b@9O#;hNeD%yNwCU;w&l{W0s@oPd1oG|RjkHsz&42(_2!R;!g2F~4Pr*TLJ_rxS zv;Kr`)OW#1r|e7Q(fnFGS-`|R0wOTg6MCSmbd{ofuDh<NN}Lv!owRf5X^7VKt|(^< z?nZ2S!?2;?!HD+XG`>xL!kFP3bOf`#ZhzmInMY_eLp#6&ij#N8U>3_~m$OIw539oQ z73Wy}oB#FQdG$Lg*_;yeQx}drlx<V)bG93NBWtrIQ5+@qgYyeo?>SZ&MF<2%b{ue@ zT$}TGP0hBp$QW)}pi!cbv)f_tZI7#Qu_F{y1(Y<%^x_mjvjXneM9XUwAsF5EE!B~F z;>o>$QZr!~pP)_R10ID*lq_k3Bb!=eU&I<?r)1Mga~O@40v8&7RTenEi`6<^tOR4H ziad7&uaTEo7{}<QaI5>KB;!R?iTesixaFdSb6pqjzF2J$-Vgh|@l#+UrKdJ8kB2=@ zGv2x_3M=xuw#1oA^a97mw^4ccs4OzFs;WFYtli!Ulf;&UC5V#H8e^JBxeJt_gK~#@ zFjl`(mNnz-6o<Xi)mT?U(JCj<BxSlHjTz0e=yJwgUEQJ+&u@3fg2DxTu}AUJX<ra$ zNxH;^F-Q!w$wW1h4iQ9Ee)IfU<ftJ@%f3w_WR0-h-TG1LahR*n$)g&zJs;&sV22jf zF7;`dp>f41sN0H*93oQ?Cisqf6ew*SqW-2gwp9w2)#KX8qu>Jv1C-KN?(wqklEuOc za83dwv`6<JCFI%A4!ajt_b^G?W*%%QBQ{g%j8Y!r#9TKVmY^#}!lo^exS0!M7&(`a zCF1ZT%HV)$oLA3J;*jU0Ea}XMxaK<I)2fT6`StI9d$T`ox7+jWdFcBuJsPi8hvSOE z7moD(?yhZ*Wqr&GEn;X>gX`RWybdnTHlO(4%EZ-G!DG&!x9iQrk5u+VHKlT56`!3b z%G(cBovCK8+*GBhdj72X>e)Zv?ti~H|NVS+sH@iKfN|le>BBAZhWMxi<xL_QI*bin z9zDAjP!(~SdUm-A!SB{ZHHc+*FOC_tP|_KXh;pD_pjLO9ejI7C1LP)nqzZ+A;P@l- z$gG<XuiO-UxBqYc`ttM7AF6t%ilaYRAOHBLYN!tX@qev`^4ay%-8g@CS%p9N_bT>O z`asoMMdxbB)$%>%uhfg59kU`vnk{<|ZR+uv|I$|v7fK!Q{gl5@_EMb%DqN}CZ&{!W z`UdYg1+6ThJuTSMjwbgUwx4{vwJ0r4D9Jdpal8uu8pqH{P+lJDtnSNu=~=i5(e0pS zzqh^k^y3c~X-XBJrkO-mNsAm~BM?rZHfV#jl0uT)*C-4T2Pg)L145d={ENgBo0T!q z0c}qxx)Kj-ia5~aOnhi;C4+kcK`HK5;Vy7S9SfLYmfS~Tw~x9Xy>HiX)$94xJg`*f zITZTkeZuowGRw6!s(Hj8Sr1y`cSHf5F!V)qP+Z$)BRMlk2Z9Q~l5>Q!apLA7xl=BV zA#WC0J&q!k1k#4PDn4EGdSs$%sk#xMQzB2Yqa-sTGxbko?B&tvPjMbVxe?pY1Z;;+ z$U<KJ*IK}LgegwBN3!o|nqZk;sW-ih_=!C?rp}Qnnz9#74A&Ao{*1#?*vJZ1UlYTu z$Ubqcd%8zN&NDtzj;&wGT`7?%8&3w|@2+28{V5to*}=V4FL*NRm(i$A*vCon<Mr@a z%yLfKVs&y5daZl)$A{8yy$dRRo4q|N!KyCs578^uNXDoTIb9#uNgPF+w&`+YHE~>u z!$8(W)Q=(acl2EW0iu}p{8S1t-X`&elR*u6CIMwkarneIo!sMr9jLG)EDpiy1DYPG z3MqDnDDDRV#aCLCCza!SQ5@s7+PWc_zHh6#jKbItLxKCEd#jB8qD%E?#Ni=uNeK$0 zglJFvTHC0G3x={F4uWODD8_gwL68u_7-7Af$u^<p&pbp(fmQM1<#kb1988Ww5``3F zX<3|c4}nuY6N>3O7AJ>IJ#|e#AVg1*gO?edW*-ijc0&<-lLRdDa~%Ho)X?>Fl{b7j zCllFUJeCE1W~^I}&_B<&7ePeAy&rHSUYCcWv$6xqf;>MAU5l0|n~^5nFgj1H9A%yr zE`u<{QAC<YB|_DG?wG8IF1OCU_iN=gM4Y0$)lJ=_?4G1D$K%IbHj5Kz6texG8W1&N z&7i0gxgg672?&G{KV)534W+vVR~#}agwGdmxZxr>1m{Flr<7cC&Ik{?T@<ul7@?kP z>$0r~7q5!E(=K8LYK*3>@$KRuqV}Qf<z-&iT^cXg1Cowzl~qN9EQu){MH$AfW)F#6 zD+{5{ID>ZV=n2C*qE9Re#MCHFaIa?~)W$<reDmbVAFi&JNs>5zOdgf@#pUYr4<0?h z|A`i*^8V?Y7kOTF^YqP&7vxQ<`NP%u|NODNL@)c*3w7~G{q%oSQ>UK)le+jqA&lZ^ zw+9uTt2k9w#q!om_yg|1xpY0K?C^`j)gO}K=gv8bxCZ~>=omeFPp_AOU>+P0et}`; zbrBa)S8TFS>WX*Zi7$n67e}b>S%%J>A&dk(<2-YsH=*FbW8UNT(6o8(1|)IM_9>@Y z7F3cUKB(_QN}SBWq|WIy(T_K`fA^#0Z-4p|gg^DO|NZ%st0eaS`^B|dU#j-U$F~1p ze)Zh1D%3C2^{-HKs`Ns6u@E*h6<;Vc56)l*!=HctsCqg5hhIMV<+ooy47<-C{sm{2 z#C~gD5QM_xKc0eL(LLQ)zn|}ONWo02{F6q$byDCz#bnZGI@DD)A`BN#Rhfsr8>=u4 z<H&LEot@(uMm52TYO_K1bp!^?6DQ_>ggP^pkl3wc1>}+)XWeb$&>e{3_e3#W>rS&5 zKkSI52Ocr=3bHyC0_2Rk#qOEno3KNB>h*WDE+h_L*!p~QXh!acc74c1D&`G76Pv@( z5pb>G_<lq0<GRjkDi_%{s?yl=+6GT5A)>@lI|OocBXy}J0V)#0Pm=^O!4YPiu(xJh z$0!I1t&**D)3ro^;EoTL_QM_xA_a>GM`Q~*i!B^iabsx2xVU4Q<Xt9Yx5P_E5mMk} z+eQ7r8LwyLSjBYq`%y@LbRav+Dqg*oP)1+oa!%3TISz5Hi<&74IdCUyx<=10wgIG& z6CCenEh2Q`%#j#~P*+O_#C6;jy&m7nz8oi!@;kq^(!JYOo7uRY8ea!9rLVq2+Z8z$ zY9$DHnY;`AW>5P{YU5SveM18Jd#;I?>gqS$pUhNB3+Ypd@M+igwPX)faF?U4>H2mz z%itcd6u}wU%6570YgCIK!E}pIfP`a5NDV19oshBJo-|gvDj{kLXo<}=k&b#ODZ*SW z7powMXlU4S%Vo5haiHs}q`{6Kh=5Lx{IrfE!8SMOXQC*Q#+SC|BnTPnZ87!|Wj#u! zu&<35W_|9`WWz^v?weMuEG;~~$ns`5Qx@o7tt5=oB(=EpUmz8ecjx+bU1oWKk1+}) z+du<2ma-!5c!oBe8$FMBl;^3Q%UhQVLe2Wcb{0X|snmC6IYfg6iu#0lN|Df_v=@n4 zyFB7!SA!l};*J~Cy!iQGi`Fd_SpZK_!1DG`jLlQ@^qhZc7Y%XZS(lORt+sg0t(a7n zI_y_x=Z=cVBljbz`8^zKYbtx~(ihP|Z`u(sYgbe?P<1yp#bN86<05rqACNSQQcNA| zI(3}Dv86?_Jj-b%lNoa%(Q^};5={&=@<-i?NhKQvai2yC&|Jf!lE+^LBi)CIBU2Mq zGIodJ`iWX?H&Nn?m9I1Rp3~hPUfdvIp@glPylHU<&(F^;i9enYm{7rmVS;`HSD-kS zbhD??qGr~eD34C|={O4teWdE4a4E9=!I!-tQq=X$6@pH*ST!up2-(10*{;{bIP7s+ z_GpCv?$ZxHdvG3k3Q@7U{SB(Ai@N^dz01$v`|wxabiexf-|yFd_IDrp%MUKq@mjT8 z_0iv`^UqZNoUJgjdV8Z550!o-z9hX`KjK4+`@XzS**@f_+h;0`e)`#?Fq{A3#z!=! zyGgGI;_fIj9ypFKdC5fuFmWS?r)Zg^c>Hho$9|&0=pZ{Xx_7lTPORwJQEfsbU3z~M zyH?-TUR0M&PkNVe`ReU}?nB5Ib=w9#nP#D_mT`zQe80cJuiWbHKeMm?rw{)|MUPea zyW+*}%inzSlaD`EzyFQ$L-o=7i!cAvzdtMT&wp_9{A&O7o9*f&Rehs^wKQZivC!^9 zee%Kk#on28_~)N|F=qL%4)5Jxsm%}7l&hOxswv`lz*(s58A(~nz4_+bUmf;MWDCi5 zF2|<R#wX7T3~NAkh_kU|A1Y3s9G4)QzDK9&o!LM9@H1o$pF3cVvew%(ROJ&Y)UF}R z2cK)~U6Eulr?%&G8Py?e-n9^RP@|bR>Km4Y9Ls4K8*+x~P&kto!J<fEGnt3nc}XQo zzqmHf4!M;fWs<)xQ&s$Yfb2W-SXxXRE>{QQSc}i&TRwT!=uZ&ue42aq0*CeqyJXqm zhd~mAmW;b`4aByN7D=7WEz-ytn9B#FrCpjW!WXjyc4Y3Nt??lEh|yjo;|(6h{$wmD zZnm1B|AM05?3{@MnA`f8hf&Ne2PO7Bl(IIP`+2MzniW!hoXXNuZyWWHrf;0Lu~h0$ zEJWWnA3SxvckA2HfS&EwKE6~T;OZfaT-!sH!KZyvf$igo+0yN-uM@XxI+MZ8JXpjz z)D8t^HJI#M-Q_{!RNvTtN-)w>bEWNt!|*q#JH7btkd^P$uhe&O&_=t(ehdF>TqnQ3 zE<vR;3!KX~2C6bDLEq`QrYaqLtDP;bHm4zMX{xF2Z8ln@*@lTLx4Io~jz{racWmDq z=Aa=+Si7BD(^H7by~wgC*~5rB3}}wUHA{SLWdzNAFs;P66sGQm8zV#_dis<@a>U@V zH<cQZ(b}e_-9VoPy1lZDb?|ruN-$gV%x@&{JVfEDtQO0q=t-D&8>FP2NENc3aq>C4 z=CKfthtv>M+UarfL)54hbxulGEIKX0<?yNH>yWmAPmI)Sx4F|bTmkk--hNkAx3@2X zc(J~?bP!t5CC?fU9vX0i&?YX4aAdm?!XWb>I*Gc9l}*xBvYLYgtwc4Uz_RnA&f9!0 zu63IeO@{PLthbMcBnlRxi+-iYCoQaiQ`%Xa%)O<D61d5xGPC*}O5tVT)gl**8oO1V zHfCtJ%a%Lkl^sU2whzUAvE4eM&xeh&pw!i6(b;uqPifmumZ7E#3bk+qaw%rtc-|{b z*K=iisLQ%}uq9ZCSua^4<WWzfC{l4H+tRc~b#;x$=w4u3p|=X`*^M@#a@)MT&6A<5 zk_*&;`+epRNf#kZTwTAwm4Eo?u^-2-Wmipk*zNPffg~k9mIIE(VzF`jKwz6Vz0}S2 zY}=>B9vVmPw-AbwBtp-Av%Bs0yX)QF_rvYk78S}mN!`R+`u^Yk<j=l%cy|B6rK)!7 z@Ki0*KCAld`42X$`}b{osekPM=Eslg@{9Llhpc@{NIw2lEic*Kc1IO$)YE?;7xwa} zoIMVW@*c4XuJ)=g6tzQB6+BexxmqmTzxZsc&OUoOTURfUEL%e9S^v&Pq1v*!?c$uB zO1u*fzmF>U<?U{_KcZ0UWfiy3YQ0{pR-208{8lv837Dk7%W83X`5=hG=hxTQSJy2? zo{eggl_qgB^t+o~eK@#|_2)nR@q_L5UVU}12>sp7*H-nD&;D9nyr+Kue<{0meectU z54N8?R&%HhSE}DvW%-xyeK4F|{(rmQZlg=}-hZp|pR4kzdi39^@`Y-1<*X5@z0Fdg zF3X>}y8XM4&!V%ny80K+;eB7ZYh^{MI1)&X!*pBzhhKjEo2suPOW&zm)TrxvF#u(e zWYe)~=qT;$S`wh}Oa-)9EOD8u$n_uHe;E08R%T|qiMZ3ZRWC5TrlS<|*w(%m_(7nx z8QzEowNYDPg(pmX%FhzM#&sE*PD(-Bq4xWsrTP^<`HUKN5bCfc8kZvSICD@MCNXj~ z-<niLwi)ztqheS;b2iPOgNLRa*+8)6;c*osVPO~zGJVCvi%c`f%{TBi%Ojo$N6 z7DZJg6a);Yu`J|e;e*fiU=f{%#=Pq!kZNJ&v7yB`RtCu+@Wzhp_hy!kWTr<r>SaVy z5+%!Bo8=k8Q#=wHM<gO@ILDi+3RkA}SiPV|iDcm@7;l8%!THW8)&3KRq&IVLFJ9%- zWQ@$|MDmVKvaya2925crLOJ_RlmXPa=lJWpUc&6?EbB1ox>p5Nsz;H&x-%WJUn{44 zC+|)HXCq{^Apsw0eQm$fuu{bcUu_U+BBAiUhGBi@3v-;V?LV^p9gPd2{Ap6+lEIbs z8{frHs)?oPQ31^j8DzbVIOE#|x633>f)t;IGeycT7u3QHkX`j|zqiF6$PYq9%vO5n zVRwUObg^9F->w@Nl|P|)jHn{xC`DqzxoKr4!)?k?HncBPVaUZKo{okD;@ohP%(TRD zC>)IwT;uPF2<}lf4r1IXftOengKopaP*o*W+(s@AiFqKQ%So53GIQ&`;@&{!El%W` zX}Qe;!NaLqX(k~>4sl)9g}@kyIMYN6k43h(_Rp-TLCo~Ky2VFT8@%gcxmm?wXZtr5 z^{&u^Y99>^BD8Z<;bN?qAvhF^9oIR|ffrhKvf>iRb`MqGU%f!_@uE>qb33^aj@!l^ zf^><;L<UfNswOAGvlrWx+o^`ODYLAoXMuLNe%?;X+kb6q+e4nVCTF=CqJ#?^6<Ff! ziO^8DJ$hR7YcW2JMF395@Z@leNwfMX^h4LHva*Wsz_T7lhc+UUkyA-;RLfYLAbzys zhKYxg#EG&fSvA|*m~~H<0oEBd5yy5SI6E};Cm+2R&Fhy}PqLR!RslZaYTQ37ub%v1 zxw&`m@smS?Pd^LPg4-y^PNNv%4|T9%=Plyca~xV=?QZdvaJmqq&^U&nFPu@%bEwu& z;k+S;;~?+|d2NY^nbk$r)NvSJT-?XYwtY)?=UM&ev(Nwfiyt84aauJV)Y+x-Bm3cx z?r-l?z?o^oQR`3C!@r5sOZEI0>ct-@Vzqjxyg=12)!eC}R5($K$Ev<ohi}y4V|Dz4 z>hQZuRo|+^t-AkL%1IG=)UnQzp}u$j3?*JiUE@LK3Bnj>i^eUZC|^cNM8ArmH*yM* z=U=SXIFP79T^_b%wO$S5xIgSk(ABCc3f$l{U96Xj2M-_mQ4-K4nuz=5ViEd5Rg`$0 zAoP*SzkT-Y<=OVX`Y-?8J$$_Daa&Zg6ImZ#2Je5MvP^Z~D8%N)^6~24xc>O2aTnEY zs*8BLQR%jO{wt>}NW<DcQ%`@bQq+*K(t(;iRotqpm#P?4nxM1#=<x;W82mv!{Yr(h z_w8%7|Glb@DzDU4{!jn%;;V!DQhzGy;>N|5g2UwexNbth+A(j-z_B0QyTCa-7CEiF zY<$uO&1Q`oo5nHO(lcFhNilb6-e$mD!dFC9Ioc<hkO-eru!A!k`ih9dw<wHpPEDzm ziPnoFO^_(MjvvA6YfYqKjfV}DAIixzr82XKOCiq&DBAsymI)o-k-l#To_KnN5x`eO ze^4>YBL&t)!5VzYc86{yBn1r=g^{+BglwvFQ0<2p29DF5-q2w*DbBK1;E>r5q$(gS z+oQP3RI{ZVW`|Webv(i-bV>AOt;Xk7WY|aF;~$jv!eGHo7)gCx5ney<Xflpi)&v2$ zu^!^MAEE_9zv&5sK#?d+O<ZIUmNp~d1t<BZSA-qIw|SGibJr~PZzSpQ6?1785fArm zM+dI|`q_`kJ!Jx*Zx6{wxLYf$kBhc(=2y85^%Ju1YO-=$H-j!G^=9flnOCVlDX}r? zS<C{_Za6q?${SA*DU)ugxM@jQ^REB#D-<{H&G;uozTTFRzVmt#F;2XgD-0#!OpAR1 z2hn=!(brLiXGC$0f;3fmexwMv=TQEey1u%dWB@X7q>>#E)-a~)4bB{{7-B?Ek-uzv zenHhno5F+wk`fs+;$3Aq(QrRyixn3>CklCF0<?_yds^P&l%v1)qL5%)Qv7fwLehs~ zLU!9)__#F1W!X9O4nLPC!f&D-V_8LEghJUy+g#Rj(}^T%d5%B(R2PtyB&uT^T-sLE zcu<63Zq6}|VB4dcN9XGkjKt}Xqi1fumrGZt6s8`h6>8=%$@)1^=!>nHv)2~Cg(fbr z{g(~viHrLy^zebE3mtmHqOQ88I`+D$^TV;Mo5JaGe3a!1DcpB2e#o;f!Vk!~u|t74 zer%BgoQuQ$P#yO-<zau!54d!z^NZe!`mrQ4CtN+ayg=aC-@G6tw<$-LBAR+cL+!Up zOj&%t<KDGHr-o-WKOV!23!2}x9oIiD2}cA`Z_W@aI=Wxat(deKfzDCX;^^PbOov7W zHz~BE83~B+TVeH%#I5$+Sdw=l7#G(=j6xdT+<Ry>+4VpC-%nm%-%o?|r+<kfzWM0K zPO_e?C}?)ctXkxCKbX}Ca#&R|S@9#I&W{h6q{(u#=FB8bajwK>k`p_87;;8N8PkrV z8*-+S?e{NUUgO?xHtY4c48nLJ64qhBn1WE|JF4GZxr;>iIjeiyD{fyjh?P#_kCv0y z_TV&)+uS^#?R{VGm)>HI&!Z`E@>>F%hqik9WE_{s(!<SFG)8taj@j*PmZz(;`S8?7 zv{jL^lVOZr>TTB9`$Jy0mb|+snt79PXrkdyCnIv2usfs8y{RePQGii;&SSrj$mv9Z zgKtL}BiUf4QG`2{#389-hzVVf1ah%lB7h`G!Ug0w<yC<+dA43JlMv}V3FE*UyXRjG zdT1U$s2A&RM(4#C^x>a-{V|LmBPs3o>@FfZ-fX{c(*^GRZQXwH7w78Xhn%iI_z_aF z+W(q_%c4`=EtM(PzDhP~<1=jk_MaJjFV-|$#YfL?s8kc3sjmF$IZB3T^~HbvF!vh8 z?zU4?l0<!jmafBXBH_##H}(p>{s$j^NP1_}#9XYZB#IZy#Vo$tvn6V?oYpXn4I)}( zjN_4Tf;ce|*kR|YNv#x*9Q>k3qok0fAs;mQeAIPcRz$IN#CSHLRC{=yDM~<Nn64cJ z0_ku&iz-m#_kH%(ipY{<S<K>v-JNk`?1+*5Jk*sI!ZnenY#}s$7xh9Krzo@9ejwhP zhSLKpLQ4ec94d?9%Nt>~^>Wz+k>Es8opfbY3h#(uexYSjTf@lApaP)9C`$()uR?B! zv>5_lu;V1*sLz@bFF_ja8XC<S%55ZAS$d|oZi5dimdr^MSu>|@BDgT>SH3<{5wf2d zPRZ8#zNxJHiYNSCB(&t<Q_^bhepD34IOZh_kOlRK`#lSD4%cLIeIo6Br*G)IXk;cG zk#5m(fMigj4yB7JjgIe9uliot^P7pV_H;n93=LMf-my<PRY{+XgXB@1$0kep?GdzQ zWAWN|;mvN?dY%4F8n(X|2u+<;xflVm2J@S3Qa|FgqGTz5h6$Rv6L$tZ&cSgnSDQ5l z8cmN&6qFG`AvhLI$C(*N6ST>8Z7XjoG*wBO;-|(z98~(&GU6sY?zpaG_c>z4AdcvE z966M$blqpqpHIWMSga_lLH1`rFg{JBnHo=ScgVY8C}0GQs5G1TGu@elwkNv*`CnGQ zLyIy(%wpLnWR&Hyj90sjPeV~_d)VFH41K>^Z&VZ^73rZRcy}72AjWrGE|#-6BXYv( zg>q}V%1M1o4PCz59UHd0+*!3~R>y9Cef3SRSD_Qe(T{%mpRZP%<8lA(?E(K?9dFyJ zthH~vdGP!$H`~yCz`>e_yX{6csvkB(3wsLeN!(48*Bpvw${7T@m&c;GxyF52#EZ>? zM`!mRUGMgTvs6S2JKiF+nu2KjvW?ONU&S4>!yI%I>I<L7uxie#BA^TzE+X<vaiK3g zKdQRcVHIx2Y4ZHZw{>17tA$aEr5?YgdcENdXekdl45Ro0;_!s;iAzs>oKk@&g#wqb z;#R{2rFJ}x4&Zp$U%z~*%UgvSeRVG{uaCRiWOL77p6_*7qoGL?lsY)#xD-^vD#`$2 zK%KvgxIc|5$)iFimth8;8qvfMpVvwjE5rzz0U;oYq^%>t0jD3C8xKtsMd#-i=m}7~ zwJrN35gDeaQJO@E(YIIM{_OXEpL)|Gu)M|kW#>G<zQ(acf)b2~<@Sf$W~^FgZPl?8 zer2CcyV-yCV(Nc~Q;3r3HcN4n!oBO)VKBP&6x3>+_08}MEz2ifeKQ@t_STn3D!qGY z1?fDAXDs!YEDz<2K9K{tbwSb78BPxUg1982B7%GJ#q)@OrM)XU=eD<oKBUsO65ly4 z%c;WeI8|9rOcx~TkbuzEEk*ri8hF{9>>_ljratbjnwdS?%ZHD4PP!i~JD)sn&0XT? zIq3R`jPus^fa^VYac0Gta`kq3)!aP1Ef?D#SmEPH6)NAWu9~uzdhtm@Y#NT)@f+g$ z&pv3BGpE~1``-TPJl1IC9skiBx!HT?h5IOSH(%WDcX{4Wdb&yC$TTc6%g~M-*OrXc z@zK4@kV+sfQk=uqlagmePMIC?zETxZ=1e+}<7$ET&gA;j^n+Ge_yKX~CMI;2+1{vS zW#QN+wBk|aqmdsSF$QOUGLXz}v9@CzVLqms)X8ZY*+GQ4NiQ@*Q$!xT_cB?n7F%0< z!NrA%WvL$~Q>0@2H<A0JaOLQ>*|97|^mS1-iK{h1ITX)o+IFTl4DS6bFCIrREt1I6 z5f`Na*P(a4lkKjHrdV7h=skltOf>V@_l;51C6LWhBC(GAJ6ZVgFqnso${>@9<K=dH zfugSM`-DuWKp4#IAPldBqW~lV@q^)eks#o_+5z`>`i`%1@bu2#f7b)}RSO$Tcka2u zGvpPVlotdm+cm(rSs<Ob=;!FhQ5!dCh$a>}&TQVt;4+bp7k!Rz*^I9~#!0*6k9ENK zrzm&=H8++u(BN<$+>>9FbrQgGq{$<}ukT;Yy-A0&tdkAmJ6;rI%!!5FUH1KcIJEJr zm`_6jyPZ!=YNLKm_zoSpQTDL}FY)!;3a!O{e-u}f1Zktz&Hal9Nwnx1G>#3DM;yec z2W8r0RaJ)nr0EKU6)uhlM|PH&4bU`8M3s@-aJGWLqu1U{94?}UEzY%3M3rd*7o{K^ z1g|&AT(awH;mOU$U28D5oQN#QA7zdf!ZP0Q1m^Gnw5aH0p;C9PP`I_A6{vWOD$0?% zW>Bc}0xo34@WAr|1I{<zngm)?pO(0bf{!hVr4iMzYH_%$Dom-IKlH0~IokejfB!qQ z*h%PFei}zXN9FbLtKa+r&uX4$gDkM^Xt{a#agZcpeI_nP79)Z0hwR|V9j!f-9nKus z^XU|kqlxb25XM`7b6!|Uw7S5fwzUVO_C~wAY9EAs5c<5ZZL`bUZgT2=b_P3~hYs;{ z7z-870xx6)YPx~y8Uga!^$s_yaifq6U@>A#!|>aAdUkvL=`xl%-rXWaxTXf&XJnTw zp`6u-N;qtGFnT>hup4SxY0{W=;!Z?U)}yF~rrRCL7vFvz&ux0|F;aJTNN<|)>C-Fy z?ej7?OV(SSE~0|_JgY`p@LFff1uj%s6LW;JJc$w<p(4-e1HD}C@=WwN$p}YHw@lN; zf+FE#+aLCO{8CCDS{f&@WIG2n8$LKHFx%B}6yk6eMNzlibvD@D;bAa#*;F_yMP!?M zHQ+FW2v_~s*oo~#L$35~+o_V%MP~?#dholz9b)Y-UFtiOYD8n24$k^GMd7`;YFe)^ z+i+7Njn9tT+IE=6j;?Tb>isd>;m)tu)F>8HF`=pAiismJ1y^VJOU_uuhn1DNW$NU< z?L|y`6d6H>RynMwl<x&N80a9Is+LlICOnNEHaP!|?{Yvi5j0+*&DkCEV|L6A6YYjQ zS_UEUY`0sSyN(J^p$<bY3JNtfWp%Zi;)quCQE-0lPn|d2wyLjtpJn_x8bajE#Ir9D z)dn9G+w*#{FMHeBw97|LPhsKqcw;+B6Mr7{L6^RtdjoP{GOG*AT5UFn5mnbL7O4oh zYJq(V9l9B+qD)<X5hb)v@Iy;Lxr1PueaA-T!1INw1%G7);yg{A;70O=rexDJC3b8x zjFDnwyigfiWf6(gMavU$9pGDw7$-*zlvLtnpJac?E}29DAzVmzMB#d5cD$oQwd5d5 z6y?M%<1vc&uDMXt^l~Q9gt+INOj4w9Ja|41WLD&Ot^?#=pK5;&9feOm)-_d0ISIkz zEc!A$y%ti0V~rH4ag2`xp&7&{(z{uoY%@?_;Xe~CpgK0#WRr_neJ7C=*$Xc<7JXBd z)W6dD;^K0%UgNQD`!4i7P2E{u9->cbs-h~&A>lik5yHs`%9)H9m30!mGOCmI_icg= z7U><$tl`dfko!W7Oxrg~FmWT{WRvew)W2#OmQlUCZc9tN<}k6_>xNTbTOwrpL9A4C z-0g-rK*e+#iL1Np`^Vc~A!l^*xg8P)PM^ws?ci&fy0{&OX&V16G++HEp<eF@aX5;4 zK)9T}_?G*prd%k%2%pME6!$IS>?@aBkbPd}c_k17D&ONl#nW;;WQX0&G$Y?6QJByl zw{P*=>($xCy?a`Kd5R+0sLN2<_$UbTq3r6qtg0xCdg>0UI9=g$?E7}gCjw-)=eRaa zRdD?&AZp@T(Zgzr9O1LJ9F|&0x}sS~>4sTk)ugkRCrc_oHIK;3o+TJ1E-n<=+uWYG z)5)iqqRKvv67U!Y><&0|rLrrJoT$-`U1i1T+|_*E>qZZCJ<NC=1n3xLN16(<%w28Q zMRxqhfBuC-qNeSHOCp#?`hc}vhx+#6YV8J*2s^ODqw%#=mpJEm@VLryJTk?{uAMD} z`fhe@bhMhFEH%^=QAp2{<#xpTS_QgrCkQ&F%SkuoA(*?NY#eus2e6=8OE<Y;)s4}B zirm3PEm5V9^GQvfZsl%YcTB*3h^p_H=jU-W%j)a&L`2cm_0{G53&L~>6H=o!zp=(q zf+U`3A8cT_#DbALg8RXyL1_C8u6aL*6VW8#+zB_H7P!kZsws6etVI)1RweE)Dil;t zq0g2D=M2R-XMLWrJY_^ifMy{+jcCj2t|8OI_Y!2mEW5tG!j(qpj$4K%3AI;URF-Y8 zHrps&ly#{);>&1_!N=L5feagTng{RmBR*}sec+DU+8S%^4Qx7H?sv6=V25w%#wmUp zNsokeGUnP<6w~r@BCQ3zipSc{d0ATN=uUp%HQctp?5Io9RP8$Q;?)XCk<<grI#9n; zj5kp3YlfMb&ZCs<Z~C?)C0Gfi1gC^!M^|PKBCCQAgTA+-P!fVKY7UF22o~Iuv;xjT zXTm191nR|xPACtQQ)nqMU|T4Q8ZP5obdXIyWOXxeW#ix`H~lDXkR1NeDBN<EYd+Dq z+K3NG<aOVpM5P~ic<<KpUtSgXjEmI<@u1LksnUg-uJJAvMUS7C+q%qA55+1eM|QE< ze4z%t*3K}ow50YqKcIzM8H>W*py%~^O$0evgj5tkPwZLKB2DSO7qKWuJ*g-Fg(A4Y zQ%-uctvfOtI88N@w?o&XxEH!Es~0h&C(NqriR5r(B&)SgGOWM^aVkji5z3=9k#;~w zFAvGD9Vq#Z<J}Xeh0~QFm{60P)en(>qzY?`l5yG^HAlV{+31K@G(e-E9Rm`FT{tjx zU6DHI2bLS)I*a|=$fnivjO)fM&I+2USpG~UXQOlJBH<9aBu3XB$6T&dX2}19qxIrK zD6l53`FKbzM^<u^ZHoA5+#NHbzPapUKZJe&k!HK4elYK;=*lHYO5tY#G>TI&N4zs7 z`G~)qNM`X2nosy$1Z=&|RDW8I!qAOgsdEf(&ttb``Hb`t2`}i$k`PA~HG4~GO^Y*i z+aIZ8L}YGFp$G<}4hNA!8SY`6oc5%Ud1oc}ul!5kj;9RG1VO-~dV|qxy>ed|4WQs( zlh?SDiT@rKq*opcZ%yD`=3(QoM6$Ob-SLsf-?N%wA!cSZ<3wKXq;|X8-+lGf<-L2` z&6dAJP=iBvl+89t7q~Y@PXqsGx!zDPPL%gWY;_jo9*z!jM#ssqjB)U=_424ult*dW zvB*X6U9VwHDzg^h5Ie-ajneemB9uteE#yj3m!!O9O*T3e_$MLB&Enq1p-?{?KNDkT z!r`?yA*xUO2%Ke!+ba@$CktX5Wwcm_%)-&_s_IDWf~}fP^;J2wwU?~Uq8R<EWg7^g zUDVYfJHFiSu5Vvxu{QJKXt7v$sDoK{Xj~Mrzv0JIB5i|<OqdY42Y52Y@|uFP9Z{HL z8%-tG43w<x+_^VLUxf>_nB}CZsy$RVZOu}xhaj37`URqt$?}ZfQ4CX-VT_kPR{gOb zDtk2!Lp4)lOQuo0e6D5FwtS-YvE$j<@pyiI&T7|l#rf9VE>~YYeX_sZd-pHrH&KcV zlf>rY&UQliMGO_eVnt^f#9884c;%UlN1p1DChKEQSxQy4)J?oVx8B!=ze{=p^}PIU zJfJ==%c89DVR<&BLgpICB^^<;v_)eQVKNNEbh+SkQKRPxA3b`{Aa3G#f$LV6B~I09 zxu*C)M^ub9>a~_a;U}U6MAVmA&c4E<kPo`k3LO|%+p4H*cbxn%L2zRaj~g}G6lh~d zH9JJIAfXQk4pa=*+6_F1Elx04UWqo;wX2Rd(!=3oi{yn#%EqfjhtakbS(sE5^1b^P z_Y~ztsc0>vOv3dknZ8`O^4xH?!|O?~p}0m7ywO#SZ3GlqLRjXw5}n`&NKwaQhU7|y z7EO8vd-B$4($VX_i6U~A`l_b>6kpDx*|cN(&Vs7H!(dwx5*;l#2l{a(F|uAl5cQ-Y z6o{@zB}-<z?%Q5Z*^wwYl;-p|w2sFEijl$(cfCsl$>cRdH`tNuENwPaY%UWiJrNkl zy`kQxE9C)i0!;(^L8gT>oeV~aS%FV!+J3~B4Me+(3t!Qrq<awh0(wx|Lra<1kmD~K z7m-8~OZ#l<Wp#+Md+tQO(9mAyrmja#hx&;t6sn}!@;T5y<7TrcWltJYrfVQWf1Y}Z z2%z3VvmCOT=}!!e0k;HaQt%myU$UR@)qGq*34KcR#Tgg5KOuwCc<JCLR?BUaqzDzy zuby0AT{%|eipx*OTtA_tcR7i6#Se<vv}0+``kdPpwoT-<idH#sS4gSoOj+*o`RIC& zSIlKB@<*!XSWy^Or9ZSet&tmi8x+0ua<R}%#%Lz+*f#jo8-GjxZ_XCb=Mb7k=}P8w zGTml=5VmTTtXHL+`=jztqk22bzLBD+rjOzT(E(41xhpTD&}ekovYAJ^oq7c2T8q@a zOFdfp5gn*EGgR7+M4hguHKrqT&aNMMwP)v#rp7<sk7@%fr5nb{|6+Pm*ZR$j`zBay zki7EU78`%>-tnpCyOF>vboVO~u-T1M49-5mwPtRGZKHA`_!q)y9O4LQQthDxuGRAw z&tAN^5;aHeLZ*Rp8=O{y>1WV5oiH>nz68)&l$b|aPS2CW$3w8k!te{DShqC^!9`|? zOEF70O<fZld4Zy^^%vlu!Bx?S9Dl}H5oh(O<<d(T^+IBBI6ZNiwvnYWH6}HlRg>Vw z7l&5xqeV63uCt<((>t4L@rmQ-6iW_-6_W0I*0Zb48G7%sIHEz`K6szfchg)H)!}$u z6lK@dy~uXpq@tVr@RLvDAVP1(^(a>uq(6y%+7!{yMxR`M4X#lca`hb-Zl<dM&6sC5 zqVe5O3y8y;du@xmZQn914qfBw=UI~^BOYr!O{Pp9nz|bCoe(s_KJXi=L#bUoN0en0 zYcO#an~BTdZf&N~AC)>HKX{()^QPoEVdmh}J8<;I^KSOL^X=JbkRx(pS`?Md8rYLd zPx-r^!es0MkY?KkB}*c6ds6uD<{W^bp6Z-Ql}Du4^5h?>WZZ<i=0~>H>0*gXgG(C5 zVZ?TU=uq^E9HNNyHxf+OHk85P#EnQ#s`e5gAE4{yx1T3u59Vq5$s;n+;iI4+S?vpx zgu2dROF>mE>8I&lr|s4-G_*?N7+2a3eOnArs6Eb^8`p;oF?!7;!5Lp0A#A_9iK1w; zIh(}hl4CtR4K<}wn9xzhaK94LnV3+6LCP$m0@Kw}9BDMkt3l*wJIjvbW@?hp@zppF zYa6k0oWutQy&}#wt;6ZHkR)i2SecGo_mLdW#)zwLL7#Q5tvs$gCvO(&S{Sfm=-DDz zqCAUMBS<1jH&L`TC4E3~7=V8-7isAGqhq0ZjQo%%qV7aN+4Z#L%ax%{A&D=zbP>uM z^qw4~X1l-%NV;tbSM;)@bj@{?7a~yvB9Sps$cdHsWaw-}$qQhLOD=o#sP>4$jf7?$ zm=#hik(t7iq5#QEY5XEBBYr@qV3dRCg3%y5sMgq}1<LLzgeyu>tX?|YUYA_7AVNV_ z*5ZHa(QT75I(<*EaAQ6w22%#z$rB#<qRXa@05Anoh|m^Tv8H~YAeaWcqvr=40d?pu z@FvkKEeo?7=GX=YqbWnm)OTsR#Qmy@QpYOvqYvKy2-k<F9g*<3N2W&tMjuFv@JUxq zJx%!Zo<8|mxt49FxuRxCZz66l9MMl~dnRNKHTjUD5+*0U?*<&yMY<4ygc`>%3UOV7 z?UrcGs;sEygc`=CXpK8@v^;U*XoX&EIc`1Hy@*^=>d<vNiY#e4;cv8kv;C&7)2SiG z13#$oJI+6|CGNeP?F*(!Y#5Z_uSATVd?T@cZVBR%fvsr1b44+B+8?Z5v8bOzg|aL6 zTB}4kjK`jO9154MarD31{+e3MlFADikbE&Up8h{SKQ&Ni>!dQRr`L*El7h!S{rb3| zwt+_TsTNu6?*O4+sd9?*qf|Tc@`eZHYUi{%M}4O~Yhd_v=ON!8UOaocTCm?mvCP_t zXj44)J+0Qn?Mqa1wWxLz5!lw%WbCHJpTThTDEWwxS>%-ZAq<K%RMb}#(xC3zBxHf9 zs*p;1^cH*z#LkIIXsqm%O|#gt$n&Eyy9~Jd@ns>xYMX=^++Tul@yvAO`N{Y5i0<*_ zpGt<Fbw>yxmDnsgPjm=>6VsEpj8UQzkFkDvdz)o>_~0R4;SW!q+}z%lW#uyPQ)g=v z#Zi(-6rl^jX|*nv5f<N&^ru;Xa+55j2El(=A`dUfrWqxCPo6tb)-LgHQ>|Tp>>IX} zY%=jNI!%J1xG$hJn^e|KeRss|YAa7D*N1iri=vMr-8ILm<_@s!P_8yjH5mA`bfVMT z-60g1Zfzx!cvF8o7I7LQSJJD9!bU?J`bfZtt)U2z4R0+$CJ_l>0o#dEJxcb0R(eC# zRH9?b%{u95QuJ`^#%=q!%cd;La63kF$T|awrwNgEB6@W&iR1I2J}+?Zn;LEX+4c;# zG2+Nq8X#_E=}h4=YLaO^2^_$otE+LM6#W*_0}|Gwv=TxxYa8+!Io6%fsrXS4;!EL+ z*L|PhUyDT&A)~Z%dS;0@<e^b(NX*HpFfytr;EtI$4N)zMlQgBwT1#bkg1!k|np~V! z*SM9~BDlu!KSE>ZGa2HFqv&M&NZSC1<q<W^Jx9=Ic%CZ8>XHI*Xo&ISs5fOSA$5;u zi+em;>B&Kl?F?D3Q6I+vwT02RqxF&YN6Z3<m%&Gg<y0PvyvdI^rfCo^77Hc&%hhs0 zwhXI5QUZnT*t33eDFB5VfltnETgiUZ))Bf=Z4WM<_XM{Q<qh7!rGIAYTV5OnGUK6x z0J0YWV2%!gSb`R=qvdfQA$rXc2Us;AV%XYGBBXeFTM3LvIfH81*7IrgoUX+~!MH+w z9IEQ@*q|gMHnpv#awRw!je1~NKIN$mVt1^08hI)@7Fdbxxx;9b=bhDhjU$m2If0yf zGL@)!it~@>8<9dbvw<Tzhm@Ht=!RaQq;T1?3l2&UKuH|oIN?ZWTsJ?UpCGddg*C{s zksWXx$4Ropqx=v5`1jvDeTus6;r;tKau4o5ienn3;}GR#c6}ARyt$&ap)9#+_AH-@ zuFllJVM{IBG52IbAoD+Q@Z>t!;Z(t)zw;oTo|Huz5BZTecA68q5pfTxC14%n3ClI; zNPPt@_4g=5B|G3wgitYVjb~E?O9<trplMqo50H1MmQK0UH&?%Jxd3_c_npKJ=at3a z+ufuyvmB-QHto3h{p80`cX5frWxFj?yJ7V8<WG%HU2Gv_5V1^q6+A+taHY7OwDiBt zp~$)$7RvyPalth7lSn;^I`O0eWPN3^6?;uUn%@Lbe-GVRUUsy{SF9>$Hg9FWV*~u= z@Y(z<nhvH5%N;Gx)pva~p#;v{Q?_+i=C`-kdG-M3X(WWNwL}A*wnDDg^?ihl6eU!w zkcykO3rHl~rdI(UUA|}_WFZ7l@%-prkFpr}V;cMI+&jd_b4t>W9fAI$l1LaNr#(X) z1e{~}mc(#`JcnUs7>R3$B11Kf5uj!VEg(XYKoCv$>`+r1&u191{iV8w%ash-)!c2! zESkM^RaLVLZV=t_EPwX(zhrg2U9S;93ltOMlrGT~pZh@^P}ET5WP|`Ko*Qh172nJ@ zg$)wB=m-+MC61}I9A@iBSd-K1sT)`U2>fl-#I{<o?p@hPM3nh(YkX!R(HR^=Dtq$T zR4p<TPGDUO8tryJSy?mnhaB&VL_rfek{R9MB*HE_XUueSuTBtsG)+U@dF-lm7@&hJ z)~f_TA5jwJWZQMV;|(avvqKnoJ&{2~zD+^_oMzd~_o6!{oZGRLYK@(ZRn|pE(RPZ> zQ=i#romv9r@9N!wd^Q&CHpLDYi&55kS|EoW9ytWL1`Uhr;-)W=D3(jlCszlj4K)u6 z3)$IOS$1HP=eu#b#IJH1j5EjEecJ4dLfu1}<sA`L$;;atYVZntnq6$ykkcjtMtGZa zkybSlZY@4Z9*!#xNsZQyMIMzg;vilpsmD@dzzttS37!%Z9A+?xN6+z{*a``B(l)MD z)i&HOh_{PN2V-}zIvT2y*)k3#r;9!6$f88{LMKeIbh$eYB^^B6i_UnKa24mQVl<}y zY`zsg&jQ(D7I=$0I67LPun-$*_y1?@O@Ay))9tQ3k7tT0hsvtziEjJa!U$t7=7Ipr z0wE#6pNbH|5?GdOV<dkx_}aeRT|HG-RaRz3#F_RyvVPA#8I@IC-PcG&WoJibo;YXk zcfap5u4gTCYyNB%z=*RJ+4yfZn{M_dUtR64moPL%ku1_FqfAd(My9aFwyrmnom|Lm zaygYKvd$va&mfGUm1$euhPD7BI7zHsaXK>Hb@S}j_umhQf?Z;qSBI}{^k1h{8t9Tb z78zWy#t!}il?3p8R;Q6!pl3ALJR9Wf3JLqr213YCs0i!O)SmHPDT;SJo_=R2FyBiQ zfq8`Bgn3#+>$?;60xO1^hf1n0UeDWTh2f^5a0jJ5*Brt+?pv2@h_zxV^_8WMt`ks{ zMX!|9sJP@3K`4Z*!(bCc+LycwfLWT6beBQsMw2@m!IuB8{`LR;zyITZ+&1M;fBcjG z`XBsvpM3lSP=_>GDW)orfA#UF*?M(<|F*YkvM$Qj3He_mt{^=LOjm}~d+MOSHAZW= zZ(N(gVsqMn0zEia;Rt9lkYp&(m@pVYo@4aa^!sF%JGXV*rLaID(?mb1$4n^D>CG|f z89|)Zu7iuW_WTstNcU-~72L$7o%ua{7nFc-k+7Og&Xf0Dc$GWrQIph<V-iGZl<6-) z{UEHY$VSJ8X3jX#GjpGqI*_Pv0s?z?TBN-etf>Fjj2@+<aZh>|Zkh{p+4bFTF;HH< zPW?rlX}oCqzOO|udH;v96Ymogpu)Vb_p}t2)PB2KZz>2T`1bu8g_g{kMg<!lkYK<j z_M$m_eD_W!L$Txt8$uz&r5%6RKPcGWZmvxViK!zQ57)o&e(;A5ZZiyuOyN9lP%PX` z236BVv?Fy?k15+g8~;=uyJ0W@4rY8b>Qu5wQkY3b$lYEKrpKVLQl_#g$_TjDsLx5f zIrPR%wuo5`5@N(vK#o#yX7>gRlCAQUcGv*LN=WeK8bsQQ^iN$4UJJe(&#M}Aa?&IZ zl64Q$Q*d>AHyO2zk;}RLZ2TY!?vYEy*vuBu#FX3}D6zV+;z-OZE-CJH5{(EzS-BDx zMHfwn8V%Cf)V1(%g_B;*XV>bq8%Mbng@HXvq-HGoqLqVfn?kRM*D^3OXQI;<EbAuC zI-=1yje}SQecv6BH<=cy(j``5ySwkXJFQSXtyW5&>(mR+4m1QKvrgU2K!kFe8Y$DZ zV{*neEh3SqEE@BCM+7X>W2GkGqLYrdqvX5-U!!-hxOeuafeMyFsP6vZZ95RC?U*wG zRVP2b^j>6E%DVdf7oWd;_Hw(sl0_f^31eiL2SPpT8uw|AVDmKgq`k`itqJOp8~Hur zNUgFQJ@Kk8^vFCT{nI|NLS=xzbW9E14s8;Jt95oIAChJh5Sw(fT3LlLw0+yk^ytb~ z`8qQEt8&5P@t_S3ZYEBO>fD~sNp8b<WQYNE$brQ1@vu*l^mfrRA<CJR(T`2z#&Ts5 ze4S{d``W%;6!;XR9aAfrP{Dy4SkX^A&KV_{5ema8%yeGiu2Jqy&;T!g)wN(byxidS zkUA-o$9dDfQIx|#r!m;zwj&2gEAlNrsOz#g9W!R4w`Nhb>E-q11C%4tQ96}{0%a(1 z48}vOz?OhCN4Aj%-_znjTEnL4kk`Ok#@5#1C*WM}U^$qqD}Y#_tmWK8=o>{AZ((Mv z+snp6_SBj2?sdy7z8A<J>Y;R~>W<of85l{AnKp<-wHYQ;Z$$JZP7}h2w(x^Nx2&+O zI3KIik#2*D+v^7M)y6Zu1U-ITVp~-?)N>%7m<9u9p(hiq^3)PA(#qCpW0W~U18nM@ zqqfu9HsrmV9DPvUa8RTub1@i2t7nV_GUs5Kpj$wNY2mB*?6Y6~um9WsQk~0eo!4FW zFaEE8u2c4R{`TKlZ+5VBSt}}FifOAgASHFZvMiM(5Z>GHl=aIgI}`E~i&5g7Ad3!Q z6j=@v%;7Sl#@0R)f!*BRVgFojP1yry$MKm*W7Pl<u6#a4vXGj^A~0<HEz~_txWt8f z*rwxp#I~?ke(wk0K_pqpkw;_}f$%SQU!We}i}!w*`!1S;AHb9V<WUETJvu^tLueT; zHr&^dtEfuT$6C@~nuIm-rRW^PaPv(LzKoarapd#TS2van>Xw$Fejl3b!;bGa@Y7{z ziq7me4d5N9$0zNFsS8Ya*qRmqy8}bZ5JS-9eP1R0Q`5;${+gnI3k|XiTM&^}9*<}J zx4XTQ)f&5ARz?e>6^>k5Ueo|DtkgDvYgjIsH{iuyKsXkLi$-+pUDSv{;mm`=?A{<b za=mWfuF}j0l#sN9!^29!z8o;S$g8?BV7Fbwq%HBBYoMgF6{f;&4s3c1B0swluSKqo z>#?zVxYlGUD%3F}&w^lR<N`QlPT)L&-9eb1WU>@@AH4$Lov$I?^tmeomhpf|b0;Tu zn7dj2j_GQfW>Y2ye!8g-MIAZ)Hjl|oK#ajHH5hL-1`^nZW15Rh`~h^JSUu5_fNOd< z!(lR3qvETsHX+Uq;qba1Jp~Hs+*BmQ*u=(WzE83cv{2yaFUs?wAYar$@FSldKV9_; zt24kI&xf1d!+MrZN!Qd1S`*39t6(dWv4(DgjzLGL#C%sXDsygplfYZJ<V-}FA`(b< ztWRL%!>t~A>wSa7@CW(f_Eek((y4f&=!M9+W8>Z0Xzw2H|JncfPe1$3um7k2;eT9j zH<Yi-K1r9{i+a6We;6k)`T72}f4vYKO*Wq$63XkbMNQbDs)*DC1Q)W-c97*A!|R)y zbq@=X?guUfWl@|5GDaMM95A(OoTX<R7iRvN)oQ)l?dWuO^{Hf4WihofMr}U&^of1? zlT$kxk?Q{Ov8l^E+gxAWy2fmyOV<;VlhdN>1u{Jz#Q(^XglW2#hf`*QwSw^!kjsp4 zqHYcdx@|0*$RC#6o(z?i2@ErkeQHlORTluc&<?eMtDvnLrTU>orLvpsa7E7vwB*{J z_Ye1Fsl<M-ynIt!>tF$$$PmDekn8gfCmrzvot4ZeA}vfeEZ|Vrz3Ulw4O^DEJ=)T; znw!mJhyd+i3q&Zl_%u+7;0Kh}%_DTkhT3d|Z@{Q-IiWr3>*&wdO?5h-vSb}cP8?^7 zBttnAqv~|Qi$zFAqMw#19;-=e9U^0h0eq)(n_549ls{9*-sx}rWCZbhu<<L%BMGaq z-Ojl<$X1}N0K*jUY1hUg6<Ljp``a<MA5l0uLu`pli|J?N^2%6NvOc;W1{XCF2|Y)) zXsBa7SeskB39#M_S<SD0^^1O(lRW?E)hB=d&;PSD0;c-r?VIE20L5&cTkn~nj_qa} zS)Ez&=-YR%yQalrT9z09U!@`5cMT~!^X?A9n#kNJES?pWq9kTx32B^a^DgPKb)y5* ztfW6~^N)sj)w4rQZfPF7*1PEq2+g@zdU;mPjLc|Fma4e$3V#O=Y-Akfq=2ar4!>`j zj^E*+_yCl2K|EbF3_^<iN;zr>ox5e)3My*D>B!C0{jjmzS5_sjJmtt|HzJn$X4rQQ z#<}y|?;RGpjBjhJ595>9|3IJVTZrYQ=KLMy!KHfsA@fG`2U5e$`>AKwR^x+`z&Am{ z5}<sa@1^=pLwE3=#*X!EU?L%?1UW;|hE-V`-AXc>RJ#`H<wu`{aFr#YIg<fiDuWln z;Rrr?x5^{Z2&4lQ_a(j?yL!VaLPf4_oo*M$`{U!BT;=(uODR@^A{aV*=!Vy@PM?7b zyyNK@6O@r7YIEq4%c{`P(xucR3SyHR@*HgTEQvGELqY_^C;IJulqNmqwU7ZZh8H4C z<L07bl#z@s-9xaZch`4mmbsVJu*&HIo5DX(T2t5<hZ*CrO~YWnuC^;^RY9vzt`xcW z>7vkC4<0Z*NH@ExYFt>d<+{Tet#JpNJ2JlGPBw5%QA37W|2fgv*i<A{@^jlB_m9Uz z;bm97p1+oHtPf}9LS4#Znq}(ua&vX1EJY_8G2pQeW<X*({{XM1g^eueJQJg|!Hfak zhQ>(Odvn=N02NN$!ZND}i$b$P$Jr#lncwGJP0P=Rm#Eh_63TfBy`Djoj)I_}Hs2!( zX~*3^9_7`hYtJ}qj1M#b*Y=BF{QRH%lmFx2{pz#7@i+fg6vt)LEJw<-xkKy&QVjh< z#Yf<}TDNu88k%Xr(i?IL6C0auc_*9OwcGW^F+`poowlqpT8LT3QEAw~08tD4s&Sdi zjKi7Xod#-`)JGfp@o}k4DZA3Yzz{fe3A5Am1ZEW1bunF06;sooG^c>3X|zi}{rJb5 z>+6BssHLp{W!x;2y5vkc+X`p=#FN!^4GS5ku&d3fJK8I?ZVC}92++f>Z@OVjmHpE6 zCXQ&@1?k{N1X0YYx~t7LNm0GEfxEG5by{Mm{bSvo{(ojfn1-hI>+!T#6t>A}d28j* zMR7Rn{V>`EQPV)(>MLqIoP85)-#<7xQbT@>99KLMw@s^6j(Z)gLs_0ZqgfxDR>717 z{LUQ09m~ct&f%tMrh$<&<0hcI;`B>TEYNLE<o)<~&!)n(Ay)Y&wpd*c&;|k-5u6Nd zV61k|FqkF{6G>fH*N#u`0p#Y;AC4z|oUDxUc*RML-n^~-BWWKj6X>YK%=65Xg5$2K z7ovVWIQc^0O@v}YZ<Q8gk&+Y|DI@G#{4phWk8(Kiw+GIK8q(a)<o|(UQ$1{-Ko!;q zT{xfH0#VMCGhbc5e0Fy%3Waw!H_x`KRoB)sl|`ZBdQ75NPB@Vt&hu5ao~`t_UTqZ3 z|LWJj)B`6qx3NhaJuoR7>%n=<Ft>mR!~5#qN7BWL8bXe&3;=~`f?0tH`$3y|5rnpw znMA^1ZH&74&Qiuk?H&SrAe-RW79rgbHXIMNPv)|Q;Cu1LN~qlT-#AaBJb#26`H4Sk zdfzL}pu=_$q(hHkw&&$TNDpRYvUz4Gt9%eMD`zglzB;|n7VXWvKi2X6Fek1|KhHP4 zt-r2i+%0HR^Pk{Ap2CQw0i4<2RN#{?ch`MD?(AOFG*O*gjY#?hQ#g5%i{$(tES+LO zxGs9bgUNdP?%3;=9pXgb6eim+Gpu_m`mO_2!0_m#5DGm@s})!br6<%n#^<H|sdSA{ zCfU#~F(M1AF11yml%VpGwNY*LwbD45%PSqdTu1TDs7BY&Vx*EGrxKY=L|G~7h3HY% z<a&2Skg0ffbQiJ+0Hb}M8XijCf})5`T1-wl8LNllWto)-XmrbTiu?5J7$=sGGgumX zKcVl{Cv&?&RCj{wTsACFMl#DIw)O>bduYnOR0gJ_Gk4&PGq*2CcPl&TDMSc%8T?j- zm(mKI{mJ;2JDb%3HCa_SL)o3Oj%<*N2QV7E9kmwyuQgjwuh;KO$8?F`9g4TdW*0QB z_Gc8A)7bQFJ$2ET^uW1>mW<W7s^op?i6{Y%Ca9C37GU_4=A2`oCXX@DX%6Gy{_%dZ z-E}?WO1493Qk+f&j6YV#;}%>GUOpLuiCNTenqqQZZ$>#lZi9!YwVD=;z1*WW;Sz1{ zdvN1*XKHj|mafX;-1K1a4v!E2>M#HDpZ@cIR+iP@{ty4wKm2e1`{yq{uIh5LLDE>k z3S-DR@P6W3JiR0+dMIU8&hT^Nn_S~InhcAg+yW*U>Y}KrbC~BIRyB*04a`Y6Zz1Nq z;IS9!b!F|w(B>@})%NO2DIlR$-OQE-HBD=!K+jnCV}Lnz#W7rMbR00<)0kxI&DBnO z`+PpaVFle_YlQqb8HHT>AO(NamT05Sq_6|U;@DyW8GcxBwUPQkF=cT&?@#*(M%EPO znZ9#cqb1jxn{tCMXOltBYAPl;<-wW-j5%5fDzse2GgO#~0<7Kb*4R;ofRSHU*)Fm- zbuoMH)%7*FAqzWN(|5G&oL+$AZ$j%<hBOfYKVXRm7FNICzxzthG|krxi6Z>tEr?Fv zqy^k8i;Y{<!<kub=u+VyZMa28coEO=75rhDtU)HvG4=|vWMvfDgZ*iWj?wB%mrpxK zA#bm(*wz$ikY;J_@82oPT5orx0`i@8In#!S>Z;IwgJCg1#|5Fr9taCOxM8>of>coj zOcca&+P3ocpnr5#)2N5lFPwVrY~|lzw7D<lxPgxXluJ@QF-U00{@Q*pSwLAPxV!rv zy4-2JyL|?|Z9YXQa5MV11yU<E>aKeli}GYd))YT1oJCl~SZJ#4ZhLq4qHUYwaeppL z<0{Z&ih@Nb7zJ=eJZ@}Yy<v#R^usVU{Rzz1gh-_^w&E5P^?>zpOyLPqwh2iD%T)bE z9~zN(o87b`;-ZgC_F^q7lix9@)OWPyzejxV`_kX<t>{`GmG@;}pdTX3ey|m~X1NEh zq>n}ln}G#-Nc|{?9a`T(hQgZ5B+I=Hv(>0u@B6{ei}Ww!<)(e~LFxL^{k_msEwf3} z)4z_3#|`F7G8=q5_hkm|y$0gbHy~+^U283C>Faabtm>SkJ*{?2hPxo#E-4)_8D{Mw ze;GcOv$FEI+#8rAHge$l59jmicdz${{c5u_TwHL0bCGu{J?a8-_rWF?FHL|6K88N* zy^>8jC>1*?zj*vwVcN~zi`tbvY6rJ==sgd02S-O!oGHRlDgie!6os-HIqv=G*zxKv zw0ZV?y(ZWkYC0D46kB8}v!D$FXxdm_J5$We5(V<wWZl?U?mCXjgBQM5Ln<k*!aeH) z1Ny}#+%OJ_uUy*g$fOlv5`e|Cu29)^7t<6cO2yOnLzn`dmOp7|Z84;ufH#?tYS+eS ziaOl1)G7y^p0;7yxKb2Q)C)ja#$DDkna9WhjLpaojZee~wL9yPs<jM~OkU?DbBs1F zrzZ$H8Rd$$R%jX<P1nj3MNzs56NA9QQJ}P|5B#of=*fA0zifP;Q#vp~IO|ii2_6p* zD~NL)Jp!w>J86_0Cb{5}T4=)nQ!`DCGqti$7T~t_bZPhYMp#hMyP2FJ)HzDx_RJq4 zvv8R13@xGxoAwvK{DsWn?|%Cm?V{g*_2vD$cMpgCZg=w+|KJ~f`q9T2bSRFA=3T>{ z%!YFtdlUKfmWgm;vZ92`1;~jXE;CjTAh;MG#Q}Q6fyubbCXJ?nvuF)1Ef_@!4BZlC zBV}#bGw^87ieUpxNzqo0%JZw@WK?B|0!E`q3=MY9s81NJe4{4FvQ#^!p-w*|n|(aU zltVe>g*N|L&0R3~PQnEF&IMio_KhmwY-4W#SE;hwY<8cdnaMg**AMB-=4+)gabi3S zU>J2h>><3Azl=rg_YXRoYsh{_-&V}59r?@bU8W@`>xk$1+6K}F3PP^aO~Y!v4%6J= z)^WaCFVeYnQzi1b4y3_UbDU`bPgyw-1RgcpSjR(8*E^q!s;}2qH>6D<<C4k5h?D{< z<jS&)fo-^%b-C8EfXTt|Rr9Eu4a2zUD0mpY$QV)vQ*`u$G-bSCAP^@7g3r#GR&hR{ zs#q=+DT`Nq<+DXoXlHr@XwXwx>Y*r%W0p)o#;LfyRti#hHfe&_!Msh8JLJ&IYf*{M zz_0L0<h9IwO>?D9T$Oqb^bTjna-l5d!O{76YWz*ZGT1*c+D;o`g3%XeJXi|APTuWy zFJHcR+&^k>w@tN5pkc(|7?+}zddOkUruGf~I?i<QkNXG3b|1g`!R_4(ZRz!T`}lbO z_Tk;wf~v616D-X>%eQE0>)mGb+M)P?WH98YzZY0$%o;qp<%+JIEUXO&#D+eXt`g8@ z7tGZ{{0@>L)T-1<*^#Ajkp%dV*7zyG^{uM*fewN5otM3@KR*GQjC&G6s`<{FR?5sw zOg>%)8<<0$^6Gq2ayE9=#ZN96%drok8|`c+dVWtUZ64JMm<BZcUhiu?V2iy!h#r=_ zb*Vr5rj9TyqfsA>1>Y!v@Pbu0jNkU|%7Z&M_|AB-U5~$1OXl~v9^(*3Ded>%x$Au= zOc-Sf(B<qnK@PJ+;nZ~om~-*@-qcjp>#yG&4##KDDmTq!hO9;b1$u9Cy+OWOU<(UT zxFY+yX_@QLlXKl#k-#_}kEMS;RHHZ6^4TZ7=5#zbQRY;GJ9fqS;M&Zi5A>;CP`k%- zsdSGV1o)q;<M{Ue?am14D9cdU^($@A)rML7rXw-(L*>hkiAw@F2>hmX0>%|^(z0tF zxwU>s1|_t)8oEi)|9P(RJlx`}h^5;GO*i?;bgJE~cf9NAtN^#2+~1W>(+|5mSG?^6 zN!L&HP)F7|shsd`YQ08p-VSkgI2WfhY1?x}waogBL7-!Bt}7kggkaQk|4iPXWe0M; z7gjntja>`<>o}z{S_<=$be*Py5Ao(8>)y1>2I?u#Xd(R7dL;+2JX|C*puuwZTo*y~ z1r|OT)L+5JyddkDi5!?QRvyrGdUFO1jPc=Y!`5Ec$V6L*s1KY;fr9n<CcIZ?fSYEj zda&y$6+p!jbL&7DIitlADJJPWCt7c2FZiGT(Ld75l}a#a>d((#e*7Q(-9LZ%>ZOd% z*RQ|+<?nv;U;HP3_lCA>uM21lP(8pLQYyS4EQUEZIrRl;?(E`ZOzLf(0vxbsjV?Bu z7sC(^fM~D{4deviN4HS<M1bZ}^kTHnVV^<&%3qA9iHD#s>uQAt8N>Bz?Or)nOr~c+ zDGcwJK>3T@7PJ9cSLGa5e+kkg*L%oTD6^F5nfbse%Mv-2s^Ugan=pbH6C6ymJx%Vq z*6vM^$5G_O6!PR69hL<|a23F#4oOx$G@wz8vZ%JQP(n$wGSM&3CbL4LnVD?%W~{18 zZ?eg^6P(>+93YIN&);r$o847p0-*BBKzy_os~MoJAH?*U3G9Zhk6}*?jHJnEftLmz z_*Pwi^y-rzt@4dFvwS4UF*9m&I1ji;FEDbeo<SBJBba<gW3f;=K|o|Gdcc>clptYA zuU4<u1ERc3$*b0l$Ss8wfiskyX2=HQeG^Xyx;dUsFoC=N)%sfZTri<{y1Knd(maWE z-=*we1D6JLt-8U!F;=oF@K(8r1JaYW+Vco}*;=8xMtyKom0A+rt==<<^!Naa0V;xS z$`2GjLB~w(mL;(kp3JjygLZ5bA!-@dNxEnQr*Zg`pZsL?CNG;>jy__XIv6a62IQ-( zFNyOcJ)ciyanjuu^Qo+gx+>Fbm1VhcT<ZW`0sqTZXWepB1OFsYFscKxp<og2wTX_| zH-Pqh8M>L3j&-nV!{DJT9c5)6B{P$QKY7%I+yx!7q=KUf)WY4%Hxvw*R#Eb!GicE5 zOQZDL&h?KHMfLsoUEG#=-|c8QlH6M#v<#Nf@!t3*_@Xn`p6juVv=Gw;{QO?Rq48^{ zkOMY$2$MBbp7>!w+5JxXo9L8&yYd^%&ikM6K4fWLs>ci4?vn%7ah3N?hwpmdClqw| zeFgAkNc!l8+qwVn_St`PNZM}Ug3e5+{11wFB}8y0`Tf+O-cf0bxd=jxK+O<b=pP^7 z{pOdye*WTR6vmxJe~1PrK1(+$d+Uu^4Xn@5H>S2Z`17E2dZZ)LY(hu-+8cE<n|X4Z zx>HpCuz%cKXH`{u+V^GYM5*3&morYVuv%ATnS!8ZAaUyC%BshGcRU>#MQ37<CYAPA zY=6|*h^INsR#febJISLUOc6bZz+gnSV=P}`SJ6A~JDXOrhLUln+H{rj-63j<#G5N$ z-onwzE0lyNN9;%6i#OYhHB#)Lcz<YQ0%AFpp$e?E<yTWVk6*UlySI<Q)@$I4EabU+ z!`T`EkXDGq3ck)XG7glfYpTxTX){<sXY_IkDRh{MNq?+mEjHU#<cB(hCDI^$V8!GR z5F>Pw@|-m=PR@%WAK&JYw5ucbDw}F{jqk>x9N<pI$z`fp<+;q`eD;kL#ijQi!x5~{ zIUv%2dWW~@>}GJ{Ps=bpK8l3WfMv*PIm*$x1>F!Zr;_-Ivgg~~_LEP4baQiC>oK<# zGBROE%PUPgsCLG8Uw-+E-+cD=@!@8@`iuYc&--EamO*poNJd#<8Cf_&!9_FlXq7v+ zWni%P813pISO|Tm>*bR`i=tZH#7yD>n`YFIn8I7cs%^Aju;LAz4Uk&7u>T|9WU4A4 zk{CR0JVS5T<lErcSf^)%Y%s8ynCnE30>rE~>Uy)$HzS3}g)C#6!}9L{k;rp>QjZa| zb(|M&N-Ou<)Xi*+^m?WYvKfRzen=anTMshT4f&sAeJdL@GAuVU0#Ufi@4#DhZ5Der zFGFP;UJj5=bE&|n@6sSO!2rg!k^I2UxSP$+vwo`SLo9~^8MMfV?MV5Ir8-`(O{d<m zbCyy*?W#p8G1OVhat2qh`RLjjLHlTw={Edtlclhu$R;dpMqHO-3*F<SDA^PoHuCOu zUH5allq=}(jH4c(j)QXe$=GVrB+Jv>CUmAWTek>Fx%qmB$v&KtFi3O2l|$R!?;n+j z{_JOeqf-vrG@E?Iq>(eV1hPYM+AIE^B5hLO@eak+zF_zQp54*ZW9WGg%WRUzyvO<E zuXl>c<cJI<?0{4s7#Jg8f??a35?kVrG|jZ}+o98AWMB4O<S`7Ers;OGy}h~KZ8zYg z1Fx@u4D~j%rN!u*raT|DjLLJ2Pe!3^rU>NW-P?zU`yh%GF6qH(xfBg3F+815@Cq1F zrRgggqbEtps6!Y#D4mm21XfYe<<3|Y=4Sh$>ET0#&=TYCTN&2|F(w3OeX8t6aRe2D zv#2tJ3XB%*Mp?R*X_YL!Rrim#QjMN(9xp@ri@3{ZB>2W`Hcg>9V_D_+79d|))w+)> zPcCIc?9f07&{?rzG>kS0Wj~upp=&TiJDm8eKgGPECzr_X(_aEpJ_H8q^q=rr7!*U9 zy9<bV8B4Xyav|3621rEcx*go0alP;S8oo`6_056=3)hD}o!hLktP3ORssJ{8cR^6t z6&eDa$~T6ory@boZ?t&H1UDH|r3_8|KVPkPS371Tz~q>0JFT)}5lc1-ODGhpsxX@Z ze|Q#0y~XNaBP}ovv#s0L+8sfhDNELlugWTLEHQwv0vu3%E~>h;rC`|CgCt8?j$fWm z$H$}os9>;Z8y%HJCQN=sNv$rip^OtT`eIrqI5T>{V-hC5JulR?ZFmFqLtR(j8@m?d z^~>m#<vQN!xcA$l((*)W8~BCebq>O#G9_8^Bpz(`$pdX#p@cQ`XSDssQm)boe%rYJ z=Cj|uE9y93PZrhbO$XP}$th3gc_}}$IpGHNjYk$)vc4Oak!~MEYhBi)0@RBchtOVJ zt=9^c9}fGnt8AQTPy&>#vv<W&>$6#BEj`FnSywS!eT2J{Gbr{SjiACMq_rAyjU;o7 zELDKmThl&&e&;)saA%aK$8*OEWDWpec=!p(xs-PJw5v(x@e*TW)X>IfVw2G%#I<e~ zs;4}UWRN!NXU|^T-rc=;{^IKTX1Ctu>s6Yi`3g3GLs{+*r^oVitgElzy{XIUqnEFg zH!!ybNL#rPqE$VNjk761fY)6P<7jvp>bKC=Q;1#y_0W2>R92ihiqoPfmBg4@CA7wa zC2Fpzz&neihxKk?V`BEv$<maT%Ys+K84Suxs0jxKT3Gl5Y;4ttRN<?aMP7uZX^4#D zl1{`noD-%7uN?=Q2}EZO>{%FN`@%qPHyc~rqN&cD4>*5ls|tnwO%oCL&+s)Ok<u9H zaj@tIPymx%N85ww-3l9oxzzS7H!^UBp^iDa-croB5!eyLkPDi3ASWBF5vk)-lYARr z6+G3z@pNaAq0QyFnMwk1`!sI^i3jGPt(1@ri!hPFf`RVI;lf#qF@bD{+k^enq`(#} zQR~M?Hd@1|xmon_J^FM}E=o*Wen!hAQTC^7zHA%a4H2!5Mn5b+W4+;dmFL>o$Nd4A z$kla?Qg3ThYVej&wUNn^y8=IvWT^sZGI(>7gJb)FI>hWO%($F3q#gRuD4TUBk#S|s zNYgLH21Ju!I-(agn%L1`7**ow(54>^FdjOrCtYSe%rs$&tcFv%@qHuuFl9wZt(!_e zrNgM)c(>Uqm;<nWI(+r!t9SQro#lMF3_U6mQgEy7MSyCa!UlPrWex+eIT!8(8uADs zFKR}-0jVvtrvoh2{<3Tr!3p!Vv#B-NFM_!#G=VX98Sh@)uVW5)$$kIO`_dF3B;ohP zL$fQa5y2xiYUyQ+R(}z5=;qAzl2uNa+|z%WvuyGqXDGVKlPNLKwz1XY30rtB-1?IK z{;9d6ZxGt9yss0_`rVxr7KIn7-w&L$-I%TJLY}Y)=q&|#ee7foxS!q8`NR92|3GT# z;)6Y_u3Sxuv*bhEv!7=Qf!XdB(R!EKII;h{Tn0=L(?Y3iXl-|?$&7&N>EwVx0nB-G zeRF$#gV(dSlGkkjq}cd2?7J8zxd8?6x&n4el7fy7;|!v6KiypEz*nc^YIj4XZRF0N zMiqe?n_8By<QLz)d#k+4&ZkF}i5>$}+7KJ{?PCE3PVNB}ob|>K)AXBluzaH&?Iw~u z21{&E-At-8G>t#IMP2#KHjqvYi(7(6Y0zN<&Pt(a&hw4Dd+%p%n1%G-V90{=D+o{3 zaITdx7V=>_$P{xY@BVoH?N?uUUNrhiH@QmWi+<i0rShN?IH@Vhlb+%CR31<6Q=Tzl zXs5L@CUh%H>}ATK4w$K#`;o=Lm$Y@f25zIjZCJ@b@r)${Bb*Nyl;~l<_e>c>VM|>W z%3^gu36m#~pGMeens@V(YmJS0wS|yU+o&qb^=5liaC15aUbN`Ikg5YMr+&*|KF1kf z+yG=io4*^!Jyw`;VEB^Y>7;o#hqFtOP3Jp~P?tAovfM@8bf=;;SFOKaI0XXZ$x@8z znM3mYiJIz1cX!WjpDk<R8b|JIAXsu#$L$RB45f*g4dXFY(oh<M8bUfrEZ4qnn?^UH z8{O`%m?>(zJk8|6j{AqvSX^Ql{s^|Pp*Bqf=|k6~xz>XYBBH`@7r@M*l>O%JxhcP% zQCbB8J;5G@JlVoszs!?6%gF44f3bC5DqXV)n??)jo>sE4oAnUg@Pl1lQ_`~#(B6)q zvnr1snNwnvYOdk_c;b}JeHR?Hi_9FM5A7>gkJIXhaL>^rz~3O1p-9f&a@I4UflnWI zTr!8zFyu?ru27(^8>_^+XmST$p09ix9fY$GcCcWg7uehV**G<s33rLM#B6E1&Gyg~ zSSq?RG_=b~;1i6+Y&K|!XMmu9be)pIYykH~v{WYmiLf*a;Z|oHc|`jouwZDkfk2`h z#cG7eBrYtw4Av@NDMooXopg7b?M@ypv{6!cMU0XHlAlRNK7zmww(us)^3EFDW>vtq zD{9mQ*HvYJ47dvNHPdLj?KV~F?94h|MoJYL3&otvqbf=u7KL0$5s@-=qea5*EL<7{ zYK9Q>7lk{lHd+)m^z5S7YM~?(Q?h}>V9z~s>Bl$5_?tC=unvmDEE{sHGYfAQ+n8cW zJ1oS#AjU!PA&62lpXoD6J1(xpy4<)y8#)h672akNt#3hpd@vHZi-j1V;*#f5@L^$< zZv}ZhXdLi&T<?<XF23-?-=F4=jI^vbrv3|!vL1*FUfj*ry1|^xqwchPS(J1^GPO-q zpLD^EK_df*94N#p-PBsv-e2Q)pVD7_WutOXkf(uSsASB&vGt;Fzs$Fg#WCQ?WR`7Q z-v7w~YXcAS_bMBH55@G;r|aSMZm?|?tvF?z%%Slky2i>mvoDv<^U`)Tytg6U`^%?$ zMoBxFblz-2e?}bQY0rK9@yEOEl__kP+(p|Mvkav9ei%<Ak*2j5B?<LzckHT!W(MuX zILn*j{QBL4Qdn648Eb%xm<d;#UKT&iR)_uL<Nh&CGMchz$h37)?XIqLkc#tJW@rDn zmwAz^>ALRKt54-ewH?u>Cch7LBV`Hk0svR4RMRp5=Ry({=^UDVW@war8T>;`=ue&* zGYf%HTIu8?lMIj(>a&3X^8LD}mQ}Ug??3;%X}i^G120{ioXYau{+O>eItS;X{&Ihi z6;$+bsGBboNmwnttQ)!Tb)Fwj#k>3ag=UCWjZu-9<d=~;wbL0M#9qf!cMfS{S;{WR z%zggl=Vv8zphyN{TP0_TNKB4YzQH&#JSdQrNO908B?mSgh$)`D{-R{W0Oh<)OHX5< zN92df5&O2gf7~lO*Q5C8<wtQCYO4okB`TQ11}c-T(^z?i@|{byN=Kmw{;F-=L+2Ys za_vS}0vm@H!<IV-L2I<`@ECPNqg-=_Vgl}Fgo+&7D)G(kDu$uZ`{bin^67N3plO<G zo23PNERT<kaBLi6Gz~E7u60w%Rm@E4kC`HsAdm-@J=CIYch^OE4#3;G#tPFKU9lgV zST#~Q_>4tnf_)Mva1mFOQmh#UC()=4384L?hYWbtaBs7@F5rTL)q6pZk{)-S$<7#` zl2VY78M)AeT8+Qcl$7Dk*5$QL&HG#71EV>Qra3d)KJ?`Ecbg3d$nlJ&I9%k=9iypI zlwi>AMH~`2Id>sjoq(frT)hD5^0IWS-bFvkm{BJv+roJ%4tYUOP7jB#mDL+PbVLZ) zHZYa?2Ji${X~L|A@Vc0srCGSt53K4nE+%6(ECo$!1OHqkco!U;4_bJzAdu31(^}#| z&eteFgP+7PQp}O8(Oq=-h#u@!M(X6bnK4)N4cG|9mvD16tu9Q9oTq86oj(mQ(u3Ue z6!8P?4oRPtmX%GZi12E=lXuti)j?kBSh^<#G&7Hy@QyUQE*B0TU5R3#)mjfCUHmk- zHf2+BqUDs?V&*G~2f}?WW3^f<36`rf)IC)fht5I`cF!jMNj0q%61aYzk}tQ$D!2qm zRAMHel=|escF1fxE=VcJ$TAU2eM^rU^gi)%<S!j`v(d0+XfcV}CnIyj%PxfN9Fw{P zAiy<HjyB|pHNL$IP-tOWTT)_e;R{nxoR|*FaOse0U6vB`cj~Tx`0KqVb}UtPjm>fz zmh>0pCn)wZ-&wCSYW=6PUY`JqOB>mQ;@}mguR*!qk+Yf_S83rP@H+QftdM`&`zG@7 zt{<CvQy8PZz(6o<Z13q!jALwR49$zG&65Nnu6JPA@uZTkD25;VTZn_F#>+UXXB zBEn|>LjOdC85c{f$++MM;TVi3lwI%?MmA=8GzPu!4L_;#|MJyG&z?P-O>PvH<DU6B zll?;V&vU0m>PssgxxMdB=cbd%M;HW+((znY<>?XPfoW#A(uY{RHs%d5pN?}p9A>nv zQw6=J(-}%<>)t(k@lwuFnb=tyu{ct2^Qg%%rDq#bduF}fDknV`1rcJH9?xfjILc+T zZ3qEn*I|vKJmkT*50QZ)@HA$LAm()(S#9k<SZXIaD<z<acGNyGB{^OH=U;x+n%YDu zC#j5oV!#w>ou>Zs_3JmsbGF&~q5pdS?r=Uj%V3NjksUNG;*NE-iX+do{yaMgi3?kY zK1JTHsk9hF6i2d2GS+2TD4aQ+k7wnn^yKD+(S?d--7Wk?JuSwr9@^94L6)*rBHZ;K z|KMYp8||iJQ7$#oZnWox^oT#qZc`RoJ><vRwrmm0Q-<;4#mgUk`sr_f^V^4qcW9k~ z$n$&3eFV{tX{B0@M|B%PXQY3frmn(i%t<M<Fwi4g2{v`$NWzHt06v3i92B^8FymM9 z`k<!=lKG~n8d`kaX@C6j4?dCA8x0hxJ$b)>NRmXR4a8AZdw|ky&RgMs7?f3|H3!*5 zEwo&1w<gXuD7m@1zR_;1t1>gPQWNJGVW}`SiH`1dyU?PMJv$47O#tmadI=XU0uWMW z)RtBSks`&Qd7;H0tr~1xU8BMJ1{3e0%GNiHUIuNX<DkO>jB6o0Sn5sQycB3rt?=Yf zb@a7`77A-U-%Kf>@dsMAN-b^B*>NX%pgc~V%m=lInP_Ywp44IKY|3uYjW6q(92vr4 zVq)cL3r&tSI|s@S#=Ep+Kd2JNaC?~`F2)$PaC&Hz)6IzENvG*Ts7^c3=A2wp+JY1x zjE+aK*)gdvgqfzLy6h~%c}ro<E<n+?Z@7)REUchEG$z8aRJ<YAw7Ed2Fq{j6&?21B zp#wJRj*0?K_}1bEQyyZV*=Y3W&dR$%&*?ZR#5$?BRLo~*D+ipU@__x=o1<{Fr0dmI z`G<nnvM6*Fx;8Cy3jM8b9@jA-f2Rkeke&G{gLYar4kd?C{<V58>(!b{2GbV90&5!W z-)54%C5Ry_)xz4(1#y}f&!ca#&S($^pW1^P)JTaJ#&rYTP?lseP+B<c_H%Jo)ItG| zM=_Z0p%J0Zb6u9@;Q&EOl3BsjU3fu|skCQp@vhaI2pFlFxXV=T5+qsK(^|kFv#k9W z%G?a74oyazGY1!0J!?AR(u@=un*R3_JENJ~#bbv{<<z9pK;|3hr1!xkW$ls^ddxd& zy<krbmCN|EiB7RMoHR5NzG_xPbaF4;`b+WlPbb04YZ~9%jS&BsUcD1d?g=Kj@I#f~ z4;2HSaN6HWbNeZ_<JLLuU#qZm`E+Q}e3M9mWp~&_PiU_{)GY*x(i?Oh?>oG|jD-kO z|2i$|>rU@YA+tSiANOzH-2dc<t<hUFgOj<6Siv1AfCojaOU{$nid^zA@_9qz8DMmo zP3n6SUUjST?1d1nqI%fLYP(UEYL7m?d$SDnXwe$@wx{x3<=NErP4wCc^WA29eRXxv z7W9!HiGKOZU;OyTKg~a0MQI|(MeIM$ZPQQAStbQVMF(d93t%_ubk0d$mz8VOyXe2R zy=R8Zfj>2C(HW{vWi>Kzf>4BlhcDl}gQ7WGc|lw>&D;A2MaDXsU)|p`@~kj!waW9g z4n|QH55-x#b${6Vkzdl2^S0|vn&%TmLhpQ1Y*1|TjiNm*s|RALpF3xYr$q=-w#Oaa zFpU(orRgQsynFUs>+sP>ubyAsAnJKKJwEDlDn(`uSmk(?q{pU^>8PrDy-fy`T&En2 ztFI7qe|Th|R;gRlD^b#J2;wMZLdhwbk|4u%h{t`ojUfx8&%gM6bv~qu3yp<rovuA* zqBybS@{`{x4%74P>6$BTWx)CZE4u7J*@Vo(StkxFO0`I%D%VhgHqsu0UBm~<IWr8B zW%7+jB{W^5<(3z@z1rc*eE;;Q{8d@Ywa&C$%jtBQ*K#Bo(N&!GGqrTt^2WGO0t&Xi zLKfZiYO~g3eYk%+LM6DCpYmM{D07U9`VBKSi52@7+5i)oghtSfjW|is0GxtIAR{gz z+pDbw_2WEPSsBqAqjmD%dsgM9F^A9w_u?Qx{5^;inw000zR@S8hz;dH$|<&v@?Wub zrh<tq4<aH^6oJX1^|1W+G(ONJJ4R6Bn|yT;CRYFLmz<cwJ{wqxJN-lAe#VJ)c$e0u zH3(-$*e^^*mOE?fo5<th7Y7&eLTgXfjWO~ztL;t^cEhY~?buMS&KGqf2Z7tcAR?3& z0mUVzr_!;(rkO6XI~r<iZnd|K+-IWVF~?r2CF(5aU0Ml%<V;Myr%j5Gv`HzKX}%gG za?+99D=<hsTo6_qHV}9~q@uMdl@+%2!n1uk9MaVm{a~B$#)X3z7;T6v9*2CX>dWTP z;56-{zz~lHKvT}*wwP;#0qov8NPEX%@L;Od>uA>i{sFY+!<9>d@6zgW1`_cugvyi| zKhI*v&Z@Wznt`MfHU&o3BEX(QiZ-xzHJycE=@ejkxoMw{>|m{QKXTcS0bvNtt07cw z?f&?vM@bPn3^&=@v$)cA*UU)QRfHsPtcVb~6swRg!4nLg9euqZjV}B`hNn=bK`*@{ z#MGs>?F^30cPViP-bGHPU&JeVf3wM-JlrKObQy0len85MDY7i?1@t>Fue=b9EsbOX zSRJsy`*?DK-A23ZVe;o>6=th`Zk@-n?`E_^P1_`Er-PFoodtaGRQsL(q~fpl^nGrl z=~hK?9+PaeZ|%peX2aa7dl||7cKW+yz~;86Y#x;#O(ykmxwSu@{w^%!)*-h<*KS{? zq79At+kojH@!o$e!#Q$q^9QiC<^C3XdU;z0D?`&J?Xxs__3^7T&1xw07$ks~E{<Wn zp%bipJ8_qQ%JUfVNLI^q7vY3%0yd6biCdnoVEnI(&W$|AEF*=WZ{L31(}B}@PY;g| z3KSt6aD%=Z9*;-m=lOc0WNNd@ZttGUkZ-m-oh3!Dah4kHmx21mW*8#n&{p*t=^dJR zot&ntsVC551x<z23GBOecUA_kAV5ZJ-lXi^<GJ|y-MjtqRCR6B^=}>z=ek7U9dW0w z>f6V|k<zF$zj?TSeg9TYw`gHrJd~yK?{@5OudkFlzJ0i_igLf#%MV+9t+GWol(92s zRuVt<OC;THcboOiwH9)--st@7cGs_-zkG4`OzXRW1Z8zP?!SEfrE*WX{V)mdwma?X z`-l78Y7-b(22qs2TWvQM+CnHXVj1P#dMa8&2iIHZEt$}wFO<enr^LJ|(==CN5k`j8 zlYfm9U5~NT$FoVLV1tY$4dTj?!BC}`GWRR`{Yl+6`lL<1+U>4n>HIM4*sMr=o$I26 zfy5H$1;#b@s0A5+q@tpsR=hGLVerw57daD6v|1Gy^wz+m<XDu(xrlX*!eFVXU^+cd z*PwJ$VZD3??0WN5SNgnj0;zAHkj_Mk3;|^4!1&QT+Ze71q4|rfwRag!(UZ79Z05`4 zE+ub<RLqz`r8V@ay*U^WL$!D|W!R0jJFF5auih7BTNh5(l<ffOol)kx?EpHuCL0`( zz9ojWpl&r<T5AaHOBY#zA(I&_J7sn~K8~%q{3WF}^c$T^U7F3d%9-m3bk^-o0%M!f z>pP<wUH~R86-)Rv%c3MmHR4NB%G2R=*!M^duqa@x5FTV?i-t`CXXhe52Bict+B4Hb z?$Sy0&HGXvajZH`CS|h;{a_3d)=)ei4vWg(NS_5YPkGj&IGRc(&0eL1fQ%xFUK3+x zCYt~ROgoeUif59w%*liips%XdN8W6&`?gQBT&G43J~9HQh)&F?mnqi-rJSUz)h4#y zxlub17;>k|^B{|+6rtB#t+!CBQQn&|YeD3Kzl8Y>c1EZUe1{x&5fG;eqSU#nie-FO zmLo#t1sw?L*uMEgdBnCmoQ?=pcb%5KW6F8fax+WJ*urFe<gsChnczuphz2&5yvV{G zXJG)9ZO<;6>ui$N>S`0Sh*V7E>Xj`cIYVcV$tZndS(mKbXuTsF5MRjGmd$|aLnN)$ zN@(Rrt9p{MhcVQcIuMR&vh@l+r{H@@j0bOY`%6!vzDNU4-@!v&@@B2FV=~kf9|G@K zd@=iji;lChxx&rctPh(~#yD=BA#`e`Z>QGz_tHB0Ciiu}HJGF@=HgO4@4aa6W%%fi zqqsky5LsxbqebV$aZYaV@29-<{;jYL#3;*;`R=!B=nB|m2h+YUCii^`{zT_#qZ;qW zz2rp{9=6W(#g|{a{`!q_K6+Z9E}7hR(HQWQ*iFV-teuKH8d+)Q(gPdi^c#wYR+$+` zcwoYy#8pmtN)_yUs*lA9&}83jvduElmBJ$kU2XAIN$~40L_7lmoU%1>bo2a$F8AO5 z)xZ7v%df8QUMzh<*#(c1hSG?+sw&-u;$r>m+jnntKX-R81^~~)*%-Ds-Pl=(eMd8< z3OCP(Q?o~9=-v6CWK)@zb2`!$N)nkHh9oGPqiNLkV}@=qfCweQgsNV^m{Wh~t+n`< zpMB<!W7YMk>t1K8wf;+^S{AY>^l)M?SY@kbkkPA)(@Af4_53c1qhooFyLO?fe*Nb4 zM=xHYG2Zp-EKhv@DoZ;cyRlQ5kY8D(QF3#2qXj%1j>;xH*z*TjywDA9Z*C4JNKlOE zZczLqM;Z<=hwEPzRiTjUxlLQq{#L{j=6VFLU;lm;B{LZnX7_MB?$Y#xZ9tC}R7{*S zb2&hyVwEiGn=0K`QnOj@^i#9zQ~2t8Jvmu2^kh0?J*L~{LOJM8Uf<Pc2AgDq6pP6F z{`xn+{^?JC^uy$pa!fgLWwGaT5ynYdm9q;rDhhn#$|1Frb6P1Lv{XPFr(yn^!w+lF zFvKBJrp+?m16?RJJ5)cF=(xc$_~;P=Q7TO@5$SvJG{7@%WLe#8K%u37W!*BE6y=EY zV?h5EK?StiO(e=l@2x*-g_XWgUaBYS8ddPbU~X?3oeb<v=pQePe>h$HDZM}`RIphu zB-n_S5;eI<(9e|X5CzKVN4f?>TZZ**yoz2xfH+b+F_RiE+|jb^@Ctb_&j5c#bQQQY zX*lX{)TjC1bT$?(7}S-9>ps9tqEjC(ucusY^Y<p@>sHG7#vzzsh$Aate$9dy>+zBR z()9^Vo(-36;-rIOLEZi;+(3ZpxLKTN12%}BX{i(D#5^~ly-KTWB7DbQArRTo8<Tg` z`cn0=))Dh;NoH(SKJzB_1)X@;>X^r#mjq5}V5mILNg&~$F<$`pvEmNBOEjmcK?-Jn zp^SFe@DRY!j-}+#RSi6jQJDKHL!XVtr{-I-(JYdPo9&f;N1Q_+Mms-{S5?HaVtR_H z+P3dcN0>_%O&2Z2xoJz<P4y~YDN|O$5uox^ACJfNdUL(KUZxfLOkuXkW!f-UFnYZ| z=whsrjQpB5VGTmwBs0b-HW4Rd=I6BW%Qhi+dv7+q@`(AtB`ra|7CdHXaAg}hp|l+= zWJ)m6$v1}VupajH$^Smz!}Fe;&gOkb$Gp6G<xo+IQq0MZ-EqlEFEq!r)19?5R-0{5 zo$4-r66`ZMJtuze7n5qJ7Rdd)=+Dl7T6f_)e)qi)l4E4Ljx6-xj8C)5i-Ww-iTnZo z^YV3NqYmGhbW%LVJoz6jL_giB|A!*L%S!^s#{3OHp+wN>$I6&xJ}7{XOObz^{HG|P zoBG6y<pmE#ecm4w5rr{a<_Nq@@B{}QL_%qno=&H}ql`>`<LbaPepeJ|S_2g+y3sM* zJTOfqtPNw1GHGp7`^>!iL(_#xBxfdL8;3EVN`BCv5rT~rGq!Snp={JvQF&dKvM-;! z`t<Fa*X8*PX)NVC!ie+v9N2l2`PSWaO;?rW?&^B9DQJCA&4kIqmq>0g!Y`jFK^kU? zPM?4ITH&q?4Z21?jgZYcR8DFM3Nw>boU10B2EA>&T2Zwgpyp}&LOb1e-Ce%&%|zx& zzS(WYuDjW8O%e`T=pfCD>J(5+jSmldrQyvuw4u{EW5lUwln}12(|#C#`|Dp{i01oN z(Qmd&Nca{;$ze?6tT<QCUw$ID_pm?IIEU#j-^!Wk#Ow60vIGx7i;hZ?uCVv#m6ORB zC*dLk8fHPb_kzu4d%N3hb~{A_pM3OEo8aMex>|1@MyKiDqHlre32c<jHKrV<sHmpG z4bnMra=p9OKixfhajsxCL(otbiau!B*NyV*brcRQn8*%{Gd3Vut*>`i)#22Zl^X}g zef8B>Un;H7vShSVmY9-YLhwT+$Vcec_b!nx#l}3#LL`Hfkqz41hF*s1%kl;sGA<(u zATzTrIFw|eF__u_6YPx8W(|vBWf*dDtmo%I-3e?PdWwa!PtVhckZ?3gVvGi)%S_XX zMkCOA>PYgVkjhgq>_^wc2o*DivHZ;Az9v;QDo6UM(4pcx=fy9yb!VdPh`(A#bhMNU ziXc}G$s3qho$uehrZ|6f9cTG|e|+=$_gaUmn`dxPkJ^1f;-^;r09~jgiduq`Ex0iH z<$a&0=_-d<o9PFJp!(G+*X_02jRLIIW`!hNET<T|K9Ul0=Ja~yxC7Vb&?d|Kf$2e5 ziaRsnZggA#tIET9VQ>+bwGcrE=UfzW(t1*|&qf6mDOgb0l+dV63}Uh92q_<>M}tfS z;%L4%n|79c^=P)s@srqjaeT8{J63{1pcXy(Xt&)!90AXh8&16+Y(kg{kui{`qw2%} zn`b&|b<<FAX4;#_!NZ2nj|6eBnRfS39NvEY)n>bs7e`cWrYbIzVGJq*WejGr^&4ey z5Q%;;F4}V@GNFuL$5sn<I2E6N`Fou#U0#@hSvi2!0evDPU|gQc#|_s8ICHpENi8f0 zz^PdDiHKG|E{v-10FLH~8Sou^MkpIoFe5J_S0-^aVBFa0Ek~18Ffd(bZEd)nF#@w4 zXlS*SDQIsf?p%h^<?mhDc}_eWk>7Q|-<J5b_PtBfbTX0qk$|obhCVd$4IPiTeb3;S zxbX_S_z4113Z4tluD55fCyx(bw6zl9ww`q~W5;U(_sQ@6wF5}sq}}1grJX6}N9Gu& z4}9Xcm@+@CKSP2)PR{=yU+i_0F%Imbee=;iajW98!8055olCNBrth?<BcmfHMk$Mj z#|P7A&L*fGAgW5BD_3w`Gw4VUI#z67>b%JscHOxh>(ePuGj#ge%Gz0pYl<7>7d=`r zI?qX(E7;89m_B^dDu}=Gn&S|eWS=iXEXQ2z4{%JbRzWJW((fN0-rc|Z(T{%e(MO-| z4~P51e!a?*C~i7sn7u-PWR(LQ91?A)*$wm&^hwIPh4c!^9nki1!aNa~%v6^(3ZpWe zefRe9p=KJ}SEdWI^<Anf2b^rx3zJ`D*r_^IzbbwQup)}&!0&GEbSLB3<*DvC&7#yJ zTv#bL#W(1uXUP5Kc$B55Y1$UhzAFqo2TosikB1|ghc>`5>zl3()2ON|CyF7QU1wxo z!>D_ld{0@g%<JR+uvu@s8-MDR{MFlhov&6E3hy;y<9cd9K`=XdYMaekL6<%sxujvb z+HCH2Tjlc4uWs`!zq#6Nudf2<O6T#{U;OT8Kl)Jx+pw?1;?37@+PV#6Z{caP;&A}D znmJcb%e6xogK-yUv2#hpC?zm_MZ1l|;75}BelaP6DlY`-UH8g37a3gcoBMMulkxLk z{^HO6=AS*^ULE%L>-BnZ^JTVLaH2|g<&CsG&ZmREr>UekmF}cVsZL3e)y}H2p-~57 zntXRqJOdxNhgO|wT-XqiYvid+g&0U{U>0HajQ!vELHQfXBfafUpcR7+c*+gbu&8!J zLjn;*p3zJ7%(Jzy9dw<^A<$eHP;Q1g7*l8M*@cbL08JfDN9$8UIHj~9O~XsK%R0qM zmj{aEbzjAPWE14$Z@>KF7yss8fAs35{MP;B!@v2<f4yCAKl#BA@#Vv$+g~Qf@F6;+ zz;7wDLd1POj;7+y3L2@VP81+*%X|nLW!bm85GO>X)DLk8I?j^~u6V|IINL<6;mK__ z7OLveKv$r{m%&!gGD;hd@64>xjHVvpF#)GwX|-7s9tHl`bjsS}jG}WnmKR8n=SP0n z^wlzR-1N<bIAyegJEKYgqQA7)MlIWbmZOV|S)%RN#fg?)o^poI`Sf_}`}<yRR_Ux+ z=0b0uLiFgDO+|y>guJwG8JdO?t}z0exv0w-QZx8CLSu>7P9$)%VJdK=)<Qag26e2Z z&Xj#Hhw?qzONYbZ;r{LYySF;8N`~vM`}*tG$Ma!-T+5a{yS=45=ll6;lV!Q0OF8(M zQmi)_^%}F%Q5sX)fky~Lllch9K$Ry@$eB&YVm3|{HWSka^W6095_bj!PvGL@*o|aJ z(JB_cZCh}qU84oevQ=b~fWS>_9pwH3aW|se&eB3A7LEQgjT2u7@(Dux;m{GA)hf@f z&BEGIUEmJHPMzx)uE&gpGj;|#&hvy8-@ejO(#`Lj+HXsgxB+qbxrv5XBhyPvb@>XQ zwEZo@^_)N50M3E!0uEHLtj(pka75%XG_U<6;uJo0SeMT0hrStFT4q>LHt1b%v{DRG z>h|k<)87SwwKRZDC*HA^v5mJl&dTWK5UGS_&$LIEasdiR7ixj;L=^9#CDh7Hl*lq3 zqX!wfR<ZHR=Q{tfAu^anqs#63=fi2TuD%8CJsO{&6P5f_%!Nl;Hw+cgbi7hNFjh|A zcvI)cxq{ptEr?d0CPbMHgv&OI<kMtS!Z@RR00BmnrFp(mLV2yrDa#7kHD}(e*UAdD zj`9kG0+4&pdA6bruT-ON^&`L*EO{%ca{u^n-0vATG&QaW1a)ir4W5FDIEvf4dGqG& z{(MrH5=E3TPj%%PB``^Y>@q?v3go9OO|NfvX_CHt`SM4fev%~VPA)FbLs00!Qq+x5 z4p)X>MnsUh&prvF-Fl^Ms_X8W1}+geg5*Ib9X1_3Ly?1ewE^W|p{Ljw_fT~%U@ly* z7N$>qe>m>zy1Bi(Ii62%-@bYE>XppZ{&bQJU1cj}GJv|hNZw+Tq_3X6SjFkpZVmYS zc>F{U^7(U<n3|s5T)lkxVwe;Hdk^<tw|$*v`Tz5m|LR(adl1Tt7gdcu6{R{Fx2O^^ z9Fj5|Qdgh+@P~Pt?Dvm4ePLj2{Wv<+rFAqrckH$sIohafiUxJRwUYVMX%B5+Kl(O~ zbvPZW`lOBjU;f2^mBLhd!U$!VNuY<Te3hoj2A7PCuD*cU*hXdG(wfZ~RxB_E0VJ6c zrF5fGRg*IvTKJr8e0A}@=2P57d}+2mgz3XNMxEh7!h^oG#i)StqNR#JzZY&uFHU2I ztC=-|;f$)gl1t@x9rQA~YzU;X49M{~FghRjRo&<{agv%+i*cANSfRm`<SgB%s9>cj zZPuBzWH5$D67l_E|MOq{{MWzvZ3EBiRGv@&@?ZW7<&=N#@BRHa$;|S()1v%peb|En zWy4^H7Clh-HNu=8)Ui%t<u3BDE)&nXY->?be{La*80d^rOLmsZ?ZODX5XPCPJG5Cq zD0RQ{6oG3~s4~nteI9~oTJ6TTK4eT}xAXP3X)FCv(d&A>vf8v~1ERP?&$y@-IkjbA z5{Xi37nE4+-9p^6O|vSJ)1HE}4ET~0870B~@Ti;~&x*TXKa|DkaesszraTpOv&u5r z6UM0(1Tf!4sUxzvu7N2KK)-U*9Z0FkTrc1WC70BSGT;|l6uDIzCiYB~Zxm&v1mJuw z+G$)6c}+zRu0s#;`0L;N<{ndXD!Wd%A{VPbLGOQiee>-3%QQqIPDVD@a^#dzjFsI5 zEUn}wN#iUHO>W${R87y7%7NZztu4{i?QA1-7p{!JTL{%>i?QSoV}uq{8*f{LFx=2m z?NS*@RUi-tK_HNB&M(Y>o^{8)en#=lu<@>yMF|^e6DVr8p-Ld`3;FYh^phBo#R+|o zI)V##JaaY^Dq<|G6QOv;h+D@{pOa7R=upB^oO|tb<(zKZzSAKG0pK9Ju7eQta)zVh z)h5sRr__G~<JfgfCf0L0?M2u3z7gP=ybtiAOY!;1`#woTc;sVF^G!<Z{d@I&84LL4 zrSByUbt#JX0e1V}o?=pnUOMBG1mP3Sr~Pd3R32Z-(R!rSY<~#7uim`-tDpZ|=~SEr zX`0)ib>wLG=Q3&g&30#WW8i&g2NO*NpgDt}t%|YhCsXq{HKUFv7=-~0u#S6E*2dsL zGkKS<-FQ6@wW+Vw*=p^A)ALuWmE2)hRZ)U|kGooJcDp=D4~M<h{$_XGR24qnadzvi z9<LH^ortV%mf=o@M3v449%CwDNWDc-Ewx6#@ru}$ye7s1+#5ZElZ1oCCo*iGfBpM& zbAEOAOzBqa%&(r^q2?VjSD<xz@$C69O!~Ov0kCr%+gz&xbpN7jy$qJ5N&e;jw*j0C zx9ANkvQ47bufLWP(2c}#4y@R>Q92l<2O|@X^DM5bG23otn|iu_apwh5@x|w|eThQo zb>5njfs03eAX`^esSlPR$kAoeN_8(@ygU_Wz@m>2a_%p0KRs5h7RBa07_`vQy1Tx5 zc76TxU;kCQyIy7S$1gwn{Od11x_!RRGN*2DZ|@%Vk7adsvQ+N8X5f3sLwQG^%%q7B z)&(FM$%@f~SLB!Fr?Ti2%a)@u)0fZhnzB`dzs|F59>eh6wJ5WatCzZzySuBZ2>$#( z{(D3Kj}N9g0JD`cNbRsV@EO$5cL+#EGG{JRQA<+iLhfy&aa4O?Y>t6(0cSnK*VZ*7 zs?V|hEe!nk$wYWD^gy&sbaD|))oyU$Rzts`9u!L{yh8=n1u-nkA>Xc?#xed?g?l0F z6!0GF$BnkyQ%*Bm-PkGwjlu#2Y8_&(`dMGE=|=L)IO0^oPvVEhcH(F^b&RBTvAG=G z*YR{(g5ih#;j_;^``w!_SL>||@n^sN-LHQ8SzlIv@t^-Uk+E-TAF^GH^FS+KSM_MJ zV!!&uUtL|_Ayg8Dch6s<SA9J0kH@C1wJXvng_23}ZA^e$*|g@Rk%y9zD`%|ij382B z+@k2lOn+x^_ZSze8^=2aMy&@;1Z)o!F8nM?$dBo#A|{cf83Xn3U{I(;xu{=|65Jt` z_9*d3nE04pzeo$?{E;E*I}<0B`#}RE@K!Q1jZvt;Thr0`cHlD@Z8*wVX6L$L{PN+T z!>h3USk}1*F_!j>7MD=LF@cP6Y4AHnSms)60SQ;%bY)S=b*(m6KIL@hbUw?WmSu?s zYn0GtX%$X(Fv#}9!+f$SPdX&)G*{^O$&Y{ZQYmtA*1c?2YaPu`r%#%$*=?_`c31Ln zkB7aEI+|Bra6BDi`YEaTF@<6&q+(q!ucxD36s017&DE854Zw-xp`#LK7=9yQ@_K&^ zU{F`SjCde*PPAKMBWHD{{dp{5d_!NxQ;<LTjsX`&SV66Go8_stTum*&h<xWM@u5#4 z^f5VTpty^lcp`uPQ0UillsNRJm*|)z_Js`VsS>-0Jtzy>4DQktl*dhb*U7=k_Qt%C zgzmFZabo%b-|{!^4>AhxkD{P22&~b|oVf|z_a5<msrlkzz3+5q|G$2D{`W(-h&*gw z*ZHR1`(7;=(MuzEwSWCaK*@`fkQpz49$;b?)-mtH!uS*6He|m5;^-!8<NfxFFXU6@ z&mJD%Y_~U`e)<Dtr3wi_GPyyLKs8rZwaiZt$IJGXBP=_URU0plX(YyXk|pDwC!Sy9 zGF5CGJu+Z&LAsRW>eEe{-aovP4Jr1=$Nj;y&hl8llDun68EAy>9e*A!<fZ5ex0PZ- z%EWD3mPKaKB^Gd=Q$&dJ$WXgWzt9h5n!QSAsc-hW0A_^evN3_6rt3<?8>+5Vg7eYy z7rQtm3p9ADyaFtkA$(psnU+Qj%I<VAI<DHsXxrgT0YoSlE2?wd)Z3dK!hcj0hh!0D z(^7O};s^O=eJ%@qkgjn;L^+7enaNMXM>BfO+&^Ef%eKq6TU5<-0Zjt|a$V%B)lYu% zQ|4%g=5}}c<rkmd+{me~;xM>c?Z$3={q8j`U(e!Px%2Sp#~(j`cBi=G>o0$=Tv;cr zDo*cSzrI?p6t_grU*28atg>}cwv*C=wpDa+GAvG~EC*u~w9a$|Y<N`SrcY^YBvg*y z8!7Fsx4Y-J&(7z^{ny>yvl~6cH(z`urwf_}2+#EVc6+l~DH1==U7RLA`t;-D{_*AA zZB?Af_%~Zdc<V}$oEb`!J{pnmBYmU_2M^59EF?eRU58GOsg&_b!dOY-alhA|%+l;w z)#w*bM(!`ao@XSuYz9Md!rOEaVWTjHgOO`H&sJ^JK8do_2IU)IWeyN0*O>Jjt0w`l zU$!_pfpRq{ThB&k*i$}5j!-5Z6uNaWTO)go6hNXzZZva7+tdwH=2;JCX&^J41Zmmh z!~L6w$HT(|<H&)o#3{S_YO`zV;s-zd!N;HcfXszPwqpOukuT?~e|&so3Uiu@b8)qW zcy4udrCoae_U+sIcVB(=`!vgMuWmcXZ3h?(QEn#R>l{;}vf*0T$UBO+33MhCBaVy8 zYHMB->Q*^L5-;m?Tdu|wF@l54>u90!aS`yXl|K<P8O^6+k);{AWFoUImQ@>3kA{4w z?TlB)Gh)cG92(9wdAw&d#~uoQ5dF^Q5)>aX(C(THylqUbcW8AU&UHIX3cVCJ+yr4a zdQ;WN6h?tFhv96c^SYs;u6Rh#p>bNHxSwJZlF}V^O%=hc8p@^Jzk7SXe*k1cIa8aV zIu?Zt{C2Z5*+lrN6!mVmcQOkd2R8Zf^XCePYZR;*%#g#*GWsw!^hS!a*~kveH#gUe zW|cl_NYH-{Cf?;j;#*hFlrg#0b=xb24T<tKEhczF;-F=S&V(e4;SP>&y-2om3Kt>g z*$4~SUW)cyH}hh!(`_3VEn=hfI`nCPNI5)3MurS#L9vr%)eCK$k!A(xz8F5}TMC08 zz?UZG$q|_QmJj}x&~6Z9{-kJ}qqs;g<@hA`*iFXDC?6c>fxE!qEd5mgoOrX}xeenx z(*+6n2R`^445i*AT)f~MeAoK|y!-?3^HcgeF8$ikCXl{&*62^sUVe)r#DAauexp~x zPBsQokm%Fp{mI010j3ZM5VOB@)}Qnto_g(!T-(dI!A9{YQew(S{@pMC>Z^yxSI=H4 zLrRnE?)v6>cm3koGe#kMcDGWP8U9xW2`=6KP&Q)Jb_*El^W!Wl%G1!cM8~F9qcEaX z4BhvqN_KheQQ|{xK=$<TuwSh=t`*x2MC2Z8Smmy-ZnZ7ny#C6>z*}Pkbi%qux}ZL< z^W3LE4VI-hB7LQ09%S2SQ5d>&Lbz}ob)Fd{U2pO%4?yEI2=qb%IKt&K&I@>B)Uwqj zdhV%Qu&;a(85P-?ikZ|nN#DG=KO7G0-9}5v-&Uw<xk*x;OFgKjD8JH)T4!;b-Q>IZ z(@|EE5esyyMg`CM!w$|ozpvZ5>83c!lMG5p+BPW#gSPtQ+4DnDzPW#!bEuVPySLAu z-+KPz+piTM++J;u_nF>G2Qs+2(V?oE^J<lDvg_l+!|C{NyV<?Cdlnhz;!l419}H+X zbPBBHL0YCy>QILxO=t!VHOv)F9a13;95YXtL9lz10*L;h+N>3w-(cT^uVr3$$(AN} z5X9@XJ9e+0-Cf<?299@gwR>@UD|5fzu5dA~u`We&oUJ}<y<We4`%W<{g%F1rd7h$v zkk=gLej{{(d*G`p9t6m*d8}IK2Xq<Qe#`+Q?n~ii9;vD+JGk0i%i~sUOAQ&B)q18S zDl>#$DpEF{F*K1^Gw7#_w;A@iJ{QAm0jEu2VAn0}TbO>wOV`F4k=6iRXl-P^wI_S( zoLvw_WQQIb(&lSB52CJ089l_TiVi)a=40-2a;d>jXQi8AShmgi?a?t-t<(8*|L{<i zb(n2-tF=739@Fj3R)_QWaQL&o`DZI==D4RG!m%mxAk)Byjl;Pt_5LrOe-xoI2zkpd zfBj2XH=AaaZGZN&zj1wgr+8jD?*9H!-ZxmU$TE%6Rp+Oy%CYYm{R%^QjLw+pJcFRK zNfg<36p$1U>DF{`ku$1lP6v1`;uwV!@<4dpwq~Xbj>)(K^RbA-Q+IC}D4$@Py3D^? z{nLm`;X*N*4$iV^);f$AH>N$cf?^@^I1VyO3W=y60$tX|sLT3r|8Q=*svt?-thfGZ zr&lSA(NEpxQDLlYG%l^8IWie6>(DR67TWPPhogg>>&_W=Vt%=c{3zW*PN{6|alcO^ zdCXLXRBx1~`K?X2$;0->3~KU00aZGVXIhm(Rn^8HZfG@lUt~PO6poEd_rBR~5S0ND zrt~9d6jqxo(zMJcYE8!JbUs2VZqgt+2}TxnVKdgzR9rhQqoG<C2X5d_Deq8O|2Cy9 z=g<#khHe-jwe4CZMU18R{$OL>RaJuKySi2&U?aPuyU^6Y*348Zq;9*hEWEg#{SVMs zkYNTS(tJ2$vsT#nR?4WzMQ`T^ce7tiQ(0;sL$zVDmrffyLr-!HzK*f|NuF3iT4SSu z2~{qq4om^*G9drm614pdg_H_qFXfT${4LSq=>vBgd>A@>sNu97yQ3d{udLG_Z9IqH zxZZH-`(B2f-Xo&D3)R?nGH+dBK(Ppwt(Y-G1^>MR_E7iUe^|!Xj(p-d0UAx1(jQJm zajs<3e)7}59pzuhro4IgPIvS5yEn1iauDqD{ARn|UESWje2zvm%)R4wwJ~XgxYyg7 zaCyimf8y6A(+=~5xPme8`P7F8%0$!f=F2Zp38huCmCxU9w{zbqDN+2aICrV<b3Qr} zL0zWuCmHYE7L`+lo?btP?vw{po=45-oScA;V67alOc}Na*xJfYyS}#V7$d6b#-ZyC z@=5T80gF`1!khuacS=M;unbMU4U}gmK}0LJ>r0Pz;A*v6()XL2+uQ5yb-sF2*ZPQU zmOsCFRwl4x$;O=PV!K`?D5FN#+ZzQ%Osy0rMW>3Xy=mCwYe3?CH@SW;2OChEuA6F? zud*ajZcKHvZEdhJRQw@Z5T}sim5=_O>h7Rd%48@JSFBA_pzU6~c;OE1gX|_1KX;r5 zIsVmp_3ZBXaeq)oqw{~g-qz>C)%8t34(ruQafA$QVJZ*WtS}5kiCk&ZYPJ1!mfc-l zb*IzEuRey<t?kkvy4r4EzWl_C{8`3SX2SP=@Pi-jwp&M+w7m*VJx$py6Qb=vjmUM+ z)!Fzc;#VJiG*W?3Hk)8Dlr@esk*{&J&4xLci^A*<QhJ2<vo(bAKQ)wlkgPRf0JZ9F zy-^-ln5qQypIw(~p~KjGrl0w<GD_e)5W$2Cqhtqt%H?RwCX&(OxKWxgl_Afh%jd|5 z?PQ%1WP-B<{yrw4nl4Xc<q9Nm<P#ucWlBw_m+9y8@eCPwnzW#10tS8J6!?|zmom4< zgD#;c3OVpNh;DChZ?2z(*;=^}LQ-jZ+`l`Yj*EWoCx7RMuU@_cgX7r9e{TaMM*Jt& z@a*p8deblm?95-^e;rTZ;aHu@;%7hmTS=7cHrpi0it|zKc*5^^d7S7t`auFZ8a~$o z4yH6+uQ#)i5QV0%WscL4YwCw`MynWC<r)QXZ&F#FsSHsvf#usb4k#iV!k5NoOkH$W zL+i&kW!Wj%f;9|&m4R{<bmKr+tn!R%?R25Ra%=#4(L!jOW^kt1HLufkdc*&hv@dP0 z?7FVI^E|x!CIF2_4-_eimR$MZDwjW`^5;{P_(LkGvSo!7C7J4OG=PUU-+9hj`=XoO z6fGqc+C`CU;JrJXv-ev2?7f!f_G+2-;(d#|&P2eh)6}YOEShR@WayaFE7Q=I25<t^ z-<auD5j^+3K%=~xMh}y|WY?8Kbs*X&%lT2Th&V#a<7z`|+S!Z}m`IKsKGZbVb0RaI zI_jx)C8V^YH5o^)MLkVLL=wYW9!^l#MH!l*b43me%Nv`zm#J&OHHF7_wTlN!*sX$n zDyGs>9X|Dg(DY2CP$}Sm(NdWU3qzE@*s3NobUptSzrt2Emf8EBJuYA!c;iS@099#K zrRSqQP<;M~a0&#G1ODY6r=>kd7dvOBBJttlw@~59z%thI-gC-cw}2XFW1Z?&!>CBD zC~WCY&QQhi;4=nnsRNK$Y$yda2P))O>ByNn3%d3Lr53wtMGg~`UJ{nh=JY2|-{KQv z!Jo^)()rBn@qa^Jho5*C;$qXMVO<(Zm4EBp_a~>_pHktUnJ|{z%uyMhqEC66;w<cV zve|;6b%Ta@K2k&4w(XJPRZmCISllc<>rY`xTo}zXukSXyAo6`L{POiLfzxkqZ-MFo z5Kn1(xVyho6aaSLy^DT$6NHXoTVWi(dhr_Hl`JBQc)Y|*pN4%aY<|n4i7x_Y$HTDB zCbR5mI@0KdNA0?{O~N<|Lxuhg1sO1Zg?f#<-40tHA7R*RXp90+*Zr8%>b<x0qN=~} zRRj5Y$oKVd$m+7wR&m&HM3NdquIaRTo8{cIrsJ_?)b<de;@E#Yp7=T}V`Lu_ho!_v z#bNdhs5ad6RY1dukzliF*aT$RyZsJ30x7}gpi~yQE`B`@!eMA}vq}`$9D_AiAfTF& zW*NATYdJ_Jqw5!d6m&f|Si=+hGk^r2C4CS9N)K8l52z@j#45NQdcZS&63;*Z4~IQA zDPg(eR9&Aem-w;GZs*&6t=0fHpwV^S*<wlqph(sW(l&PWrV8B<;JmH#fX$+wA5l&N z0dc$87FC1DeM&Q%CH>w9a&(Y699O4sZRiC{VVNx`_HkEa=gZ~%V!gx*s#yr#dA74! z%t4}Bt(xXRWvskb@<R@8AI_=J()YgTII_?|-C(?VZ4!@E$2L&$)6_f!b#_I-uO%bN zfcnEI#sa{NBiDI;P!yFEHZ{fN_AHv(eiC!#AS`peA6iK56d)R@?4%h}zUBH>*;)2c ze8Y<(pb)$-X#!{`$!-ybBq$%Jt}XdV%A0a}mlKx2kyzDqo{~dT_Qiuro=-g;?$`l& zI%2P+SmN<4ny=RlK8QS3tBU;1ySIoT7Z;bvwPxV+AdlT=Za`^IQ=CkDur714ptz~2 z&!UL#?~NiF7gJS2DeJ~$`!|o4mz*rp((JsLEo@5X<co{-^Jgy{+ha#qky8jsH)pfu ze6eEY5OM~lU-x5xIE?jT<C9fnVomq4H!Z~z#S(sa*Ve-JIjb{HO8(S3YXM3Ik${<u z$OJ_XB6Z%U<%ylN(z}D_k2rBYACW>0woJ1LQEJr{&#gG@MB>RVb`c5Fsh}sOQl<&G zOdCH-$I_SnU)m$OoMoUElp+eFhHH-%dAaWfV8D16d7jcylD-5Tf@j&ag$Q9zGGmtE zP|iuAUPaS)ruZb{mhl8S3WZu=^9Y^2SdoL~k?G2%Ilf1?SQh!P2~_q=a?ZAS@_%Io zot={GA`}rWdQixtZUnO&Q=~sC1x106#RZ_t!zsh!X@RqM^fp0j{awW{6$xNumU z;m8oB*ukXi`qabJV&5uad8CK{J3mU(>aLR3Etg%Zc`>yIo{J1YNipoA#HOi18Y}|{ z1hLRD#<41MY$!{o7^%&<dyDrv)<#h0wM}&hr{}2vcBI$UQKxK0M))HOY;_s9`NY;9 zNPA#greUA!93M@IebpSaT6gvQG!}wLSm@wxZ0a%Ra47u{aEr%rO#0EB8YVyQ{Q5YU z^vTKVPc!SM`SBAP%Iq)IS^Z;yx?uw_|KYD>->0)}U7fP;Wc^EzVQp$HQM8}?Rb89r ziJ58@POGV%oav4exIyH_7GMijr}j3r<4j76^-{b3WQLeEItMA*pddnxR3w9pF1L_b zS52PgMNy7}5=1epI=0(r>K`87sc(S4v|oJnOGMX)hfSJim&;Wc&_N7oNv9x=<KkDc zlZ_0~*6HDhC}#U!-FFrnnVmu5V6h^aw8z~Bp~i3>N{4V>0=e^S8g|(?v<+!{FiTt4 zyL7j7)n%Z?i;Jc2Df#i-RO-3D??5f)rFhq1+uI(pq^ns5g0&L_JWOrdQ2J?au5OC5 zI+Z2W<=GCd(GoRd9xAH_<O9nCyghLoDsO-xNuSqdzdP=?&tKe}vtoi`hN?uKi>!P9 zco+EIda<G#Vb{cdl;-C=J)0&+UGbCP_}HGFV;juH9=L(i^$59>AROKv^R7-gK-#HN zBObpJdm+FE$8Sc;Fd>>*i^ZCURbe24geuh{$~JUdOVu~WGj4|C$6*M#&8VR$yTg%% zwVG;Q2yp9*XVgsA&42!%|NYI|+ttOjX?bO_ZFvaZR8HsVM&weH&bOQ-hzj?Jh2`Ml zbS<!*&<7xh`f;p}du)*~ittqP^d#yNU6mKOK~RMhkybTBQ*9XTy=XSy@3x2w)NrJ} zX$OLGJ)dV~t+LLqZTI^oKfiwcmF@+P<)$e){6-bkZcH<Tm}(sL^Z7)*0>@N2JYn#3 zaB2{dMp?EOa6Db524X*yI$=#kDJXGEqZ=4YbC#$d3(hpv$(wtSf;)vBd3477O8+ft zcyO+swi=vvrP~q!7QTY5!Wy<J-e$wGk^z~;0_`38EHBRm6-S-WMVvlArtfaw5|(xS z!~G@-;@^Dp_mt@`^Fk>B%P2j@Q5l|yf+sl+yQYB2sEXAhoB~y-o)_rG<dN4ERcUY@ zOjvkZ$pKymNM>=U#h~tB-+|qV0;`O5;nn(q6wrH_Ii($(#j!tIlZF?=v;vV4tg%~w zdMEt=n*ABnWD#va+@VD+TCHm;Vi*z7<9*XCmt8$3`_Y>7`C!kNOgy3~w%u-vBE52+ zv%yzdva<q&xaprdufUB9mNIEVrA_|Iy_j)PJCj~XD$-bb&RO}SGF#uO<|#{?^T9A| zu*OcjHC5BG{g8pFDE%a=%C4x3rllZpMZ1Ys9kgI<v(u@zL<2&_OLSVbo?0tZ(afic zu0%GIoq#-e0F~|O6Gg#jq!)^eTLzXQSU}U!_!1Z!4@NU=*_)P_N;YCc%$h7kLk%P2 zAstWCfo8@YEX5tAffp|d&o?h}Fy=*s4Kzd2-KATOvlx7mRFNOLz-I|<GUdebrNXSi z(lIMRWz`xQ7T*2Cy-7#mm=(Sv*Eo>oVrMOqB(j|hq`K=sYw*>`;y`JE=i<eVRO1>a z@kD6{q!ujpn(-8gek?wVPBKq%`l%)@Eyo(?T*v-Xj%eYoY#VR21nDUiKqId;6-#sX zO4ZmLd~T6RTI3U|XLC@t8=g`Q-$|_w+UJ%Cw6Xkz0YBwn^|Q+G&njGfs&4WB`Ik2N zdOu~~sl{6Vs4Maj6L`u{Df%=@#xgopnm_b|soF@nF^xy|z`kv*)GbHCkv4jxQwP0i zW$tOh4IBXmAo<_qN6@7BPT$o<**HcscE{sxK3{~<e4D0an&JKe3gg<kV=<!FwZRh) z%`zSEq2GS@+uL_<*OwR9s|7aO%bS}hit4ID7Qwc`S7hhZ^F5hy>f$iDxO@h(1*{4< z0G<RGdrVKsEJoJkGRrfS7KH2%t7<G7eZ5-Z(~i5HbI!wgbhEsg0Vh`nCEw24JUAZn zum4M>`@`<tL)ok0GH`t$)4J^nEB9QlM!2_3yvX%x{cpeft&WG%q==u<JkF}x^PIzW zZ;F1P&e6c$Gpvzbmf9>@zpLL>qso)9vE!8OK$}(7Qt~ugU93;VsmRZv=b2#q*+B+Y zDr{6X3}NRRx|;WRdocwib!{?y6d5K%Mqqdp-8MlG%2*1UicQPJ_Qi9sC>A%KkH?lz zY?h{Hd>T(n*!Az2x|tr2pi;?lMYG7ZlUW^YRCPRmT%I?Z^XP>`Rt~K=TN$_1b)c!+ z+gpSS-}7Rcc2d9|mxACm2WeU@@C8X2IOJ#?VFc}Nad+z^4qRM5dymiiv2Q%jt*T-~ zSO+iXP>1dr$PEo*m+c{y+f8}$UG}-`cMqow|LiSrsSM<rV%qt3Z`n>cjN8p4c+B(l zA+MV(P4OrYZZ?~HT<(0i1|hiL0Q_v$mscSxRdkeN7pKa?XfIA|622=cQ&Kp|?Z!SY zQqUD-{5)f~w&QrrztUvKx)`a9qKhyPd#*S{&tj0!UaB$n(;?ExhLX0*8Lhma7Khke zEa5`&9KiLrRfW$<+rjg(Q5FDYSax8K>G6cmm_-ZZ7E|Zkh|6JVtyWb$_IZ+=j>nAJ zC5ZhrTF3gY@d%@cYK3`D#b7X?x-xn_3|S-1w;Q~&#mXP68Y=;h5TDaG2;k=+h^Y3= z;6xJ+m)(6V*K*g3uwqL;0JdTX<D`uo#a6_-SE>N)ia~;<H=H&Z98I2sy^Jc+zYk0_ zFAHj=IrP9Nt9+meanq?S&w83BYbb5WypFE}Tcr%hh(E_yU~OcaLZo(mQP%W%8l<8t z>|c9gHKGUF4MwAzu7{<VWjS!tpmDYeeEG27VpGJkIj+R9-L`Aej7@xPT{?bXm`<Ud z#?vubEL4NW$vjTdZ6eQRh~{P|tpG?O9mTyZ8f{Uy2swi72NoTCkyAlEJAE82F^S>K zo5?{q5_Ae8E5OKusIYM)KxbLb1aRr~RtAnmq_dNTSy89p8K`zVmmPJ>v6X_Z;;^6V zcpZP3($|N>?(uPR*lvNe!Z^m#YU>JbFG&`TW9Hcz*%!$e;Gl0x8BOHW5MD=J<xjqZ zEg}+SO*wHkkcvKkb`9!#`~E#0Crn#p4T(5$C&<diq?_$}w7Z_9#gQWn$C$Dr0{X{) z5alf;Qkr7WW$u;4eG-Hw2iBf?h!*WI>xx1(A63m&dP8$qZLSm$ms+VhVVqb^sbct) zP+=jvlb*;YX9e>!9|-(?%D#rU*=wU>VgWsgThaK){6I;6j*Nb8r#Q6I;?yhuk4bry z0cE;sJ|$Xx>b=tRpXUBt`|(o5bqU~98;zbbW%MJmseL_l{dG>Gru3DRmMja~(9|dZ zA+>Swq5066)ecy+yW_#1CylD)MR|X>MZBBMmq_Yui4|XE=dP+MgRK}^5X5y;>~^W| zIMFNy&bqt1Es8A7Q?9V>=H}(=7cX9>x2N~__rL!7@7NdB703#-=%Y(+$KycG9ki5I z??KV^Qi|$G&mtp-m{}#W+0FA8>EX~uZZwwKEH=pnY6Jl#F~K?(iu#||=BX|>MFqrn z)LTz!m#%rzH0)!?a%<4|x<?31uCB3(>Z%BQQoXXM0nMIW-|TmfLp#UncNArPb)}2J z94^*lZOxcD$YDv{(5MKId^roNlw$D+@l{$Z=SwdPh)8-ik7C=Kw$(H2DK5>?YH8za z8mh<`ApJaJqn?k>s%DuZE@FrDtTm0kWw0Z-X(K-bi2*A)olZbmz(v5nSldAuP)C-B z=|*Gdm#Y=>09fN<u_&vIhEa}vN;Ai>lKDD_XI<SakjB{GF#?EGZJVBsuU>wE;HcB5 z*?;!z8Q?4<ifP32IEiPfr~~5i<}5*L;I-y*nPV@HEwP%Wv`rO<5&I&mjtan>>Zz@< zwiT;Z%#O1iG(Ow!AG@flhWgFhAMi!3W)zf6GQi_?R)EJ-p3^tC%>n7Z{r(T5>FADo z^WrrE10Wv<XsAPMoYTy7UFl|4PsbB5=6bPYpr<8#uW;z4o9v9mq?Y;=4gXW8^j+Cj z)YEWTz0}wbLa9#1T%H}<ZL4=}!84|TNLL?*Mp}IlLJ$i%X++ng8lgKftb+4k)`!{{ z)uI}4xWc09+isR5hHE3<;N>7%C-bF?py~zm8eCi`B1^6^K&dpUaNU|3&JFNEIGbbH z7iAuqGpv)M$jdB4K<0ENMQi{woq=vnY`2`Gf`P87*Xa3JNO_U5m4`aXR&M~z^_9}o z-iMw&ooKQ1M3Yv^ly}CP;k*LbQdLZ25oMmz!^bfT(6y1xfZ`WLLCTT6!|bB~4lBAW zA8Os=L3`a$qY7!&cRXYwP^!s!w-Y-fj^?{Ir<Q54+)Uo_c))b#YAAyYJi>MdTB@j% zJ|ADMrq_Lg7mu~t=gskWbi_QWmX@OZIUSpl(|ADy7*>|JfF9A+^<1!j8k+Ugz|=*f zludIo#dJ*Tzyn{P_!>*x6m;US8O!Q@FLL(;WP{o&QlZ4%V$EYKWM$ssX(Qo@oeEn_ z*&e7&5;2O1lT-lO94o^1;6Q6hu`0TNvBy}>xv>}=F)2}ayahnth({8AGwBCYl^iEw zA)%Z5zRp@Bb!-B9y0}~_EK{>RQ%s=gW#<Pz#Uwxm+HSSF09t)}`))p8T2$%R%cj9v z3&LphRU4FpL+0vqTC0gQ6#|rJv3G0|LcyPR;#Z+hZb(muwI6cuQ-!%7Eu}N0->PJ9 zqB#jGj#Cn58L+PqxUr+;b%tZ3X)eC(1hi9&l!w;gX}IDf^{Lp_lz^wa`;>#b!N!&Y zB4BTpXjlRas?rSc@p@FnkkRbFIH3JW2UaVRkbSE@c^`e2o5xX8|CR~Tf6(^)>0gHO zbSPc(pTVejQr}AJ0X9#s_qJi%Tx6W%!8MB7Q;W!@_IRfBms7+jX`JqhqNAh7IqFIs zoaYx8UB7y~yHiY{IVVkzP1Ra7R<kM8qUo+iMSkQ4BwK*fmp88(F(Msx9cv<RJUog= zc6*+XPLO@8JiohpPuT*n4MV5%PljMqj5RH(!CE$t_t=wu7$cF-k{K`*vO?SRalD|I zTiXR%U)$C?nl*0n$HQ&Yo??G=qflA>N;$k&d@Js^ag1Qlgyk(V-YTz$a~dEh)%ct& zQFJHUw#)0Q_2vKg=l=#qW%zzTw9F>P{ps-X^%qym#e5b;t_>Pnq;;8}i|l~BhM*DJ zUT(Qf(_6Y71T(c$lZ5KZv%m|J8C&!K*E~-Qaa&~HqD*PkPPG#nUzb&*)Br>jr=>#+ z6|H*?F=Ry)%{pmkY1?`*rED|y^Dv@!AzLO5&9GFl_$bmG<Sm)gkSaeNV~|SE!6l8h z;d-;TZ%#a;5=Y*L!!b%?Bv-MN;m6Ep31ad7ut)ZI@#@vX!+qBb>(vs0BFj<)dXJfw z^WVs?oZ;!(B#r>Ge9JQJ5pcZZ+0#(-7;Ky*GnmQP6v_%-m(`6QtfO$BR~_THce%dy zq7Y#U&&G4y%jKF{SAFN`Mv-QS4v0PF>2S)Bs&|M?QIb^E?UEh5deik;e(XABHJgJU zB+D7z2x3!T)+)ZvG8=YGgIwxj)B#jP6^>qx=2R;F3*up!von1g^tKf%LB&xA>L2$A z2x>2bE$pH<MfaN3FufI7UyugNsp|7NJ%iYVemr%9S>kI+v-Dm>o;4+&FA(g28?aN^ z^hI|F%^b%hNod-ts5399$^r<91#qgRdXZFyi|kyaN3d2TysRjBcHlbT6u!tb*i_FS zCLwO%Io!@H1VbtgyA47|=u=UWL&@wa#RD$7q4%lSjNsUn1)aPR*eNb%MC>h+o=mDt zyB402Iaw1nwd46%UU+)CXG}ALBI8Bb5=1>bKSMlQ8tP~B*zW1*kKL?#Nw?Boj8{#| zbvYKnhHXl4%kUM&DCi4O(S(2l$0iMr6cP0VghZl3{t%l4hZX|JTVk*WZYZ;`Eszrs z5E6e{HCe@ec;o^g4Vg9ukr-mzRVNh@Tys-8Y<zPM`=i3wWS4qDg;I8*jwP!yxOEOI zmqlsvlyU$`V8<CAUR99q$+M=6U{ScXSFy}+G8K(lKqIT-E$wGVF>qu<O<lKno+5!I zaROLY;w8yI1W*1DTj@2|PlxYh9AZ4)QMQ_sWI8)feU+L_DpoIO{fy2lYz!a~j-r7& zZq(%%2#Ln297+lXL{6Pl{CR!I^Y6a@9!&T7^A|xJtri#f^@?6e8_~1WfgkVybz@}J z2Uk8>&`N7Ked;>S4ZC8khTqZ?`^ofn%D%(+G=Yb|Pd&`^R7b|9t{SN+R)#pAfDt&O z?Wt8ki5UyX&QL5Y0ia7xrVcVDtd5f_l$wi);Z!9UK8zSmU01Bsup301tPgo8f=34U zuZkqD%rq%-213JbRr_3CYMd;lf0BLUp8CiExScp>_R3^wtc;)NOAmsmKmMya^@^~o zWMZY-lREC_^m@8rsf{R4CZ2pla#}3kV2WgysJ+v#*`SJ_%B{#_F5a=h1}qNdxAJZ& zF)9G15l`4;5x=~7S=9CMuwPwWw{?kCP?vyg#WIXk+I6v!y{xON%S+#PqacctB+Jgb z?G_hvbA2=R<K4r(%adU3i!Xl(%>3%+#m$SCtox~SaO;5g&S!)y3ffdf)75|Y_un5* zr|o6~?ps#%?|=Bi+qduj?RWp$<>h7U-@f~yt#j3zAA9Bf!{)#KuYc(de=>(+sn%+r zDaBdo8=jndR<i#dN%6)QopL`@iYs-nDN)=6rv8|o>(O{~cmKnm{|v5lad8!f5pw@N zJv=--{-<w#^ZMmW%h1}Y#0D~TY?$Wm?m?GXPsBGs_sw><N)`@%yA5p40CcD85iX^n zM0GsiJ|z3Hp~G4$T}a(zkv6E49#ap7S`;NU=uNlAEtQ2Knl*zo1S6hpcMmlEb8K2S zHZ7uC$7)`minD1Ph1fPh7~(UR^VroCeA8;VL}0qVdxxy3NdXOS^u^7~FJAuw4Cznb z{~oLH;_3?dFD-H`MQ6&yqq<&Q9*+m4uw)LdTm!@5ZCYZBgmk=EEq&KTd{^5Vzvzh@ zQeT&+-J=XbFkx}p&BASCNi^1M<<M87FxY&_R02NTG}Y#D8wTDN&#r^OXE6|9x+)n@ zY{zngk?qpja<%q@0N^2x6GUf_o~)?YHE-EP39d!SF)R$^6)a}lzIc)oB_My49G`3H zQzU1(p5wIy2lN-3=JN)&pHw10u8YP)Gbnm5zPQ@RK{X)NR@!*TIOvE<l17E?EHBFv z?}9s*5+8a)e?2CCBuTJK;6?Bf;vmOG3gxgbA1~6X$L3OmQP)9`H+3zZ%~Xzy=w1*Y zc4McAKeWRMy0)bpm_z4?`FxHoGfryfre1Rn^@LOc8i(w?$CC#Taea1vk(Le8-K`*J z;|K6X^m}4k4QtB|l~ajJ4BP98>S*@BlVC#!dt=|OY2m3Nv;c_mq?tWd3{O3q0S&Ar zixk|I5<i8w@PDT5@?e*i&(w9m_c?N?45)%dTjd3QOr>ulyL+<Z?s!TIK0sGMB<rN~ z45e~7vU8?S__SvK6v6__7Huuo<--Zkr=!OQ_DCgO!WNaVX>Jxr2{KmMlw&s_1=8X{ z8Ew(iEsm$ar2#W_fmo_(aVaA`SVz1OF*D{qWh0QdWgzkx6d@M@4$B-Vb%8tbn!4UR zJ|1@4jwGJrhJ$qU0c>CmaJq3Eu!i$8@7Xob9CzD-QhH?k8kJD{ngGb9CKc^@)tbU4 zjVR5@u>(zrvHgh>9oIKSLLA9=o-9a*x>lJGhYZEhbCC4}_QlZnw8*ony1TzWp3f?q z35LV*jOR*wv4)j{tjMTnJC5RX#J@O(Ef$TII3Y2GAs4WdMFYEToBFRA0d*gGp1F0w zEL1so{4kTFJD&6gfcHyNE6sqx`o(ORNmprjXr{YQW5vUV<U3i7j8fVjK8*Bea#St} z@-MoLKc%6=&-m{?{nDiTJbvgjcDpCf1)zdTB(JA2!{M(R56euGT-aX|_u!<FuK(rl ziVOx@D!7`+gH1}nV4vuvNSsV3XY3!vK4XW96s74NG&O>03f|oPcJs#{{@pQby(583 zLaWUSkfC`L9nU8`HN4Dd5kJ4YoG%ynt?gk4#GO1xo_*n2Zk1)<e)rwYY<ctiDs-Ij z^3ru(1P%m^b9U-P9?zvNzY_XX^~08SO^4zlHYZ%mJVOcxJp1+6-?VwXJ!k#t-t)h* z$F9!nhuvW?osD;6S6P_$H^+C1)hfoFa`TlkL`vSf>QQkOlWJwElBO%o>os-%r|;@h zd44sdr&A1|IbS5J#UH=_UUy8Ojn~&VdAiTjW3*lY&bp@NS?0`LQjVur-oAUMdG<1y z-*4VK29@NoW8=W(`CnCxtjK_=WHbr2XjeDt(j91tXt=5&JzKh2a^td1cX!xdEH7-| z1rC=<n>q+1O40yg)&&-&8~BKP$eo?EI{>5~ih{CD%JAhczGS{))oTbt9|5?2e2l;R ziq!?10auEzz2k?MSJz0S`@=2_e7r$K6aDf^Oy((f3?APh3U!UDk4Tna59KLsC{JN~ z;xfQl8q*LxqoEp=$fX)SFvp>;nqKXyLbn5~(nc}x+R~abh0&;-bA(I9_bh5im1X1D z;=p71Ug$>=A~@0yVkn0fHA-Q5($G7b&G4P+`S|L^7xU#3umh1B{~ZLHHLd|qY&TD4 z2t(V$f#yObR`TfiPJ_Hci-iuWaWpIuVHh)xf3T5P=7Tt`OZCCAb3NDUm`X*=j_&dx zzLoej)1{$inRmjwQfDL##u{J?k7-gN!~}Ni!#Ki+p3f(pZakr!45^AVUfNTqxAZXK z`8CwFU_qR{0D;YUqHzG;65p>*6J4~TC{9_L%$HFVr+E&FhYT$4!lR7X)aUfH-EBjb zh33d@?4dJlj^q_c3Kh7mYG{thE-cY$Hp0-7ks%s8HtnSLM%Dg-ziZ?1sNw>Z=b2^3 zGUrJE&k<)@5i^1V*O-n2@Xa75j!`V=fJ932Fsf6b`=>NxFAimy3)k@sJbXn>xtOaI z(Vqg3p;nZ=YWgAjq&zQFu>$d1RqObyFO3oyfjmm3U~4($CuMx!;<GPgZYNF_;Fta3 zaH_G&bYL*O(UG_2iv?)h?zjcIbsfYHx2^i7==1axQd-hKoR8Q7p&yc=QH-y14Ic>1 zRJDNP%k(wTOm^J|0PHs9>uE1Vp=KK_gT;;k8>_s1yg!#&G@~cyQW1AJUGabdNBa7O zQJfR|Rk#?u4bO8;YLa)t_OOw=(dSrJRdG2AE2Uv7dyY%$8gT?t*KFVCxdUL3rY}S4 zqT_qTU7b=zB)j}Uwzkn8t;|?XuwB;QdnJnIxCe0hx;p*#ci+aLZ#iCBrIv00e4CoV z$qwn)p~a4<`s0lPpxGjXrE5k_Es>@va@{wcINnd(gMRX_Ai)+cU6V6$0y>S}s&$49 zhK#nvZH6x8$`I08(VheA<xZ1{I%TL3B&Knu4-P>S0shg3n8K}`G*`to3;$!OB9}QS zJbw_Y(#MHYf0lx$lq!>TqWP>S&iJF6NCAL3X?^_1Vp~5lT|=En_D9|3pD<wAR%{-b z>Y0<|+7knwWWv-5euyeHXLB_J0M+%RSyWM}6~m~ZN_X`j0=k@Fk?t=}G3k2I)nI0k z7u>#kFG?QZs>8*60rXj<bi0Tb@o&EQ&1^mckmgB@VyssemzS5TWZ5I{n|hgM$kt!J z{t~!x70)8a=vdFtyQTt`_oJBIAe<pl>D%M@xP%m2D4sc%*K+7WLsUv4o=V1n7t&?e z1iHi4#6I!8V97D#+}G8Mrq_a?!|UB|ls`WzJf5}{Q+!j-IoKAcI^M|EvYPd4_3Ept zYr!SI{^i%;9QZ~LA;by3`PJ9&-@m)MSiiWw!BRm$01EM9x)+@DtSHi#FJId>y|_-N z-OcmoV684E6R54q_Q(z~fHBMU-Lm4WYA&sbruga9GJ_=HjPEo{vrCzawS{=Oo-ZEn zxXKzYadmYKu2~ke8NOJr!48h;8Gm|lv7W~>gd0<w*N(dlh*wA<$Ic0({eDBOP+2HQ z6|2?q+2yluzx~(E-Ti8Pfq=`N$#@3r%=)TfED})O7OR7P51I<1rgU`_`OEpzrkn(r zY{y|0k-mzQD$UE)`f`yh?%)0Za!_JH(BMq(d4u}laAdcGZk{TVOYHBeZPL6DSy~lT zVZB({eux_hLdsyV%W@d9Jhx0rd0Ldu1?NrI*H_{KQk}CbkVbm^EYH!0#&&6;TGchE zl`0M!Sm;@nt0J&Kha6qsY#%v%k*Czm#pjDlU`rLoL3&SYljC1JLB}Q9be|oN)JIW} zrn$YyF887aCD!XDHi{#obY!s{3c^$A5Tk)}Z0W3$<f}D2{6kpM912FLqPsGRFC?cq z#UfXi$sHb%itFuwm%HC?$}Ce&b3R{yo8r1n`a!4-^^uw^Jpl-ob-CYd0eO(C&M9~% z$qjNvc0L#EFQdge>sJG1E;P~jq|}wkc1t`_S3JC{nm7*u7o-;7)lZ#f6*c*ZyGJS~ z^C*<RQUa?{PmsM1go~;WvO&Tl9ZClF&9Y$2HertR;Nc+imozuzUM^Wq_u@FI$Uy-} zf%~;tvP`pdzu&9kv0+gP8t)Duzz7_VtsawDv3Ty{F}57kH<M%mEPgzlfi*nK!FK^E zn!1t95_~=zl!9<Z7f=&7q>R0x7=92ck|$ric(q=yc{;1>>-qZX;u$-Xl^zd<2ZM$V zIEZ~uJy+M!MeKpnj<!u5Y8J8Dj2Nd3Jr}TZHcJ8yA`&8tH7c!6fs^pQY|3u%H~|0e z`vjMGX(L;`ME!eIz(*+yXxmhOW8*4MF<6e~c|3J-#fzCCnxa=M&vXn0qQS|_$nuBB z&BJbgd;8|@{k`}ms)y6L8`Zk)PUlmRR}YUn;BQ<lRhK9;MZg6J1~lTzw!t^xQFyjp z_w|%5=m=d^r!+mM>G8NXJ{F%prM#b=cS<38`XiB(zzfns!*trL#!Yl17;q6-%e>iJ z`lpIo#;6eQj6<WS;Q+v_2`6RawffOT;m1Vyp*;)CZ0fMI)gK)ZJ~;_i#7;;1q$hbQ zKGQh#=Z<%sX@(9<{1fv0H&259y1eCNhb(%B=BMU{ok*Mz1&ovNFdp3C0h~lp5QRvV zwUZswl%|pZ`%R;clb_NPiKnfhG5|{kQL?#z7;V#^#TuJt14~iM>~zi#ECK})mP)fP zfdpq^c=^Q|8*;nf1$0&LA2;uR_08XLC=;uboxQe)IA~gZThEQEQ7pPef=5+n(8&n< zU$d?*F76&S>x*aDKV?<=VHEfQqI-yI_9JYIvH$=afuMO)9b%7p%8K6&s$;b`>JsU? z*uPgE?v_`tG=HA!Mq@dNo-5TEu&s8NU8&w~itYE`K0Iu|4zXzvE??Zd5IbzTwg1yU z{^N2!$7Yn0q^bJAD_Yano6YU@_4RBPAwz>i#o@IVdUa7{b%wvQ&$;TTCk#Afv8<n- z_7t1xfi?A-%S48gaOI9`m_6cG5{C#xj$?xQfQoM)AKA+qMy}#=UQ<yYA2vmvCv!a4 zm}S$40f7<$1G@+;<>jj{?;juPs<1)G#wz&oSA28qYiMm%O)f8i+3@W0I^R4zP&lc` zfz$wG5b5xV*@@(Gxmx2Q-7uoVu45u>S(ci_bCKI^LFkZbw4o7I3LQUEbed)82n6>T z1&z<A(liHf5<|S8!O`)!N=B3hXa<NRE2xAA@`)H|QW@UZ?H}u|@s%hoGpw_^Z%mhe zhHQkexI5=&KsPBYAy7BG2)v-X?M@RA>Dg}VdA5lJV-30j)By;FZ$?~WlXk}ek#kXO zx0@*R&UG^^){*Zc<k1s>tz1OZb&(_7;#xYYEw;8UqZPV3{kbFh`1C2FPE#$2oVG9Y zkrlUU$M&)!t?L39ac0M?U=AJoY5A%VM&)y;jnL#7I}lxJk&YBzaHwBh*A2Vsr2UY7 z)xBa_-k?@MAISYIUFrt1BN)~GOc@QtabFt3b=x|g4|t@Y9YxN=n$YnO%jw2luyZGh zV=Q5OY7k(bGAvZIBkYmNdQ;E46!&Xe9ulH5PRd?DPG(tV^+5lufzn#IueuNeTBL8b zv<WnCRppeONltB>HBr%|L^w66-ai=+SDVdyZ#Jh%hDu)*0IX!Ok}|mFc|kKYJ{}Qm zHtLwg17&~M8u}210g#NU28gRwQPP<kKmicMao88ufG9^u>5s<)GK8tw$$TF9;o)>p z*qm$!o_DcY=jr))+<9SixxD1%jbgc@Y0s~2o+aV$-@N(mfBy@%+pqurAF%iVE>oW9 zSKS~JLn@$^T`4u4rerox=F~?ZG#Ti{e|WW8uYAjNJeTa2lS}k`L~@lWEw!&34t$cd zu)Howho^o3l3?<*6QwYV%PKnE5y3>M8DcuD{JY`-!iKfHm=Z!>*JpaNvEvNS15elF z%oUcp0m=dFa(DZtEQ{so!jF<53_X9AmL*mlz<N}1D#f+v)EpqVxE{$f)n{4+T0k6d wVud|nY~(g&zV7j`A!6!iuw9)`|3`oU04ZwmnT3IBGynhq07*qoM6N<$f|p&^#Q*>R 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