From 340cea91d1ef11a7bc8baa9beb133e08168f0b8a Mon Sep 17 00:00:00 2001 From: Piotr Mitros Date: Wed, 21 Dec 2011 23:45:02 -0500 Subject: [PATCH] UI work, starting to integrate speeds into video player --- .../css/images/ui-bg_flat_0_aaaaaa_40x100.png | Bin 0 -> 180 bytes .../css/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_023063_1x400.png | Bin 0 -> 191 bytes .../images/ui-bg_glass_65_ffffff_1x400.png | Bin 0 -> 105 bytes .../ui-bg_highlight-soft_100_7fbcdf_1x100.png | Bin 0 -> 129 bytes .../ui-bg_highlight-soft_100_bddeff_1x100.png | Bin 0 -> 115 bytes .../ui-bg_highlight-soft_100_f6f6f6_1x100.png | Bin 0 -> 90 bytes .../ui-bg_highlight-soft_25_7fbcdf_1x100.png | Bin 0 -> 123 bytes .../ui-bg_highlight-soft_25_bddeff_1x100.png | Bin 0 -> 122 bytes .../ui-bg_highlight-soft_50_7fbcfd_1x100.png | Bin 0 -> 159 bytes .../css/images/ui-icons_031634_256x240.png | Bin 0 -> 5355 bytes .../css/images/ui-icons_454545_256x240.png | Bin 0 -> 4369 bytes .../css/images/ui-icons_adcc80_256x240.png | Bin 0 -> 5355 bytes .../css/images/ui-icons_fa720a_256x240.png | Bin 0 -> 4369 bytes .../css/images/ui-icons_ffffff_256x240.png | Bin 0 -> 4369 bytes .../static/css/jquery-ui-1.8.16.custom.css | 568 +++++++++++++++++ courseware/static/css/local.css | 56 ++ courseware/static/js/video_player.js | 1 + courseware/static/subs/zpzcLzD2dV4.srt.sjson | 572 ++++++++++++++++++ courseware/video_module.py | 13 +- 22 files changed, 1207 insertions(+), 3 deletions(-) create mode 100644 courseware/static/css/images/ui-bg_flat_0_aaaaaa_40x100.png create mode 100644 courseware/static/css/images/ui-bg_flat_0_eeeeee_40x100.png create mode 100644 courseware/static/css/images/ui-bg_flat_55_ffffff_40x100.png create mode 100644 courseware/static/css/images/ui-bg_flat_75_ffffff_40x100.png create mode 100644 courseware/static/css/images/ui-bg_glass_65_023063_1x400.png create mode 100644 courseware/static/css/images/ui-bg_glass_65_ffffff_1x400.png create mode 100644 courseware/static/css/images/ui-bg_highlight-soft_100_7fbcdf_1x100.png create mode 100644 courseware/static/css/images/ui-bg_highlight-soft_100_bddeff_1x100.png create mode 100644 courseware/static/css/images/ui-bg_highlight-soft_100_f6f6f6_1x100.png create mode 100644 courseware/static/css/images/ui-bg_highlight-soft_25_7fbcdf_1x100.png create mode 100644 courseware/static/css/images/ui-bg_highlight-soft_25_bddeff_1x100.png create mode 100644 courseware/static/css/images/ui-bg_highlight-soft_50_7fbcfd_1x100.png create mode 100644 courseware/static/css/images/ui-icons_031634_256x240.png create mode 100644 courseware/static/css/images/ui-icons_454545_256x240.png create mode 100644 courseware/static/css/images/ui-icons_adcc80_256x240.png create mode 100644 courseware/static/css/images/ui-icons_fa720a_256x240.png create mode 100644 courseware/static/css/images/ui-icons_ffffff_256x240.png create mode 100644 courseware/static/css/jquery-ui-1.8.16.custom.css create mode 100644 courseware/static/css/local.css create mode 100644 courseware/static/subs/zpzcLzD2dV4.srt.sjson diff --git a/courseware/static/css/images/ui-bg_flat_0_aaaaaa_40x100.png b/courseware/static/css/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}bP0l+XkK DSH>_4 literal 0 HcmV?d00001 diff --git a/courseware/static/css/images/ui-bg_flat_0_eeeeee_40x100.png b/courseware/static/css/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/courseware/static/css/images/ui-bg_flat_55_ffffff_40x100.png b/courseware/static/css/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/courseware/static/css/images/ui-bg_flat_75_ffffff_40x100.png b/courseware/static/css/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/courseware/static/css/images/ui-bg_glass_65_023063_1x400.png b/courseware/static/css/images/ui-bg_glass_65_023063_1x400.png new file mode 100644 index 0000000000000000000000000000000000000000..644a1f78e3f832c7fa64423dd63305d796f34ded GIT binary patch literal 191 zcmeAS@N?(olHy`uVBq!ia0vp^j6gJjgAGVZ#9R3S1=>7a978O6lMDRb{yTr z3@pr(9Y58pdE2J4srjmURz=%QuuI=n^<9&B^5T_h%);jCw>v)lY!EuGcP}v^Xo3)s zm?W5*FiGU0JkPpC%!W;mYn}+PpTC!q@aSPmdV{+tN>ySr~=F{k$>;_x^_y?afmf9pRKH0)6?eSP?3s5hEr>mdKI;Vst E0O;M1& literal 0 HcmV?d00001 diff --git a/courseware/static/css/images/ui-bg_highlight-soft_100_7fbcdf_1x100.png b/courseware/static/css/images/ui-bg_highlight-soft_100_7fbcdf_1x100.png new file mode 100644 index 0000000000000000000000000000000000000000..6c372415beee3da1e3a7546fed6ce3af5d4fe841 GIT binary patch literal 129 zcmeAS@N?(olHy`uVBq!ia0vp^j6j^i!3HGVb)pi0l!vE_V~E7mtNo5#4FLj9^7sCy z$u5@O^0t55%w^mx7v1JHb>#dOWc=fy<>(jibKBDePq)PKMVY3wHTmt{?H_hIcaiy| d_5b(ji2DdQKTyk!>Ia(1;OXk;vd$@?2>^e*EI$AM literal 0 HcmV?d00001 diff --git a/courseware/static/css/images/ui-bg_highlight-soft_100_bddeff_1x100.png b/courseware/static/css/images/ui-bg_highlight-soft_100_bddeff_1x100.png new file mode 100644 index 0000000000000000000000000000000000000000..2f6196c9b3e190ad8731fdeb74c8c64461c482a0 GIT binary patch literal 115 zcmeAS@N?(olHy`uVBq!ia0vp^j6j^i!3HGVb)pi0l$EE8V~E7m3f3H_#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/courseware/static/css/images/ui-bg_highlight-soft_25_7fbcdf_1x100.png b/courseware/static/css/images/ui-bg_highlight-soft_25_7fbcdf_1x100.png new file mode 100644 index 0000000000000000000000000000000000000000..994b7557c4b32b210f0ca53388e3bad1bcdfd8d3 GIT binary patch literal 123 zcmeAS@N?(olHy`uVBq!ia0vp^j6j^i!3HGVb)pi0l#{26V~E7mtNjOg8w>;v*WCPn zG{EPOOsV~aLkyuu)xFke1X-Lr&G5$~gTe~DWM4fg%c@c literal 0 HcmV?d00001 diff --git a/courseware/static/css/images/ui-bg_highlight-soft_25_bddeff_1x100.png b/courseware/static/css/images/ui-bg_highlight-soft_25_bddeff_1x100.png new file mode 100644 index 0000000000000000000000000000000000000000..77f2cf7bc214c79f29cfca00458791a520d0fae4 GIT binary patch literal 122 zcmeAS@N?(olHy`uVBq!ia0vp^j6j^i!3HGVb)pi0l%uDMV~E7mtNjN#4;b(;pTAYV zo^O)ly7^Z=GPGXmx8T%KUbmF-$HW!6-5tIHTRMIFqB%l0yDFM)3jX!yN8Oj|BIe`$ WG6`Q_^=1GKWAJqKb6Mw<&;$TvzA9({ literal 0 HcmV?d00001 diff --git a/courseware/static/css/images/ui-bg_highlight-soft_50_7fbcfd_1x100.png b/courseware/static/css/images/ui-bg_highlight-soft_50_7fbcfd_1x100.png new file mode 100644 index 0000000000000000000000000000000000000000..6f70ca4003f3de9ae47181dcef98b5885013e466 GIT binary patch literal 159 zcmeAS@N?(olHy`uVBq!ia0vp^j6j^i!3Ja)XlH!`a?(6q9780gZtZjAYH{FU>HhcM z{7=7s;nxReW_jAMI=V+p+$*BE#QLbgHh}|@R~_av&C)*cxQfYPy#mvgkP9IWN99uT z6X%6pby(fFkL}i$A4J(AaxeG_rUVQ#9r*JhxN44$rj JF6*2UngIVeI`04g literal 0 HcmV?d00001 diff --git a/courseware/static/css/images/ui-icons_031634_256x240.png b/courseware/static/css/images/ui-icons_031634_256x240.png new file mode 100644 index 0000000000000000000000000000000000000000..09c70d6470b38c25363eaeed70aca5b369556ef1 GIT binary patch literal 5355 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 XNDhD%Z$j4p@0a;V!$7@S)iL&eH{f0) literal 0 HcmV?d00001 diff --git a/courseware/static/css/images/ui-icons_fa720a_256x240.png b/courseware/static/css/images/ui-icons_fa720a_256x240.png new file mode 100644 index 0000000000000000000000000000000000000000..b70cbd1ab7d3655f99f38dab72271da742c90b0f GIT binary patch literal 4369 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 literal 0 HcmV?d00001 diff --git a/courseware/static/css/images/ui-icons_ffffff_256x240.png b/courseware/static/css/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/courseware/static/css/jquery-ui-1.8.16.custom.css b/courseware/static/css/jquery-ui-1.8.16.custom.css new file mode 100644 index 0000000000..d03e1ca7a2 --- /dev/null +++ b/courseware/static/css/jquery-ui-1.8.16.custom.css @@ -0,0 +1,568 @@ +/* + * jQuery UI CSS Framework 1.8.16 + * + * Copyright 2011, AUTHORS.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.16 + * + * Copyright 2011, AUTHORS.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=7fbcfd&bgTextureHeader=03_highlight_soft.png&bgImgOpacityHeader=50&borderColorHeader=dae5c9&fcHeader=031634&iconColorHeader=031634&bgColorContent=ffffff&bgTextureContent=01_flat.png&bgImgOpacityContent=75&borderColorContent=dae5c9&fcContent=031634&iconColorContent=adcc80&bgColorDefault=7fbcdf&bgTextureDefault=03_highlight_soft.png&bgImgOpacityDefault=100&borderColorDefault=dae5c9&fcDefault=7a994c&iconColorDefault=adcc80&bgColorHover=bddeff&bgTextureHover=03_highlight_soft.png&bgImgOpacityHover=25&borderColorHover=7fbcdf&fcHover=7a994c&iconColorHover=adcc80&bgColorActive=023063&bgTextureActive=02_glass.png&bgImgOpacityActive=65&borderColorActive=dae5c9&fcActive=dae5c9&iconColorActive=454545&bgColorHighlight=ffffff&bgTextureHighlight=01_flat.png&bgImgOpacityHighlight=55&borderColorHighlight=cccccc&fcHighlight=444444&iconColorHighlight=adcc80&bgColorError=ffffff&bgTextureError=01_flat.png&bgImgOpacityError=55&borderColorError=fa720a&fcError=222222&iconColorError=fa720a&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 +----------------------------------*/ +.ui-widget { font-family: Helvetica, 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: Helvetica, Arial, sans-serif; font-size: 1em; } +.ui-widget-content { border: 1px solid #dae5c9; background: #ffffff url(images/ui-bg_flat_75_ffffff_40x100.png) 50% 50% repeat-x; color: #031634; } +.ui-widget-content a { color: #031634; } +.ui-widget-header { border: 1px solid #dae5c9; background: #7fbcfd url(images/ui-bg_highlight-soft_50_7fbcfd_1x100.png) 50% 50% repeat-x; color: #031634; font-weight: bold; } +.ui-widget-header a { color: #031634; } + +/* Interaction states +----------------------------------*/ +.ui-state-default, .ui-widget-content .ui-state-default, .ui-widget-header .ui-state-default { border: 1px solid #dae5c9; background: #7fbcdf url(images/ui-bg_highlight-soft_100_7fbcdf_1x100.png) 50% 50% repeat-x; font-weight: bold; color: #7a994c; } +.ui-state-default a, .ui-state-default a:link, .ui-state-default a:visited { color: #7a994c; 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 #7fbcdf; background: #bddeff url(images/ui-bg_highlight-soft_25_bddeff_1x100.png) 50% 50% repeat-x; font-weight: bold; color: #7a994c; } +.ui-state-hover a, .ui-state-hover a:hover { color: #7a994c; text-decoration: none; } +.ui-state-active, .ui-widget-content .ui-state-active, .ui-widget-header .ui-state-active { border: 1px solid #dae5c9; background: #023063 url(images/ui-bg_glass_65_023063_1x400.png) 50% 50% repeat-x; font-weight: bold; color: #dae5c9; } +.ui-state-active a, .ui-state-active a:link, .ui-state-active a:visited { color: #dae5c9; 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 #cccccc; background: #ffffff url(images/ui-bg_flat_55_ffffff_40x100.png) 50% 50% repeat-x; color: #444444; } +.ui-state-highlight a, .ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a { color: #444444; } +.ui-state-error, .ui-widget-content .ui-state-error, .ui-widget-header .ui-state-error {border: 1px solid #fa720a; background: #ffffff url(images/ui-bg_flat_55_ffffff_40x100.png) 50% 50% repeat-x; color: #222222; } +.ui-state-error a, .ui-widget-content .ui-state-error a, .ui-widget-header .ui-state-error a { color: #222222; } +.ui-state-error-text, .ui-widget-content .ui-state-error-text, .ui-widget-header .ui-state-error-text { color: #222222; } +.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_adcc80_256x240.png); } +.ui-widget-content .ui-icon {background-image: url(images/ui-icons_adcc80_256x240.png); } +.ui-widget-header .ui-icon {background-image: url(images/ui-icons_031634_256x240.png); } +.ui-state-default .ui-icon { background-image: url(images/ui-icons_adcc80_256x240.png); } +.ui-state-hover .ui-icon, .ui-state-focus .ui-icon {background-image: url(images/ui-icons_adcc80_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_adcc80_256x240.png); } +.ui-state-error .ui-icon, .ui-state-error-text .ui-icon {background-image: url(images/ui-icons_fa720a_256x240.png); } + +/* 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-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-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-all, .ui-corner-top, .ui-corner-left, .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; } +.ui-corner-all, .ui-corner-top, .ui-corner-right, .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; } +.ui-corner-all, .ui-corner-bottom, .ui-corner-left, .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; } +.ui-corner-all, .ui-corner-bottom, .ui-corner-right, .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 */ +.ui-widget-overlay { background: #eeeeee url(images/ui-bg_flat_0_eeeeee_40x100.png) 50% 50% repeat-x; opacity: .80;filter:Alpha(Opacity=80); } +.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.16 + * + * Copyright 2011, AUTHORS.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: 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;}/* + * jQuery UI Selectable 1.8.16 + * + * Copyright 2011, AUTHORS.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.16 + * + * Copyright 2011, AUTHORS.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-li-fix { display: inline; } +.ui-accordion .ui-accordion-header-active { border-bottom: 0 !important; } +.ui-accordion .ui-accordion-header a { display: block; font-size: 1em; 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.16 + * + * Copyright 2011, AUTHORS.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; } + +/* workarounds */ +* html .ui-autocomplete { width:1px; } /* without this, the menu expands to 100% in IE6 */ + +/* + * jQuery UI Menu 1.8.16 + * + * 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; +} +/* + * jQuery UI Button 1.8.16 + * + * Copyright 2011, AUTHORS.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; } /* 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 text element */ +.ui-button .ui-button-text { display: block; line-height: 1.4; } +.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 { padding: .4em 1em; } + +/*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; } + +/* workarounds */ +button.ui-button::-moz-focus-inner { border: 0; padding: 0; } /* reset extra padding in Firefox */ +/* + * jQuery UI Dialog 1.8.16 + * + * Copyright 2011, AUTHORS.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: .2em; width: 300px; overflow: hidden; } +.ui-dialog .ui-dialog-titlebar { padding: .4em 1em; position: relative; } +.ui-dialog .ui-dialog-title { float: left; margin: .1em 16px .1em 0; } +.ui-dialog .ui-dialog-titlebar-close { position: absolute; right: .3em; top: 50%; width: 19px; margin: -10px 0 0 0; padding: 1px; height: 18px; } +.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: 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.16 + * + * Copyright 2011, AUTHORS.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; } +.ui-slider .ui-slider-handle { position: absolute; z-index: 2; width: 1.2em; height: 1.2em; cursor: default; } +.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: .8em; } +.ui-slider-horizontal .ui-slider-handle { top: -.3em; margin-left: -.6em; } +.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: .8em; height: 100px; } +.ui-slider-vertical .ui-slider-handle { left: -.3em; margin-left: 0; margin-bottom: -.6em; } +.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.16 + * + * Copyright 2011, AUTHORS.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; padding: .2em; zoom: 1; } /* 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: .2em .2em 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; } +.ui-tabs .ui-tabs-nav li.ui-tabs-selected { margin-bottom: 0; padding-bottom: 1px; } +.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-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; padding: 1em 1.4em; background: none; } +.ui-tabs .ui-tabs-hide { display: none !important; } +/* + * jQuery UI Datepicker 1.8.16 + * + * Copyright 2011, AUTHORS.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: .2em .2em 0; display: none; } +.ui-datepicker .ui-datepicker-header { position:relative; padding:.2em 0; } +.ui-datepicker .ui-datepicker-prev, .ui-datepicker .ui-datepicker-next { position:absolute; top: 2px; width: 1.8em; height: 1.8em; } +.ui-datepicker .ui-datepicker-prev-hover, .ui-datepicker .ui-datepicker-next-hover { top: 1px; } +.ui-datepicker .ui-datepicker-prev { left:2px; } +.ui-datepicker .ui-datepicker-next { right:2px; } +.ui-datepicker .ui-datepicker-prev-hover { left:1px; } +.ui-datepicker .ui-datepicker-next-hover { right:1px; } +.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; } +.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; } + +/* 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%; font-size:0em; } + +/* 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.16 + * + * Copyright 2011, AUTHORS.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:2em; text-align: left; } +.ui-progressbar .ui-progressbar-value {margin: -1px; height:100%; } \ No newline at end of file diff --git a/courseware/static/css/local.css b/courseware/static/css/local.css new file mode 100644 index 0000000000..79eef9dd95 --- /dev/null +++ b/courseware/static/css/local.css @@ -0,0 +1,56 @@ +#coursenav { + background-color:#031634; + padding: 4px 8px 8px 0px; + margin: 4px 8px 8px 0px; + width: 100%; + text-align: right; +} + +#left_nav { + border: 0; + padding: 0; + margin: 0; + float: left; + width: 276; +} + +#hide_acc { + min-height:600; +} + +#mainblock { + border: 0; + padding: 0; + margin: 0; + width: 200; + min-height:600px; + margin-left: 276px; + margin-right: 0px; +} + + +#bodyContent { + width: 100%; +} + +.seq_problem_visited { background-color: #ccccaa;} +.seq_video_visited { background-color: #ccaacc;} +.seq_video_visited { background-color: #cccaac;} +.seq_html_visited { background-color: #caaccc;} +.seq_tab_visited { background-color: #aacccc;} +.seq_vertical_visited { background-color: #acaccc;} +.seq_sequential_visited { background-color: #cacacc;} +.seq_problem_visited { background-color: #ccacac;} +.seq_schematic_visited { background-color: #cccaca;} + +.seq_problem_inactive { background-color: #aaaa99;} +.seq_video_inactive { background-color: #aa99aa;} +.seq_video_inactive { background-color: #aaa99a;} +.seq_html_inactive { background-color: #a99aaa;} +.seq_tab_inactive { background-color: #99aaaa;} +.seq_vertical_inactive { background-color: #9a9aab;} +.seq_sequential_inactive { background-color: #a9a9aa;} +.seq_problem_inactive { background-color: #aa9a9a;} +.seq_schematic_inactive { background-color: #aaa9a9;} + +.seq_active { background-color: red;} \ No newline at end of file diff --git a/courseware/static/js/video_player.js b/courseware/static/js/video_player.js index 04a3552834..634d2570a5 100644 --- a/courseware/static/js/video_player.js +++ b/courseware/static/js/video_player.js @@ -180,6 +180,7 @@ function updateytplayerInfo() { // functions for the api calls function loadNewVideo(id, startSeconds) { + captions={"start":[0],"end":[0],"text":["Attempting to load captions..."]}; $.getJSON("/static/subs/"+id+".srt.sjson", function(data) { captions=data; }); diff --git a/courseware/static/subs/zpzcLzD2dV4.srt.sjson b/courseware/static/subs/zpzcLzD2dV4.srt.sjson new file mode 100644 index 0000000000..3ab511a3e5 --- /dev/null +++ b/courseware/static/subs/zpzcLzD2dV4.srt.sjson @@ -0,0 +1,572 @@ +{ + "start": [ + 0, + 1176, + 6660, + 11910, + 18130, + 21870, + 25890, + 29310, + 31300, + 35050, + 38130, + 40690, + 44320, + 47910, + 50490, + 53430, + 59720, + 64300, + 68200, + 71920, + 75196, + 83400, + 88850, + 91850, + 95680, + 96630, + 101150, + 104760, + 109530, + 115689, + 122270, + 126810, + 131150, + 133790, + 140560, + 147800, + 153010, + 156860, + 162357, + 164010, + 166990, + 170490, + 173520, + 176870, + 183290, + 187140, + 191490, + 196180, + 201730, + 206460, + 209050, + 214100, + 215590, + 218280, + 220180, + 224170, + 227720, + 228970, + 233510, + 235715, + 238260, + 241690, + 244694, + 249930, + 254050, + 258720, + 263340, + 268055, + 271880, + 276940, + 278190, + 281560, + 286860, + 288910, + 294310, + 295770, + 299090, + 301330, + 303870, + 307960, + 310460, + 313896, + 317010, + 318260, + 324480, + 326600, + 330280, + 336500, + 342630, + 345310, + 346330, + 346920, + 350060, + 350810, + 353190, + 359180, + 365600, + 369410, + 372760, + 374640, + 379380, + 383320, + 387100, + 394000, + 395080, + 398780, + 402600, + 405330, + 407410, + 417210, + 423730, + 427250, + 428420, + 436400, + 441790, + 444180, + 445430, + 448630, + 452510, + 455710, + 463570, + 465430, + 466680, + 470480, + 474490, + 480380, + 482740, + 487990, + 490800, + 493030, + 498370, + 504070, + 505660, + 507760, + 510610, + 511650, + 514809, + 518190, + 521630, + 525350, + 529710, + 533790, + 535040, + 538120, + 543420, + 545920, + 548725, + 549975, + 553010, + 556820, + 564220, + 570020, + 575360, + 576120, + 582960, + 589840, + 593700, + 598650, + 604560, + 606850, + 608650, + 612260, + 616070, + 619336, + 621680, + 622480, + 624430, + 627700, + 630220, + 634778, + 638070, + 641765, + 645120, + 648206, + 651920, + 653550, + 654990, + 655830, + 659170, + 664330, + 668605, + 676080, + 677945, + 679720, + 685200, + 690660, + 694700, + 697520 + ], + "end": [ + 1176, + 6660, + 11910, + 18130, + 21870, + 25890, + 29310, + 31300, + 35050, + 38130, + 40690, + 44320, + 47910, + 50490, + 53430, + 59720, + 64300, + 68200, + 71920, + 75196, + 83400, + 88850, + 91850, + 95680, + 96630, + 101150, + 104760, + 109530, + 115689, + 122270, + 126810, + 131150, + 133790, + 140560, + 147800, + 153010, + 156860, + 162357, + 164010, + 166990, + 170490, + 173520, + 176870, + 183290, + 187140, + 191490, + 196180, + 201730, + 206460, + 209050, + 214100, + 215590, + 218280, + 220180, + 224170, + 227720, + 228970, + 233510, + 235715, + 238260, + 241690, + 244694, + 249930, + 254050, + 258720, + 263340, + 268055, + 271880, + 276940, + 278190, + 281560, + 286860, + 288910, + 294310, + 295770, + 299090, + 301330, + 303870, + 307960, + 310460, + 313896, + 317010, + 318260, + 324480, + 326600, + 330280, + 336500, + 342630, + 345310, + 346330, + 346920, + 350060, + 350810, + 353190, + 359180, + 365600, + 369410, + 372760, + 374640, + 379380, + 383320, + 387100, + 394000, + 395080, + 398780, + 402600, + 405330, + 407410, + 417210, + 423730, + 427250, + 428420, + 436400, + 441790, + 444180, + 445430, + 448630, + 452510, + 455710, + 463570, + 465430, + 466680, + 470480, + 474490, + 480380, + 482740, + 487990, + 490800, + 493030, + 498370, + 504070, + 505660, + 507760, + 510610, + 511650, + 514809, + 518190, + 521630, + 525350, + 529710, + 533790, + 535040, + 538120, + 543420, + 545920, + 548725, + 549975, + 553010, + 556820, + 564220, + 570020, + 575360, + 576120, + 582960, + 589840, + 593700, + 598650, + 604560, + 606850, + 608650, + 612260, + 616070, + 619336, + 621680, + 622480, + 624430, + 627700, + 630220, + 634778, + 638070, + 641765, + 645120, + 648206, + 651920, + 653550, + 654990, + 655830, + 659170, + 664330, + 668605, + 676080, + 677945, + 679720, + 685200, + 690660, + 694700, + 697520, + 701800 + ], + "text": [ + "", + "SPEAKER 1: In this unit, we're going to study several new", + "tools in our tool chest. These include the superposition", + "method, the Thevenin method, and the Norton method.", + "The recommended reading is chapter three of the textbook.", + "", + "Before we begin, let's do a quick review of what we've", + "seen so far.", + "So recall we've been building up our tool chest, a tool", + "chest of techniques that can analyze circuits.", + "We've seen several.", + "First, we've seen the KVL/KCL method, where, given the", + "KVL/KCL rules, you would write a bunch of equations to", + "circuits and go and solve them.", + "Then, you looked at the circuit composition rules", + "method, where you simplified circuits into more composed", + "circuits and analyzed them much more simply.", + "The third method was the Node method.", + "The Node method is the workhorse of 6.002 and pretty", + "much all of circuit analysis.", + "The key idea behind the Node method is that KCL at the", + "nodes is applied using all voltages referenced to ground,", + "where the ground is taken as zero.", + "That enables substantial simplicity in", + "how the Node method--", + "in how the rules are applied, giving you way better and", + "efficient techniques.", + "So these are three methods in your tool chest.", + "So today, we are going to look at how to build up your tool", + "chest. And I'm going to introduce a new technique, or", + "a set of two techniques, the superposition method, the", + "Thevenin method, and the Norton method.", + "I'll start with the superposition method.", + "Now, these methods apply only to linear circuits.", + "Now recall, when we did the analysis of various circuits--", + "recall that we had looked at this playground of ours.", + "And in this playground, all our techniques applied.", + "Now it turns out, there's a region of the playground in", + "which circuits are linear.", + "It's a subset of the playground.", + "Within this playground, some extremely", + "powerful tools apply.", + "Imagine that, within this playground, you are able to", + "use a bazooka as a weapon, while you can't use it outside", + "this little piece of playground.", + "This subset of the playground that we've been used to so far", + "is the playground containing only linear circuits.", + "So in this unit, I would like to introduce linear circuits.", + "Then I'll talk about the properties of linearity.", + "What does it buy us?", + "And then I will talk about the superposition method.", + "The superposition method applies", + "only for linear circuits.", + "And we'll look at how that can substantially", + "simplify circuit analysis.", + "So in this video segment, let's start with introducing", + "linear circuits.", + "", + "I would like to introduce a technique with an example.", + "", + "This is a very simple circuit containing two sources, the", + "voltage source and the current source.", + "I'm going to apply the Node method to analyze this.", + "So according to the Node method, I am going to start", + "with introducing a ground node.", + "So I want to pick this node as my ground node.", + "And the reason I'm doing that is, as is our usual practice,", + "this ground node connects to one terminal of both of our", + "sources, and many edges of the circuit come", + "together at that point.", + "", + "The voltage at this node here is V, because there's a", + "voltage source connected there.", + "And the voltage at this node is labeled e. e is my unknown.", + "And my goal is to find e.", + "", + "So how do I apply the Node method?", + "", + "I'm going to start by adding a node equation for the node e.", + "", + "So here is my node equation.", + "How do I get that?", + "Let's look at the first term.", + "", + "The first term, e minus V divided by", + "R1, arises as follows.", + "So recall, I have to apply KCL at the node with voltage e,", + "and sum the currents coming into the node,", + "and set them to 0.", + "So--", + "I'm sorry.", + "I'm summing the currents leaving the node and setting", + "them to be 0.", + "I could do either.", + "So there's a current leaving this node in this direction.", + "In that direction, the current leaving that node is e minus", + "the voltage V divided by R1.", + "So it's e minus V divided by R1 is the current", + "leaving this node.", + "The current leaving this node through R2 is simply e divided", + "by R2, and that's this piece.", + "Finally, the current leaving this node in this direction is", + "simply minus I. And these three currents sum to 0.", + "OK.", + "That gives us the node equation, or the", + "node at voltage e.", + "You've already noticed some very interesting things in", + "this equation.", + "notice that the equation is linear in e, V, and I. Notice", + "that you don't see any terms involving the product eV, or V", + "squared, VI, and so on.", + "So [UNINTELLIGIBLE PHRASE]", + "this equation is linear in e, V, and I.", + "Let's go on and stir this equation a little more.", + "And I'm going to rearrange the terms.", + "So I take this equation--", + "", + "I'm going to take this equation and rearrange the", + "terms a little bit.", + "And if you look at the equation here, 1 by R1, is", + "multiplying the inverse.", + "We divide by R1.", + "", + "And that's shown here.", + "And then, similarly, 1 divided by R2 is multiplying e here.", + "And I show that here.", + "I move I to the right hand side, so that's here.", + "Similarly, we divide by R1.", + "Shows up here.", + "So by rearranging terms, I show the unknown voltage e to", + "be some function of the voltages V and I.", + "This turned out to be a canonic", + "representation of equations.", + "And in this representation, in this case, I", + "have a single voltage.", + "But in general, this could be multiple voltages, which I", + "could collect into a matrix form", + "This matrix here is called the conductance matrix.", + "I could stick my vector of node voltages here.", + "And on the right hand side, I have a linear sum of sources,", + "where V and I are my voltage and current sources,", + "respectively.", + "", + "In matrix form, this matrix is commonly called G. The vector", + "of unknown voltages is called e.", + "And on the right hand side, I have the", + "linear sum of sources.", + "", + "So let's take it one step further.", + "And in this equation, here is what I am doing.", + "I have taken this component and I have moved it over to", + "the right hand side, exposing e all by itself.", + "OK.", + "As I simplify the equation, here is what I get.", + "Notice that when I move this to the side, my V here is now", + "multiplied by R2 divided by R1 plus R2.", + "And I is multiplied by R1 and R2 divided by R1 plus R2.", + "So all I've done here is taken this part and simply moved it", + "to the right hand side and divided the right", + "hand side with that.", + "And this is what I get.", + "This should make it very clear that my unknown node voltage e", + "is a straight linear--", + "is a linear sum of the sources.", + "V is my source.", + "I is a source.", + "And I have some constant multiplier", + "multiplying those voltages.", + "So this should make it clear that this is a constant.", + "This is a constant.", + "And I have a V and a I, and so I get a linear sum of sources.", + "", + "I can do it a little bit more clearly.", + "Looks like I've scribbled around, unfortunately, so", + "let's see if this eraser thingy works.", + "Ah.", + "There you go.", + "That works pretty nicely.", + "And let me get some color back into my pen here.", + "And so notice that in general, for any circuit, any node", + "voltage e can be represented as a linear combination of all", + "the sources, whether they're voltage", + "sources or current sources.", + "But a1, a2, b1, b2 and so on are constants that are", + "independent of the source voltages and source currents.", + "And so, in general, I end up with my unknown being a linear", + "combination of the various source voltages.", + "" + ] +} \ No newline at end of file diff --git a/courseware/video_module.py b/courseware/video_module.py index a8889bd534..0ec9f5c086 100644 --- a/courseware/video_module.py +++ b/courseware/video_module.py @@ -26,16 +26,23 @@ class VideoModule(XModule): ''' Tags in the courseware file guaranteed to correspond to the module ''' return "video" + def video_list(self): + l=self.item_id.split(',') + l=[i.split(":") for i in l] + return json.dumps(dict(l)) + def get_html(self): - return render_to_string('video.html',{'id':self.item_id, - 'time':self.video_time}) + return render_to_string('video.html',{'streams':self.video_list(), + 'id':self.item_id, + 'video_time':self.video_time}) def get_init_js(self): ''' JavaScript code to be run when problem is shown. Be aware that this may happen several times on the same page (e.g. student switching tabs). Common functions should be put in the main course .js files for now. ''' - return render_to_string('video_init.js',{'id':self.item_id, + return render_to_string('video_init.js',{'streams':self.video_list(), + 'id':self.item_id, 'video_time':self.video_time}) def get_destroy_js(self):