Merge branch 'develop' of git.ungleich.ch:dynamicweb into develop
							
								
								
									
										1
									
								
								.gitignore
									
										
									
									
										vendored
									
									
								
							
							
						
						|  | @ -15,6 +15,7 @@ media/* | ||||||
| !media/keep | !media/keep | ||||||
| 
 | 
 | ||||||
| CACHE/ | CACHE/ | ||||||
|  | static/ | ||||||
| 
 | 
 | ||||||
| \#*# | \#*# | ||||||
| .\#* | .\#* | ||||||
|  |  | ||||||
							
								
								
									
										12
									
								
								DEPLOY.rst
									
										
									
									
									
								
							
							
						
						|  | @ -62,3 +62,15 @@ configure the values for the ssh host, user, port and target directory. | ||||||
|    There's an example for the nginx proxy in configs/nginx.proxy.conf. |    There's an example for the nginx proxy in configs/nginx.proxy.conf. | ||||||
|    For the stating server one can just copy configs/nginx.proxy.conf -> /etc/nginx/conf.d/ungleich.proxy.conf. |    For the stating server one can just copy configs/nginx.proxy.conf -> /etc/nginx/conf.d/ungleich.proxy.conf. | ||||||
|    Remember to comment/delete/change the configuration /etc/nginx/sites-enabled/default. |    Remember to comment/delete/change the configuration /etc/nginx/sites-enabled/default. | ||||||
|  | 
 | ||||||
|  | Other stuff (unsorted): | ||||||
|  | 
 | ||||||
|  |     python manage.py  makemigrations | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  |     - restart | ||||||
|  |         - should have sudo! | ||||||
|  |         /etc/init.d/uwsgi restart | ||||||
|  |          | ||||||
|  |     - staticfiles:  | ||||||
|  |         python manage.py collectstatic | ||||||
|  |  | ||||||
|  | @ -10,7 +10,7 @@ urlpatterns = [ | ||||||
|                                      namespace="digitalglarus")), |                                      namespace="digitalglarus")), | ||||||
|     url(r'^railshosting/', include('railshosting.urls', |     url(r'^railshosting/', include('railshosting.urls', | ||||||
|                                    namespace="railshosting")), |                                    namespace="railshosting")), | ||||||
|     url(r'^cms/', include('cms.urls')), |     url(r'^', include('cms.urls')), | ||||||
|     url(r'^taggit_autosuggest/', include('taggit_autosuggest.urls')), |     url(r'^taggit_autosuggest/', include('taggit_autosuggest.urls')), | ||||||
| ] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT) | ] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT) | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -1,847 +0,0 @@ | ||||||
| /* |  | ||||||
|     DJANGO Admin styles |  | ||||||
| */ |  | ||||||
| 
 |  | ||||||
| body { |  | ||||||
|     margin: 0; |  | ||||||
|     padding: 0; |  | ||||||
|     font-size: 12px; |  | ||||||
|     font-family: "Lucida Grande","DejaVu Sans","Bitstream Vera Sans",Verdana,Arial,sans-serif; |  | ||||||
|     color: #333; |  | ||||||
|     background: #fff; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| /* LINKS */ |  | ||||||
| 
 |  | ||||||
| a:link, a:visited { |  | ||||||
|     color: #5b80b2; |  | ||||||
|     text-decoration: none; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| a:hover { |  | ||||||
|     color: #036; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| a img { |  | ||||||
|     border: none; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| a.section:link, a.section:visited { |  | ||||||
|     color: #fff; |  | ||||||
|     text-decoration: none; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| /* GLOBAL DEFAULTS */ |  | ||||||
| 
 |  | ||||||
| p, ol, ul, dl { |  | ||||||
|     margin: .2em 0 .8em 0; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| p { |  | ||||||
|     padding: 0; |  | ||||||
|     line-height: 140%; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| h1,h2,h3,h4,h5 { |  | ||||||
|     font-weight: bold; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| h1 { |  | ||||||
|     font-size: 18px; |  | ||||||
|     color: #666; |  | ||||||
|     padding: 0 6px 0 0; |  | ||||||
|     margin: 0 0 .2em 0; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| h2 { |  | ||||||
|     font-size: 16px; |  | ||||||
|     margin: 1em 0 .5em 0; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| h2.subhead { |  | ||||||
|     font-weight: normal; |  | ||||||
|     margin-top: 0; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| h3 { |  | ||||||
|     font-size: 14px; |  | ||||||
|     margin: .8em 0 .3em 0; |  | ||||||
|     color: #666; |  | ||||||
|     font-weight: bold; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| h4 { |  | ||||||
|     font-size: 12px; |  | ||||||
|     margin: 1em 0 .8em 0; |  | ||||||
|     padding-bottom: 3px; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| h5 { |  | ||||||
|     font-size: 10px; |  | ||||||
|     margin: 1.5em 0 .5em 0; |  | ||||||
|     color: #666; |  | ||||||
|     text-transform: uppercase; |  | ||||||
|     letter-spacing: 1px; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| ul li { |  | ||||||
|     list-style-type: square; |  | ||||||
|     padding: 1px 0; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| ul.plainlist { |  | ||||||
|     margin-left: 0 !important; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| ul.plainlist li { |  | ||||||
|     list-style-type: none; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| li ul { |  | ||||||
|     margin-bottom: 0; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| li, dt, dd { |  | ||||||
|     font-size: 11px; |  | ||||||
|     line-height: 14px; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| dt { |  | ||||||
|     font-weight: bold; |  | ||||||
|     margin-top: 4px; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| dd { |  | ||||||
|     margin-left: 0; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| form { |  | ||||||
|     margin: 0; |  | ||||||
|     padding: 0; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| fieldset { |  | ||||||
|     margin: 0; |  | ||||||
|     padding: 0; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| blockquote { |  | ||||||
|     font-size: 11px; |  | ||||||
|     color: #777; |  | ||||||
|     margin-left: 2px; |  | ||||||
|     padding-left: 10px; |  | ||||||
|     border-left: 5px solid #ddd; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| code, pre { |  | ||||||
|     font-family: "Bitstream Vera Sans Mono", Monaco, "Courier New", Courier, monospace; |  | ||||||
|     background: inherit; |  | ||||||
|     color: #666; |  | ||||||
|     font-size: 11px; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| pre.literal-block { |  | ||||||
|     margin: 10px; |  | ||||||
|     background: #eee; |  | ||||||
|     padding: 6px 8px; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| code strong { |  | ||||||
|     color: #930; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| hr { |  | ||||||
|     clear: both; |  | ||||||
|     color: #eee; |  | ||||||
|     background-color: #eee; |  | ||||||
|     height: 1px; |  | ||||||
|     border: none; |  | ||||||
|     margin: 0; |  | ||||||
|     padding: 0; |  | ||||||
|     font-size: 1px; |  | ||||||
|     line-height: 1px; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| /* TEXT STYLES & MODIFIERS */ |  | ||||||
| 
 |  | ||||||
| .small { |  | ||||||
|     font-size: 11px; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| .tiny { |  | ||||||
|     font-size: 10px; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| p.tiny { |  | ||||||
|     margin-top: -2px; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| .mini { |  | ||||||
|     font-size: 9px; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| p.mini { |  | ||||||
|     margin-top: -3px; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| .help, p.help { |  | ||||||
|     font-size: 10px !important; |  | ||||||
|     color: #999; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| img.help-tooltip { |  | ||||||
|     cursor: help; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| p img, h1 img, h2 img, h3 img, h4 img, td img { |  | ||||||
|     vertical-align: middle; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| .quiet, a.quiet:link, a.quiet:visited { |  | ||||||
|     color: #999 !important; |  | ||||||
|     font-weight: normal !important; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| .quiet strong { |  | ||||||
|     font-weight: bold !important; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| .float-right { |  | ||||||
|     float: right; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| .float-left { |  | ||||||
|     float: left; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| .clear { |  | ||||||
|     clear: both; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| .align-left { |  | ||||||
|     text-align: left; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| .align-right { |  | ||||||
|     text-align: right; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| .example { |  | ||||||
|     margin: 10px 0; |  | ||||||
|     padding: 5px 10px; |  | ||||||
|     background: #efefef; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| .nowrap { |  | ||||||
|     white-space: nowrap; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| /* TABLES */ |  | ||||||
| 
 |  | ||||||
| table { |  | ||||||
|     border-collapse: collapse; |  | ||||||
|     border-color: #ccc; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| td, th { |  | ||||||
|     font-size: 11px; |  | ||||||
|     line-height: 13px; |  | ||||||
|     border-bottom: 1px solid #eee; |  | ||||||
|     vertical-align: top; |  | ||||||
|     padding: 5px; |  | ||||||
|     font-family: "Lucida Grande", Verdana, Arial, sans-serif; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| th { |  | ||||||
|     text-align: left; |  | ||||||
|     font-size: 12px; |  | ||||||
|     font-weight: bold; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| thead th, |  | ||||||
| tfoot td { |  | ||||||
|     color: #666; |  | ||||||
|     padding: 2px 5px; |  | ||||||
|     font-size: 11px; |  | ||||||
|     background: #e1e1e1 url(../img/nav-bg.gif) top left repeat-x; |  | ||||||
|     border-left: 1px solid #ddd; |  | ||||||
|     border-bottom: 1px solid #ddd; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| tfoot td { |  | ||||||
|     border-bottom: none; |  | ||||||
|     border-top: 1px solid #ddd; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| thead th:first-child, |  | ||||||
| tfoot td:first-child { |  | ||||||
|     border-left: none !important; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| thead th.optional { |  | ||||||
|     font-weight: normal !important; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| fieldset table { |  | ||||||
|     border-right: 1px solid #eee; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| tr.row-label td { |  | ||||||
|     font-size: 9px; |  | ||||||
|     padding-top: 2px; |  | ||||||
|     padding-bottom: 0; |  | ||||||
|     border-bottom: none; |  | ||||||
|     color: #666; |  | ||||||
|     margin-top: -1px; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| tr.alt { |  | ||||||
|     background: #f6f6f6; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| .row1 { |  | ||||||
|     background: #EDF3FE; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| .row2 { |  | ||||||
|     background: #fff; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| /* SORTABLE TABLES */ |  | ||||||
| 
 |  | ||||||
| thead th { |  | ||||||
|     padding: 2px 5px; |  | ||||||
|     line-height: normal; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| thead th a:link, thead th a:visited { |  | ||||||
|     color: #666; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| thead th.sorted { |  | ||||||
|     background: #c5c5c5 url(../img/nav-bg-selected.gif) top left repeat-x; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| thead th.sorted .text { |  | ||||||
|     padding-right: 42px; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| table thead th .text span { |  | ||||||
|     padding: 2px 5px; |  | ||||||
|     display:block; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| table thead th .text a { |  | ||||||
|     display: block; |  | ||||||
|     cursor: pointer; |  | ||||||
|     padding: 2px 5px; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| table thead th.sortable:hover { |  | ||||||
|     background: #fff url(../img/nav-bg-reverse.gif) 0 -5px repeat-x; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| thead th.sorted a.sortremove { |  | ||||||
|     visibility: hidden; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| table thead th.sorted:hover a.sortremove { |  | ||||||
|     visibility: visible; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| table thead th.sorted .sortoptions { |  | ||||||
|     display: block; |  | ||||||
|     padding: 4px 5px 0 5px; |  | ||||||
|     float: right; |  | ||||||
|     text-align: right; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| table thead th.sorted .sortpriority { |  | ||||||
|     font-size: .8em; |  | ||||||
|     min-width: 12px; |  | ||||||
|     text-align: center; |  | ||||||
|     vertical-align: top; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| table thead th.sorted .sortoptions a { |  | ||||||
|     width: 14px; |  | ||||||
|     height: 12px; |  | ||||||
|     display: inline-block; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| table thead th.sorted .sortoptions a.sortremove { |  | ||||||
|     background: url(../img/sorting-icons.gif) -4px -5px no-repeat; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| table thead th.sorted .sortoptions a.sortremove:hover { |  | ||||||
|     background: url(../img/sorting-icons.gif) -4px -27px no-repeat; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| table thead th.sorted .sortoptions a.ascending { |  | ||||||
|     background: url(../img/sorting-icons.gif) -5px -50px no-repeat; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| table thead th.sorted .sortoptions a.ascending:hover { |  | ||||||
|     background: url(../img/sorting-icons.gif) -5px -72px no-repeat; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| table thead th.sorted .sortoptions a.descending { |  | ||||||
|     background: url(../img/sorting-icons.gif) -5px -94px no-repeat; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| table thead th.sorted .sortoptions a.descending:hover { |  | ||||||
|     background: url(../img/sorting-icons.gif) -5px -115px no-repeat; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| /* ORDERABLE TABLES */ |  | ||||||
| 
 |  | ||||||
| table.orderable tbody tr td:hover { |  | ||||||
|     cursor: move; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| table.orderable tbody tr td:first-child { |  | ||||||
|     padding-left: 14px; |  | ||||||
|     background-image: url(../img/nav-bg-grabber.gif); |  | ||||||
|     background-repeat: repeat-y; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| table.orderable-initalized .order-cell, body>tr>td.order-cell { |  | ||||||
|     display: none; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| /* FORM DEFAULTS */ |  | ||||||
| 
 |  | ||||||
| input, textarea, select, .form-row p { |  | ||||||
|     margin: 2px 0; |  | ||||||
|     padding: 2px 3px; |  | ||||||
|     vertical-align: middle; |  | ||||||
|     font-family: "Lucida Grande", Verdana, Arial, sans-serif; |  | ||||||
|     font-weight: normal; |  | ||||||
|     font-size: 11px; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| textarea { |  | ||||||
|     vertical-align: top !important; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| input[type=text], input[type=password], input[type=email], input[type=url], input[type=number], |  | ||||||
| textarea, select, .vTextField { |  | ||||||
|     border: 1px solid #ccc; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| /* FORM BUTTONS */ |  | ||||||
| 
 |  | ||||||
| .button, input[type=submit], input[type=button], .submit-row input { |  | ||||||
|     background: #fff url(../img/nav-bg.gif) bottom repeat-x; |  | ||||||
|     padding: 3px 5px; |  | ||||||
|     color: black; |  | ||||||
|     border: 1px solid #bbb; |  | ||||||
|     border-color: #ddd #aaa #aaa #ddd; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| .button:active, input[type=submit]:active, input[type=button]:active { |  | ||||||
|     background-image: url(../img/nav-bg-reverse.gif); |  | ||||||
|     background-position: top; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| .button[disabled], input[type=submit][disabled], input[type=button][disabled] { |  | ||||||
|     background-image: url(../img/nav-bg.gif); |  | ||||||
|     background-position: bottom; |  | ||||||
|     opacity: 0.4; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| .button.default, input[type=submit].default, .submit-row input.default { |  | ||||||
|     border: 2px solid #5b80b2; |  | ||||||
|     background: #7CA0C7 url(../img/default-bg.gif) bottom repeat-x; |  | ||||||
|     font-weight: bold; |  | ||||||
|     color: #fff; |  | ||||||
|     float: right; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| .button.default:active, input[type=submit].default:active { |  | ||||||
|     background-image: url(../img/default-bg-reverse.gif); |  | ||||||
|     background-position: top; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| .button[disabled].default, input[type=submit][disabled].default, input[type=button][disabled].default { |  | ||||||
|     background-image: url(../img/default-bg.gif); |  | ||||||
|     background-position: bottom; |  | ||||||
|     opacity: 0.4; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| /* MODULES */ |  | ||||||
| 
 |  | ||||||
| .module { |  | ||||||
|     border: 1px solid #ccc; |  | ||||||
|     margin-bottom: 5px; |  | ||||||
|     background: #fff; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| .module p, .module ul, .module h3, .module h4, .module dl, .module pre { |  | ||||||
|     padding-left: 10px; |  | ||||||
|     padding-right: 10px; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| .module blockquote { |  | ||||||
|     margin-left: 12px; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| .module ul, .module ol { |  | ||||||
|     margin-left: 1.5em; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| .module h3 { |  | ||||||
|     margin-top: .6em; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| .module h2, .module caption, .inline-group h2 { |  | ||||||
|     margin: 0; |  | ||||||
|     padding: 2px 5px 3px 5px; |  | ||||||
|     font-size: 11px; |  | ||||||
|     text-align: left; |  | ||||||
|     font-weight: bold; |  | ||||||
|     background: #7CA0C7 url(../img/default-bg.gif) top left repeat-x; |  | ||||||
|     color: #fff; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| .module table { |  | ||||||
|     border-collapse: collapse; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| /* MESSAGES & ERRORS */ |  | ||||||
| 
 |  | ||||||
| ul.messagelist { |  | ||||||
|     padding: 0; |  | ||||||
|     margin: 0; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| ul.messagelist li { |  | ||||||
|     font-size: 12px; |  | ||||||
|     font-weight: bold; |  | ||||||
|     display: block; |  | ||||||
|     padding: 5px 5px 4px 25px; |  | ||||||
|     margin: 0 0 3px 0; |  | ||||||
|     border-bottom: 1px solid #ddd; |  | ||||||
|     color: #666; |  | ||||||
|     background: #dfd url(../img/icon_success.gif) 5px .3em no-repeat; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| ul.messagelist li.warning { |  | ||||||
|     background: #ffc url(../img/icon_alert.gif) 5px .3em no-repeat; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| ul.messagelist li.error { |  | ||||||
|     background: #ffefef url(../img/icon_error.gif) 5px .3em no-repeat; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| .errornote { |  | ||||||
|     font-size: 12px !important; |  | ||||||
|     font-weight: bold; |  | ||||||
|     display: block; |  | ||||||
|     padding: 5px 5px 4px 25px; |  | ||||||
|     margin: 0 0 3px 0; |  | ||||||
|     border: 1px solid #c22; |  | ||||||
|     color: #c11; |  | ||||||
|     background: #ffefef url(../img/icon_error.gif) 5px .38em no-repeat; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| .errornote, ul.errorlist { |  | ||||||
|     border-radius: 1px; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| ul.errorlist { |  | ||||||
|     margin: 0 0 4px !important; |  | ||||||
|     padding: 0 !important; |  | ||||||
|     color: #fff; |  | ||||||
|     background: #c11; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| ul.errorlist li { |  | ||||||
|     font-size: 12px !important; |  | ||||||
|     display: block; |  | ||||||
|     padding: 5px 5px 4px 7px; |  | ||||||
|     margin: 3px 0 0 0; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| ul.errorlist li:first-child { |  | ||||||
|     margin-top: 0; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| ul.errorlist li a { |  | ||||||
|     color: #fff; |  | ||||||
|     text-decoration: underline; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| td ul.errorlist { |  | ||||||
|     margin: 0 !important; |  | ||||||
|     padding: 0 !important; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| td ul.errorlist li { |  | ||||||
|     margin: 0 !important; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| .errors, .form-row.errors { |  | ||||||
|     background: #ffefef; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| .form-row.errors { |  | ||||||
|     border: 1px solid #c22; |  | ||||||
|     margin: -1px; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| .errors input, .errors select, .errors textarea { |  | ||||||
|     border: 1px solid #c11; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| div.system-message { |  | ||||||
|     background: #ffc; |  | ||||||
|     margin: 10px; |  | ||||||
|     padding: 6px 8px; |  | ||||||
|     font-size: .8em; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| div.system-message p.system-message-title { |  | ||||||
|     padding: 4px 5px 4px 25px; |  | ||||||
|     margin: 0; |  | ||||||
|     color: #c11; |  | ||||||
|     background: #ffefef url(../img/icon_error.gif) 5px .3em no-repeat; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| .description { |  | ||||||
|     font-size: 12px; |  | ||||||
|     padding: 5px 0 0 12px; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| /* BREADCRUMBS */ |  | ||||||
| 
 |  | ||||||
| div.breadcrumbs { |  | ||||||
|     background: #fff url(../img/nav-bg-reverse.gif) 0 -10px repeat-x; |  | ||||||
|     padding: 2px 8px 3px 8px; |  | ||||||
|     font-size: 11px; |  | ||||||
|     color: #999; |  | ||||||
|     border-top: 1px solid #fff; |  | ||||||
|     border-bottom: 1px solid #ddd; |  | ||||||
|     text-align: left; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| /* ACTION ICONS */ |  | ||||||
| 
 |  | ||||||
| .addlink { |  | ||||||
|     padding-left: 12px; |  | ||||||
|     background: url(../img/icon_addlink.gif) 0 .2em no-repeat; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| .changelink { |  | ||||||
|     padding-left: 12px; |  | ||||||
|     background: url(../img/icon_changelink.gif) 0 .2em no-repeat; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| .deletelink { |  | ||||||
|     padding-left: 12px; |  | ||||||
|     background: url(../img/icon_deletelink.gif) 0 .25em no-repeat; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| a.deletelink:link, a.deletelink:visited { |  | ||||||
|     color: #CC3434; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| a.deletelink:hover { |  | ||||||
|     color: #993333; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| /* OBJECT TOOLS */ |  | ||||||
| 
 |  | ||||||
| .object-tools { |  | ||||||
|     font-size: 10px; |  | ||||||
|     font-weight: bold; |  | ||||||
|     font-family: Arial,Helvetica,sans-serif; |  | ||||||
|     padding-left: 0; |  | ||||||
|     float: right; |  | ||||||
|     position: relative; |  | ||||||
|     margin-top: -2.4em; |  | ||||||
|     margin-bottom: -2em; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| .form-row .object-tools { |  | ||||||
|     margin-top: 5px; |  | ||||||
|     margin-bottom: 5px; |  | ||||||
|     float: none; |  | ||||||
|     height: 2em; |  | ||||||
|     padding-left: 3.5em; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| .object-tools li { |  | ||||||
|     display: block; |  | ||||||
|     float: left; |  | ||||||
|     margin-left: 5px; |  | ||||||
|     height: 16px; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| .object-tools a { |  | ||||||
|     border-radius: 15px; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| .object-tools a:link, .object-tools a:visited { |  | ||||||
|     display: block; |  | ||||||
|     float: left; |  | ||||||
|     color: #fff; |  | ||||||
|     padding: .2em 10px; |  | ||||||
|     background: #999; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| .object-tools a:hover, .object-tools li:hover a { |  | ||||||
|     background-color: #5b80b2; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| .object-tools a.viewsitelink, .object-tools a.golink { |  | ||||||
|     background: #999 url(../img/tooltag-arrowright.png) 95% center no-repeat; |  | ||||||
|     padding-right: 26px; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| .object-tools a.addlink { |  | ||||||
|     background: #999 url(../img/tooltag-add.png) 95% center no-repeat; |  | ||||||
|     padding-right: 26px; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| /* OBJECT HISTORY */ |  | ||||||
| 
 |  | ||||||
| table#change-history { |  | ||||||
|     width: 100%; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| table#change-history tbody th { |  | ||||||
|     width: 16em; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| /* PAGE STRUCTURE */ |  | ||||||
| 
 |  | ||||||
| #container { |  | ||||||
|     position: relative; |  | ||||||
|     width: 100%; |  | ||||||
|     min-width: 760px; |  | ||||||
|     padding: 0; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| #content { |  | ||||||
|     margin: 10px 15px; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| #content-main { |  | ||||||
|     float: left; |  | ||||||
|     width: 100%; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| #content-related { |  | ||||||
|     float: right; |  | ||||||
|     width: 18em; |  | ||||||
|     position: relative; |  | ||||||
|     margin-right: -19em; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| #footer { |  | ||||||
|     clear: both; |  | ||||||
|     padding: 10px; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| /* COLUMN TYPES */ |  | ||||||
| 
 |  | ||||||
| .colMS { |  | ||||||
|     margin-right: 20em !important; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| .colSM { |  | ||||||
|     margin-left: 20em !important; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| .colSM #content-related { |  | ||||||
|     float: left; |  | ||||||
|     margin-right: 0; |  | ||||||
|     margin-left: -19em; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| .colSM #content-main { |  | ||||||
|     float: right; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| .popup .colM { |  | ||||||
|     width: 95%; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| .subcol { |  | ||||||
|     float: left; |  | ||||||
|     width: 46%; |  | ||||||
|     margin-right: 15px; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| .dashboard #content { |  | ||||||
|     width: 500px; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| /* HEADER */ |  | ||||||
| 
 |  | ||||||
| #header { |  | ||||||
|     width: 100%; |  | ||||||
|     background: #417690; |  | ||||||
|     color: #ffc; |  | ||||||
|     overflow: hidden; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| #header a:link, #header a:visited { |  | ||||||
|     color: #fff; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| #header a:hover { |  | ||||||
|     text-decoration: underline; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| #branding { |  | ||||||
|     float: left; |  | ||||||
| } |  | ||||||
| #branding h1 { |  | ||||||
|     padding: 0 10px; |  | ||||||
|     font-size: 18px; |  | ||||||
|     margin: 8px 0; |  | ||||||
|     font-weight: normal; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| #branding h1, #branding h1 a:link, #branding h1 a:visited { |  | ||||||
|     color: #f4f379; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| #branding h2 { |  | ||||||
|     padding: 0 10px; |  | ||||||
|     font-size: 14px; |  | ||||||
|     margin: -8px 0 8px 0; |  | ||||||
|     font-weight: normal; |  | ||||||
|     color: #ffc; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| #branding a:hover { |  | ||||||
|     text-decoration: none; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| #user-tools { |  | ||||||
|     float: right; |  | ||||||
|     padding: 1.2em 10px; |  | ||||||
|     font-size: 11px; |  | ||||||
|     text-align: right; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| /* SIDEBAR */ |  | ||||||
| 
 |  | ||||||
| #content-related h3 { |  | ||||||
|     font-size: 12px; |  | ||||||
|     color: #666; |  | ||||||
|     margin-bottom: 3px; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| #content-related h4 { |  | ||||||
|     font-size: 11px; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| #content-related .module h2 { |  | ||||||
|     background: #eee url(../img/nav-bg.gif) bottom left repeat-x; |  | ||||||
|     color: #666; |  | ||||||
| } |  | ||||||
|  | @ -1,293 +0,0 @@ | ||||||
| /* CHANGELISTS */ |  | ||||||
| 
 |  | ||||||
| #changelist { |  | ||||||
|     position: relative; |  | ||||||
|     width: 100%; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| #changelist table { |  | ||||||
|     width: 100%; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| .change-list .hiddenfields { display:none; } |  | ||||||
| 
 |  | ||||||
| .change-list .filtered table { |  | ||||||
|     border-right: 1px solid #ddd; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| .change-list .filtered { |  | ||||||
|     min-height: 400px; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| .change-list .filtered { |  | ||||||
|     background: white url(../img/changelist-bg.gif) top right repeat-y !important; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| .change-list .filtered .results, .change-list .filtered .paginator, .filtered #toolbar, .filtered div.xfull { |  | ||||||
|     margin-right: 160px !important; |  | ||||||
|     width: auto !important; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| .change-list .filtered table tbody th { |  | ||||||
|     padding-right: 1em; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| #changelist-form .results { |  | ||||||
|   overflow-x: auto; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| #changelist .toplinks { |  | ||||||
|     border-bottom: 1px solid #ccc !important; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| #changelist .paginator { |  | ||||||
|     color: #666; |  | ||||||
|     border-top: 1px solid #eee; |  | ||||||
|     border-bottom: 1px solid #eee; |  | ||||||
|     background: white url(../img/nav-bg.gif) 0 180% repeat-x; |  | ||||||
|     overflow: hidden; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| .change-list .filtered .paginator { |  | ||||||
|     border-right: 1px solid #ddd; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| /* CHANGELIST TABLES */ |  | ||||||
| 
 |  | ||||||
| #changelist table thead th { |  | ||||||
|     padding: 0; |  | ||||||
|     white-space: nowrap; |  | ||||||
|     vertical-align: middle; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| #changelist table thead th.action-checkbox-column { |  | ||||||
|     width: 1.5em; |  | ||||||
|     text-align: center; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| #changelist table tbody td, #changelist table tbody th { |  | ||||||
|     border-left: 1px solid #ddd; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| #changelist table tbody td:first-child, #changelist table tbody th:first-child { |  | ||||||
|     border-left: 0; |  | ||||||
|     border-right: 1px solid #ddd; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| #changelist table tbody td.action-checkbox { |  | ||||||
|     text-align:center; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| #changelist table tfoot { |  | ||||||
|     color: #666; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| /* TOOLBAR */ |  | ||||||
| 
 |  | ||||||
| #changelist #toolbar { |  | ||||||
|     padding: 3px; |  | ||||||
|     border-bottom: 1px solid #ddd; |  | ||||||
|     background: #e1e1e1 url(../img/nav-bg.gif) top left repeat-x; |  | ||||||
|     color: #666; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| #changelist #toolbar form input { |  | ||||||
|     font-size: 11px; |  | ||||||
|     padding: 1px 2px; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| #changelist #toolbar form #searchbar { |  | ||||||
|     padding: 2px; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| #changelist #changelist-search img { |  | ||||||
|     vertical-align: middle; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| /* FILTER COLUMN */ |  | ||||||
| 
 |  | ||||||
| #changelist-filter { |  | ||||||
|     position: absolute; |  | ||||||
|     top: 0; |  | ||||||
|     right: 0; |  | ||||||
|     z-index: 1000; |  | ||||||
|     width: 160px; |  | ||||||
|     border-left: 1px solid #ddd; |  | ||||||
|     background: #efefef; |  | ||||||
|     margin: 0; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| #changelist-filter h2 { |  | ||||||
|     font-size: 11px; |  | ||||||
|     padding: 2px 5px; |  | ||||||
|     border-bottom: 1px solid #ddd; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| #changelist-filter h3 { |  | ||||||
|     font-size: 12px; |  | ||||||
|     margin-bottom: 0; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| #changelist-filter ul { |  | ||||||
|     padding-left: 0; |  | ||||||
|     margin-left: 10px; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| #changelist-filter li { |  | ||||||
|     list-style-type: none; |  | ||||||
|     margin-left: 0; |  | ||||||
|     padding-left: 0; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| #changelist-filter a { |  | ||||||
|     color: #999; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| #changelist-filter a:hover { |  | ||||||
|     color: #036; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| #changelist-filter li.selected { |  | ||||||
|     border-left: 5px solid #ccc; |  | ||||||
|     padding-left: 5px; |  | ||||||
|     margin-left: -10px; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| #changelist-filter li.selected a { |  | ||||||
|     color: #5b80b2 !important; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| /* DATE DRILLDOWN */ |  | ||||||
| 
 |  | ||||||
| .change-list ul.toplinks { |  | ||||||
|     display: block; |  | ||||||
|     background: white url(../img/nav-bg-reverse.gif) 0 -10px repeat-x; |  | ||||||
|     border-top: 1px solid white; |  | ||||||
|     float: left; |  | ||||||
|     padding: 0 !important; |  | ||||||
|     margin: 0 !important; |  | ||||||
|     width: 100%; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| .change-list ul.toplinks li { |  | ||||||
|     padding: 3px 6px; |  | ||||||
|     font-weight: bold; |  | ||||||
|     list-style-type: none; |  | ||||||
|     display: inline-block; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| .change-list ul.toplinks .date-back a { |  | ||||||
|     color: #999; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| .change-list ul.toplinks .date-back a:hover { |  | ||||||
|     color: #036; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| /* PAGINATOR */ |  | ||||||
| 
 |  | ||||||
| .paginator { |  | ||||||
|     font-size: 11px; |  | ||||||
|     padding-top: 10px; |  | ||||||
|     padding-bottom: 10px; |  | ||||||
|     line-height: 22px; |  | ||||||
|     margin: 0; |  | ||||||
|     border-top: 1px solid #ddd; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| .paginator a:link, .paginator a:visited { |  | ||||||
|     padding: 2px 6px; |  | ||||||
|     border: solid 1px #ccc; |  | ||||||
|     background: white; |  | ||||||
|     text-decoration: none; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| .paginator a.showall { |  | ||||||
|     padding: 0 !important; |  | ||||||
|     border: none !important; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| .paginator a.showall:hover { |  | ||||||
|     color: #036 !important; |  | ||||||
|     background: transparent !important; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| .paginator .end { |  | ||||||
|     border-width: 2px !important; |  | ||||||
|     margin-right: 6px; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| .paginator .this-page { |  | ||||||
|     padding: 2px 6px; |  | ||||||
|     font-weight: bold; |  | ||||||
|     font-size: 13px; |  | ||||||
|     vertical-align: top; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| .paginator a:hover { |  | ||||||
|     color: white; |  | ||||||
|     background: #5b80b2; |  | ||||||
|     border-color: #036; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| /* ACTIONS */ |  | ||||||
| 
 |  | ||||||
| .filtered .actions { |  | ||||||
|     margin-right: 160px !important; |  | ||||||
|     border-right: 1px solid #ddd; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| #changelist table input { |  | ||||||
|     margin: 0; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| #changelist table tbody tr.selected { |  | ||||||
|     background-color: #FFFFCC; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| #changelist .actions { |  | ||||||
|     color: #999; |  | ||||||
|     padding: 3px; |  | ||||||
|     border-top: 1px solid #fff; |  | ||||||
|     border-bottom: 1px solid #ddd; |  | ||||||
|     background: white url(../img/nav-bg-reverse.gif) 0 -10px repeat-x; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| #changelist .actions.selected { |  | ||||||
|     background: #fffccf; |  | ||||||
|     border-top: 1px solid #fffee8; |  | ||||||
|     border-bottom: 1px solid #edecd6; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| #changelist .actions span.all, |  | ||||||
| #changelist .actions span.action-counter, |  | ||||||
| #changelist .actions span.clear, |  | ||||||
| #changelist .actions span.question { |  | ||||||
|     font-size: 11px; |  | ||||||
|     margin: 0 0.5em; |  | ||||||
|     display: none; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| #changelist .actions:last-child { |  | ||||||
|     border-bottom: none; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| #changelist .actions select { |  | ||||||
|     border: 1px solid #aaa; |  | ||||||
|     margin-left: 0.5em; |  | ||||||
|     padding: 1px 2px; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| #changelist .actions label { |  | ||||||
|     font-size: 11px; |  | ||||||
|     margin-left: 0.5em; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| #changelist #action-toggle { |  | ||||||
|     display: none; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| #changelist .actions .button { |  | ||||||
|     font-size: 11px; |  | ||||||
|     padding: 1px 2px; |  | ||||||
| } |  | ||||||
|  | @ -1,30 +0,0 @@ | ||||||
| /* DASHBOARD */ |  | ||||||
| 
 |  | ||||||
| .dashboard .module table th { |  | ||||||
|     width: 100%; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| .dashboard .module table td { |  | ||||||
|     white-space: nowrap; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| .dashboard .module table td a { |  | ||||||
|     display: block; |  | ||||||
|     padding-right: .6em; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| /* RECENT ACTIONS MODULE */ |  | ||||||
| 
 |  | ||||||
| .module ul.actionlist { |  | ||||||
|     margin-left: 0; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| ul.actionlist li { |  | ||||||
|     list-style-type: none; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| ul.actionlist li { |  | ||||||
|     overflow: hidden; |  | ||||||
|     text-overflow: ellipsis; |  | ||||||
|     -o-text-overflow: ellipsis; |  | ||||||
| } |  | ||||||
|  | @ -1,376 +0,0 @@ | ||||||
| @import url('widgets.css'); |  | ||||||
| 
 |  | ||||||
| /* FORM ROWS */ |  | ||||||
| 
 |  | ||||||
| .form-row { |  | ||||||
|     overflow: hidden; |  | ||||||
|     padding: 8px 12px; |  | ||||||
|     font-size: 11px; |  | ||||||
|     border-bottom: 1px solid #eee; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| .form-row img, .form-row input { |  | ||||||
|     vertical-align: middle; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| form .form-row p { |  | ||||||
|     padding-left: 0; |  | ||||||
|     font-size: 11px; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| .hidden { |  | ||||||
|     display: none; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| /* FORM LABELS */ |  | ||||||
| 
 |  | ||||||
| form h4 { |  | ||||||
|     margin: 0 !important; |  | ||||||
|     padding: 0 !important; |  | ||||||
|     border: none !important; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| label { |  | ||||||
|     font-weight: normal !important; |  | ||||||
|     color: #666; |  | ||||||
|     font-size: 12px; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| .required label, label.required { |  | ||||||
|     font-weight: bold !important; |  | ||||||
|     color: #333 !important; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| /* RADIO BUTTONS */ |  | ||||||
| 
 |  | ||||||
| form ul.radiolist li { |  | ||||||
|     list-style-type: none; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| form ul.radiolist label { |  | ||||||
|     float: none; |  | ||||||
|     display: inline; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| form ul.inline { |  | ||||||
|     margin-left: 0; |  | ||||||
|     padding: 0; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| form ul.inline li { |  | ||||||
|     float: left; |  | ||||||
|     padding-right: 7px; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| /* ALIGNED FIELDSETS */ |  | ||||||
| 
 |  | ||||||
| .aligned label { |  | ||||||
|     display: block; |  | ||||||
|     padding: 3px 10px 0 0; |  | ||||||
|     float: left; |  | ||||||
|     width: 8em; |  | ||||||
|     word-wrap: break-word; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| .aligned ul label { |  | ||||||
|     display: inline; |  | ||||||
|     float: none; |  | ||||||
|     width: auto; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| .colMS .aligned .vLargeTextField, .colMS .aligned .vXMLLargeTextField { |  | ||||||
|     width: 350px; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| form .aligned p, form .aligned ul { |  | ||||||
|     margin-left: 7em; |  | ||||||
|     padding-left: 30px; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| form .aligned table p { |  | ||||||
|     margin-left: 0; |  | ||||||
|     padding-left: 0; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| form .aligned p.help { |  | ||||||
|     padding-left: 38px; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| .aligned .vCheckboxLabel { |  | ||||||
|     float: none !important; |  | ||||||
|     display: inline; |  | ||||||
|     padding-left: 4px; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| .colM .aligned .vLargeTextField, .colM .aligned .vXMLLargeTextField { |  | ||||||
|     width: 610px; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| .checkbox-row p.help { |  | ||||||
|     margin-left: 0; |  | ||||||
|     padding-left: 0 !important; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| fieldset .field-box { |  | ||||||
|     float: left; |  | ||||||
|     margin-right: 20px; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| /* WIDE FIELDSETS */ |  | ||||||
| 
 |  | ||||||
| .wide label { |  | ||||||
|     width: 15em !important; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| form .wide p { |  | ||||||
|     margin-left: 15em; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| form .wide p.help { |  | ||||||
|     padding-left: 38px; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| .colM fieldset.wide .vLargeTextField, .colM fieldset.wide .vXMLLargeTextField { |  | ||||||
|     width: 450px; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| /* COLLAPSED FIELDSETS */ |  | ||||||
| 
 |  | ||||||
| fieldset.collapsed * { |  | ||||||
|     display: none; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| fieldset.collapsed h2, fieldset.collapsed { |  | ||||||
|     display: block !important; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| fieldset.collapsed h2 { |  | ||||||
|     background-image: url(../img/nav-bg.gif); |  | ||||||
|     background-position: bottom left; |  | ||||||
|     color: #999; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| fieldset.collapsed .collapse-toggle { |  | ||||||
|     background: transparent; |  | ||||||
|     display: inline !important; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| /* MONOSPACE TEXTAREAS */ |  | ||||||
| 
 |  | ||||||
| fieldset.monospace textarea { |  | ||||||
|     font-family: "Bitstream Vera Sans Mono",Monaco,"Courier New",Courier,monospace; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| /* SUBMIT ROW */ |  | ||||||
| 
 |  | ||||||
| .submit-row { |  | ||||||
|     padding: 5px 7px; |  | ||||||
|     text-align: right; |  | ||||||
|     background: white url(../img/nav-bg.gif) 0 100% repeat-x; |  | ||||||
|     border: 1px solid #ccc; |  | ||||||
|     margin: 5px 0; |  | ||||||
|     overflow: hidden; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| body.popup .submit-row { |  | ||||||
|     overflow: auto; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| .submit-row input { |  | ||||||
|     margin: 0 0 0 5px; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| .submit-row p { |  | ||||||
|     margin: 0.3em; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| .submit-row p.deletelink-box { |  | ||||||
|     float: left; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| .submit-row .deletelink { |  | ||||||
|     background: url(../img/icon_deletelink.gif) 0 50% no-repeat; |  | ||||||
|     padding-left: 14px; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| /* CUSTOM FORM FIELDS */ |  | ||||||
| 
 |  | ||||||
| .vSelectMultipleField { |  | ||||||
|     vertical-align: top !important; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| .vCheckboxField { |  | ||||||
|     border: none; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| .vDateField, .vTimeField { |  | ||||||
|     margin-right: 2px; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| .vDateField { |  | ||||||
|     min-width: 6.85em; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| .vTimeField { |  | ||||||
|     min-width: 4.7em; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| .vURLField { |  | ||||||
|     width: 30em; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| .vLargeTextField, .vXMLLargeTextField { |  | ||||||
|     width: 48em; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| .flatpages-flatpage #id_content { |  | ||||||
|     height: 40.2em; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| .module table .vPositiveSmallIntegerField { |  | ||||||
|     width: 2.2em; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| .vTextField { |  | ||||||
|     width: 20em; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| .vIntegerField { |  | ||||||
|     width: 5em; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| .vBigIntegerField { |  | ||||||
|     width: 10em; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| .vForeignKeyRawIdAdminField { |  | ||||||
|     width: 5em; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| /* INLINES */ |  | ||||||
| 
 |  | ||||||
| .inline-group { |  | ||||||
|     padding: 0; |  | ||||||
|     border: 1px solid #ccc; |  | ||||||
|     margin: 10px 0; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| .inline-group .aligned label { |  | ||||||
|     width: 8em; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| .inline-related { |  | ||||||
|     position: relative; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| .inline-related h3 { |  | ||||||
|     margin: 0; |  | ||||||
|     color: #666; |  | ||||||
|     padding: 3px 5px; |  | ||||||
|     font-size: 11px; |  | ||||||
|     background: #e1e1e1 url(../img/nav-bg.gif) top left repeat-x; |  | ||||||
|     border-bottom: 1px solid #ddd; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| .inline-related h3 span.delete { |  | ||||||
|     float: right; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| .inline-related h3 span.delete label { |  | ||||||
|     margin-left: 2px; |  | ||||||
|     font-size: 11px; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| .inline-related fieldset { |  | ||||||
|     margin: 0; |  | ||||||
|     background: #fff; |  | ||||||
|     border: none; |  | ||||||
|     width: 100%; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| .inline-related fieldset.module h3 { |  | ||||||
|     margin: 0; |  | ||||||
|     padding: 2px 5px 3px 5px; |  | ||||||
|     font-size: 11px; |  | ||||||
|     text-align: left; |  | ||||||
|     font-weight: bold; |  | ||||||
|     background: #bcd; |  | ||||||
|     color: #fff; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| .inline-group .tabular fieldset.module { |  | ||||||
|     border: none; |  | ||||||
|     border-bottom: 1px solid #ddd; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| .inline-related.tabular fieldset.module table { |  | ||||||
|     width: 100%; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| .last-related fieldset { |  | ||||||
|     border: none; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| .inline-group .tabular tr.has_original td { |  | ||||||
|     padding-top: 2em; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| .inline-group .tabular tr td.original { |  | ||||||
|     padding: 2px 0 0 0; |  | ||||||
|     width: 0; |  | ||||||
|     _position: relative; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| .inline-group .tabular th.original { |  | ||||||
|     width: 0px; |  | ||||||
|     padding: 0; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| .inline-group .tabular td.original p { |  | ||||||
|     position: absolute; |  | ||||||
|     left: 0; |  | ||||||
|     height: 1.1em; |  | ||||||
|     padding: 2px 7px; |  | ||||||
|     overflow: hidden; |  | ||||||
|     font-size: 9px; |  | ||||||
|     font-weight: bold; |  | ||||||
|     color: #666; |  | ||||||
|     _width: 700px; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| .inline-group ul.tools { |  | ||||||
|     padding: 0; |  | ||||||
|     margin: 0; |  | ||||||
|     list-style: none; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| .inline-group ul.tools li { |  | ||||||
|     display: inline; |  | ||||||
|     padding: 0 5px; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| .inline-group div.add-row, |  | ||||||
| .inline-group .tabular tr.add-row td { |  | ||||||
|     color: #666; |  | ||||||
|     padding: 3px 5px; |  | ||||||
|     border-bottom: 1px solid #ddd; |  | ||||||
|     background: #e1e1e1 url(../img/nav-bg.gif) top left repeat-x; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| .inline-group .tabular tr.add-row td { |  | ||||||
|     padding: 4px 5px 3px; |  | ||||||
|     border-bottom: none; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| .inline-group ul.tools a.add, |  | ||||||
| .inline-group div.add-row a, |  | ||||||
| .inline-group .tabular tr.add-row td a { |  | ||||||
|     background: url(../img/icon_addlink.gif) 0 50% no-repeat; |  | ||||||
|     padding-left: 14px; |  | ||||||
|     font-size: 11px; |  | ||||||
|     outline: 0; /* Remove dotted border around link */ |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| .empty-form { |  | ||||||
|     display: none; |  | ||||||
| } |  | ||||||
|  | @ -1,63 +0,0 @@ | ||||||
| /* IE 6 & 7 */ |  | ||||||
| 
 |  | ||||||
| /* Proper fixed width for dashboard in IE6 */ |  | ||||||
| 
 |  | ||||||
| .dashboard #content { |  | ||||||
|     *width: 768px; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| .dashboard #content-main { |  | ||||||
|     *width: 535px; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| /* IE 6 ONLY */ |  | ||||||
| 
 |  | ||||||
| /* Keep header from flowing off the page */ |  | ||||||
| 
 |  | ||||||
| #container { |  | ||||||
|     _position: static; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| /* Put the right sidebars back on the page */ |  | ||||||
| 
 |  | ||||||
| .colMS #content-related { |  | ||||||
|     _margin-right: 0; |  | ||||||
|     _margin-left: 10px; |  | ||||||
|     _position: static; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| /* Put the left sidebars back on the page */ |  | ||||||
| 
 |  | ||||||
| .colSM #content-related { |  | ||||||
|     _margin-right: 10px; |  | ||||||
|     _margin-left: -115px; |  | ||||||
|     _position: static; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| .form-row { |  | ||||||
|     _height: 1%; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| /* Fix right margin for changelist filters in IE6 */ |  | ||||||
| 
 |  | ||||||
| #changelist-filter ul { |  | ||||||
|     _margin-right: -10px; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| /* IE ignores min-height, but treats height as if it were min-height */ |  | ||||||
| 
 |  | ||||||
| .change-list .filtered { |  | ||||||
|     _height: 400px; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| /* IE doesn't know alpha transparency in PNGs */ |  | ||||||
| 
 |  | ||||||
| .inline-deletelink { |  | ||||||
|     background: transparent url(../img/inline-delete-8bit.png) no-repeat; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| /* IE7 doesn't support inline-block */ |  | ||||||
| .change-list ul.toplinks li { |  | ||||||
|     zoom: 1; |  | ||||||
|     *display: inline; |  | ||||||
| } |  | ||||||
|  | @ -1,60 +0,0 @@ | ||||||
| /* LOGIN FORM */ |  | ||||||
| 
 |  | ||||||
| body.login { |  | ||||||
|     background: #eee; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| .login #container { |  | ||||||
|     background: white; |  | ||||||
|     border: 1px solid #ccc; |  | ||||||
|     width: 28em; |  | ||||||
|     min-width: 300px; |  | ||||||
|     margin-left: auto; |  | ||||||
|     margin-right: auto; |  | ||||||
|     margin-top: 100px; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| .login #content-main { |  | ||||||
|     width: 100%; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| .login form { |  | ||||||
|     margin-top: 1em; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| .login .form-row { |  | ||||||
|     padding: 4px 0; |  | ||||||
|     float: left; |  | ||||||
|     width: 100%; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| .login .form-row label { |  | ||||||
|     padding-right: 0.5em; |  | ||||||
|     line-height: 2em; |  | ||||||
|     font-size: 1em; |  | ||||||
|     clear: both; |  | ||||||
|     color: #333; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| .login .form-row #id_username, .login .form-row #id_password { |  | ||||||
|     clear: both; |  | ||||||
|     padding: 6px; |  | ||||||
|     width: 100%; |  | ||||||
|     -webkit-box-sizing: border-box; |  | ||||||
|        -moz-box-sizing: border-box; |  | ||||||
|             box-sizing: border-box; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| .login span.help { |  | ||||||
|     font-size: 10px; |  | ||||||
|     display: block; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| .login .submit-row { |  | ||||||
|     clear: both; |  | ||||||
|     padding: 1em 0 0 9.4em; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| .login .password-reset-link { |  | ||||||
|     text-align: center; |  | ||||||
| } |  | ||||||
|  | @ -1,250 +0,0 @@ | ||||||
| body { |  | ||||||
|     direction: rtl; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| /* LOGIN */ |  | ||||||
| 
 |  | ||||||
| .login .form-row { |  | ||||||
|     float: right; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| .login .form-row label { |  | ||||||
|     float: right; |  | ||||||
|     padding-left: 0.5em; |  | ||||||
|     padding-right: 0; |  | ||||||
|     text-align: left; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| .login .submit-row { |  | ||||||
|     clear: both; |  | ||||||
|     padding: 1em 9.4em 0 0; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| /* GLOBAL */ |  | ||||||
| 
 |  | ||||||
| th { |  | ||||||
|     text-align: right; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| .module h2, .module caption { |  | ||||||
|     text-align: right; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| .addlink, .changelink { |  | ||||||
|     padding-left: 0px; |  | ||||||
|     padding-right: 12px; |  | ||||||
|     background-position: 100% 0.2em; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| .deletelink { |  | ||||||
|     padding-left: 0px; |  | ||||||
|     padding-right: 12px; |  | ||||||
|     background-position: 100% 0.25em; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| .object-tools { |  | ||||||
|     float: left; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| thead th:first-child, |  | ||||||
| tfoot td:first-child { |  | ||||||
|     border-left: 1px solid #ddd !important; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| /* LAYOUT */ |  | ||||||
| 
 |  | ||||||
| #user-tools { |  | ||||||
|     right: auto; |  | ||||||
|     left: 0; |  | ||||||
|     text-align: left; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| div.breadcrumbs { |  | ||||||
|     text-align: right; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| #content-main { |  | ||||||
|     float: right; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| #content-related { |  | ||||||
|     float: left; |  | ||||||
|     margin-left: -19em; |  | ||||||
|     margin-right: auto; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| .colMS { |  | ||||||
|     margin-left: 20em !important; |  | ||||||
|     margin-right: 10px !important; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| /* SORTABLE TABLES */ |  | ||||||
| 
 |  | ||||||
| table thead th.sorted .sortoptions { |  | ||||||
|    float: left; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| thead th.sorted .text { |  | ||||||
| 	padding-right: 0; |  | ||||||
| 	padding-left: 42px; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| /* dashboard styles */ |  | ||||||
| 
 |  | ||||||
| .dashboard .module table td a { |  | ||||||
|     padding-left: .6em; |  | ||||||
|     padding-right: 12px; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| /* changelists styles */ |  | ||||||
| 
 |  | ||||||
| .change-list .filtered { |  | ||||||
|     background: white url(../img/changelist-bg_rtl.gif) top left repeat-y !important; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| .change-list .filtered table { |  | ||||||
|     border-left: 1px solid #ddd; |  | ||||||
|     border-right: 0px none; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| #changelist-filter { |  | ||||||
|     right: auto; |  | ||||||
|     left: 0; |  | ||||||
|     border-left: 0px none; |  | ||||||
|     border-right: 1px solid #ddd; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| .change-list .filtered .results, .change-list .filtered .paginator, .filtered #toolbar, .filtered div.xfull { |  | ||||||
|     margin-right: 0px !important; |  | ||||||
|     margin-left: 160px !important; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| #changelist-filter li.selected { |  | ||||||
|     border-left: 0px none; |  | ||||||
|     padding-left: 0px; |  | ||||||
|     margin-left: 0; |  | ||||||
|     border-right: 5px solid #ccc; |  | ||||||
|     padding-right: 5px; |  | ||||||
|     margin-right: -10px; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| .filtered .actions { |  | ||||||
|     border-left:1px solid #DDDDDD; |  | ||||||
|     margin-left:160px !important; |  | ||||||
|     border-right: 0 none; |  | ||||||
|     margin-right:0 !important; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| #changelist table tbody td:first-child, #changelist table tbody th:first-child { |  | ||||||
|     border-right: 0; |  | ||||||
|     border-left: 1px solid #ddd; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| /* FORMS */ |  | ||||||
| 
 |  | ||||||
| .aligned label { |  | ||||||
|     padding: 0 0 3px 1em; |  | ||||||
|     float: right; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| .submit-row { |  | ||||||
|     text-align: left |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| .submit-row p.deletelink-box { |  | ||||||
|     float: right; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| .submit-row .deletelink { |  | ||||||
|     background: url(../img/icon_deletelink.gif) 0 50% no-repeat; |  | ||||||
|     padding-right: 14px; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| .vDateField, .vTimeField { |  | ||||||
|     margin-left: 2px; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| form ul.inline li { |  | ||||||
|     float: right; |  | ||||||
|     padding-right: 0; |  | ||||||
|     padding-left: 7px; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| input[type=submit].default, .submit-row input.default { |  | ||||||
|     float: left; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| fieldset .field-box { |  | ||||||
|     float: right; |  | ||||||
|     margin-left: 20px; |  | ||||||
|     margin-right: 0; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| .errorlist li { |  | ||||||
|     background-position: 100% .3em; |  | ||||||
|     padding: 4px 25px 4px 5px; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| .errornote { |  | ||||||
|     background-position: 100% .3em; |  | ||||||
|     padding: 4px 25px 4px 5px; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| /* WIDGETS */ |  | ||||||
| 
 |  | ||||||
| .calendarnav-previous { |  | ||||||
|     top: 0; |  | ||||||
|     left: auto; |  | ||||||
|     right: 0; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| .calendarnav-next { |  | ||||||
|     top: 0; |  | ||||||
|     right: auto; |  | ||||||
|     left: 0; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| .calendar caption, .calendarbox h2 { |  | ||||||
|     text-align: center; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| .selector { |  | ||||||
|     float: right; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| .selector .selector-filter { |  | ||||||
|     text-align: right; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| .inline-deletelink { |  | ||||||
|     float: left; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| /* MISC */ |  | ||||||
| 
 |  | ||||||
| .inline-related h2, .inline-group h2 { |  | ||||||
|     text-align: right |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| .inline-related h3 span.delete { |  | ||||||
|     padding-right: 20px; |  | ||||||
|     padding-left: inherit; |  | ||||||
|     left: 10px; |  | ||||||
|     right: inherit; |  | ||||||
|     float:left; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| .inline-related h3 span.delete label { |  | ||||||
|     margin-left: inherit; |  | ||||||
|     margin-right: 2px; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| /* IE7 specific bug fixes */ |  | ||||||
| 
 |  | ||||||
| div.colM { |  | ||||||
|     position: relative; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| .submit-row input { |  | ||||||
|     float: left; |  | ||||||
| } |  | ||||||
|  | @ -1,578 +0,0 @@ | ||||||
| /* SELECTOR (FILTER INTERFACE) */ |  | ||||||
| 
 |  | ||||||
| .selector { |  | ||||||
|     width: 840px; |  | ||||||
|     float: left; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| .selector select { |  | ||||||
|     width: 400px; |  | ||||||
|     height: 17.2em; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| .selector-available, .selector-chosen { |  | ||||||
|     float: left; |  | ||||||
|     width: 400px; |  | ||||||
|     text-align: center; |  | ||||||
|     margin-bottom: 5px; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| .selector-chosen select { |  | ||||||
|     border-top: none; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| .selector-available h2, .selector-chosen h2 { |  | ||||||
|     border: 1px solid #ccc; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| .selector .selector-available h2 { |  | ||||||
|     background: white url(../img/nav-bg.gif) bottom left repeat-x; |  | ||||||
|     color: #666; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| .selector .selector-filter { |  | ||||||
|     background: white; |  | ||||||
|     border: 1px solid #ccc; |  | ||||||
|     border-width: 0 1px; |  | ||||||
|     padding: 3px; |  | ||||||
|     color: #999; |  | ||||||
|     font-size: 10px; |  | ||||||
|     margin: 0; |  | ||||||
|     text-align: left; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| .selector .selector-filter label, |  | ||||||
| .inline-group .aligned .selector .selector-filter label { |  | ||||||
|     width: 16px; |  | ||||||
|     padding: 2px; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| .selector .selector-available input { |  | ||||||
|     width: 360px; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| .selector ul.selector-chooser { |  | ||||||
|     float: left; |  | ||||||
|     width: 22px; |  | ||||||
|     background-color: #eee; |  | ||||||
|     border-radius: 10px; |  | ||||||
|     margin: 10em 5px 0 5px; |  | ||||||
|     padding: 0; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| .selector-chooser li { |  | ||||||
|     margin: 0; |  | ||||||
|     padding: 3px; |  | ||||||
|     list-style-type: none; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| .selector select { |  | ||||||
|     margin-bottom: 10px; |  | ||||||
|     margin-top: 0; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| .selector-add, .selector-remove { |  | ||||||
|     width: 16px; |  | ||||||
|     height: 16px; |  | ||||||
|     display: block; |  | ||||||
|     text-indent: -3000px; |  | ||||||
|     overflow: hidden; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| .selector-add { |  | ||||||
|     background: url(../img/selector-icons.gif) 0 -161px no-repeat; |  | ||||||
|     cursor: default; |  | ||||||
|     margin-bottom: 2px; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| .active.selector-add { |  | ||||||
|     background: url(../img/selector-icons.gif) 0 -187px no-repeat; |  | ||||||
|     cursor: pointer; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| .selector-remove { |  | ||||||
|     background: url(../img/selector-icons.gif) 0 -109px no-repeat; |  | ||||||
|     cursor: default; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| .active.selector-remove { |  | ||||||
|     background: url(../img/selector-icons.gif) 0 -135px no-repeat; |  | ||||||
|     cursor: pointer; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| a.selector-chooseall, a.selector-clearall { |  | ||||||
|     display: inline-block; |  | ||||||
|     text-align: left; |  | ||||||
|     margin-left: auto; |  | ||||||
|     margin-right: auto; |  | ||||||
|     font-weight: bold; |  | ||||||
|     color: #666; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| a.selector-chooseall { |  | ||||||
|     padding: 3px 18px 3px 0; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| a.selector-clearall { |  | ||||||
|     padding: 3px 0 3px 18px; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| a.active.selector-chooseall:hover, a.active.selector-clearall:hover { |  | ||||||
|     color: #036; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| a.selector-chooseall { |  | ||||||
|     background: url(../img/selector-icons.gif) right -263px no-repeat; |  | ||||||
|     cursor: default; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| a.active.selector-chooseall { |  | ||||||
|     background: url(../img/selector-icons.gif) right -289px no-repeat; |  | ||||||
|     cursor: pointer; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| a.selector-clearall { |  | ||||||
|     background: url(../img/selector-icons.gif) left -211px no-repeat; |  | ||||||
|     cursor: default; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| a.active.selector-clearall { |  | ||||||
|     background: url(../img/selector-icons.gif) left -237px no-repeat; |  | ||||||
|     cursor: pointer; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| /* STACKED SELECTORS */ |  | ||||||
| 
 |  | ||||||
| .stacked { |  | ||||||
|     float: left; |  | ||||||
|     width: 500px; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| .stacked select { |  | ||||||
|     width: 480px; |  | ||||||
|     height: 10.1em; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| .stacked .selector-available, .stacked .selector-chosen { |  | ||||||
|     width: 480px; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| .stacked .selector-available { |  | ||||||
|     margin-bottom: 0; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| .stacked .selector-available input { |  | ||||||
|     width: 442px; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| .stacked ul.selector-chooser { |  | ||||||
|     height: 22px; |  | ||||||
|     width: 50px; |  | ||||||
|     margin: 0 0 3px 40%; |  | ||||||
|     background-color: #eee; |  | ||||||
|     border-radius: 10px; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| .stacked .selector-chooser li { |  | ||||||
|     float: left; |  | ||||||
|     padding: 3px 3px 3px 5px; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| .stacked .selector-chooseall, .stacked .selector-clearall { |  | ||||||
|     display: none; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| .stacked .selector-add { |  | ||||||
|     background: url(../img/selector-icons.gif) 0 -57px no-repeat; |  | ||||||
|     cursor: default; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| .stacked .active.selector-add { |  | ||||||
|     background: url(../img/selector-icons.gif) 0 -83px no-repeat; |  | ||||||
|     cursor: pointer; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| .stacked .selector-remove { |  | ||||||
|     background: url(../img/selector-icons.gif) 0 -5px no-repeat; |  | ||||||
|     cursor: default; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| .stacked .active.selector-remove { |  | ||||||
|     background: url(../img/selector-icons.gif) 0 -31px no-repeat; |  | ||||||
|     cursor: pointer; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| /* DATE AND TIME */ |  | ||||||
| 
 |  | ||||||
| p.datetime { |  | ||||||
|     line-height: 20px; |  | ||||||
|     margin: 0; |  | ||||||
|     padding: 0; |  | ||||||
|     color: #666; |  | ||||||
|     font-size: 11px; |  | ||||||
|     font-weight: bold; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| .datetime span { |  | ||||||
|     font-size: 11px; |  | ||||||
|     color: #ccc; |  | ||||||
|     font-weight: normal; |  | ||||||
|     white-space: nowrap; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| table p.datetime { |  | ||||||
|     font-size: 10px; |  | ||||||
|     margin-left: 0; |  | ||||||
|     padding-left: 0; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| /* URL */ |  | ||||||
| 
 |  | ||||||
| p.url { |  | ||||||
|     line-height: 20px; |  | ||||||
|     margin: 0; |  | ||||||
|     padding: 0; |  | ||||||
|     color: #666; |  | ||||||
|     font-size: 11px; |  | ||||||
|     font-weight: bold; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| .url a { |  | ||||||
|     font-weight: normal; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| /* FILE UPLOADS */ |  | ||||||
| 
 |  | ||||||
| p.file-upload { |  | ||||||
|     line-height: 20px; |  | ||||||
|     margin: 0; |  | ||||||
|     padding: 0; |  | ||||||
|     color: #666; |  | ||||||
|     font-size: 11px; |  | ||||||
|     font-weight: bold; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| .file-upload a { |  | ||||||
|     font-weight: normal; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| .file-upload .deletelink { |  | ||||||
|     margin-left: 5px; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| span.clearable-file-input label { |  | ||||||
|     color: #333; |  | ||||||
|     font-size: 11px; |  | ||||||
|     display: inline; |  | ||||||
|     float: none; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| /* CALENDARS & CLOCKS */ |  | ||||||
| 
 |  | ||||||
| .calendarbox, .clockbox { |  | ||||||
|     margin: 5px auto; |  | ||||||
|     font-size: 11px; |  | ||||||
|     width: 16em; |  | ||||||
|     text-align: center; |  | ||||||
|     background: white; |  | ||||||
|     position: relative; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| .clockbox { |  | ||||||
|     width: auto; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| .calendar { |  | ||||||
|     margin: 0; |  | ||||||
|     padding: 0; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| .calendar table { |  | ||||||
|     margin: 0; |  | ||||||
|     padding: 0; |  | ||||||
|     border-collapse: collapse; |  | ||||||
|     background: white; |  | ||||||
|     width: 100%; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| .calendar caption, .calendarbox h2 { |  | ||||||
|     margin: 0; |  | ||||||
|     font-size: 11px; |  | ||||||
|     text-align: center; |  | ||||||
|     border-top: none; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| .calendar th { |  | ||||||
|     font-size: 10px; |  | ||||||
|     color: #666; |  | ||||||
|     padding: 2px 3px; |  | ||||||
|     text-align: center; |  | ||||||
|     background: #e1e1e1 url(../img/nav-bg.gif) 0 50% repeat-x; |  | ||||||
|     border-bottom: 1px solid #ddd; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| .calendar td { |  | ||||||
|     font-size: 11px; |  | ||||||
|     text-align: center; |  | ||||||
|     padding: 0; |  | ||||||
|     border-top: 1px solid #eee; |  | ||||||
|     border-bottom: none; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| .calendar td.selected a { |  | ||||||
|     background: #C9DBED; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| .calendar td.nonday { |  | ||||||
|     background: #efefef; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| .calendar td.today a { |  | ||||||
|     background: #ffc; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| .calendar td a, .timelist a { |  | ||||||
|     display: block; |  | ||||||
|     font-weight: bold; |  | ||||||
|     padding: 4px; |  | ||||||
|     text-decoration: none; |  | ||||||
|     color: #444; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| .calendar td a:hover, .timelist a:hover { |  | ||||||
|     background: #5b80b2; |  | ||||||
|     color: white; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| .calendar td a:active, .timelist a:active { |  | ||||||
|     background: #036; |  | ||||||
|     color: white; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| .calendarnav { |  | ||||||
|     font-size: 10px; |  | ||||||
|     text-align: center; |  | ||||||
|     color: #ccc; |  | ||||||
|     margin: 0; |  | ||||||
|     padding: 1px 3px; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| .calendarnav a:link, #calendarnav a:visited, #calendarnav a:hover { |  | ||||||
|     color: #999; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| .calendar-shortcuts { |  | ||||||
|     background: white; |  | ||||||
|     font-size: 10px; |  | ||||||
|     line-height: 11px; |  | ||||||
|     border-top: 1px solid #eee; |  | ||||||
|     padding: 3px 0 4px; |  | ||||||
|     color: #ccc; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| .calendarbox .calendarnav-previous, .calendarbox .calendarnav-next { |  | ||||||
|     display: block; |  | ||||||
|     position: absolute; |  | ||||||
|     font-weight: bold; |  | ||||||
|     font-size: 12px; |  | ||||||
|     background: #C9DBED url(../img/default-bg.gif) bottom left repeat-x; |  | ||||||
|     padding: 1px 4px 2px 4px; |  | ||||||
|     color: white; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| .calendarnav-previous:hover, .calendarnav-next:hover { |  | ||||||
|     background: #036; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| .calendarnav-previous { |  | ||||||
|     top: 0; |  | ||||||
|     left: 0; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| .calendarnav-next { |  | ||||||
|     top: 0; |  | ||||||
|     right: 0; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| .calendar-cancel { |  | ||||||
|     margin: 0 !important; |  | ||||||
|     padding: 0 !important; |  | ||||||
|     font-size: 10px; |  | ||||||
|     background: #e1e1e1 url(../img/nav-bg.gif) 0 50% repeat-x; |  | ||||||
|     border-top: 1px solid #ddd; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| .calendar-cancel:hover { |  | ||||||
|     background: #e1e1e1 url(../img/nav-bg-reverse.gif) 0 50% repeat-x; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| .calendar-cancel a { |  | ||||||
|     color: black; |  | ||||||
|     display: block; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| ul.timelist, .timelist li { |  | ||||||
|     list-style-type: none; |  | ||||||
|     margin: 0; |  | ||||||
|     padding: 0; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| .timelist a { |  | ||||||
|     padding: 2px; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| /* INLINE ORDERER */ |  | ||||||
| 
 |  | ||||||
| ul.orderer { |  | ||||||
|     position: relative; |  | ||||||
|     padding: 0 !important; |  | ||||||
|     margin: 0 !important; |  | ||||||
|     list-style-type: none; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| ul.orderer li { |  | ||||||
|     list-style-type: none; |  | ||||||
|     display: block; |  | ||||||
|     padding: 0; |  | ||||||
|     margin: 0; |  | ||||||
|     border: 1px solid #bbb; |  | ||||||
|     border-width: 0 1px 1px 0; |  | ||||||
|     white-space: nowrap; |  | ||||||
|     overflow: hidden; |  | ||||||
|     background: #e2e2e2 url(../img/nav-bg-grabber.gif) repeat-y; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| ul.orderer li:hover { |  | ||||||
|     cursor: move; |  | ||||||
|     background-color: #ddd; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| ul.orderer li a.selector { |  | ||||||
|     margin-left: 12px; |  | ||||||
|     overflow: hidden; |  | ||||||
|     width: 83%; |  | ||||||
|     font-size: 10px !important; |  | ||||||
|     padding: 0.6em 0; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| ul.orderer li a:link, ul.orderer li a:visited { |  | ||||||
|     color: #333; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| ul.orderer li .inline-deletelink { |  | ||||||
|     position: absolute; |  | ||||||
|     right: 4px; |  | ||||||
|     margin-top: 0.6em; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| ul.orderer li.selected { |  | ||||||
|     background-color: #f8f8f8; |  | ||||||
|     border-right-color: #f8f8f8; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| ul.orderer li.deleted { |  | ||||||
|     background: #bbb url(../img/deleted-overlay.gif); |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| ul.orderer li.deleted a:link, ul.orderer li.deleted a:visited { |  | ||||||
|     color: #888; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| ul.orderer li.deleted .inline-deletelink { |  | ||||||
|     background-image: url(../img/inline-restore.png); |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| ul.orderer li.deleted:hover, ul.orderer li.deleted a.selector:hover { |  | ||||||
|     cursor: default; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| /* EDIT INLINE */ |  | ||||||
| 
 |  | ||||||
| .inline-deletelink { |  | ||||||
|     float: right; |  | ||||||
|     text-indent: -9999px; |  | ||||||
|     background: transparent url(../img/inline-delete.png) no-repeat; |  | ||||||
|     width: 15px; |  | ||||||
|     height: 15px; |  | ||||||
|     border: 0px none; |  | ||||||
|     outline: 0; /* Remove dotted border around link */ |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| .inline-deletelink:hover { |  | ||||||
|     background-position: -15px 0; |  | ||||||
|     cursor: pointer; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| .editinline button.addlink { |  | ||||||
|     border: 0px none; |  | ||||||
|     color: #5b80b2; |  | ||||||
|     font-size: 100%; |  | ||||||
|     cursor: pointer; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| .editinline button.addlink:hover { |  | ||||||
|     color: #036; |  | ||||||
|     cursor: pointer; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| .editinline table .help { |  | ||||||
|     text-align: right; |  | ||||||
|     float: right; |  | ||||||
|     padding-left: 2em; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| .editinline tfoot .addlink { |  | ||||||
|     white-space: nowrap; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| .editinline table thead th:last-child { |  | ||||||
|     border-left: none; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| .editinline tr.deleted { |  | ||||||
|     background: #ddd url(../img/deleted-overlay.gif); |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| .editinline tr.deleted .inline-deletelink { |  | ||||||
|     background-image: url(../img/inline-restore.png); |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| .editinline tr.deleted td:hover { |  | ||||||
|     cursor: default; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| .editinline tr.deleted td:first-child { |  | ||||||
|     background-image: none !important; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| /* EDIT INLINE - STACKED */ |  | ||||||
| 
 |  | ||||||
| .editinline-stacked { |  | ||||||
|     min-width: 758px; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| .editinline-stacked .inline-object { |  | ||||||
|     margin-left: 210px; |  | ||||||
|     background: white; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| .editinline-stacked .inline-source { |  | ||||||
|     float: left; |  | ||||||
|     width: 200px; |  | ||||||
|     background: #f8f8f8; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| .editinline-stacked .inline-splitter { |  | ||||||
|     float: left; |  | ||||||
|     width: 9px; |  | ||||||
|     background: #f8f8f8 url(../img/inline-splitter-bg.gif) 50% 50% no-repeat; |  | ||||||
|     border-right: 1px solid #ccc; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| .editinline-stacked .controls { |  | ||||||
|     clear: both; |  | ||||||
|     background: #e1e1e1 url(../img/nav-bg.gif) top left repeat-x; |  | ||||||
|     padding: 3px 4px; |  | ||||||
|     font-size: 11px; |  | ||||||
|     border-top: 1px solid #ddd; |  | ||||||
| } |  | ||||||
| Before Width: | Height: | Size: 50 B | 
| Before Width: | Height: | Size: 75 B | 
| Before Width: | Height: | Size: 835 B | 
| Before Width: | Height: | Size: 836 B | 
| Before Width: | Height: | Size: 45 B | 
| Before Width: | Height: | Size: 711 B | 
| Before Width: | Height: | Size: 506 B | 
| Before Width: | Height: | Size: 176 B | 
| Before Width: | Height: | Size: 130 B | 
| Before Width: | Height: | Size: 1.3 KiB | 
| Before Width: | Height: | Size: 1.2 KiB | 
| Before Width: | Height: | Size: 145 B | 
| Before Width: | Height: | Size: 1.4 KiB | 
| Before Width: | Height: | Size: 1.2 KiB | 
| Before Width: | Height: | Size: 1.2 KiB | 
| Before Width: | Height: | Size: 1.2 KiB | 
| Before Width: | Height: | Size: 319 B | 
| Before Width: | Height: | Size: 1.1 KiB | 
| Before Width: | Height: | Size: 341 B | 
| Before Width: | Height: | Size: 395 B | 
| Before Width: | Height: | Size: 707 B | 
| Before Width: | Height: | Size: 363 B | 
| Before Width: | Height: | Size: 557 B | 
| Before Width: | Height: | Size: 94 B | 
| Before Width: | Height: | Size: 116 B | 
| Before Width: | Height: | Size: 178 B | 
| Before Width: | Height: | Size: 265 B | 
| Before Width: | Height: | Size: 265 B | 
| Before Width: | Height: | Size: 4.3 KiB | 
| Before Width: | Height: | Size: 1.2 KiB | 
| Before Width: | Height: | Size: 369 B | 
| Before Width: | Height: | Size: 119 B | 
| Before Width: | Height: | Size: 200 B | 
|  | @ -1,20 +0,0 @@ | ||||||
| Copyright (c) 2010 John Resig, http://jquery.com/ |  | ||||||
|   |  | ||||||
| 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. |  | ||||||
|  | @ -1,114 +0,0 @@ | ||||||
| var SelectBox = { |  | ||||||
|     cache: new Object(), |  | ||||||
|     init: function(id) { |  | ||||||
|         var box = document.getElementById(id); |  | ||||||
|         var node; |  | ||||||
|         SelectBox.cache[id] = new Array(); |  | ||||||
|         var cache = SelectBox.cache[id]; |  | ||||||
|         for (var i = 0; (node = box.options[i]); i++) { |  | ||||||
|             cache.push({value: node.value, text: node.text, displayed: 1}); |  | ||||||
|         } |  | ||||||
|     }, |  | ||||||
|     redisplay: function(id) { |  | ||||||
|         // Repopulate HTML select box from cache
 |  | ||||||
|         var box = document.getElementById(id); |  | ||||||
|         box.options.length = 0; // clear all options
 |  | ||||||
|         for (var i = 0, j = SelectBox.cache[id].length; i < j; i++) { |  | ||||||
|             var node = SelectBox.cache[id][i]; |  | ||||||
|             if (node.displayed) { |  | ||||||
|                 var new_option = new Option(node.text, node.value, false, false); |  | ||||||
|                 // Shows a tooltip when hovering over the option
 |  | ||||||
|                 new_option.setAttribute("title", node.text); |  | ||||||
|                 box.options[box.options.length] = new_option; |  | ||||||
|             } |  | ||||||
|         } |  | ||||||
|     }, |  | ||||||
|     filter: function(id, text) { |  | ||||||
|         // Redisplay the HTML select box, displaying only the choices containing ALL
 |  | ||||||
|         // the words in text. (It's an AND search.)
 |  | ||||||
|         var tokens = text.toLowerCase().split(/\s+/); |  | ||||||
|         var node, token; |  | ||||||
|         for (var i = 0; (node = SelectBox.cache[id][i]); i++) { |  | ||||||
|             node.displayed = 1; |  | ||||||
|             for (var j = 0; (token = tokens[j]); j++) { |  | ||||||
|                 if (node.text.toLowerCase().indexOf(token) == -1) { |  | ||||||
|                     node.displayed = 0; |  | ||||||
|                 } |  | ||||||
|             } |  | ||||||
|         } |  | ||||||
|         SelectBox.redisplay(id); |  | ||||||
|     }, |  | ||||||
|     delete_from_cache: function(id, value) { |  | ||||||
|         var node, delete_index = null; |  | ||||||
|         for (var i = 0; (node = SelectBox.cache[id][i]); i++) { |  | ||||||
|             if (node.value == value) { |  | ||||||
|                 delete_index = i; |  | ||||||
|                 break; |  | ||||||
|             } |  | ||||||
|         } |  | ||||||
|         var j = SelectBox.cache[id].length - 1; |  | ||||||
|         for (var i = delete_index; i < j; i++) { |  | ||||||
|             SelectBox.cache[id][i] = SelectBox.cache[id][i+1]; |  | ||||||
|         } |  | ||||||
|         SelectBox.cache[id].length--; |  | ||||||
|     }, |  | ||||||
|     add_to_cache: function(id, option) { |  | ||||||
|         SelectBox.cache[id].push({value: option.value, text: option.text, displayed: 1}); |  | ||||||
|     }, |  | ||||||
|     cache_contains: function(id, value) { |  | ||||||
|         // Check if an item is contained in the cache
 |  | ||||||
|         var node; |  | ||||||
|         for (var i = 0; (node = SelectBox.cache[id][i]); i++) { |  | ||||||
|             if (node.value == value) { |  | ||||||
|                 return true; |  | ||||||
|             } |  | ||||||
|         } |  | ||||||
|         return false; |  | ||||||
|     }, |  | ||||||
|     move: function(from, to) { |  | ||||||
|         var from_box = document.getElementById(from); |  | ||||||
|         var to_box = document.getElementById(to); |  | ||||||
|         var option; |  | ||||||
|         for (var i = 0; (option = from_box.options[i]); i++) { |  | ||||||
|             if (option.selected && SelectBox.cache_contains(from, option.value)) { |  | ||||||
|                 SelectBox.add_to_cache(to, {value: option.value, text: option.text, displayed: 1}); |  | ||||||
|                 SelectBox.delete_from_cache(from, option.value); |  | ||||||
|             } |  | ||||||
|         } |  | ||||||
|         SelectBox.redisplay(from); |  | ||||||
|         SelectBox.redisplay(to); |  | ||||||
|     }, |  | ||||||
|     move_all: function(from, to) { |  | ||||||
|         var from_box = document.getElementById(from); |  | ||||||
|         var to_box = document.getElementById(to); |  | ||||||
|         var option; |  | ||||||
|         for (var i = 0; (option = from_box.options[i]); i++) { |  | ||||||
|             if (SelectBox.cache_contains(from, option.value)) { |  | ||||||
|                 SelectBox.add_to_cache(to, {value: option.value, text: option.text, displayed: 1}); |  | ||||||
|                 SelectBox.delete_from_cache(from, option.value); |  | ||||||
|             } |  | ||||||
|         } |  | ||||||
|         SelectBox.redisplay(from); |  | ||||||
|         SelectBox.redisplay(to); |  | ||||||
|     }, |  | ||||||
|     sort: function(id) { |  | ||||||
|         SelectBox.cache[id].sort( function(a, b) { |  | ||||||
|             a = a.text.toLowerCase(); |  | ||||||
|             b = b.text.toLowerCase(); |  | ||||||
|             try { |  | ||||||
|                 if (a > b) return 1; |  | ||||||
|                 if (a < b) return -1; |  | ||||||
|             } |  | ||||||
|             catch (e) { |  | ||||||
|                 // silently fail on IE 'unknown' exception
 |  | ||||||
|             } |  | ||||||
|             return 0; |  | ||||||
|         } ); |  | ||||||
|     }, |  | ||||||
|     select_all: function(id) { |  | ||||||
|         var box = document.getElementById(id); |  | ||||||
|         for (var i = 0; i < box.options.length; i++) { |  | ||||||
|             box.options[i].selected = 'selected'; |  | ||||||
|         } |  | ||||||
|     } |  | ||||||
| } |  | ||||||
|  | @ -1,161 +0,0 @@ | ||||||
| /* |  | ||||||
| SelectFilter2 - Turns a multiple-select box into a filter interface. |  | ||||||
| 
 |  | ||||||
| Requires core.js, SelectBox.js and addevent.js. |  | ||||||
| */ |  | ||||||
| (function($) { |  | ||||||
| function findForm(node) { |  | ||||||
|     // returns the node of the form containing the given node
 |  | ||||||
|     if (node.tagName.toLowerCase() != 'form') { |  | ||||||
|         return findForm(node.parentNode); |  | ||||||
|     } |  | ||||||
|     return node; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| window.SelectFilter = { |  | ||||||
|     init: function(field_id, field_name, is_stacked, admin_static_prefix) { |  | ||||||
|         if (field_id.match(/__prefix__/)){ |  | ||||||
|             // Don't initialize on empty forms.
 |  | ||||||
|             return; |  | ||||||
|         } |  | ||||||
|         var from_box = document.getElementById(field_id); |  | ||||||
|         from_box.id += '_from'; // change its ID
 |  | ||||||
|         from_box.className = 'filtered'; |  | ||||||
| 
 |  | ||||||
|         var ps = from_box.parentNode.getElementsByTagName('p'); |  | ||||||
|         for (var i=0; i<ps.length; i++) { |  | ||||||
|             if (ps[i].className.indexOf("info") != -1) { |  | ||||||
|                 // Remove <p class="info">, because it just gets in the way.
 |  | ||||||
|                 from_box.parentNode.removeChild(ps[i]); |  | ||||||
|             } else if (ps[i].className.indexOf("help") != -1) { |  | ||||||
|                 // Move help text up to the top so it isn't below the select
 |  | ||||||
|                 // boxes or wrapped off on the side to the right of the add
 |  | ||||||
|                 // button:
 |  | ||||||
|                 from_box.parentNode.insertBefore(ps[i], from_box.parentNode.firstChild); |  | ||||||
|             } |  | ||||||
|         } |  | ||||||
| 
 |  | ||||||
|         // <div class="selector"> or <div class="selector stacked">
 |  | ||||||
|         var selector_div = quickElement('div', from_box.parentNode); |  | ||||||
|         selector_div.className = is_stacked ? 'selector stacked' : 'selector'; |  | ||||||
| 
 |  | ||||||
|         // <div class="selector-available">
 |  | ||||||
|         var selector_available = quickElement('div', selector_div); |  | ||||||
|         selector_available.className = 'selector-available'; |  | ||||||
|         var title_available = quickElement('h2', selector_available, interpolate(gettext('Available %s') + ' ', [field_name])); |  | ||||||
|         quickElement('img', title_available, '', 'src', admin_static_prefix + 'img/icon-unknown.gif', 'width', '10', 'height', '10', 'class', 'help help-tooltip', 'title', interpolate(gettext('This is the list of available %s. You may choose some by selecting them in the box below and then clicking the "Choose" arrow between the two boxes.'), [field_name])); |  | ||||||
| 
 |  | ||||||
|         var filter_p = quickElement('p', selector_available, '', 'id', field_id + '_filter'); |  | ||||||
|         filter_p.className = 'selector-filter'; |  | ||||||
| 
 |  | ||||||
|         var search_filter_label = quickElement('label', filter_p, '', 'for', field_id + "_input"); |  | ||||||
| 
 |  | ||||||
|         var search_selector_img = quickElement('img', search_filter_label, '', 'src', admin_static_prefix + 'img/selector-search.gif', 'class', 'help-tooltip', 'alt', '', 'title', interpolate(gettext("Type into this box to filter down the list of available %s."), [field_name])); |  | ||||||
| 
 |  | ||||||
|         filter_p.appendChild(document.createTextNode(' ')); |  | ||||||
| 
 |  | ||||||
|         var filter_input = quickElement('input', filter_p, '', 'type', 'text', 'placeholder', gettext("Filter")); |  | ||||||
|         filter_input.id = field_id + '_input'; |  | ||||||
| 
 |  | ||||||
|         selector_available.appendChild(from_box); |  | ||||||
|         var choose_all = quickElement('a', selector_available, gettext('Choose all'), 'title', interpolate(gettext('Click to choose all %s at once.'), [field_name]), 'href', 'javascript: (function(){ SelectBox.move_all("' + field_id + '_from", "' + field_id + '_to"); SelectFilter.refresh_icons("' + field_id + '");})()', 'id', field_id + '_add_all_link'); |  | ||||||
|         choose_all.className = 'selector-chooseall'; |  | ||||||
| 
 |  | ||||||
|         // <ul class="selector-chooser">
 |  | ||||||
|         var selector_chooser = quickElement('ul', selector_div); |  | ||||||
|         selector_chooser.className = 'selector-chooser'; |  | ||||||
|         var add_link = quickElement('a', quickElement('li', selector_chooser), gettext('Choose'), 'title', gettext('Choose'), 'href', 'javascript: (function(){ SelectBox.move("' + field_id + '_from","' + field_id + '_to"); SelectFilter.refresh_icons("' + field_id + '");})()', 'id', field_id + '_add_link'); |  | ||||||
|         add_link.className = 'selector-add'; |  | ||||||
|         var remove_link = quickElement('a', quickElement('li', selector_chooser), gettext('Remove'), 'title', gettext('Remove'), 'href', 'javascript: (function(){ SelectBox.move("' + field_id + '_to","' + field_id + '_from"); SelectFilter.refresh_icons("' + field_id + '");})()', 'id', field_id + '_remove_link'); |  | ||||||
|         remove_link.className = 'selector-remove'; |  | ||||||
| 
 |  | ||||||
|         // <div class="selector-chosen">
 |  | ||||||
|         var selector_chosen = quickElement('div', selector_div); |  | ||||||
|         selector_chosen.className = 'selector-chosen'; |  | ||||||
|         var title_chosen = quickElement('h2', selector_chosen, interpolate(gettext('Chosen %s') + ' ', [field_name])); |  | ||||||
|         quickElement('img', title_chosen, '', 'src', admin_static_prefix + 'img/icon-unknown.gif', 'width', '10', 'height', '10', 'class', 'help help-tooltip', 'title', interpolate(gettext('This is the list of chosen %s. You may remove some by selecting them in the box below and then clicking the "Remove" arrow between the two boxes.'), [field_name])); |  | ||||||
| 
 |  | ||||||
|         var to_box = quickElement('select', selector_chosen, '', 'id', field_id + '_to', 'multiple', 'multiple', 'size', from_box.size, 'name', from_box.getAttribute('name')); |  | ||||||
|         to_box.className = 'filtered'; |  | ||||||
|         var clear_all = quickElement('a', selector_chosen, gettext('Remove all'), 'title', interpolate(gettext('Click to remove all chosen %s at once.'), [field_name]), 'href', 'javascript: (function() { SelectBox.move_all("' + field_id + '_to", "' + field_id + '_from"); SelectFilter.refresh_icons("' + field_id + '");})()', 'id', field_id + '_remove_all_link'); |  | ||||||
|         clear_all.className = 'selector-clearall'; |  | ||||||
| 
 |  | ||||||
|         from_box.setAttribute('name', from_box.getAttribute('name') + '_old'); |  | ||||||
| 
 |  | ||||||
|         // Set up the JavaScript event handlers for the select box filter interface
 |  | ||||||
|         addEvent(filter_input, 'keyup', function(e) { SelectFilter.filter_key_up(e, field_id); }); |  | ||||||
|         addEvent(filter_input, 'keydown', function(e) { SelectFilter.filter_key_down(e, field_id); }); |  | ||||||
|         addEvent(from_box, 'change', function(e) { SelectFilter.refresh_icons(field_id) }); |  | ||||||
|         addEvent(to_box, 'change', function(e) { SelectFilter.refresh_icons(field_id) }); |  | ||||||
|         addEvent(from_box, 'dblclick', function() { SelectBox.move(field_id + '_from', field_id + '_to'); SelectFilter.refresh_icons(field_id); }); |  | ||||||
|         addEvent(to_box, 'dblclick', function() { SelectBox.move(field_id + '_to', field_id + '_from'); SelectFilter.refresh_icons(field_id); }); |  | ||||||
|         addEvent(findForm(from_box), 'submit', function() { SelectBox.select_all(field_id + '_to'); }); |  | ||||||
|         SelectBox.init(field_id + '_from'); |  | ||||||
|         SelectBox.init(field_id + '_to'); |  | ||||||
|         // Move selected from_box options to to_box
 |  | ||||||
|         SelectBox.move(field_id + '_from', field_id + '_to'); |  | ||||||
| 
 |  | ||||||
|         if (!is_stacked) { |  | ||||||
|             // In horizontal mode, give the same height to the two boxes.
 |  | ||||||
|             var j_from_box = $(from_box); |  | ||||||
|             var j_to_box = $(to_box); |  | ||||||
|             var resize_filters = function() { j_to_box.height($(filter_p).outerHeight() + j_from_box.outerHeight()); } |  | ||||||
|             if (j_from_box.outerHeight() > 0) { |  | ||||||
|                 resize_filters(); // This fieldset is already open. Resize now.
 |  | ||||||
|             } else { |  | ||||||
|                 // This fieldset is probably collapsed. Wait for its 'show' event.
 |  | ||||||
|                 j_to_box.closest('fieldset').one('show.fieldset', resize_filters); |  | ||||||
|             } |  | ||||||
|         } |  | ||||||
| 
 |  | ||||||
|         // Initial icon refresh
 |  | ||||||
|         SelectFilter.refresh_icons(field_id); |  | ||||||
|     }, |  | ||||||
|     refresh_icons: function(field_id) { |  | ||||||
|         var from = $('#' + field_id + '_from'); |  | ||||||
|         var to = $('#' + field_id + '_to'); |  | ||||||
|         var is_from_selected = from.find('option:selected').length > 0; |  | ||||||
|         var is_to_selected = to.find('option:selected').length > 0; |  | ||||||
|         // Active if at least one item is selected
 |  | ||||||
|         $('#' + field_id + '_add_link').toggleClass('active', is_from_selected); |  | ||||||
|         $('#' + field_id + '_remove_link').toggleClass('active', is_to_selected); |  | ||||||
|         // Active if the corresponding box isn't empty
 |  | ||||||
|         $('#' + field_id + '_add_all_link').toggleClass('active', from.find('option').length > 0); |  | ||||||
|         $('#' + field_id + '_remove_all_link').toggleClass('active', to.find('option').length > 0); |  | ||||||
|     }, |  | ||||||
|     filter_key_up: function(event, field_id) { |  | ||||||
|         var from = document.getElementById(field_id + '_from'); |  | ||||||
|         // don't submit form if user pressed Enter
 |  | ||||||
|         if ((event.which && event.which == 13) || (event.keyCode && event.keyCode == 13)) { |  | ||||||
|             from.selectedIndex = 0; |  | ||||||
|             SelectBox.move(field_id + '_from', field_id + '_to'); |  | ||||||
|             from.selectedIndex = 0; |  | ||||||
|             return false; |  | ||||||
|         } |  | ||||||
|         var temp = from.selectedIndex; |  | ||||||
|         SelectBox.filter(field_id + '_from', document.getElementById(field_id + '_input').value); |  | ||||||
|         from.selectedIndex = temp; |  | ||||||
|         return true; |  | ||||||
|     }, |  | ||||||
|     filter_key_down: function(event, field_id) { |  | ||||||
|         var from = document.getElementById(field_id + '_from'); |  | ||||||
|         // right arrow -- move across
 |  | ||||||
|         if ((event.which && event.which == 39) || (event.keyCode && event.keyCode == 39)) { |  | ||||||
|             var old_index = from.selectedIndex; |  | ||||||
|             SelectBox.move(field_id + '_from', field_id + '_to'); |  | ||||||
|             from.selectedIndex = (old_index == from.length) ? from.length - 1 : old_index; |  | ||||||
|             return false; |  | ||||||
|         } |  | ||||||
|         // down arrow -- wrap around
 |  | ||||||
|         if ((event.which && event.which == 40) || (event.keyCode && event.keyCode == 40)) { |  | ||||||
|             from.selectedIndex = (from.length == from.selectedIndex + 1) ? 0 : from.selectedIndex + 1; |  | ||||||
|         } |  | ||||||
|         // up arrow -- wrap around
 |  | ||||||
|         if ((event.which && event.which == 38) || (event.keyCode && event.keyCode == 38)) { |  | ||||||
|             from.selectedIndex = (from.selectedIndex == 0) ? from.length - 1 : from.selectedIndex - 1; |  | ||||||
|         } |  | ||||||
|         return true; |  | ||||||
|     } |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| })(django.jQuery); |  | ||||||
|  | @ -1,144 +0,0 @@ | ||||||
| (function($) { |  | ||||||
| 	var lastChecked; |  | ||||||
| 
 |  | ||||||
| 	$.fn.actions = function(opts) { |  | ||||||
| 		var options = $.extend({}, $.fn.actions.defaults, opts); |  | ||||||
| 		var actionCheckboxes = $(this); |  | ||||||
| 		var list_editable_changed = false; |  | ||||||
| 		var checker = function(checked) { |  | ||||||
| 			if (checked) { |  | ||||||
| 				showQuestion(); |  | ||||||
| 			} else { |  | ||||||
| 				reset(); |  | ||||||
| 			} |  | ||||||
| 			$(actionCheckboxes).prop("checked", checked) |  | ||||||
| 				.parent().parent().toggleClass(options.selectedClass, checked); |  | ||||||
| 		}, |  | ||||||
| 		updateCounter = function() { |  | ||||||
| 			var sel = $(actionCheckboxes).filter(":checked").length; |  | ||||||
| 			// _actions_icnt is defined in the generated HTML
 |  | ||||||
| 			// and contains the total amount of objects in the queryset
 |  | ||||||
| 			$(options.counterContainer).html(interpolate( |  | ||||||
| 			ngettext('%(sel)s of %(cnt)s selected', '%(sel)s of %(cnt)s selected', sel), { |  | ||||||
| 				sel: sel, |  | ||||||
| 				cnt: _actions_icnt |  | ||||||
| 			}, true)); |  | ||||||
| 			$(options.allToggle).prop("checked", function() { |  | ||||||
| 				var value; |  | ||||||
| 				if (sel == actionCheckboxes.length) { |  | ||||||
| 					value = true; |  | ||||||
| 					showQuestion(); |  | ||||||
| 				} else { |  | ||||||
| 					value = false; |  | ||||||
| 					clearAcross(); |  | ||||||
| 				} |  | ||||||
| 				return value; |  | ||||||
| 			}); |  | ||||||
| 		}, |  | ||||||
| 		showQuestion = function() { |  | ||||||
| 			$(options.acrossClears).hide(); |  | ||||||
| 			$(options.acrossQuestions).show(); |  | ||||||
| 			$(options.allContainer).hide(); |  | ||||||
| 		}, |  | ||||||
| 		showClear = function() { |  | ||||||
| 			$(options.acrossClears).show(); |  | ||||||
| 			$(options.acrossQuestions).hide(); |  | ||||||
| 			$(options.actionContainer).toggleClass(options.selectedClass); |  | ||||||
| 			$(options.allContainer).show(); |  | ||||||
| 			$(options.counterContainer).hide(); |  | ||||||
| 		}, |  | ||||||
| 		reset = function() { |  | ||||||
| 			$(options.acrossClears).hide(); |  | ||||||
| 			$(options.acrossQuestions).hide(); |  | ||||||
| 			$(options.allContainer).hide(); |  | ||||||
| 			$(options.counterContainer).show(); |  | ||||||
| 		}, |  | ||||||
| 		clearAcross = function() { |  | ||||||
| 			reset(); |  | ||||||
| 			$(options.acrossInput).val(0); |  | ||||||
| 			$(options.actionContainer).removeClass(options.selectedClass); |  | ||||||
| 		}; |  | ||||||
| 		// Show counter by default
 |  | ||||||
| 		$(options.counterContainer).show(); |  | ||||||
| 		// Check state of checkboxes and reinit state if needed
 |  | ||||||
| 		$(this).filter(":checked").each(function(i) { |  | ||||||
| 			$(this).parent().parent().toggleClass(options.selectedClass); |  | ||||||
| 			updateCounter(); |  | ||||||
| 			if ($(options.acrossInput).val() == 1) { |  | ||||||
| 				showClear(); |  | ||||||
| 			} |  | ||||||
| 		}); |  | ||||||
| 		$(options.allToggle).show().click(function() { |  | ||||||
| 			checker($(this).prop("checked")); |  | ||||||
| 			updateCounter(); |  | ||||||
| 		}); |  | ||||||
| 		$("a", options.acrossQuestions).click(function(event) { |  | ||||||
| 			event.preventDefault(); |  | ||||||
| 			$(options.acrossInput).val(1); |  | ||||||
| 			showClear(); |  | ||||||
| 		}); |  | ||||||
| 		$("a", options.acrossClears).click(function(event) { |  | ||||||
| 			event.preventDefault(); |  | ||||||
| 			$(options.allToggle).prop("checked", false); |  | ||||||
| 			clearAcross(); |  | ||||||
| 			checker(0); |  | ||||||
| 			updateCounter(); |  | ||||||
| 		}); |  | ||||||
| 		lastChecked = null; |  | ||||||
| 		$(actionCheckboxes).click(function(event) { |  | ||||||
| 			if (!event) { event = window.event; } |  | ||||||
| 			var target = event.target ? event.target : event.srcElement; |  | ||||||
| 			if (lastChecked && $.data(lastChecked) != $.data(target) && event.shiftKey === true) { |  | ||||||
| 				var inrange = false; |  | ||||||
| 				$(lastChecked).prop("checked", target.checked) |  | ||||||
| 					.parent().parent().toggleClass(options.selectedClass, target.checked); |  | ||||||
| 				$(actionCheckboxes).each(function() { |  | ||||||
| 					if ($.data(this) == $.data(lastChecked) || $.data(this) == $.data(target)) { |  | ||||||
| 						inrange = (inrange) ? false : true; |  | ||||||
| 					} |  | ||||||
| 					if (inrange) { |  | ||||||
| 						$(this).prop("checked", target.checked) |  | ||||||
| 							.parent().parent().toggleClass(options.selectedClass, target.checked); |  | ||||||
| 					} |  | ||||||
| 				}); |  | ||||||
| 			} |  | ||||||
| 			$(target).parent().parent().toggleClass(options.selectedClass, target.checked); |  | ||||||
| 			lastChecked = target; |  | ||||||
| 			updateCounter(); |  | ||||||
| 		}); |  | ||||||
| 		$('form#changelist-form table#result_list tr').find('td:gt(0) :input').change(function() { |  | ||||||
| 			list_editable_changed = true; |  | ||||||
| 		}); |  | ||||||
| 		$('form#changelist-form button[name="index"]').click(function(event) { |  | ||||||
| 			if (list_editable_changed) { |  | ||||||
| 				return confirm(gettext("You have unsaved changes on individual editable fields. If you run an action, your unsaved changes will be lost.")); |  | ||||||
| 			} |  | ||||||
| 		}); |  | ||||||
| 		$('form#changelist-form input[name="_save"]').click(function(event) { |  | ||||||
| 			var action_changed = false; |  | ||||||
| 			$('select option:selected', options.actionContainer).each(function() { |  | ||||||
| 				if ($(this).val()) { |  | ||||||
| 					action_changed = true; |  | ||||||
| 				} |  | ||||||
| 			}); |  | ||||||
| 			if (action_changed) { |  | ||||||
| 				if (list_editable_changed) { |  | ||||||
| 					return confirm(gettext("You have selected an action, but you haven't saved your changes to individual fields yet. Please click OK to save. You'll need to re-run the action.")); |  | ||||||
| 				} else { |  | ||||||
| 					return confirm(gettext("You have selected an action, and you haven't made any changes on individual fields. You're probably looking for the Go button rather than the Save button.")); |  | ||||||
| 				} |  | ||||||
| 			} |  | ||||||
| 		}); |  | ||||||
| 	}; |  | ||||||
| 	/* Setup plugin defaults */ |  | ||||||
| 	$.fn.actions.defaults = { |  | ||||||
| 		actionContainer: "div.actions", |  | ||||||
| 		counterContainer: "span.action-counter", |  | ||||||
| 		allContainer: "div.actions span.all", |  | ||||||
| 		acrossInput: "div.actions input.select-across", |  | ||||||
| 		acrossQuestions: "div.actions span.question", |  | ||||||
| 		acrossClears: "div.actions span.clear", |  | ||||||
| 		allToggle: "#action-toggle", |  | ||||||
| 		selectedClass: "selected" |  | ||||||
| 	}; |  | ||||||
| })(django.jQuery); |  | ||||||
							
								
								
									
										6
									
								
								static/admin/js/actions.min.js
									
										
									
									
										vendored
									
									
								
							
							
						
						|  | @ -1,6 +0,0 @@ | ||||||
| (function(a){var f;a.fn.actions=function(q){var b=a.extend({},a.fn.actions.defaults,q),g=a(this),e=!1,m=function(c){c?k():l();a(g).prop("checked",c).parent().parent().toggleClass(b.selectedClass,c)},h=function(){var c=a(g).filter(":checked").length;a(b.counterContainer).html(interpolate(ngettext("%(sel)s of %(cnt)s selected","%(sel)s of %(cnt)s selected",c),{sel:c,cnt:_actions_icnt},!0));a(b.allToggle).prop("checked",function(){var a;c==g.length?(a=!0,k()):(a=!1,n());return a})},k=function(){a(b.acrossClears).hide(); |  | ||||||
| a(b.acrossQuestions).show();a(b.allContainer).hide()},p=function(){a(b.acrossClears).show();a(b.acrossQuestions).hide();a(b.actionContainer).toggleClass(b.selectedClass);a(b.allContainer).show();a(b.counterContainer).hide()},l=function(){a(b.acrossClears).hide();a(b.acrossQuestions).hide();a(b.allContainer).hide();a(b.counterContainer).show()},n=function(){l();a(b.acrossInput).val(0);a(b.actionContainer).removeClass(b.selectedClass)};a(b.counterContainer).show();a(this).filter(":checked").each(function(c){a(this).parent().parent().toggleClass(b.selectedClass); |  | ||||||
| h();1==a(b.acrossInput).val()&&p()});a(b.allToggle).show().click(function(){m(a(this).prop("checked"));h()});a("a",b.acrossQuestions).click(function(c){c.preventDefault();a(b.acrossInput).val(1);p()});a("a",b.acrossClears).click(function(c){c.preventDefault();a(b.allToggle).prop("checked",!1);n();m(0);h()});f=null;a(g).click(function(c){c||(c=window.event);var d=c.target?c.target:c.srcElement;if(f&&a.data(f)!=a.data(d)&&!0===c.shiftKey){var e=!1;a(f).prop("checked",d.checked).parent().parent().toggleClass(b.selectedClass, |  | ||||||
| d.checked);a(g).each(function(){if(a.data(this)==a.data(f)||a.data(this)==a.data(d))e=e?!1:!0;e&&a(this).prop("checked",d.checked).parent().parent().toggleClass(b.selectedClass,d.checked)})}a(d).parent().parent().toggleClass(b.selectedClass,d.checked);f=d;h()});a("form#changelist-form table#result_list tr").find("td:gt(0) :input").change(function(){e=!0});a('form#changelist-form button[name="index"]').click(function(a){if(e)return confirm(gettext("You have unsaved changes on individual editable fields. If you run an action, your unsaved changes will be lost."))}); |  | ||||||
| a('form#changelist-form input[name="_save"]').click(function(c){var d=!1;a("select option:selected",b.actionContainer).each(function(){a(this).val()&&(d=!0)});if(d)return e?confirm(gettext("You have selected an action, but you haven't saved your changes to individual fields yet. Please click OK to save. You'll need to re-run the action.")):confirm(gettext("You have selected an action, and you haven't made any changes on individual fields. You're probably looking for the Go button rather than the Save button."))})}; |  | ||||||
| a.fn.actions.defaults={actionContainer:"div.actions",counterContainer:"span.action-counter",allContainer:"div.actions span.all",acrossInput:"div.actions input.select-across",acrossQuestions:"div.actions span.question",acrossClears:"div.actions span.clear",allToggle:"#action-toggle",selectedClass:"selected"}})(django.jQuery); |  | ||||||
|  | @ -1,356 +0,0 @@ | ||||||
| // Inserts shortcut buttons after all of the following:
 |  | ||||||
| //     <input type="text" class="vDateField">
 |  | ||||||
| //     <input type="text" class="vTimeField">
 |  | ||||||
| 
 |  | ||||||
| var DateTimeShortcuts = { |  | ||||||
|     calendars: [], |  | ||||||
|     calendarInputs: [], |  | ||||||
|     clockInputs: [], |  | ||||||
|     dismissClockFunc: [], |  | ||||||
|     dismissCalendarFunc: [], |  | ||||||
|     calendarDivName1: 'calendarbox', // name of calendar <div> that gets toggled
 |  | ||||||
|     calendarDivName2: 'calendarin',  // name of <div> that contains calendar
 |  | ||||||
|     calendarLinkName: 'calendarlink',// name of the link that is used to toggle
 |  | ||||||
|     clockDivName: 'clockbox',        // name of clock <div> that gets toggled
 |  | ||||||
|     clockLinkName: 'clocklink',      // name of the link that is used to toggle
 |  | ||||||
|     shortCutsClass: 'datetimeshortcuts', // class of the clock and cal shortcuts
 |  | ||||||
|     timezoneWarningClass: 'timezonewarning', // class of the warning for timezone mismatch
 |  | ||||||
|     timezoneOffset: 0, |  | ||||||
|     admin_media_prefix: '', |  | ||||||
|     init: function() { |  | ||||||
|         // Get admin_media_prefix by grabbing it off the window object. It's
 |  | ||||||
|         // set in the admin/base.html template, so if it's not there, someone's
 |  | ||||||
|         // overridden the template. In that case, we'll set a clearly-invalid
 |  | ||||||
|         // value in the hopes that someone will examine HTTP requests and see it.
 |  | ||||||
|         if (window.__admin_media_prefix__ != undefined) { |  | ||||||
|             DateTimeShortcuts.admin_media_prefix = window.__admin_media_prefix__; |  | ||||||
|         } else { |  | ||||||
|             DateTimeShortcuts.admin_media_prefix = '/missing-admin-media-prefix/'; |  | ||||||
|         } |  | ||||||
| 
 |  | ||||||
|         if (window.__admin_utc_offset__ != undefined) { |  | ||||||
|             var serverOffset = window.__admin_utc_offset__; |  | ||||||
|             var localOffset = new Date().getTimezoneOffset() * -60; |  | ||||||
|             DateTimeShortcuts.timezoneOffset = localOffset - serverOffset; |  | ||||||
|         } |  | ||||||
| 
 |  | ||||||
|         var inputs = document.getElementsByTagName('input'); |  | ||||||
|         for (i=0; i<inputs.length; i++) { |  | ||||||
|             var inp = inputs[i]; |  | ||||||
|             if (inp.getAttribute('type') == 'text' && inp.className.match(/vTimeField/)) { |  | ||||||
|                 DateTimeShortcuts.addClock(inp); |  | ||||||
|                 DateTimeShortcuts.addTimezoneWarning(inp); |  | ||||||
|             } |  | ||||||
|             else if (inp.getAttribute('type') == 'text' && inp.className.match(/vDateField/)) { |  | ||||||
|                 DateTimeShortcuts.addCalendar(inp); |  | ||||||
|                 DateTimeShortcuts.addTimezoneWarning(inp); |  | ||||||
|             } |  | ||||||
|         } |  | ||||||
|     }, |  | ||||||
|     // Return the current time while accounting for the server timezone.
 |  | ||||||
|     now: function() { |  | ||||||
|         if (window.__admin_utc_offset__ != undefined) { |  | ||||||
|             var serverOffset = window.__admin_utc_offset__; |  | ||||||
|             var localNow = new Date(); |  | ||||||
|             var localOffset = localNow.getTimezoneOffset() * -60; |  | ||||||
|             localNow.setTime(localNow.getTime() + 1000 * (serverOffset - localOffset)); |  | ||||||
|             return localNow; |  | ||||||
|         } else { |  | ||||||
|             return new Date(); |  | ||||||
|         } |  | ||||||
|     }, |  | ||||||
|     // Add a warning when the time zone in the browser and backend do not match.
 |  | ||||||
|     addTimezoneWarning: function(inp) { |  | ||||||
|         var $ = django.jQuery; |  | ||||||
|         var warningClass = DateTimeShortcuts.timezoneWarningClass; |  | ||||||
|         var timezoneOffset = DateTimeShortcuts.timezoneOffset / 3600; |  | ||||||
| 
 |  | ||||||
|         // Only warn if there is a time zone mismatch.
 |  | ||||||
|         if (!timezoneOffset) |  | ||||||
|             return; |  | ||||||
| 
 |  | ||||||
|         // Check if warning is already there.
 |  | ||||||
|         if ($(inp).siblings('.' + warningClass).length) |  | ||||||
|             return; |  | ||||||
| 
 |  | ||||||
|         var message; |  | ||||||
|         if (timezoneOffset > 0) { |  | ||||||
|             message = ngettext( |  | ||||||
|                 'Note: You are %s hour ahead of server time.', |  | ||||||
|                 'Note: You are %s hours ahead of server time.', |  | ||||||
|                 timezoneOffset |  | ||||||
|             ); |  | ||||||
|         } |  | ||||||
|         else { |  | ||||||
|             timezoneOffset *= -1 |  | ||||||
|             message = ngettext( |  | ||||||
|                 'Note: You are %s hour behind server time.', |  | ||||||
|                 'Note: You are %s hours behind server time.', |  | ||||||
|                 timezoneOffset |  | ||||||
|             ); |  | ||||||
|         } |  | ||||||
|         message = interpolate(message, [timezoneOffset]); |  | ||||||
| 
 |  | ||||||
|         var $warning = $('<span>'); |  | ||||||
|         $warning.attr('class', warningClass); |  | ||||||
|         $warning.text(message); |  | ||||||
| 
 |  | ||||||
|         $(inp).parent() |  | ||||||
|             .append($('<br>')) |  | ||||||
|             .append($warning) |  | ||||||
|     }, |  | ||||||
|     // Add clock widget to a given field
 |  | ||||||
|     addClock: function(inp) { |  | ||||||
|         var num = DateTimeShortcuts.clockInputs.length; |  | ||||||
|         DateTimeShortcuts.clockInputs[num] = inp; |  | ||||||
|         DateTimeShortcuts.dismissClockFunc[num] = function() { DateTimeShortcuts.dismissClock(num); return true; }; |  | ||||||
| 
 |  | ||||||
|         // Shortcut links (clock icon and "Now" link)
 |  | ||||||
|         var shortcuts_span = document.createElement('span'); |  | ||||||
|         shortcuts_span.className = DateTimeShortcuts.shortCutsClass; |  | ||||||
|         inp.parentNode.insertBefore(shortcuts_span, inp.nextSibling); |  | ||||||
|         var now_link = document.createElement('a'); |  | ||||||
|         now_link.setAttribute('href', "javascript:DateTimeShortcuts.handleClockQuicklink(" + num + ", -1);"); |  | ||||||
|         now_link.appendChild(document.createTextNode(gettext('Now'))); |  | ||||||
|         var clock_link = document.createElement('a'); |  | ||||||
|         clock_link.setAttribute('href', 'javascript:DateTimeShortcuts.openClock(' + num + ');'); |  | ||||||
|         clock_link.id = DateTimeShortcuts.clockLinkName + num; |  | ||||||
|         quickElement('img', clock_link, '', 'src', DateTimeShortcuts.admin_media_prefix + 'img/icon_clock.gif', 'alt', gettext('Clock')); |  | ||||||
|         shortcuts_span.appendChild(document.createTextNode('\240')); |  | ||||||
|         shortcuts_span.appendChild(now_link); |  | ||||||
|         shortcuts_span.appendChild(document.createTextNode('\240|\240')); |  | ||||||
|         shortcuts_span.appendChild(clock_link); |  | ||||||
| 
 |  | ||||||
|         // Create clock link div
 |  | ||||||
|         //
 |  | ||||||
|         // Markup looks like:
 |  | ||||||
|         // <div id="clockbox1" class="clockbox module">
 |  | ||||||
|         //     <h2>Choose a time</h2>
 |  | ||||||
|         //     <ul class="timelist">
 |  | ||||||
|         //         <li><a href="#">Now</a></li>
 |  | ||||||
|         //         <li><a href="#">Midnight</a></li>
 |  | ||||||
|         //         <li><a href="#">6 a.m.</a></li>
 |  | ||||||
|         //         <li><a href="#">Noon</a></li>
 |  | ||||||
|         //     </ul>
 |  | ||||||
|         //     <p class="calendar-cancel"><a href="#">Cancel</a></p>
 |  | ||||||
|         // </div>
 |  | ||||||
| 
 |  | ||||||
|         var clock_box = document.createElement('div'); |  | ||||||
|         clock_box.style.display = 'none'; |  | ||||||
|         clock_box.style.position = 'absolute'; |  | ||||||
|         clock_box.className = 'clockbox module'; |  | ||||||
|         clock_box.setAttribute('id', DateTimeShortcuts.clockDivName + num); |  | ||||||
|         document.body.appendChild(clock_box); |  | ||||||
|         addEvent(clock_box, 'click', cancelEventPropagation); |  | ||||||
| 
 |  | ||||||
|         quickElement('h2', clock_box, gettext('Choose a time')); |  | ||||||
|         var time_list = quickElement('ul', clock_box); |  | ||||||
|         time_list.className = 'timelist'; |  | ||||||
|         quickElement("a", quickElement("li", time_list), gettext("Now"), "href", "javascript:DateTimeShortcuts.handleClockQuicklink(" + num + ", -1);"); |  | ||||||
|         quickElement("a", quickElement("li", time_list), gettext("Midnight"), "href", "javascript:DateTimeShortcuts.handleClockQuicklink(" + num + ", 0);"); |  | ||||||
|         quickElement("a", quickElement("li", time_list), gettext("6 a.m."), "href", "javascript:DateTimeShortcuts.handleClockQuicklink(" + num + ", 6);"); |  | ||||||
|         quickElement("a", quickElement("li", time_list), gettext("Noon"), "href", "javascript:DateTimeShortcuts.handleClockQuicklink(" + num + ", 12);"); |  | ||||||
| 
 |  | ||||||
|         var cancel_p = quickElement('p', clock_box); |  | ||||||
|         cancel_p.className = 'calendar-cancel'; |  | ||||||
|         quickElement('a', cancel_p, gettext('Cancel'), 'href', 'javascript:DateTimeShortcuts.dismissClock(' + num + ');'); |  | ||||||
|         django.jQuery(document).bind('keyup', function(event) { |  | ||||||
|             if (event.which == 27) { |  | ||||||
|                 // ESC key closes popup
 |  | ||||||
|                 DateTimeShortcuts.dismissClock(num); |  | ||||||
|                 event.preventDefault(); |  | ||||||
|             } |  | ||||||
|         }); |  | ||||||
|     }, |  | ||||||
|     openClock: function(num) { |  | ||||||
|         var clock_box = document.getElementById(DateTimeShortcuts.clockDivName+num) |  | ||||||
|         var clock_link = document.getElementById(DateTimeShortcuts.clockLinkName+num) |  | ||||||
| 
 |  | ||||||
|         // Recalculate the clockbox position
 |  | ||||||
|         // is it left-to-right or right-to-left layout ?
 |  | ||||||
|         if (getStyle(document.body,'direction')!='rtl') { |  | ||||||
|             clock_box.style.left = findPosX(clock_link) + 17 + 'px'; |  | ||||||
|         } |  | ||||||
|         else { |  | ||||||
|             // since style's width is in em, it'd be tough to calculate
 |  | ||||||
|             // px value of it. let's use an estimated px for now
 |  | ||||||
|             // TODO: IE returns wrong value for findPosX when in rtl mode
 |  | ||||||
|             //       (it returns as it was left aligned), needs to be fixed.
 |  | ||||||
|             clock_box.style.left = findPosX(clock_link) - 110 + 'px'; |  | ||||||
|         } |  | ||||||
|         clock_box.style.top = Math.max(0, findPosY(clock_link) - 30) + 'px'; |  | ||||||
| 
 |  | ||||||
|         // Show the clock box
 |  | ||||||
|         clock_box.style.display = 'block'; |  | ||||||
|         addEvent(document, 'click', DateTimeShortcuts.dismissClockFunc[num]); |  | ||||||
|     }, |  | ||||||
|     dismissClock: function(num) { |  | ||||||
|        document.getElementById(DateTimeShortcuts.clockDivName + num).style.display = 'none'; |  | ||||||
|        removeEvent(document, 'click', DateTimeShortcuts.dismissClockFunc[num]); |  | ||||||
|     }, |  | ||||||
|     handleClockQuicklink: function(num, val) { |  | ||||||
|        var d; |  | ||||||
|        if (val == -1) { |  | ||||||
|            d = DateTimeShortcuts.now(); |  | ||||||
|        } |  | ||||||
|        else { |  | ||||||
|            d = new Date(1970, 1, 1, val, 0, 0, 0) |  | ||||||
|        } |  | ||||||
|        DateTimeShortcuts.clockInputs[num].value = d.strftime(get_format('TIME_INPUT_FORMATS')[0]); |  | ||||||
|        DateTimeShortcuts.clockInputs[num].focus(); |  | ||||||
|        DateTimeShortcuts.dismissClock(num); |  | ||||||
|     }, |  | ||||||
|     // Add calendar widget to a given field.
 |  | ||||||
|     addCalendar: function(inp) { |  | ||||||
|         var num = DateTimeShortcuts.calendars.length; |  | ||||||
| 
 |  | ||||||
|         DateTimeShortcuts.calendarInputs[num] = inp; |  | ||||||
|         DateTimeShortcuts.dismissCalendarFunc[num] = function() { DateTimeShortcuts.dismissCalendar(num); return true; }; |  | ||||||
| 
 |  | ||||||
|         // Shortcut links (calendar icon and "Today" link)
 |  | ||||||
|         var shortcuts_span = document.createElement('span'); |  | ||||||
|         shortcuts_span.className = DateTimeShortcuts.shortCutsClass; |  | ||||||
|         inp.parentNode.insertBefore(shortcuts_span, inp.nextSibling); |  | ||||||
|         var today_link = document.createElement('a'); |  | ||||||
|         today_link.setAttribute('href', 'javascript:DateTimeShortcuts.handleCalendarQuickLink(' + num + ', 0);'); |  | ||||||
|         today_link.appendChild(document.createTextNode(gettext('Today'))); |  | ||||||
|         var cal_link = document.createElement('a'); |  | ||||||
|         cal_link.setAttribute('href', 'javascript:DateTimeShortcuts.openCalendar(' + num + ');'); |  | ||||||
|         cal_link.id = DateTimeShortcuts.calendarLinkName + num; |  | ||||||
|         quickElement('img', cal_link, '', 'src', DateTimeShortcuts.admin_media_prefix + 'img/icon_calendar.gif', 'alt', gettext('Calendar')); |  | ||||||
|         shortcuts_span.appendChild(document.createTextNode('\240')); |  | ||||||
|         shortcuts_span.appendChild(today_link); |  | ||||||
|         shortcuts_span.appendChild(document.createTextNode('\240|\240')); |  | ||||||
|         shortcuts_span.appendChild(cal_link); |  | ||||||
| 
 |  | ||||||
|         // Create calendarbox div.
 |  | ||||||
|         //
 |  | ||||||
|         // Markup looks like:
 |  | ||||||
|         //
 |  | ||||||
|         // <div id="calendarbox3" class="calendarbox module">
 |  | ||||||
|         //     <h2>
 |  | ||||||
|         //           <a href="#" class="link-previous">‹</a>
 |  | ||||||
|         //           <a href="#" class="link-next">›</a> February 2003
 |  | ||||||
|         //     </h2>
 |  | ||||||
|         //     <div class="calendar" id="calendarin3">
 |  | ||||||
|         //         <!-- (cal) -->
 |  | ||||||
|         //     </div>
 |  | ||||||
|         //     <div class="calendar-shortcuts">
 |  | ||||||
|         //          <a href="#">Yesterday</a> | <a href="#">Today</a> | <a href="#">Tomorrow</a>
 |  | ||||||
|         //     </div>
 |  | ||||||
|         //     <p class="calendar-cancel"><a href="#">Cancel</a></p>
 |  | ||||||
|         // </div>
 |  | ||||||
|         var cal_box = document.createElement('div'); |  | ||||||
|         cal_box.style.display = 'none'; |  | ||||||
|         cal_box.style.position = 'absolute'; |  | ||||||
|         cal_box.className = 'calendarbox module'; |  | ||||||
|         cal_box.setAttribute('id', DateTimeShortcuts.calendarDivName1 + num); |  | ||||||
|         document.body.appendChild(cal_box); |  | ||||||
|         addEvent(cal_box, 'click', cancelEventPropagation); |  | ||||||
| 
 |  | ||||||
|         // next-prev links
 |  | ||||||
|         var cal_nav = quickElement('div', cal_box); |  | ||||||
|         var cal_nav_prev = quickElement('a', cal_nav, '<', 'href', 'javascript:DateTimeShortcuts.drawPrev('+num+');'); |  | ||||||
|         cal_nav_prev.className = 'calendarnav-previous'; |  | ||||||
|         var cal_nav_next = quickElement('a', cal_nav, '>', 'href', 'javascript:DateTimeShortcuts.drawNext('+num+');'); |  | ||||||
|         cal_nav_next.className = 'calendarnav-next'; |  | ||||||
| 
 |  | ||||||
|         // main box
 |  | ||||||
|         var cal_main = quickElement('div', cal_box, '', 'id', DateTimeShortcuts.calendarDivName2 + num); |  | ||||||
|         cal_main.className = 'calendar'; |  | ||||||
|         DateTimeShortcuts.calendars[num] = new Calendar(DateTimeShortcuts.calendarDivName2 + num, DateTimeShortcuts.handleCalendarCallback(num)); |  | ||||||
|         DateTimeShortcuts.calendars[num].drawCurrent(); |  | ||||||
| 
 |  | ||||||
|         // calendar shortcuts
 |  | ||||||
|         var shortcuts = quickElement('div', cal_box); |  | ||||||
|         shortcuts.className = 'calendar-shortcuts'; |  | ||||||
|         quickElement('a', shortcuts, gettext('Yesterday'), 'href', 'javascript:DateTimeShortcuts.handleCalendarQuickLink(' + num + ', -1);'); |  | ||||||
|         shortcuts.appendChild(document.createTextNode('\240|\240')); |  | ||||||
|         quickElement('a', shortcuts, gettext('Today'), 'href', 'javascript:DateTimeShortcuts.handleCalendarQuickLink(' + num + ', 0);'); |  | ||||||
|         shortcuts.appendChild(document.createTextNode('\240|\240')); |  | ||||||
|         quickElement('a', shortcuts, gettext('Tomorrow'), 'href', 'javascript:DateTimeShortcuts.handleCalendarQuickLink(' + num + ', +1);'); |  | ||||||
| 
 |  | ||||||
|         // cancel bar
 |  | ||||||
|         var cancel_p = quickElement('p', cal_box); |  | ||||||
|         cancel_p.className = 'calendar-cancel'; |  | ||||||
|         quickElement('a', cancel_p, gettext('Cancel'), 'href', 'javascript:DateTimeShortcuts.dismissCalendar(' + num + ');'); |  | ||||||
|         django.jQuery(document).bind('keyup', function(event) { |  | ||||||
|             if (event.which == 27) { |  | ||||||
|                 // ESC key closes popup
 |  | ||||||
|                 DateTimeShortcuts.dismissCalendar(num); |  | ||||||
|                 event.preventDefault(); |  | ||||||
|             } |  | ||||||
|         }); |  | ||||||
|     }, |  | ||||||
|     openCalendar: function(num) { |  | ||||||
|         var cal_box = document.getElementById(DateTimeShortcuts.calendarDivName1+num) |  | ||||||
|         var cal_link = document.getElementById(DateTimeShortcuts.calendarLinkName+num) |  | ||||||
|         var inp = DateTimeShortcuts.calendarInputs[num]; |  | ||||||
| 
 |  | ||||||
|         // Determine if the current value in the input has a valid date.
 |  | ||||||
|         // If so, draw the calendar with that date's year and month.
 |  | ||||||
|         if (inp.value) { |  | ||||||
|             var date_parts = inp.value.split('-'); |  | ||||||
|             var year = date_parts[0]; |  | ||||||
|             var month = parseFloat(date_parts[1]); |  | ||||||
|             var selected = new Date(inp.value); |  | ||||||
|             if (year.match(/\d\d\d\d/) && month >= 1 && month <= 12) { |  | ||||||
|                 DateTimeShortcuts.calendars[num].drawDate(month, year, selected); |  | ||||||
|             } |  | ||||||
|         } |  | ||||||
| 
 |  | ||||||
|         // Recalculate the clockbox position
 |  | ||||||
|         // is it left-to-right or right-to-left layout ?
 |  | ||||||
|         if (getStyle(document.body,'direction')!='rtl') { |  | ||||||
|             cal_box.style.left = findPosX(cal_link) + 17 + 'px'; |  | ||||||
|         } |  | ||||||
|         else { |  | ||||||
|             // since style's width is in em, it'd be tough to calculate
 |  | ||||||
|             // px value of it. let's use an estimated px for now
 |  | ||||||
|             // TODO: IE returns wrong value for findPosX when in rtl mode
 |  | ||||||
|             //       (it returns as it was left aligned), needs to be fixed.
 |  | ||||||
|             cal_box.style.left = findPosX(cal_link) - 180 + 'px'; |  | ||||||
|         } |  | ||||||
|         cal_box.style.top = Math.max(0, findPosY(cal_link) - 75) + 'px'; |  | ||||||
| 
 |  | ||||||
|         cal_box.style.display = 'block'; |  | ||||||
|         addEvent(document, 'click', DateTimeShortcuts.dismissCalendarFunc[num]); |  | ||||||
|     }, |  | ||||||
|     dismissCalendar: function(num) { |  | ||||||
|         document.getElementById(DateTimeShortcuts.calendarDivName1+num).style.display = 'none'; |  | ||||||
|         removeEvent(document, 'click', DateTimeShortcuts.dismissCalendarFunc[num]); |  | ||||||
|     }, |  | ||||||
|     drawPrev: function(num) { |  | ||||||
|         DateTimeShortcuts.calendars[num].drawPreviousMonth(); |  | ||||||
|     }, |  | ||||||
|     drawNext: function(num) { |  | ||||||
|         DateTimeShortcuts.calendars[num].drawNextMonth(); |  | ||||||
|     }, |  | ||||||
|     handleCalendarCallback: function(num) { |  | ||||||
|         var format = get_format('DATE_INPUT_FORMATS')[0]; |  | ||||||
|         // the format needs to be escaped a little
 |  | ||||||
|         format = format.replace('\\', '\\\\'); |  | ||||||
|         format = format.replace('\r', '\\r'); |  | ||||||
|         format = format.replace('\n', '\\n'); |  | ||||||
|         format = format.replace('\t', '\\t'); |  | ||||||
|         format = format.replace("'", "\\'"); |  | ||||||
|         return ["function(y, m, d) { DateTimeShortcuts.calendarInputs[", |  | ||||||
|                num, |  | ||||||
|                "].value = new Date(y, m-1, d).strftime('", |  | ||||||
|                format, |  | ||||||
|                "');DateTimeShortcuts.calendarInputs[", |  | ||||||
|                num, |  | ||||||
|                "].focus();document.getElementById(DateTimeShortcuts.calendarDivName1+", |  | ||||||
|                num, |  | ||||||
|                ").style.display='none';}"].join(''); |  | ||||||
|     }, |  | ||||||
|     handleCalendarQuickLink: function(num, offset) { |  | ||||||
|        var d = DateTimeShortcuts.now(); |  | ||||||
|        d.setDate(d.getDate() + offset) |  | ||||||
|        DateTimeShortcuts.calendarInputs[num].value = d.strftime(get_format('DATE_INPUT_FORMATS')[0]); |  | ||||||
|        DateTimeShortcuts.calendarInputs[num].focus(); |  | ||||||
|        DateTimeShortcuts.dismissCalendar(num); |  | ||||||
|     } |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| addEvent(window, 'load', DateTimeShortcuts.init); |  | ||||||
|  | @ -1,97 +0,0 @@ | ||||||
| // Handles related-objects functionality: lookup link for raw_id_fields
 |  | ||||||
| // and Add Another links.
 |  | ||||||
| 
 |  | ||||||
| function html_unescape(text) { |  | ||||||
|     // Unescape a string that was escaped using django.utils.html.escape.
 |  | ||||||
|     text = text.replace(/</g, '<'); |  | ||||||
|     text = text.replace(/>/g, '>'); |  | ||||||
|     text = text.replace(/"/g, '"'); |  | ||||||
|     text = text.replace(/'/g, "'"); |  | ||||||
|     text = text.replace(/&/g, '&'); |  | ||||||
|     return text; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| // IE doesn't accept periods or dashes in the window name, but the element IDs
 |  | ||||||
| // we use to generate popup window names may contain them, therefore we map them
 |  | ||||||
| // to allowed characters in a reversible way so that we can locate the correct
 |  | ||||||
| // element when the popup window is dismissed.
 |  | ||||||
| function id_to_windowname(text) { |  | ||||||
|     text = text.replace(/\./g, '__dot__'); |  | ||||||
|     text = text.replace(/\-/g, '__dash__'); |  | ||||||
|     return text; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| function windowname_to_id(text) { |  | ||||||
|     text = text.replace(/__dot__/g, '.'); |  | ||||||
|     text = text.replace(/__dash__/g, '-'); |  | ||||||
|     return text; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| function showRelatedObjectLookupPopup(triggeringLink) { |  | ||||||
|     var name = triggeringLink.id.replace(/^lookup_/, ''); |  | ||||||
|     name = id_to_windowname(name); |  | ||||||
|     var href; |  | ||||||
|     if (triggeringLink.href.search(/\?/) >= 0) { |  | ||||||
|         href = triggeringLink.href + '&_popup=1'; |  | ||||||
|     } else { |  | ||||||
|         href = triggeringLink.href + '?_popup=1'; |  | ||||||
|     } |  | ||||||
|     var win = window.open(href, name, 'height=500,width=800,resizable=yes,scrollbars=yes'); |  | ||||||
|     win.focus(); |  | ||||||
|     return false; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| function dismissRelatedLookupPopup(win, chosenId) { |  | ||||||
|     var name = windowname_to_id(win.name); |  | ||||||
|     var elem = document.getElementById(name); |  | ||||||
|     if (elem.className.indexOf('vManyToManyRawIdAdminField') != -1 && elem.value) { |  | ||||||
|         elem.value += ',' + chosenId; |  | ||||||
|     } else { |  | ||||||
|         document.getElementById(name).value = chosenId; |  | ||||||
|     } |  | ||||||
|     win.close(); |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| function showAddAnotherPopup(triggeringLink) { |  | ||||||
|     var name = triggeringLink.id.replace(/^add_/, ''); |  | ||||||
|     name = id_to_windowname(name); |  | ||||||
|     var href = triggeringLink.href; |  | ||||||
|     if (href.indexOf('?') == -1) { |  | ||||||
|         href += '?_popup=1'; |  | ||||||
|     } else { |  | ||||||
|         href  += '&_popup=1'; |  | ||||||
|     } |  | ||||||
|     var win = window.open(href, name, 'height=500,width=800,resizable=yes,scrollbars=yes'); |  | ||||||
|     win.focus(); |  | ||||||
|     return false; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| function dismissAddAnotherPopup(win, newId, newRepr) { |  | ||||||
|     // newId and newRepr are expected to have previously been escaped by
 |  | ||||||
|     // django.utils.html.escape.
 |  | ||||||
|     newId = html_unescape(newId); |  | ||||||
|     newRepr = html_unescape(newRepr); |  | ||||||
|     var name = windowname_to_id(win.name); |  | ||||||
|     var elem = document.getElementById(name); |  | ||||||
|     var o; |  | ||||||
|     if (elem) { |  | ||||||
|         var elemName = elem.nodeName.toUpperCase(); |  | ||||||
|         if (elemName == 'SELECT') { |  | ||||||
|             o = new Option(newRepr, newId); |  | ||||||
|             elem.options[elem.options.length] = o; |  | ||||||
|             o.selected = true; |  | ||||||
|         } else if (elemName == 'INPUT') { |  | ||||||
|             if (elem.className.indexOf('vManyToManyRawIdAdminField') != -1 && elem.value) { |  | ||||||
|                 elem.value += ',' + newId; |  | ||||||
|             } else { |  | ||||||
|                 elem.value = newId; |  | ||||||
|             } |  | ||||||
|         } |  | ||||||
|     } else { |  | ||||||
|         var toId = name + "_to"; |  | ||||||
|         o = new Option(newRepr, newId); |  | ||||||
|         SelectBox.add_to_cache(toId, o); |  | ||||||
|         SelectBox.redisplay(toId); |  | ||||||
|     } |  | ||||||
|     win.close(); |  | ||||||
| } |  | ||||||
|  | @ -1,169 +0,0 @@ | ||||||
| /* |  | ||||||
| calendar.js - Calendar functions by Adrian Holovaty |  | ||||||
| depends on core.js for utility functions like removeChildren or quickElement |  | ||||||
| */ |  | ||||||
| 
 |  | ||||||
| // CalendarNamespace -- Provides a collection of HTML calendar-related helper functions
 |  | ||||||
| var CalendarNamespace = { |  | ||||||
|     monthsOfYear: gettext('January February March April May June July August September October November December').split(' '), |  | ||||||
|     daysOfWeek: gettext('S M T W T F S').split(' '), |  | ||||||
|     firstDayOfWeek: parseInt(get_format('FIRST_DAY_OF_WEEK')), |  | ||||||
|     isLeapYear: function(year) { |  | ||||||
|         return (((year % 4)==0) && ((year % 100)!=0) || ((year % 400)==0)); |  | ||||||
|     }, |  | ||||||
|     getDaysInMonth: function(month,year) { |  | ||||||
|         var days; |  | ||||||
|         if (month==1 || month==3 || month==5 || month==7 || month==8 || month==10 || month==12) { |  | ||||||
|             days = 31; |  | ||||||
|         } |  | ||||||
|         else if (month==4 || month==6 || month==9 || month==11) { |  | ||||||
|             days = 30; |  | ||||||
|         } |  | ||||||
|         else if (month==2 && CalendarNamespace.isLeapYear(year)) { |  | ||||||
|             days = 29; |  | ||||||
|         } |  | ||||||
|         else { |  | ||||||
|             days = 28; |  | ||||||
|         } |  | ||||||
|         return days; |  | ||||||
|     }, |  | ||||||
|     draw: function(month, year, div_id, callback, selected) { // month = 1-12, year = 1-9999
 |  | ||||||
|         var today = new Date(); |  | ||||||
|         var todayDay = today.getDate(); |  | ||||||
|         var todayMonth = today.getMonth()+1; |  | ||||||
|         var todayYear = today.getFullYear(); |  | ||||||
|         var todayClass = ''; |  | ||||||
| 
 |  | ||||||
|         // Use UTC functions here because the date field does not contain time
 |  | ||||||
|         // and using the UTC function variants prevent the local time offset
 |  | ||||||
|         // from altering the date, specifically the day field.  For example:
 |  | ||||||
|         //
 |  | ||||||
|         // ```
 |  | ||||||
|         // var x = new Date('2013-10-02');
 |  | ||||||
|         // var day = x.getDate();
 |  | ||||||
|         // ```
 |  | ||||||
|         //
 |  | ||||||
|         // The day variable above will be 1 instead of 2 in, say, US Pacific time
 |  | ||||||
|         // zone.
 |  | ||||||
|         var isSelectedMonth = false; |  | ||||||
|         if (typeof selected != 'undefined') { |  | ||||||
|             isSelectedMonth = (selected.getUTCFullYear() == year && (selected.getUTCMonth()+1) == month); |  | ||||||
|         } |  | ||||||
| 
 |  | ||||||
|         month = parseInt(month); |  | ||||||
|         year = parseInt(year); |  | ||||||
|         var calDiv = document.getElementById(div_id); |  | ||||||
|         removeChildren(calDiv); |  | ||||||
|         var calTable = document.createElement('table'); |  | ||||||
|         quickElement('caption', calTable, CalendarNamespace.monthsOfYear[month-1] + ' ' + year); |  | ||||||
|         var tableBody = quickElement('tbody', calTable); |  | ||||||
| 
 |  | ||||||
|         // Draw days-of-week header
 |  | ||||||
|         var tableRow = quickElement('tr', tableBody); |  | ||||||
|         for (var i = 0; i < 7; i++) { |  | ||||||
|             quickElement('th', tableRow, CalendarNamespace.daysOfWeek[(i + CalendarNamespace.firstDayOfWeek) % 7]); |  | ||||||
|         } |  | ||||||
| 
 |  | ||||||
|         var startingPos = new Date(year, month-1, 1 - CalendarNamespace.firstDayOfWeek).getDay(); |  | ||||||
|         var days = CalendarNamespace.getDaysInMonth(month, year); |  | ||||||
| 
 |  | ||||||
|         // Draw blanks before first of month
 |  | ||||||
|         tableRow = quickElement('tr', tableBody); |  | ||||||
|         for (var i = 0; i < startingPos; i++) { |  | ||||||
|             var _cell = quickElement('td', tableRow, ' '); |  | ||||||
|             _cell.className = "nonday"; |  | ||||||
|         } |  | ||||||
| 
 |  | ||||||
|         // Draw days of month
 |  | ||||||
|         var currentDay = 1; |  | ||||||
|         for (var i = startingPos; currentDay <= days; i++) { |  | ||||||
|             if (i%7 == 0 && currentDay != 1) { |  | ||||||
|                 tableRow = quickElement('tr', tableBody); |  | ||||||
|             } |  | ||||||
|             if ((currentDay==todayDay) && (month==todayMonth) && (year==todayYear)) { |  | ||||||
|                 todayClass='today'; |  | ||||||
|             } else { |  | ||||||
|                 todayClass=''; |  | ||||||
|             } |  | ||||||
| 
 |  | ||||||
|             // use UTC function; see above for explanation.
 |  | ||||||
|             if (isSelectedMonth && currentDay == selected.getUTCDate()) { |  | ||||||
|                 if (todayClass != '') todayClass += " "; |  | ||||||
|                 todayClass += "selected"; |  | ||||||
|             } |  | ||||||
| 
 |  | ||||||
|             var cell = quickElement('td', tableRow, '', 'class', todayClass); |  | ||||||
| 
 |  | ||||||
|             quickElement('a', cell, currentDay, 'href', 'javascript:void(' + callback + '('+year+','+month+','+currentDay+'));'); |  | ||||||
|             currentDay++; |  | ||||||
|         } |  | ||||||
| 
 |  | ||||||
|         // Draw blanks after end of month (optional, but makes for valid code)
 |  | ||||||
|         while (tableRow.childNodes.length < 7) { |  | ||||||
|             var _cell = quickElement('td', tableRow, ' '); |  | ||||||
|             _cell.className = "nonday"; |  | ||||||
|         } |  | ||||||
| 
 |  | ||||||
|         calDiv.appendChild(calTable); |  | ||||||
|     } |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| // Calendar -- A calendar instance
 |  | ||||||
| function Calendar(div_id, callback, selected) { |  | ||||||
|     // div_id (string) is the ID of the element in which the calendar will
 |  | ||||||
|     //     be displayed
 |  | ||||||
|     // callback (string) is the name of a JavaScript function that will be
 |  | ||||||
|     //     called with the parameters (year, month, day) when a day in the
 |  | ||||||
|     //     calendar is clicked
 |  | ||||||
|     this.div_id = div_id; |  | ||||||
|     this.callback = callback; |  | ||||||
|     this.today = new Date(); |  | ||||||
|     this.currentMonth = this.today.getMonth() + 1; |  | ||||||
|     this.currentYear = this.today.getFullYear(); |  | ||||||
|     if (typeof selected != 'undefined') { |  | ||||||
|         this.selected = selected; |  | ||||||
|     } |  | ||||||
| } |  | ||||||
| Calendar.prototype = { |  | ||||||
|     drawCurrent: function() { |  | ||||||
|         CalendarNamespace.draw(this.currentMonth, this.currentYear, this.div_id, this.callback, this.selected); |  | ||||||
|     }, |  | ||||||
|     drawDate: function(month, year, selected) { |  | ||||||
|         this.currentMonth = month; |  | ||||||
|         this.currentYear = year; |  | ||||||
| 
 |  | ||||||
|         if(selected) { |  | ||||||
|             this.selected = selected; |  | ||||||
|         } |  | ||||||
| 
 |  | ||||||
|         this.drawCurrent(); |  | ||||||
|     }, |  | ||||||
|     drawPreviousMonth: function() { |  | ||||||
|         if (this.currentMonth == 1) { |  | ||||||
|             this.currentMonth = 12; |  | ||||||
|             this.currentYear--; |  | ||||||
|         } |  | ||||||
|         else { |  | ||||||
|             this.currentMonth--; |  | ||||||
|         } |  | ||||||
|         this.drawCurrent(); |  | ||||||
|     }, |  | ||||||
|     drawNextMonth: function() { |  | ||||||
|         if (this.currentMonth == 12) { |  | ||||||
|             this.currentMonth = 1; |  | ||||||
|             this.currentYear++; |  | ||||||
|         } |  | ||||||
|         else { |  | ||||||
|             this.currentMonth++; |  | ||||||
|         } |  | ||||||
|         this.drawCurrent(); |  | ||||||
|     }, |  | ||||||
|     drawPreviousYear: function() { |  | ||||||
|         this.currentYear--; |  | ||||||
|         this.drawCurrent(); |  | ||||||
|     }, |  | ||||||
|     drawNextYear: function() { |  | ||||||
|         this.currentYear++; |  | ||||||
|         this.drawCurrent(); |  | ||||||
|     } |  | ||||||
| } |  | ||||||
|  | @ -1,24 +0,0 @@ | ||||||
| (function($) { |  | ||||||
| 	$(document).ready(function() { |  | ||||||
| 		// Add anchor tag for Show/Hide link
 |  | ||||||
| 		$("fieldset.collapse").each(function(i, elem) { |  | ||||||
| 			// Don't hide if fields in this fieldset have errors
 |  | ||||||
| 			if ($(elem).find("div.errors").length == 0) { |  | ||||||
| 				$(elem).addClass("collapsed").find("h2").first().append(' (<a id="fieldsetcollapser' + |  | ||||||
| 					i +'" class="collapse-toggle" href="#">' + gettext("Show") + |  | ||||||
| 					'</a>)'); |  | ||||||
| 			} |  | ||||||
| 		}); |  | ||||||
| 		// Add toggle to anchor tag
 |  | ||||||
| 		$("fieldset.collapse a.collapse-toggle").click(function(ev) { |  | ||||||
| 			if ($(this).closest("fieldset").hasClass("collapsed")) { |  | ||||||
| 				// Show
 |  | ||||||
| 				$(this).text(gettext("Hide")).closest("fieldset").removeClass("collapsed").trigger("show.fieldset", [$(this).attr("id")]); |  | ||||||
| 			} else { |  | ||||||
| 				// Hide
 |  | ||||||
| 				$(this).text(gettext("Show")).closest("fieldset").addClass("collapsed").trigger("hide.fieldset", [$(this).attr("id")]); |  | ||||||
| 			} |  | ||||||
| 			return false; |  | ||||||
| 		}); |  | ||||||
| 	}); |  | ||||||
| })(django.jQuery); |  | ||||||
							
								
								
									
										2
									
								
								static/admin/js/collapse.min.js
									
										
									
									
										vendored
									
									
								
							
							
						
						|  | @ -1,2 +0,0 @@ | ||||||
| (function(a){a(document).ready(function(){a("fieldset.collapse").each(function(c,b){a(b).find("div.errors").length==0&&a(b).addClass("collapsed").find("h2").first().append(' (<a id="fieldsetcollapser'+c+'" class="collapse-toggle" href="#">'+gettext("Show")+"</a>)")});a("fieldset.collapse a.collapse-toggle").click(function(){a(this).closest("fieldset").hasClass("collapsed")?a(this).text(gettext("Hide")).closest("fieldset").removeClass("collapsed").trigger("show.fieldset",[a(this).attr("id")]):a(this).text(gettext("Show")).closest("fieldset").addClass("collapsed").trigger("hide.fieldset", |  | ||||||
| [a(this).attr("id")]);return false})})})(django.jQuery); |  | ||||||
|  | @ -1,222 +0,0 @@ | ||||||
| // Core javascript helper functions
 |  | ||||||
| 
 |  | ||||||
| // basic browser identification & version
 |  | ||||||
| var isOpera = (navigator.userAgent.indexOf("Opera")>=0) && parseFloat(navigator.appVersion); |  | ||||||
| var isIE = ((document.all) && (!isOpera)) && parseFloat(navigator.appVersion.split("MSIE ")[1].split(";")[0]); |  | ||||||
| 
 |  | ||||||
| // Cross-browser event handlers.
 |  | ||||||
| function addEvent(obj, evType, fn) { |  | ||||||
|     if (obj.addEventListener) { |  | ||||||
|         obj.addEventListener(evType, fn, false); |  | ||||||
|         return true; |  | ||||||
|     } else if (obj.attachEvent) { |  | ||||||
|         var r = obj.attachEvent("on" + evType, fn); |  | ||||||
|         return r; |  | ||||||
|     } else { |  | ||||||
|         return false; |  | ||||||
|     } |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| function removeEvent(obj, evType, fn) { |  | ||||||
|     if (obj.removeEventListener) { |  | ||||||
|         obj.removeEventListener(evType, fn, false); |  | ||||||
|         return true; |  | ||||||
|     } else if (obj.detachEvent) { |  | ||||||
|         obj.detachEvent("on" + evType, fn); |  | ||||||
|         return true; |  | ||||||
|     } else { |  | ||||||
|         return false; |  | ||||||
|     } |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| function cancelEventPropagation(e) { |  | ||||||
|     if (!e) e = window.event; |  | ||||||
|     e.cancelBubble = true; |  | ||||||
|     if (e.stopPropagation) e.stopPropagation(); |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| // quickElement(tagType, parentReference [, textInChildNode, attribute, attributeValue ...]);
 |  | ||||||
| function quickElement() { |  | ||||||
|     var obj = document.createElement(arguments[0]); |  | ||||||
|     if (arguments[2]) { |  | ||||||
|         var textNode = document.createTextNode(arguments[2]); |  | ||||||
|         obj.appendChild(textNode); |  | ||||||
|     } |  | ||||||
|     var len = arguments.length; |  | ||||||
|     for (var i = 3; i < len; i += 2) { |  | ||||||
|         obj.setAttribute(arguments[i], arguments[i+1]); |  | ||||||
|     } |  | ||||||
|     arguments[1].appendChild(obj); |  | ||||||
|     return obj; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| // "a" is reference to an object
 |  | ||||||
| function removeChildren(a) { |  | ||||||
|     while (a.hasChildNodes()) a.removeChild(a.lastChild); |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| // ----------------------------------------------------------------------------
 |  | ||||||
| // Cross-browser xmlhttp object
 |  | ||||||
| // from http://jibbering.com/2002/4/httprequest.html
 |  | ||||||
| // ----------------------------------------------------------------------------
 |  | ||||||
| var xmlhttp; |  | ||||||
| /*@cc_on @*/ |  | ||||||
| /*@if (@_jscript_version >= 5) |  | ||||||
|     try { |  | ||||||
|         xmlhttp = new ActiveXObject("Msxml2.XMLHTTP"); |  | ||||||
|     } catch (e) { |  | ||||||
|         try { |  | ||||||
|             xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); |  | ||||||
|         } catch (E) { |  | ||||||
|             xmlhttp = false; |  | ||||||
|         } |  | ||||||
|     } |  | ||||||
| @else |  | ||||||
|     xmlhttp = false; |  | ||||||
| @end @*/ |  | ||||||
| if (!xmlhttp && typeof XMLHttpRequest != 'undefined') { |  | ||||||
|   xmlhttp = new XMLHttpRequest(); |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| // ----------------------------------------------------------------------------
 |  | ||||||
| // Find-position functions by PPK
 |  | ||||||
| // See http://www.quirksmode.org/js/findpos.html
 |  | ||||||
| // ----------------------------------------------------------------------------
 |  | ||||||
| function findPosX(obj) { |  | ||||||
|     var curleft = 0; |  | ||||||
|     if (obj.offsetParent) { |  | ||||||
|         while (obj.offsetParent) { |  | ||||||
|             curleft += obj.offsetLeft - ((isOpera) ? 0 : obj.scrollLeft); |  | ||||||
|             obj = obj.offsetParent; |  | ||||||
|         } |  | ||||||
|         // IE offsetParent does not include the top-level
 |  | ||||||
|         if (isIE && obj.parentElement){ |  | ||||||
|             curleft += obj.offsetLeft - obj.scrollLeft; |  | ||||||
|         } |  | ||||||
|     } else if (obj.x) { |  | ||||||
|         curleft += obj.x; |  | ||||||
|     } |  | ||||||
|     return curleft; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| function findPosY(obj) { |  | ||||||
|     var curtop = 0; |  | ||||||
|     if (obj.offsetParent) { |  | ||||||
|         while (obj.offsetParent) { |  | ||||||
|             curtop += obj.offsetTop - ((isOpera) ? 0 : obj.scrollTop); |  | ||||||
|             obj = obj.offsetParent; |  | ||||||
|         } |  | ||||||
|         // IE offsetParent does not include the top-level
 |  | ||||||
|         if (isIE && obj.parentElement){ |  | ||||||
|             curtop += obj.offsetTop - obj.scrollTop; |  | ||||||
|         } |  | ||||||
|     } else if (obj.y) { |  | ||||||
|         curtop += obj.y; |  | ||||||
|     } |  | ||||||
|     return curtop; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| //-----------------------------------------------------------------------------
 |  | ||||||
| // Date object extensions
 |  | ||||||
| // ----------------------------------------------------------------------------
 |  | ||||||
| 
 |  | ||||||
| Date.prototype.getTwelveHours = function() { |  | ||||||
|     hours = this.getHours(); |  | ||||||
|     if (hours == 0) { |  | ||||||
|         return 12; |  | ||||||
|     } |  | ||||||
|     else { |  | ||||||
|         return hours <= 12 ? hours : hours-12 |  | ||||||
|     } |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| Date.prototype.getTwoDigitMonth = function() { |  | ||||||
|     return (this.getMonth() < 9) ? '0' + (this.getMonth()+1) : (this.getMonth()+1); |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| Date.prototype.getTwoDigitDate = function() { |  | ||||||
|     return (this.getDate() < 10) ? '0' + this.getDate() : this.getDate(); |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| Date.prototype.getTwoDigitTwelveHour = function() { |  | ||||||
|     return (this.getTwelveHours() < 10) ? '0' + this.getTwelveHours() : this.getTwelveHours(); |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| Date.prototype.getTwoDigitHour = function() { |  | ||||||
|     return (this.getHours() < 10) ? '0' + this.getHours() : this.getHours(); |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| Date.prototype.getTwoDigitMinute = function() { |  | ||||||
|     return (this.getMinutes() < 10) ? '0' + this.getMinutes() : this.getMinutes(); |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| Date.prototype.getTwoDigitSecond = function() { |  | ||||||
|     return (this.getSeconds() < 10) ? '0' + this.getSeconds() : this.getSeconds(); |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| Date.prototype.getHourMinute = function() { |  | ||||||
|     return this.getTwoDigitHour() + ':' + this.getTwoDigitMinute(); |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| Date.prototype.getHourMinuteSecond = function() { |  | ||||||
|     return this.getTwoDigitHour() + ':' + this.getTwoDigitMinute() + ':' + this.getTwoDigitSecond(); |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| Date.prototype.strftime = function(format) { |  | ||||||
|     var fields = { |  | ||||||
|         c: this.toString(), |  | ||||||
|         d: this.getTwoDigitDate(), |  | ||||||
|         H: this.getTwoDigitHour(), |  | ||||||
|         I: this.getTwoDigitTwelveHour(), |  | ||||||
|         m: this.getTwoDigitMonth(), |  | ||||||
|         M: this.getTwoDigitMinute(), |  | ||||||
|         p: (this.getHours() >= 12) ? 'PM' : 'AM', |  | ||||||
|         S: this.getTwoDigitSecond(), |  | ||||||
|         w: '0' + this.getDay(), |  | ||||||
|         x: this.toLocaleDateString(), |  | ||||||
|         X: this.toLocaleTimeString(), |  | ||||||
|         y: ('' + this.getFullYear()).substr(2, 4), |  | ||||||
|         Y: '' + this.getFullYear(), |  | ||||||
|         '%' : '%' |  | ||||||
|     }; |  | ||||||
|     var result = '', i = 0; |  | ||||||
|     while (i < format.length) { |  | ||||||
|         if (format.charAt(i) === '%') { |  | ||||||
|             result = result + fields[format.charAt(i + 1)]; |  | ||||||
|             ++i; |  | ||||||
|         } |  | ||||||
|         else { |  | ||||||
|             result = result + format.charAt(i); |  | ||||||
|         } |  | ||||||
|         ++i; |  | ||||||
|     } |  | ||||||
|     return result; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| // ----------------------------------------------------------------------------
 |  | ||||||
| // String object extensions
 |  | ||||||
| // ----------------------------------------------------------------------------
 |  | ||||||
| String.prototype.pad_left = function(pad_length, pad_string) { |  | ||||||
|     var new_string = this; |  | ||||||
|     for (var i = 0; new_string.length < pad_length; i++) { |  | ||||||
|         new_string = pad_string + new_string; |  | ||||||
|     } |  | ||||||
|     return new_string; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| // ----------------------------------------------------------------------------
 |  | ||||||
| // Get the computed style for and element
 |  | ||||||
| // ----------------------------------------------------------------------------
 |  | ||||||
| function getStyle(oElm, strCssRule){ |  | ||||||
|     var strValue = ""; |  | ||||||
|     if(document.defaultView && document.defaultView.getComputedStyle){ |  | ||||||
|         strValue = document.defaultView.getComputedStyle(oElm, "").getPropertyValue(strCssRule); |  | ||||||
|     } |  | ||||||
|     else if(oElm.currentStyle){ |  | ||||||
|         strCssRule = strCssRule.replace(/\-(\w)/g, function (strMatch, p1){ |  | ||||||
|             return p1.toUpperCase(); |  | ||||||
|         }); |  | ||||||
|         strValue = oElm.currentStyle[strCssRule]; |  | ||||||
|     } |  | ||||||
|     return strValue; |  | ||||||
| } |  | ||||||
|  | @ -1,272 +0,0 @@ | ||||||
| /** |  | ||||||
|  * Django admin inlines |  | ||||||
|  * |  | ||||||
|  * Based on jQuery Formset 1.1 |  | ||||||
|  * @author Stanislaus Madueke (stan DOT madueke AT gmail DOT com) |  | ||||||
|  * @requires jQuery 1.2.6 or later |  | ||||||
|  * |  | ||||||
|  * Copyright (c) 2009, Stanislaus Madueke |  | ||||||
|  * All rights reserved. |  | ||||||
|  * |  | ||||||
|  * Spiced up with Code from Zain Memon's GSoC project 2009 |  | ||||||
|  * and modified for Django by Jannis Leidel, Travis Swicegood and Julien Phalip. |  | ||||||
|  * |  | ||||||
|  * Licensed under the New BSD License |  | ||||||
|  * See: http://www.opensource.org/licenses/bsd-license.php
 |  | ||||||
|  */ |  | ||||||
| (function($) { |  | ||||||
|   $.fn.formset = function(opts) { |  | ||||||
|     var options = $.extend({}, $.fn.formset.defaults, opts); |  | ||||||
|     var $this = $(this); |  | ||||||
|     var $parent = $this.parent(); |  | ||||||
|     var updateElementIndex = function(el, prefix, ndx) { |  | ||||||
|       var id_regex = new RegExp("(" + prefix + "-(\\d+|__prefix__))"); |  | ||||||
|       var replacement = prefix + "-" + ndx; |  | ||||||
|       if ($(el).prop("for")) { |  | ||||||
|         $(el).prop("for", $(el).prop("for").replace(id_regex, replacement)); |  | ||||||
|       } |  | ||||||
|       if (el.id) { |  | ||||||
|         el.id = el.id.replace(id_regex, replacement); |  | ||||||
|       } |  | ||||||
|       if (el.name) { |  | ||||||
|         el.name = el.name.replace(id_regex, replacement); |  | ||||||
|       } |  | ||||||
|     }; |  | ||||||
|     var totalForms = $("#id_" + options.prefix + "-TOTAL_FORMS").prop("autocomplete", "off"); |  | ||||||
|     var nextIndex = parseInt(totalForms.val(), 10); |  | ||||||
|     var maxForms = $("#id_" + options.prefix + "-MAX_NUM_FORMS").prop("autocomplete", "off"); |  | ||||||
|     // only show the add button if we are allowed to add more items,
 |  | ||||||
|         // note that max_num = None translates to a blank string.
 |  | ||||||
|     var showAddButton = maxForms.val() === '' || (maxForms.val()-totalForms.val()) > 0; |  | ||||||
|     $this.each(function(i) { |  | ||||||
|       $(this).not("." + options.emptyCssClass).addClass(options.formCssClass); |  | ||||||
|     }); |  | ||||||
|     if ($this.length && showAddButton) { |  | ||||||
|       var addButton; |  | ||||||
|       if ($this.prop("tagName") == "TR") { |  | ||||||
|         // If forms are laid out as table rows, insert the
 |  | ||||||
|         // "add" button in a new table row:
 |  | ||||||
|         var numCols = this.eq(-1).children().length; |  | ||||||
|         $parent.append('<tr class="' + options.addCssClass + '"><td colspan="' + numCols + '"><a href="javascript:void(0)">' + options.addText + "</a></tr>"); |  | ||||||
|         addButton = $parent.find("tr:last a"); |  | ||||||
|       } else { |  | ||||||
|         // Otherwise, insert it immediately after the last form:
 |  | ||||||
|         $this.filter(":last").after('<div class="' + options.addCssClass + '"><a href="javascript:void(0)">' + options.addText + "</a></div>"); |  | ||||||
|         addButton = $this.filter(":last").next().find("a"); |  | ||||||
|       } |  | ||||||
|       addButton.click(function(e) { |  | ||||||
|         e.preventDefault(); |  | ||||||
|         var totalForms = $("#id_" + options.prefix + "-TOTAL_FORMS"); |  | ||||||
|         var template = $("#" + options.prefix + "-empty"); |  | ||||||
|         var row = template.clone(true); |  | ||||||
|         row.removeClass(options.emptyCssClass) |  | ||||||
|           .addClass(options.formCssClass) |  | ||||||
|           .attr("id", options.prefix + "-" + nextIndex); |  | ||||||
|         if (row.is("tr")) { |  | ||||||
|           // If the forms are laid out in table rows, insert
 |  | ||||||
|           // the remove button into the last table cell:
 |  | ||||||
|           row.children(":last").append('<div><a class="' + options.deleteCssClass +'" href="javascript:void(0)">' + options.deleteText + "</a></div>"); |  | ||||||
|         } else if (row.is("ul") || row.is("ol")) { |  | ||||||
|           // If they're laid out as an ordered/unordered list,
 |  | ||||||
|           // insert an <li> after the last list item:
 |  | ||||||
|           row.append('<li><a class="' + options.deleteCssClass +'" href="javascript:void(0)">' + options.deleteText + "</a></li>"); |  | ||||||
|         } else { |  | ||||||
|           // Otherwise, just insert the remove button as the
 |  | ||||||
|           // last child element of the form's container:
 |  | ||||||
|           row.children(":first").append('<span><a class="' + options.deleteCssClass + '" href="javascript:void(0)">' + options.deleteText + "</a></span>"); |  | ||||||
|         } |  | ||||||
|         row.find("*").each(function() { |  | ||||||
|           updateElementIndex(this, options.prefix, totalForms.val()); |  | ||||||
|         }); |  | ||||||
|         // Insert the new form when it has been fully edited
 |  | ||||||
|         row.insertBefore($(template)); |  | ||||||
|         // Update number of total forms
 |  | ||||||
|         $(totalForms).val(parseInt(totalForms.val(), 10) + 1); |  | ||||||
|         nextIndex += 1; |  | ||||||
|         // Hide add button in case we've hit the max, except we want to add infinitely
 |  | ||||||
|         if ((maxForms.val() !== '') && (maxForms.val()-totalForms.val()) <= 0) { |  | ||||||
|           addButton.parent().hide(); |  | ||||||
|         } |  | ||||||
|         // The delete button of each row triggers a bunch of other things
 |  | ||||||
|         row.find("a." + options.deleteCssClass).click(function(e) { |  | ||||||
|           e.preventDefault(); |  | ||||||
|           // Remove the parent form containing this button:
 |  | ||||||
|           var row = $(this).parents("." + options.formCssClass); |  | ||||||
|           row.remove(); |  | ||||||
|           nextIndex -= 1; |  | ||||||
|           // If a post-delete callback was provided, call it with the deleted form:
 |  | ||||||
|           if (options.removed) { |  | ||||||
|             options.removed(row); |  | ||||||
|           } |  | ||||||
|           // Update the TOTAL_FORMS form count.
 |  | ||||||
|           var forms = $("." + options.formCssClass); |  | ||||||
|           $("#id_" + options.prefix + "-TOTAL_FORMS").val(forms.length); |  | ||||||
|           // Show add button again once we drop below max
 |  | ||||||
|           if ((maxForms.val() === '') || (maxForms.val()-forms.length) > 0) { |  | ||||||
|             addButton.parent().show(); |  | ||||||
|           } |  | ||||||
|           // Also, update names and ids for all remaining form controls
 |  | ||||||
|           // so they remain in sequence:
 |  | ||||||
|           for (var i=0, formCount=forms.length; i<formCount; i++) |  | ||||||
|           { |  | ||||||
|             updateElementIndex($(forms).get(i), options.prefix, i); |  | ||||||
|             $(forms.get(i)).find("*").each(function() { |  | ||||||
|               updateElementIndex(this, options.prefix, i); |  | ||||||
|             }); |  | ||||||
|           } |  | ||||||
|         }); |  | ||||||
|         // If a post-add callback was supplied, call it with the added form:
 |  | ||||||
|         if (options.added) { |  | ||||||
|           options.added(row); |  | ||||||
|         } |  | ||||||
|       }); |  | ||||||
|     } |  | ||||||
|     return this; |  | ||||||
|   }; |  | ||||||
| 
 |  | ||||||
|   /* Setup plugin defaults */ |  | ||||||
|   $.fn.formset.defaults = { |  | ||||||
|     prefix: "form",          // The form prefix for your django formset
 |  | ||||||
|     addText: "add another",      // Text for the add link
 |  | ||||||
|     deleteText: "remove",      // Text for the delete link
 |  | ||||||
|     addCssClass: "add-row",      // CSS class applied to the add link
 |  | ||||||
|     deleteCssClass: "delete-row",  // CSS class applied to the delete link
 |  | ||||||
|     emptyCssClass: "empty-row",    // CSS class applied to the empty row
 |  | ||||||
|     formCssClass: "dynamic-form",  // CSS class applied to each form in a formset
 |  | ||||||
|     added: null,          // Function called each time a new form is added
 |  | ||||||
|     removed: null          // Function called each time a form is deleted
 |  | ||||||
|   }; |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
|   // Tabular inlines ---------------------------------------------------------
 |  | ||||||
|   $.fn.tabularFormset = function(options) { |  | ||||||
|     var $rows = $(this); |  | ||||||
|     var alternatingRows = function(row) { |  | ||||||
|       $($rows.selector).not(".add-row").removeClass("row1 row2") |  | ||||||
|         .filter(":even").addClass("row1").end() |  | ||||||
|         .filter(":odd").addClass("row2"); |  | ||||||
|     }; |  | ||||||
| 
 |  | ||||||
|     var reinitDateTimeShortCuts = function() { |  | ||||||
|       // Reinitialize the calendar and clock widgets by force
 |  | ||||||
|       if (typeof DateTimeShortcuts != "undefined") { |  | ||||||
|         $(".datetimeshortcuts").remove(); |  | ||||||
|         DateTimeShortcuts.init(); |  | ||||||
|       } |  | ||||||
|     }; |  | ||||||
| 
 |  | ||||||
|     var updateSelectFilter = function() { |  | ||||||
|       // If any SelectFilter widgets are a part of the new form,
 |  | ||||||
|       // instantiate a new SelectFilter instance for it.
 |  | ||||||
|       if (typeof SelectFilter != 'undefined'){ |  | ||||||
|         $('.selectfilter').each(function(index, value){ |  | ||||||
|           var namearr = value.name.split('-'); |  | ||||||
|           SelectFilter.init(value.id, namearr[namearr.length-1], false, options.adminStaticPrefix ); |  | ||||||
|         }); |  | ||||||
|         $('.selectfilterstacked').each(function(index, value){ |  | ||||||
|           var namearr = value.name.split('-'); |  | ||||||
|           SelectFilter.init(value.id, namearr[namearr.length-1], true, options.adminStaticPrefix ); |  | ||||||
|         }); |  | ||||||
|       } |  | ||||||
|     }; |  | ||||||
| 
 |  | ||||||
|     var initPrepopulatedFields = function(row) { |  | ||||||
|       row.find('.prepopulated_field').each(function() { |  | ||||||
|         var field = $(this), |  | ||||||
|             input = field.find('input, select, textarea'), |  | ||||||
|             dependency_list = input.data('dependency_list') || [], |  | ||||||
|             dependencies = []; |  | ||||||
|         $.each(dependency_list, function(i, field_name) { |  | ||||||
|           dependencies.push('#' + row.find('.field-' + field_name).find('input, select, textarea').attr('id')); |  | ||||||
|         }); |  | ||||||
|         if (dependencies.length) { |  | ||||||
|           input.prepopulate(dependencies, input.attr('maxlength')); |  | ||||||
|         } |  | ||||||
|       }); |  | ||||||
|     }; |  | ||||||
| 
 |  | ||||||
|     $rows.formset({ |  | ||||||
|       prefix: options.prefix, |  | ||||||
|       addText: options.addText, |  | ||||||
|       formCssClass: "dynamic-" + options.prefix, |  | ||||||
|       deleteCssClass: "inline-deletelink", |  | ||||||
|       deleteText: options.deleteText, |  | ||||||
|       emptyCssClass: "empty-form", |  | ||||||
|       removed: alternatingRows, |  | ||||||
|       added: function(row) { |  | ||||||
|         initPrepopulatedFields(row); |  | ||||||
|         reinitDateTimeShortCuts(); |  | ||||||
|         updateSelectFilter(); |  | ||||||
|         alternatingRows(row); |  | ||||||
|       } |  | ||||||
|     }); |  | ||||||
| 
 |  | ||||||
|     return $rows; |  | ||||||
|   }; |  | ||||||
| 
 |  | ||||||
|   // Stacked inlines ---------------------------------------------------------
 |  | ||||||
|   $.fn.stackedFormset = function(options) { |  | ||||||
|     var $rows = $(this); |  | ||||||
|     var updateInlineLabel = function(row) { |  | ||||||
|       $($rows.selector).find(".inline_label").each(function(i) { |  | ||||||
|         var count = i + 1; |  | ||||||
|         $(this).html($(this).html().replace(/(#\d+)/g, "#" + count)); |  | ||||||
|       }); |  | ||||||
|     }; |  | ||||||
| 
 |  | ||||||
|     var reinitDateTimeShortCuts = function() { |  | ||||||
|       // Reinitialize the calendar and clock widgets by force, yuck.
 |  | ||||||
|       if (typeof DateTimeShortcuts != "undefined") { |  | ||||||
|         $(".datetimeshortcuts").remove(); |  | ||||||
|         DateTimeShortcuts.init(); |  | ||||||
|       } |  | ||||||
|     }; |  | ||||||
| 
 |  | ||||||
|     var updateSelectFilter = function() { |  | ||||||
|       // If any SelectFilter widgets were added, instantiate a new instance.
 |  | ||||||
|       if (typeof SelectFilter != "undefined"){ |  | ||||||
|         $(".selectfilter").each(function(index, value){ |  | ||||||
|           var namearr = value.name.split('-'); |  | ||||||
|           SelectFilter.init(value.id, namearr[namearr.length-1], false, options.adminStaticPrefix); |  | ||||||
|         }); |  | ||||||
|         $(".selectfilterstacked").each(function(index, value){ |  | ||||||
|           var namearr = value.name.split('-'); |  | ||||||
|           SelectFilter.init(value.id, namearr[namearr.length-1], true, options.adminStaticPrefix); |  | ||||||
|         }); |  | ||||||
|       } |  | ||||||
|     }; |  | ||||||
| 
 |  | ||||||
|     var initPrepopulatedFields = function(row) { |  | ||||||
|       row.find('.prepopulated_field').each(function() { |  | ||||||
|         var field = $(this), |  | ||||||
|             input = field.find('input, select, textarea'), |  | ||||||
|             dependency_list = input.data('dependency_list') || [], |  | ||||||
|             dependencies = []; |  | ||||||
|         $.each(dependency_list, function(i, field_name) { |  | ||||||
|           dependencies.push('#' + row.find('.form-row .field-' + field_name).find('input, select, textarea').attr('id')); |  | ||||||
|         }); |  | ||||||
|         if (dependencies.length) { |  | ||||||
|           input.prepopulate(dependencies, input.attr('maxlength')); |  | ||||||
|         } |  | ||||||
|       }); |  | ||||||
|     }; |  | ||||||
| 
 |  | ||||||
|     $rows.formset({ |  | ||||||
|       prefix: options.prefix, |  | ||||||
|       addText: options.addText, |  | ||||||
|       formCssClass: "dynamic-" + options.prefix, |  | ||||||
|       deleteCssClass: "inline-deletelink", |  | ||||||
|       deleteText: options.deleteText, |  | ||||||
|       emptyCssClass: "empty-form", |  | ||||||
|       removed: updateInlineLabel, |  | ||||||
|       added: (function(row) { |  | ||||||
|         initPrepopulatedFields(row); |  | ||||||
|         reinitDateTimeShortCuts(); |  | ||||||
|         updateSelectFilter(); |  | ||||||
|         updateInlineLabel(row); |  | ||||||
|       }) |  | ||||||
|     }); |  | ||||||
| 
 |  | ||||||
|     return $rows; |  | ||||||
|   }; |  | ||||||
| })(django.jQuery); |  | ||||||
							
								
								
									
										9
									
								
								static/admin/js/inlines.min.js
									
										
									
									
										vendored
									
									
								
							
							
						
						|  | @ -1,9 +0,0 @@ | ||||||
| (function(a){a.fn.formset=function(g){var b=a.extend({},a.fn.formset.defaults,g),i=a(this);g=i.parent();var m=function(e,k,h){var j=RegExp("("+k+"-(\\d+|__prefix__))");k=k+"-"+h;a(e).prop("for")&&a(e).prop("for",a(e).prop("for").replace(j,k));if(e.id)e.id=e.id.replace(j,k);if(e.name)e.name=e.name.replace(j,k)},l=a("#id_"+b.prefix+"-TOTAL_FORMS").prop("autocomplete","off"),d=parseInt(l.val(),10),c=a("#id_"+b.prefix+"-MAX_NUM_FORMS").prop("autocomplete","off");l=c.val()===""||c.val()-l.val()>0;i.each(function(){a(this).not("."+ |  | ||||||
| b.emptyCssClass).addClass(b.formCssClass)});if(i.length&&l){var f;if(i.prop("tagName")=="TR"){i=this.eq(-1).children().length;g.append('<tr class="'+b.addCssClass+'"><td colspan="'+i+'"><a href="javascript:void(0)">'+b.addText+"</a></tr>");f=g.find("tr:last a")}else{i.filter(":last").after('<div class="'+b.addCssClass+'"><a href="javascript:void(0)">'+b.addText+"</a></div>");f=i.filter(":last").next().find("a")}f.click(function(e){e.preventDefault();var k=a("#id_"+b.prefix+"-TOTAL_FORMS");e=a("#"+ |  | ||||||
| b.prefix+"-empty");var h=e.clone(true);h.removeClass(b.emptyCssClass).addClass(b.formCssClass).attr("id",b.prefix+"-"+d);if(h.is("tr"))h.children(":last").append('<div><a class="'+b.deleteCssClass+'" href="javascript:void(0)">'+b.deleteText+"</a></div>");else h.is("ul")||h.is("ol")?h.append('<li><a class="'+b.deleteCssClass+'" href="javascript:void(0)">'+b.deleteText+"</a></li>"):h.children(":first").append('<span><a class="'+b.deleteCssClass+'" href="javascript:void(0)">'+b.deleteText+"</a></span>"); |  | ||||||
| h.find("*").each(function(){m(this,b.prefix,k.val())});h.insertBefore(a(e));a(k).val(parseInt(k.val(),10)+1);d+=1;c.val()!==""&&c.val()-k.val()<=0&&f.parent().hide();h.find("a."+b.deleteCssClass).click(function(j){j.preventDefault();j=a(this).parents("."+b.formCssClass);j.remove();d-=1;b.removed&&b.removed(j);j=a("."+b.formCssClass);a("#id_"+b.prefix+"-TOTAL_FORMS").val(j.length);if(c.val()===""||c.val()-j.length>0)f.parent().show();for(var n=0,o=j.length;n<o;n++){m(a(j).get(n),b.prefix,n);a(j.get(n)).find("*").each(function(){m(this, |  | ||||||
| b.prefix,n)})}});b.added&&b.added(h)})}return this};a.fn.formset.defaults={prefix:"form",addText:"add another",deleteText:"remove",addCssClass:"add-row",deleteCssClass:"delete-row",emptyCssClass:"empty-row",formCssClass:"dynamic-form",added:null,removed:null};a.fn.tabularFormset=function(g){var b=a(this),i=function(){a(b.selector).not(".add-row").removeClass("row1 row2").filter(":even").addClass("row1").end().filter(":odd").addClass("row2")},m=function(){if(typeof SelectFilter!="undefined"){a(".selectfilter").each(function(d, |  | ||||||
| c){var f=c.name.split("-");SelectFilter.init(c.id,f[f.length-1],false,g.adminStaticPrefix)});a(".selectfilterstacked").each(function(d,c){var f=c.name.split("-");SelectFilter.init(c.id,f[f.length-1],true,g.adminStaticPrefix)})}},l=function(d){d.find(".prepopulated_field").each(function(){var c=a(this).find("input, select, textarea"),f=c.data("dependency_list")||[],e=[];a.each(f,function(k,h){e.push("#"+d.find(".field-"+h).find("input, select, textarea").attr("id"))});e.length&&c.prepopulate(e,c.attr("maxlength"))})}; |  | ||||||
| b.formset({prefix:g.prefix,addText:g.addText,formCssClass:"dynamic-"+g.prefix,deleteCssClass:"inline-deletelink",deleteText:g.deleteText,emptyCssClass:"empty-form",removed:i,added:function(d){l(d);if(typeof DateTimeShortcuts!="undefined"){a(".datetimeshortcuts").remove();DateTimeShortcuts.init()}m();i(d)}});return b};a.fn.stackedFormset=function(g){var b=a(this),i=function(){a(b.selector).find(".inline_label").each(function(d){d=d+1;a(this).html(a(this).html().replace(/(#\d+)/g,"#"+d))})},m=function(){if(typeof SelectFilter!= |  | ||||||
| "undefined"){a(".selectfilter").each(function(d,c){var f=c.name.split("-");SelectFilter.init(c.id,f[f.length-1],false,g.adminStaticPrefix)});a(".selectfilterstacked").each(function(d,c){var f=c.name.split("-");SelectFilter.init(c.id,f[f.length-1],true,g.adminStaticPrefix)})}},l=function(d){d.find(".prepopulated_field").each(function(){var c=a(this).find("input, select, textarea"),f=c.data("dependency_list")||[],e=[];a.each(f,function(k,h){e.push("#"+d.find(".form-row .field-"+h).find("input, select, textarea").attr("id"))}); |  | ||||||
| e.length&&c.prepopulate(e,c.attr("maxlength"))})};b.formset({prefix:g.prefix,addText:g.addText,formCssClass:"dynamic-"+g.prefix,deleteCssClass:"inline-deletelink",deleteText:g.deleteText,emptyCssClass:"empty-form",removed:i,added:function(d){l(d);if(typeof DateTimeShortcuts!="undefined"){a(".datetimeshortcuts").remove();DateTimeShortcuts.init()}m();i(d)}});return b}})(django.jQuery); |  | ||||||
|  | @ -1,7 +0,0 @@ | ||||||
| /* Puts the included jQuery into our own namespace using noConflict and passing |  | ||||||
|  * it 'true'. This ensures that the included jQuery doesn't pollute the global |  | ||||||
|  * namespace (i.e. this preserves pre-existing values for both window.$ and |  | ||||||
|  * window.jQuery). |  | ||||||
|  */ |  | ||||||
| var django = django || {}; |  | ||||||
| django.jQuery = jQuery.noConflict(true); |  | ||||||
							
								
								
									
										9597
									
								
								static/admin/js/jquery.js
									
										
									
									
										vendored
									
									
								
							
							
						
						
							
								
								
									
										5
									
								
								static/admin/js/jquery.min.js
									
										
									
									
										vendored
									
									
								
							
							
						
						|  | @ -1,39 +0,0 @@ | ||||||
| (function($) { |  | ||||||
|     $.fn.prepopulate = function(dependencies, maxLength) { |  | ||||||
|         /* |  | ||||||
|             Depends on urlify.js |  | ||||||
|             Populates a selected field with the values of the dependent fields, |  | ||||||
|             URLifies and shortens the string. |  | ||||||
|             dependencies - array of dependent fields ids |  | ||||||
|             maxLength - maximum length of the URLify'd string |  | ||||||
|         */ |  | ||||||
|         return this.each(function() { |  | ||||||
|             var prepopulatedField = $(this); |  | ||||||
| 
 |  | ||||||
|             var populate = function () { |  | ||||||
|                 // Bail if the field's value has been changed by the user
 |  | ||||||
|                 if (prepopulatedField.data('_changed')) { |  | ||||||
|                     return; |  | ||||||
|                 } |  | ||||||
| 
 |  | ||||||
|                 var values = []; |  | ||||||
|                 $.each(dependencies, function(i, field) { |  | ||||||
|                     field = $(field); |  | ||||||
|                     if (field.val().length > 0) { |  | ||||||
|                         values.push(field.val()); |  | ||||||
|                     } |  | ||||||
|                 }); |  | ||||||
|                 prepopulatedField.val(URLify(values.join(' '), maxLength)); |  | ||||||
|             }; |  | ||||||
| 
 |  | ||||||
|             prepopulatedField.data('_changed', false); |  | ||||||
|             prepopulatedField.change(function() { |  | ||||||
|                 prepopulatedField.data('_changed', true); |  | ||||||
|             }); |  | ||||||
| 
 |  | ||||||
|             if (!prepopulatedField.val()) { |  | ||||||
|                 $(dependencies.join(',')).keyup(populate).change(populate).focus(populate); |  | ||||||
|             } |  | ||||||
|         }); |  | ||||||
|     }; |  | ||||||
| })(django.jQuery); |  | ||||||
							
								
								
									
										1
									
								
								static/admin/js/prepopulate.min.js
									
										
									
									
										vendored
									
									
								
							
							
						
						|  | @ -1 +0,0 @@ | ||||||
| (function(b){b.fn.prepopulate=function(e,g){return this.each(function(){var a=b(this),d=function(){if(!a.data("_changed")){var f=[];b.each(e,function(h,c){c=b(c);c.val().length>0&&f.push(c.val())});a.val(URLify(f.join(" "),g))}};a.data("_changed",false);a.change(function(){a.data("_changed",true)});a.val()||b(e.join(",")).keyup(d).change(d).focus(d)})}})(django.jQuery); |  | ||||||
|  | @ -1,94 +0,0 @@ | ||||||
| var timeParsePatterns = [ |  | ||||||
|     // 9
 |  | ||||||
|     {   re: /^\d{1,2}$/i, |  | ||||||
|         handler: function(bits) { |  | ||||||
|             if (bits[0].length == 1) { |  | ||||||
|                 return '0' + bits[0] + ':00'; |  | ||||||
|             } else { |  | ||||||
|                 return bits[0] + ':00'; |  | ||||||
|             } |  | ||||||
|         } |  | ||||||
|     }, |  | ||||||
|     // 13:00
 |  | ||||||
|     {   re: /^\d{2}[:.]\d{2}$/i, |  | ||||||
|         handler: function(bits) { |  | ||||||
|             return bits[0].replace('.', ':'); |  | ||||||
|         } |  | ||||||
|     }, |  | ||||||
|     // 9:00
 |  | ||||||
|     {   re: /^\d[:.]\d{2}$/i, |  | ||||||
|         handler: function(bits) { |  | ||||||
|             return '0' + bits[0].replace('.', ':'); |  | ||||||
|         } |  | ||||||
|     }, |  | ||||||
|     // 3 am / 3 a.m. / 3am
 |  | ||||||
|     {   re: /^(\d+)\s*([ap])(?:.?m.?)?$/i, |  | ||||||
|         handler: function(bits) { |  | ||||||
|             var hour = parseInt(bits[1]); |  | ||||||
|             if (hour == 12) { |  | ||||||
|                 hour = 0; |  | ||||||
|             } |  | ||||||
|             if (bits[2].toLowerCase() == 'p') { |  | ||||||
|                 if (hour == 12) { |  | ||||||
|                     hour = 0; |  | ||||||
|                 } |  | ||||||
|                 return (hour + 12) + ':00'; |  | ||||||
|             } else { |  | ||||||
|                 if (hour < 10) { |  | ||||||
|                     return '0' + hour + ':00'; |  | ||||||
|                 } else { |  | ||||||
|                     return hour + ':00'; |  | ||||||
|                 } |  | ||||||
|             } |  | ||||||
|         } |  | ||||||
|     }, |  | ||||||
|     // 3.30 am / 3:15 a.m. / 3.00am
 |  | ||||||
|     {   re: /^(\d+)[.:](\d{2})\s*([ap]).?m.?$/i, |  | ||||||
|         handler: function(bits) { |  | ||||||
|             var hour = parseInt(bits[1]); |  | ||||||
|             var mins = parseInt(bits[2]); |  | ||||||
|             if (mins < 10) { |  | ||||||
|                 mins = '0' + mins; |  | ||||||
|             } |  | ||||||
|             if (hour == 12) { |  | ||||||
|                 hour = 0; |  | ||||||
|             } |  | ||||||
|             if (bits[3].toLowerCase() == 'p') { |  | ||||||
|                 if (hour == 12) { |  | ||||||
|                     hour = 0; |  | ||||||
|                 } |  | ||||||
|                 return (hour + 12) + ':' + mins; |  | ||||||
|             } else { |  | ||||||
|                 if (hour < 10) { |  | ||||||
|                     return '0' + hour + ':' + mins; |  | ||||||
|                 } else { |  | ||||||
|                     return hour + ':' + mins; |  | ||||||
|                 } |  | ||||||
|             } |  | ||||||
|         } |  | ||||||
|     }, |  | ||||||
|     // noon
 |  | ||||||
|     {   re: /^no/i, |  | ||||||
|         handler: function(bits) { |  | ||||||
|             return '12:00'; |  | ||||||
|         } |  | ||||||
|     }, |  | ||||||
|     // midnight
 |  | ||||||
|     {   re: /^mid/i, |  | ||||||
|         handler: function(bits) { |  | ||||||
|             return '00:00'; |  | ||||||
|         } |  | ||||||
|     } |  | ||||||
| ]; |  | ||||||
| 
 |  | ||||||
| function parseTimeString(s) { |  | ||||||
|     for (var i = 0; i < timeParsePatterns.length; i++) { |  | ||||||
|         var re = timeParsePatterns[i].re; |  | ||||||
|         var handler = timeParsePatterns[i].handler; |  | ||||||
|         var bits = re.exec(s); |  | ||||||
|         if (bits) { |  | ||||||
|             return handler(bits); |  | ||||||
|         } |  | ||||||
|     } |  | ||||||
|     return s; |  | ||||||
| } |  | ||||||
|  | @ -1,147 +0,0 @@ | ||||||
| var LATIN_MAP = { |  | ||||||
|     'À': 'A', 'Á': 'A', 'Â': 'A', 'Ã': 'A', 'Ä': 'A', 'Å': 'A', 'Æ': 'AE', 'Ç': |  | ||||||
|     'C', 'È': 'E', 'É': 'E', 'Ê': 'E', 'Ë': 'E', 'Ì': 'I', 'Í': 'I', 'Î': 'I', |  | ||||||
|     'Ï': 'I', 'Ð': 'D', 'Ñ': 'N', 'Ò': 'O', 'Ó': 'O', 'Ô': 'O', 'Õ': 'O', 'Ö': |  | ||||||
|     'O', 'Ő': 'O', 'Ø': 'O', 'Ù': 'U', 'Ú': 'U', 'Û': 'U', 'Ü': 'U', 'Ű': 'U', |  | ||||||
|     'Ý': 'Y', 'Þ': 'TH', 'Ÿ': 'Y', 'ß': 'ss', 'à':'a', 'á':'a', 'â': 'a', 'ã': |  | ||||||
|     'a', 'ä': 'a', 'å': 'a', 'æ': 'ae', 'ç': 'c', 'è': 'e', 'é': 'e', 'ê': 'e', |  | ||||||
|     'ë': 'e', 'ì': 'i', 'í': 'i', 'î': 'i', 'ï': 'i', 'ð': 'd', 'ñ': 'n', 'ò': |  | ||||||
|     'o', 'ó': 'o', 'ô': 'o', 'õ': 'o', 'ö': 'o', 'ő': 'o', 'ø': 'o', 'ù': 'u', |  | ||||||
|     'ú': 'u', 'û': 'u', 'ü': 'u', 'ű': 'u', 'ý': 'y', 'þ': 'th', 'ÿ': 'y' |  | ||||||
| }; |  | ||||||
| var LATIN_SYMBOLS_MAP = { |  | ||||||
|     '©':'(c)' |  | ||||||
| }; |  | ||||||
| var GREEK_MAP = { |  | ||||||
|     'α':'a', 'β':'b', 'γ':'g', 'δ':'d', 'ε':'e', 'ζ':'z', 'η':'h', 'θ':'8', |  | ||||||
|     'ι':'i', 'κ':'k', 'λ':'l', 'μ':'m', 'ν':'n', 'ξ':'3', 'ο':'o', 'π':'p', |  | ||||||
|     'ρ':'r', 'σ':'s', 'τ':'t', 'υ':'y', 'φ':'f', 'χ':'x', 'ψ':'ps', 'ω':'w', |  | ||||||
|     'ά':'a', 'έ':'e', 'ί':'i', 'ό':'o', 'ύ':'y', 'ή':'h', 'ώ':'w', 'ς':'s', |  | ||||||
|     'ϊ':'i', 'ΰ':'y', 'ϋ':'y', 'ΐ':'i', |  | ||||||
|     'Α':'A', 'Β':'B', 'Γ':'G', 'Δ':'D', 'Ε':'E', 'Ζ':'Z', 'Η':'H', 'Θ':'8', |  | ||||||
|     'Ι':'I', 'Κ':'K', 'Λ':'L', 'Μ':'M', 'Ν':'N', 'Ξ':'3', 'Ο':'O', 'Π':'P', |  | ||||||
|     'Ρ':'R', 'Σ':'S', 'Τ':'T', 'Υ':'Y', 'Φ':'F', 'Χ':'X', 'Ψ':'PS', 'Ω':'W', |  | ||||||
|     'Ά':'A', 'Έ':'E', 'Ί':'I', 'Ό':'O', 'Ύ':'Y', 'Ή':'H', 'Ώ':'W', 'Ϊ':'I', |  | ||||||
|     'Ϋ':'Y' |  | ||||||
| }; |  | ||||||
| var TURKISH_MAP = { |  | ||||||
|     'ş':'s', 'Ş':'S', 'ı':'i', 'İ':'I', 'ç':'c', 'Ç':'C', 'ü':'u', 'Ü':'U', |  | ||||||
|     'ö':'o', 'Ö':'O', 'ğ':'g', 'Ğ':'G' |  | ||||||
| }; |  | ||||||
| var RUSSIAN_MAP = { |  | ||||||
|     'а':'a', 'б':'b', 'в':'v', 'г':'g', 'д':'d', 'е':'e', 'ё':'yo', 'ж':'zh', |  | ||||||
|     'з':'z', 'и':'i', 'й':'j', 'к':'k', 'л':'l', 'м':'m', 'н':'n', 'о':'o', |  | ||||||
|     'п':'p', 'р':'r', 'с':'s', 'т':'t', 'у':'u', 'ф':'f', 'х':'h', 'ц':'c', |  | ||||||
|     'ч':'ch', 'ш':'sh', 'щ':'sh', 'ъ':'', 'ы':'y', 'ь':'', 'э':'e', 'ю':'yu', |  | ||||||
|     'я':'ya', |  | ||||||
|     'А':'A', 'Б':'B', 'В':'V', 'Г':'G', 'Д':'D', 'Е':'E', 'Ё':'Yo', 'Ж':'Zh', |  | ||||||
|     'З':'Z', 'И':'I', 'Й':'J', 'К':'K', 'Л':'L', 'М':'M', 'Н':'N', 'О':'O', |  | ||||||
|     'П':'P', 'Р':'R', 'С':'S', 'Т':'T', 'У':'U', 'Ф':'F', 'Х':'H', 'Ц':'C', |  | ||||||
|     'Ч':'Ch', 'Ш':'Sh', 'Щ':'Sh', 'Ъ':'', 'Ы':'Y', 'Ь':'', 'Э':'E', 'Ю':'Yu', |  | ||||||
|     'Я':'Ya' |  | ||||||
| }; |  | ||||||
| var UKRAINIAN_MAP = { |  | ||||||
|     'Є':'Ye', 'І':'I', 'Ї':'Yi', 'Ґ':'G', 'є':'ye', 'і':'i', 'ї':'yi', 'ґ':'g' |  | ||||||
| }; |  | ||||||
| var CZECH_MAP = { |  | ||||||
|     'č':'c', 'ď':'d', 'ě':'e', 'ň': 'n', 'ř':'r', 'š':'s', 'ť':'t', 'ů':'u', |  | ||||||
|     'ž':'z', 'Č':'C', 'Ď':'D', 'Ě':'E', 'Ň': 'N', 'Ř':'R', 'Š':'S', 'Ť':'T', |  | ||||||
|     'Ů':'U', 'Ž':'Z' |  | ||||||
| }; |  | ||||||
| var POLISH_MAP = { |  | ||||||
|     'ą':'a', 'ć':'c', 'ę':'e', 'ł':'l', 'ń':'n', 'ó':'o', 'ś':'s', 'ź':'z', |  | ||||||
|     'ż':'z', 'Ą':'A', 'Ć':'C', 'Ę':'E', 'Ł':'L', 'Ń':'N', 'Ó':'O', 'Ś':'S', |  | ||||||
|     'Ź':'Z', 'Ż':'Z' |  | ||||||
| }; |  | ||||||
| var LATVIAN_MAP = { |  | ||||||
|     'ā':'a', 'č':'c', 'ē':'e', 'ģ':'g', 'ī':'i', 'ķ':'k', 'ļ':'l', 'ņ':'n', |  | ||||||
|     'š':'s', 'ū':'u', 'ž':'z', 'Ā':'A', 'Č':'C', 'Ē':'E', 'Ģ':'G', 'Ī':'I', |  | ||||||
|     'Ķ':'K', 'Ļ':'L', 'Ņ':'N', 'Š':'S', 'Ū':'U', 'Ž':'Z' |  | ||||||
| }; |  | ||||||
| var ARABIC_MAP = { |  | ||||||
|     'أ':'a', 'ب':'b', 'ت':'t', 'ث': 'th', 'ج':'g', 'ح':'h', 'خ':'kh', 'د':'d', |  | ||||||
|     'ذ':'th', 'ر':'r', 'ز':'z', 'س':'s', 'ش':'sh', 'ص':'s', 'ض':'d', 'ط':'t', |  | ||||||
|     'ظ':'th', 'ع':'aa', 'غ':'gh', 'ف':'f', 'ق':'k', 'ك':'k', 'ل':'l', 'م':'m', |  | ||||||
|     'ن':'n', 'ه':'h', 'و':'o', 'ي':'y' |  | ||||||
| }; |  | ||||||
| var LITHUANIAN_MAP = { |  | ||||||
|     'ą':'a', 'č':'c', 'ę':'e', 'ė':'e', 'į':'i', 'š':'s', 'ų':'u', 'ū':'u', |  | ||||||
|     'ž':'z', |  | ||||||
|     'Ą':'A', 'Č':'C', 'Ę':'E', 'Ė':'E', 'Į':'I', 'Š':'S', 'Ų':'U', 'Ū':'U', |  | ||||||
|     'Ž':'Z' |  | ||||||
| }; |  | ||||||
| var SERBIAN_MAP = { |  | ||||||
|     'ђ':'dj', 'ј':'j', 'љ':'lj', 'њ':'nj', 'ћ':'c', 'џ':'dz', 'đ':'dj', |  | ||||||
|     'Ђ':'Dj', 'Ј':'j', 'Љ':'Lj', 'Њ':'Nj', 'Ћ':'C', 'Џ':'Dz', 'Đ':'Dj' |  | ||||||
| }; |  | ||||||
| var AZERBAIJANI_MAP = { |  | ||||||
|     'ç':'c', 'ə':'e', 'ğ':'g', 'ı':'i', 'ö':'o', 'ş':'s', 'ü':'u', |  | ||||||
|     'Ç':'C', 'Ə':'E', 'Ğ':'G', 'İ':'I', 'Ö':'O', 'Ş':'S', 'Ü':'U' |  | ||||||
| }; |  | ||||||
| 
 |  | ||||||
| var ALL_DOWNCODE_MAPS = [ |  | ||||||
|     LATIN_MAP, |  | ||||||
|     LATIN_SYMBOLS_MAP, |  | ||||||
|     GREEK_MAP, |  | ||||||
|     TURKISH_MAP, |  | ||||||
|     RUSSIAN_MAP, |  | ||||||
|     UKRAINIAN_MAP, |  | ||||||
|     CZECH_MAP, |  | ||||||
|     POLISH_MAP, |  | ||||||
|     LATVIAN_MAP, |  | ||||||
|     ARABIC_MAP, |  | ||||||
|     LITHUANIAN_MAP, |  | ||||||
|     SERBIAN_MAP, |  | ||||||
|     AZERBAIJANI_MAP |  | ||||||
| ]; |  | ||||||
| 
 |  | ||||||
| var Downcoder = { |  | ||||||
|     'Initialize': function() { |  | ||||||
|         if (Downcoder.map) {  // already made
 |  | ||||||
|             return; |  | ||||||
|         } |  | ||||||
|         Downcoder.map = {}; |  | ||||||
|         Downcoder.chars = []; |  | ||||||
|         for (var i=0; i<ALL_DOWNCODE_MAPS.length; i++) { |  | ||||||
|             var lookup = ALL_DOWNCODE_MAPS[i]; |  | ||||||
|             for (var c in lookup) { |  | ||||||
|                 if (lookup.hasOwnProperty(c)) { |  | ||||||
|                     Downcoder.map[c] = lookup[c]; |  | ||||||
|                 } |  | ||||||
|             } |  | ||||||
|         } |  | ||||||
|         for (var k in Downcoder.map) { |  | ||||||
|             if (Downcoder.map.hasOwnProperty(k)) { |  | ||||||
|                 Downcoder.chars.push(k); |  | ||||||
|             } |  | ||||||
|         } |  | ||||||
|         Downcoder.regex = new RegExp(Downcoder.chars.join('|'), 'g'); |  | ||||||
|     } |  | ||||||
| }; |  | ||||||
| 
 |  | ||||||
| function downcode(slug) { |  | ||||||
|     Downcoder.Initialize(); |  | ||||||
|     return slug.replace(Downcoder.regex, function(m) { |  | ||||||
|         return Downcoder.map[m]; |  | ||||||
|     }); |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| function URLify(s, num_chars) { |  | ||||||
|     // changes, e.g., "Petty theft" to "petty_theft"
 |  | ||||||
|     // remove all these words from the string before urlifying
 |  | ||||||
|     s = downcode(s); |  | ||||||
|     var removelist = [ |  | ||||||
|         "a", "an", "as", "at", "before", "but", "by", "for", "from", "is", |  | ||||||
|         "in", "into", "like", "of", "off", "on", "onto", "per", "since", |  | ||||||
|         "than", "the", "this", "that", "to", "up", "via", "with" |  | ||||||
|     ]; |  | ||||||
|     var r = new RegExp('\\b(' + removelist.join('|') + ')\\b', 'gi'); |  | ||||||
|     s = s.replace(r, ''); |  | ||||||
|     // if downcode doesn't hit, the char will be stripped here
 |  | ||||||
|     s = s.replace(/[^-\w\s]/g, '');  // remove unneeded chars
 |  | ||||||
|     s = s.replace(/^\s+|\s+$/g, ''); // trim leading/trailing spaces
 |  | ||||||
|     s = s.replace(/[-\s]+/g, '-');   // convert spaces to hyphens
 |  | ||||||
|     s = s.toLowerCase();             // convert to lowercase
 |  | ||||||
|     return s.substring(0, num_chars);// trim to first num_chars chars
 |  | ||||||
| } |  | ||||||
|  | @ -1,7 +0,0 @@ | ||||||
| .related-widget-wrapper-link { |  | ||||||
| 	opacity: 0.3; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| .related-widget-wrapper-link:link { |  | ||||||
| 	opacity: 1; |  | ||||||
| } |  | ||||||
|  | @ -1,55 +0,0 @@ | ||||||
| django.jQuery(document).ready(function($){ |  | ||||||
|      |  | ||||||
|     window.dismissChangeRelatedPopup = function(win, objId, newRepr) { |  | ||||||
|         objId = html_unescape(objId); |  | ||||||
|         newRepr = html_unescape(newRepr); |  | ||||||
|         var id = windowname_to_id(win.name).replace(/^edit_/, ''), |  | ||||||
|             selects = $(interpolate('#%s, #%s_from, #%s_to', [id, id, id])); |  | ||||||
|         selects.find('option').each(function(){ |  | ||||||
|             if (this.value == objId) this.innerHTML = newRepr; |  | ||||||
|         }); |  | ||||||
|         win.close(); |  | ||||||
|     }; |  | ||||||
|      |  | ||||||
|     if (!dismissAddAnotherPopup.original) { |  | ||||||
|         var originalDismissAddAnotherPopup = dismissAddAnotherPopup; |  | ||||||
|         dismissAddAnotherPopup = function(win, newId, newRepr) { |  | ||||||
|             originalDismissAddAnotherPopup(win, newId, newRepr); |  | ||||||
|             newId = html_unescape(newId); |  | ||||||
|             newRepr = html_unescape(newRepr); |  | ||||||
|             $('#' + windowname_to_id(win.name)).trigger('change'); |  | ||||||
|         }; |  | ||||||
|         dismissAddAnotherPopup.original = originalDismissAddAnotherPopup; |  | ||||||
|     } |  | ||||||
|      |  | ||||||
|     window.dismissDeleteRelatedPopup = function(win, objId) { |  | ||||||
|         objId = html_unescape(objId); |  | ||||||
|         var id = windowname_to_id(win.name).replace(/^delete_/, ''), |  | ||||||
|             selects = $(interpolate('#%s, #%s_from, #%s_to', [id, id, id])); |  | ||||||
|         selects.find('option').each(function(){ |  | ||||||
|             if (this.value == objId) $(this).remove(); |  | ||||||
|         }).trigger('change'); |  | ||||||
|         win.close(); |  | ||||||
|     }; |  | ||||||
|      |  | ||||||
| 	var relatedWidgetCSSSelector = '.related-widget-wrapper-change-link, .related-widget-wrapper-delete-link', |  | ||||||
|   		hrefTemplateAttr = 'data-href-template'; |  | ||||||
|    |  | ||||||
|     $('#container').delegate('.related-widget-wrapper', 'change', function(event){ |  | ||||||
|         var siblings = $(this).nextAll(relatedWidgetCSSSelector), |  | ||||||
|             value = event.target.value; |  | ||||||
|         if (!siblings.length) return; |  | ||||||
|         if (value) { |  | ||||||
| 	       siblings.each(function(){ |  | ||||||
| 		      var elm = $(this); |  | ||||||
| 		      elm.attr('href', elm.attr(hrefTemplateAttr).replace('__pk__', value)); |  | ||||||
| 	       }); |  | ||||||
|         } else siblings.removeAttr('href'); |  | ||||||
|     }); |  | ||||||
| 
 |  | ||||||
| 	$('#container').delegate('.related-widget-wrapper-link', 'click', function(event){ |  | ||||||
|     	if (this.href) { |  | ||||||
|     		return showAddAnotherPopup(this); |  | ||||||
|     	} else return false; |  | ||||||
|     }); |  | ||||||
| }); |  | ||||||
|  | @ -1,96 +0,0 @@ | ||||||
| <!-- |  | ||||||
| PIE: CSS3 rendering for IE |  | ||||||
| Version 1.0beta5 |  | ||||||
| http://css3pie.com |  | ||||||
| Dual-licensed for use under the Apache License Version 2.0 or the General Public License (GPL) Version 2. |  | ||||||
| --> |  | ||||||
| <PUBLIC:COMPONENT lightWeight="true"> |  | ||||||
| <!-- saved from url=(0014)about:internet --> |  | ||||||
| <PUBLIC:ATTACH EVENT="oncontentready" FOR="element" ONEVENT="init()" /> |  | ||||||
| <PUBLIC:ATTACH EVENT="ondocumentready" FOR="element" ONEVENT="init()" /> |  | ||||||
| <PUBLIC:ATTACH EVENT="ondetach" FOR="element" ONEVENT="cleanup()" /> |  | ||||||
| 
 |  | ||||||
| <script type="text/javascript"> |  | ||||||
| var doc = element.document;var f=window.PIE; |  | ||||||
| if(!f){f=window.PIE={Q:"-pie-",nb:"Pie",La:"pie_",Ac:{TD:1,TH:1},cc:{TABLE:1,THEAD:1,TBODY:1,TFOOT:1,TR:1,INPUT:1,TEXTAREA:1,SELECT:1,OPTION:1,IMG:1,HR:1},fc:{A:1,INPUT:1,TEXTAREA:1,SELECT:1,BUTTON:1},Gd:{submit:1,button:1,reset:1},aa:function(){}};try{doc.execCommand("BackgroundImageCache",false,true)}catch(aa){}for(var X=4,Y=doc.createElement("div"),ca=Y.getElementsByTagName("i"),Z;Y.innerHTML="<!--[if gt IE "+ ++X+"]><i></i><![endif]--\>",ca[0];);f.V=X;if(X===6)f.Q=f.Q.replace(/^-/,"");f.Ba=doc.documentMode|| |  | ||||||
| f.V;Y.innerHTML='<v:shape adj="1"/>';Z=Y.firstChild;Z.style.behavior="url(#default#VML)";f.zc=typeof Z.adj==="object";(function(){var a,b=0,c={};f.p={Za:function(d){if(!a){a=doc.createDocumentFragment();a.namespaces.add("css3vml","urn:schemas-microsoft-com:vml")}return a.createElement("css3vml:"+d)},Aa:function(d){return d&&d._pieId||(d._pieId="_"+ ++b)},Eb:function(d){var e,g,i,j,h=arguments;e=1;for(g=h.length;e<g;e++){j=h[e];for(i in j)if(j.hasOwnProperty(i))d[i]=j[i]}return d},Rb:function(d,e, |  | ||||||
| g){var i=c[d],j,h;if(i)Object.prototype.toString.call(i)==="[object Array]"?i.push([e,g]):e.call(g,i);else{h=c[d]=[[e,g]];j=new Image;j.onload=function(){i=c[d]={i:j.width,f:j.height};for(var k=0,n=h.length;k<n;k++)h[k][0].call(h[k][1],i);j.onload=null};j.src=d}}}})();f.Na={gc:function(a,b,c,d){function e(){k=i>=90&&i<270?b:0;n=i<180?c:0;l=b-k;q=c-n}function g(){for(;i<0;)i+=360;i%=360}var i=d.ra;d=d.zb;var j,h,k,n,l,q,s,m;if(d){d=d.coords(a,b,c);j=d.x;h=d.y}if(i){i=i.jd();g();e();if(!d){j=k;h=n}d= |  | ||||||
| f.Na.tc(j,h,i,l,q);a=d[0];d=d[1]}else if(d){a=b-j;d=c-h}else{j=h=a=0;d=c}s=a-j;m=d-h;if(i===void 0){i=!s?m<0?90:270:!m?s<0?180:0:-Math.atan2(m,s)/Math.PI*180;g();e()}return{ra:i,xc:j,yc:h,td:a,ud:d,Vd:k,Wd:n,rd:l,sd:q,kd:s,ld:m,rc:f.Na.dc(j,h,a,d)}},tc:function(a,b,c,d,e){if(c===0||c===180)return[d,b];else if(c===90||c===270)return[a,e];else{c=Math.tan(-c*Math.PI/180);a=c*a-b;b=-1/c;d=b*d-e;e=b-c;return[(d-a)/e,(c*d-b*a)/e]}},dc:function(a,b,c,d){a=c-a;b=d-b;return Math.abs(a===0?b:b===0?a:Math.sqrt(a* |  | ||||||
| a+b*b))}};f.ea=function(){this.Gb=[];this.oc={}};f.ea.prototype={ba:function(a){var b=f.p.Aa(a),c=this.oc,d=this.Gb;if(!(b in c)){c[b]=d.length;d.push(a)}},Ha:function(a){a=f.p.Aa(a);var b=this.oc;if(a&&a in b){delete this.Gb[b[a]];delete b[a]}},wa:function(){for(var a=this.Gb,b=a.length;b--;)a[b]&&a[b]()}};f.Oa=new f.ea;f.Oa.Qd=function(){var a=this;if(!a.Rd){setInterval(function(){a.wa()},250);a.Rd=1}};(function(){function a(){f.K.wa();window.detachEvent("onunload",a);window.PIE=null}f.K=new f.ea; |  | ||||||
| window.attachEvent("onunload",a);f.K.sa=function(b,c,d){b.attachEvent(c,d);this.ba(function(){b.detachEvent(c,d)})}})();f.Qa=new f.ea;f.K.sa(window,"onresize",function(){f.Qa.wa()});(function(){function a(){f.mb.wa()}f.mb=new f.ea;f.K.sa(window,"onscroll",a);f.Qa.ba(a)})();(function(){function a(){c=f.kb.md()}function b(){if(c){for(var d=0,e=c.length;d<e;d++)f.attach(c[d]);c=0}}var c;f.K.sa(window,"onbeforeprint",a);f.K.sa(window,"onafterprint",b)})();f.lb=new f.ea;f.K.sa(doc,"onmouseup",function(){f.lb.wa()}); |  | ||||||
| f.ge=function(){function a(h){this.Y=h}var b=doc.createElement("length-calc"),c=doc.documentElement,d=b.style,e={},g=["mm","cm","in","pt","pc"],i=g.length,j={};d.position="absolute";d.top=d.left="-9999px";for(c.appendChild(b);i--;){b.style.width="100"+g[i];e[g[i]]=b.offsetWidth/100}c.removeChild(b);b.style.width="1em";a.prototype={Kb:/(px|em|ex|mm|cm|in|pt|pc|%)$/,ic:function(){var h=this.Id;if(h===void 0)h=this.Id=parseFloat(this.Y);return h},yb:function(){var h=this.$d;if(!h)h=this.$d=(h=this.Y.match(this.Kb))&& |  | ||||||
| h[0]||"px";return h},a:function(h,k){var n=this.ic(),l=this.yb();switch(l){case "px":return n;case "%":return n*(typeof k==="function"?k():k)/100;case "em":return n*this.xb(h);case "ex":return n*this.xb(h)/2;default:return n*e[l]}},xb:function(h){var k=h.currentStyle.fontSize,n,l;if(k.indexOf("px")>0)return parseFloat(k);else if(h.tagName in f.cc){l=this;n=h.parentNode;return f.n(k).a(n,function(){return l.xb(n)})}else{h.appendChild(b);k=b.offsetWidth;b.parentNode===h&&h.removeChild(b);return k}}}; |  | ||||||
| f.n=function(h){return j[h]||(j[h]=new a(h))};return a}();f.Ja=function(){function a(e){this.X=e}var b=f.n("50%"),c={top:1,center:1,bottom:1},d={left:1,center:1,right:1};a.prototype={zd:function(){if(!this.ac){var e=this.X,g=e.length,i=f.v,j=i.pa,h=f.n("0");j=j.ma;h=["left",h,"top",h];if(g===1){e.push(new i.ob(j,"center"));g++}if(g===2){j&(e[0].k|e[1].k)&&e[0].d in c&&e[1].d in d&&e.push(e.shift());if(e[0].k&j)if(e[0].d==="center")h[1]=b;else h[0]=e[0].d;else if(e[0].W())h[1]=f.n(e[0].d);if(e[1].k& |  | ||||||
| j)if(e[1].d==="center")h[3]=b;else h[2]=e[1].d;else if(e[1].W())h[3]=f.n(e[1].d)}this.ac=h}return this.ac},coords:function(e,g,i){var j=this.zd(),h=j[1].a(e,g);e=j[3].a(e,i);return{x:j[0]==="right"?g-h:h,y:j[2]==="bottom"?i-e:e}}};return a}();f.Ka=function(){function a(b,c){this.i=b;this.f=c}a.prototype={a:function(b,c,d,e,g){var i=this.i,j=this.f,h=c/d;e=e/g;if(i==="contain"){i=e>h?c:d*e;j=e>h?c/e:d}else if(i==="cover"){i=e<h?c:d*e;j=e<h?c/e:d}else if(i==="auto"){j=j==="auto"?g:j.a(b,d);i=j*e}else{i= |  | ||||||
| i.a(b,c);j=j==="auto"?i/e:j.a(b,d)}return{i:i,f:j}}};a.Kc=new a("auto","auto");return a}();f.Ec=function(){function a(b){this.Y=b}a.prototype={Kb:/[a-z]+$/i,yb:function(){return this.ad||(this.ad=this.Y.match(this.Kb)[0].toLowerCase())},jd:function(){var b=this.Vc,c;if(b===undefined){b=this.yb();c=parseFloat(this.Y,10);b=this.Vc=b==="deg"?c:b==="rad"?c/Math.PI*180:b==="grad"?c/400*360:b==="turn"?c*360:0}return b}};return a}();f.Jc=function(){function a(c){this.Y=c}var b={};a.Pd=/\s*rgba\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d+|\d*\.\d+)\s*\)\s*/; |  | ||||||
| a.Fb={aliceblue:"F0F8FF",antiquewhite:"FAEBD7",aqua:"0FF",aquamarine:"7FFFD4",azure:"F0FFFF",beige:"F5F5DC",bisque:"FFE4C4",black:"000",blanchedalmond:"FFEBCD",blue:"00F",blueviolet:"8A2BE2",brown:"A52A2A",burlywood:"DEB887",cadetblue:"5F9EA0",chartreuse:"7FFF00",chocolate:"D2691E",coral:"FF7F50",cornflowerblue:"6495ED",cornsilk:"FFF8DC",crimson:"DC143C",cyan:"0FF",darkblue:"00008B",darkcyan:"008B8B",darkgoldenrod:"B8860B",darkgray:"A9A9A9",darkgreen:"006400",darkkhaki:"BDB76B",darkmagenta:"8B008B", |  | ||||||
| darkolivegreen:"556B2F",darkorange:"FF8C00",darkorchid:"9932CC",darkred:"8B0000",darksalmon:"E9967A",darkseagreen:"8FBC8F",darkslateblue:"483D8B",darkslategray:"2F4F4F",darkturquoise:"00CED1",darkviolet:"9400D3",deeppink:"FF1493",deepskyblue:"00BFFF",dimgray:"696969",dodgerblue:"1E90FF",firebrick:"B22222",floralwhite:"FFFAF0",forestgreen:"228B22",fuchsia:"F0F",gainsboro:"DCDCDC",ghostwhite:"F8F8FF",gold:"FFD700",goldenrod:"DAA520",gray:"808080",green:"008000",greenyellow:"ADFF2F",honeydew:"F0FFF0", |  | ||||||
| hotpink:"FF69B4",indianred:"CD5C5C",indigo:"4B0082",ivory:"FFFFF0",khaki:"F0E68C",lavender:"E6E6FA",lavenderblush:"FFF0F5",lawngreen:"7CFC00",lemonchiffon:"FFFACD",lightblue:"ADD8E6",lightcoral:"F08080",lightcyan:"E0FFFF",lightgoldenrodyellow:"FAFAD2",lightgreen:"90EE90",lightgrey:"D3D3D3",lightpink:"FFB6C1",lightsalmon:"FFA07A",lightseagreen:"20B2AA",lightskyblue:"87CEFA",lightslategray:"789",lightsteelblue:"B0C4DE",lightyellow:"FFFFE0",lime:"0F0",limegreen:"32CD32",linen:"FAF0E6",magenta:"F0F", |  | ||||||
| maroon:"800000",mediumauqamarine:"66CDAA",mediumblue:"0000CD",mediumorchid:"BA55D3",mediumpurple:"9370D8",mediumseagreen:"3CB371",mediumslateblue:"7B68EE",mediumspringgreen:"00FA9A",mediumturquoise:"48D1CC",mediumvioletred:"C71585",midnightblue:"191970",mintcream:"F5FFFA",mistyrose:"FFE4E1",moccasin:"FFE4B5",navajowhite:"FFDEAD",navy:"000080",oldlace:"FDF5E6",olive:"808000",olivedrab:"688E23",orange:"FFA500",orangered:"FF4500",orchid:"DA70D6",palegoldenrod:"EEE8AA",palegreen:"98FB98",paleturquoise:"AFEEEE", |  | ||||||
| palevioletred:"D87093",papayawhip:"FFEFD5",peachpuff:"FFDAB9",peru:"CD853F",pink:"FFC0CB",plum:"DDA0DD",powderblue:"B0E0E6",purple:"800080",red:"F00",rosybrown:"BC8F8F",royalblue:"4169E1",saddlebrown:"8B4513",salmon:"FA8072",sandybrown:"F4A460",seagreen:"2E8B57",seashell:"FFF5EE",sienna:"A0522D",silver:"C0C0C0",skyblue:"87CEEB",slateblue:"6A5ACD",slategray:"708090",snow:"FFFAFA",springgreen:"00FF7F",steelblue:"4682B4",tan:"D2B48C",teal:"008080",thistle:"D8BFD8",tomato:"FF6347",turquoise:"40E0D0", |  | ||||||
| violet:"EE82EE",wheat:"F5DEB3",white:"FFF",whitesmoke:"F5F5F5",yellow:"FF0",yellowgreen:"9ACD32"};a.prototype={parse:function(){if(!this.Ua){var c=this.Y,d;if(d=c.match(a.Pd)){this.Ua="rgb("+d[1]+","+d[2]+","+d[3]+")";this.Yb=parseFloat(d[4])}else{if((d=c.toLowerCase())in a.Fb)c="#"+a.Fb[d];this.Ua=c;this.Yb=c==="transparent"?0:1}}},T:function(c){this.parse();return this.Ua==="currentColor"?c.currentStyle.color:this.Ua},fa:function(){this.parse();return this.Yb}};f.ha=function(c){return b[c]||(b[c]= |  | ||||||
| new a(c))};return a}();f.v=function(){function a(c){this.$a=c;this.ch=0;this.X=[];this.Ga=0}var b=a.pa={Ia:1,Wb:2,B:4,Lc:8,Xb:16,ma:32,J:64,na:128,oa:256,Ra:512,Tc:1024,URL:2048};a.ob=function(c,d){this.k=c;this.d=d};a.ob.prototype={Ca:function(){return this.k&b.J||this.k&b.na&&this.d==="0"},W:function(){return this.Ca()||this.k&b.Ra}};a.prototype={ce:/\s/,Jd:/^[\+\-]?(\d*\.)?\d+/,url:/^url\(\s*("([^"]*)"|'([^']*)'|([!#$%&*-~]*))\s*\)/i,nc:/^\-?[_a-z][\w-]*/i,Xd:/^("([^"]*)"|'([^']*)')/,Bd:/^#([\da-f]{6}|[\da-f]{3})/i, |  | ||||||
| ae:{px:b.J,em:b.J,ex:b.J,mm:b.J,cm:b.J,"in":b.J,pt:b.J,pc:b.J,deg:b.Ia,rad:b.Ia,grad:b.Ia},fd:{rgb:1,rgba:1,hsl:1,hsla:1},next:function(c){function d(q,s){q=new a.ob(q,s);if(!c){k.X.push(q);k.Ga++}return q}function e(){k.Ga++;return null}var g,i,j,h,k=this;if(this.Ga<this.X.length)return this.X[this.Ga++];for(;this.ce.test(this.$a.charAt(this.ch));)this.ch++;if(this.ch>=this.$a.length)return e();i=this.ch;g=this.$a.substring(this.ch);j=g.charAt(0);switch(j){case "#":if(h=g.match(this.Bd)){this.ch+= |  | ||||||
| h[0].length;return d(b.B,h[0])}break;case '"':case "'":if(h=g.match(this.Xd)){this.ch+=h[0].length;return d(b.Tc,h[2]||h[3]||"")}break;case "/":case ",":this.ch++;return d(b.oa,j);case "u":if(h=g.match(this.url)){this.ch+=h[0].length;return d(b.URL,h[2]||h[3]||h[4]||"")}}if(h=g.match(this.Jd)){j=h[0];this.ch+=j.length;if(g.charAt(j.length)==="%"){this.ch++;return d(b.Ra,j+"%")}if(h=g.substring(j.length).match(this.nc)){j+=h[0];this.ch+=h[0].length;return d(this.ae[h[0].toLowerCase()]||b.Lc,j)}return d(b.na, |  | ||||||
| j)}if(h=g.match(this.nc)){j=h[0];this.ch+=j.length;if(j.toLowerCase()in f.Jc.Fb||j==="currentColor"||j==="transparent")return d(b.B,j);if(g.charAt(j.length)==="("){this.ch++;if(j.toLowerCase()in this.fd){g=function(q){return q&&q.k&b.na};h=function(q){return q&&q.k&(b.na|b.Ra)};var n=function(q,s){return q&&q.d===s},l=function(){return k.next(1)};if((j.charAt(0)==="r"?h(l()):g(l()))&&n(l(),",")&&h(l())&&n(l(),",")&&h(l())&&(j==="rgb"||j==="hsa"||n(l(),",")&&g(l()))&&n(l(),")"))return d(b.B,this.$a.substring(i, |  | ||||||
| this.ch));return e()}return d(b.Xb,j)}return d(b.ma,j)}this.ch++;return d(b.Wb,j)},D:function(){return this.X[this.Ga-- -2]},all:function(){for(;this.next(););return this.X},la:function(c,d){for(var e=[],g,i;g=this.next();){if(c(g)){i=true;this.D();break}e.push(g)}return d&&!i?null:e}};return a}();var da=function(a){this.e=a};da.prototype={Z:0,Nd:function(){var a=this.qb,b;return!a||(b=this.o())&&(a.x!==b.x||a.y!==b.y)},Sd:function(){var a=this.qb,b;return!a||(b=this.o())&&(a.i!==b.i||a.f!==b.f)}, |  | ||||||
| hc:function(){var a=this.e,b=a.getBoundingClientRect(),c=f.Ba===9;return{x:b.left,y:b.top,i:c?a.offsetWidth:b.right-b.left,f:c?a.offsetHeight:b.bottom-b.top}},o:function(){return this.Z?this.Va||(this.Va=this.hc()):this.hc()},Ad:function(){return!!this.qb},cb:function(){++this.Z},hb:function(){if(!--this.Z){if(this.Va)this.qb=this.Va;this.Va=null}}};(function(){function a(b){var c=f.p.Aa(b);return function(){if(this.Z){var d=this.$b||(this.$b={});return c in d?d[c]:(d[c]=b.call(this))}else return b.call(this)}} |  | ||||||
| f.C={Z:0,ja:function(b){function c(d){this.e=d;this.Zb=this.ia()}f.p.Eb(c.prototype,f.C,b);c.$c={};return c},j:function(){var b=this.ia(),c=this.constructor.$c;return b?b in c?c[b]:(c[b]=this.ka(b)):null},ia:a(function(){var b=this.e,c=this.constructor,d=b.style;b=b.currentStyle;var e=this.va,g=this.Fa,i=c.Yc||(c.Yc=f.Q+e);c=c.Zc||(c.Zc=f.nb+g.charAt(0).toUpperCase()+g.substring(1));return d[c]||b.getAttribute(i)||d[g]||b.getAttribute(e)}),h:a(function(){return!!this.j()}),G:a(function(){var b=this.ia(), |  | ||||||
| c=b!==this.Zb;this.Zb=b;return c}),ua:a,cb:function(){++this.Z},hb:function(){--this.Z||delete this.$b}}})();f.Sb=f.C.ja({va:f.Q+"background",Fa:f.nb+"Background",cd:{scroll:1,fixed:1,local:1},fb:{"repeat-x":1,"repeat-y":1,repeat:1,"no-repeat":1},sc:{"padding-box":1,"border-box":1,"content-box":1},Od:{top:1,right:1,bottom:1,left:1,center:1},Td:{contain:1,cover:1},eb:{Ma:"backgroundClip",B:"backgroundColor",da:"backgroundImage",Pa:"backgroundOrigin",R:"backgroundPosition",S:"backgroundRepeat",Sa:"backgroundSize"}, |  | ||||||
| ka:function(a){function b(v){return v&&v.W()||v.k&k&&v.d in m}function c(v){return v&&(v.W()&&f.n(v.d)||v.d==="auto"&&"auto")}var d=this.e.currentStyle,e,g,i,j=f.v.pa,h=j.oa,k=j.ma,n=j.B,l,q,s=0,m=this.Od,r,p,t={L:[]};if(this.wb()){e=new f.v(a);for(i={};g=e.next();){l=g.k;q=g.d;if(!i.N&&l&j.Xb&&q==="linear-gradient"){r={ca:[],N:q};for(p={};g=e.next();){l=g.k;q=g.d;if(l&j.Wb&&q===")"){p.color&&r.ca.push(p);r.ca.length>1&&f.p.Eb(i,r);break}if(l&n){if(r.ra||r.zb){g=e.D();if(g.k!==h)break;e.next()}p= |  | ||||||
| {color:f.ha(q)};g=e.next();if(g.W())p.db=f.n(g.d);else e.D()}else if(l&j.Ia&&!r.ra&&!p.color&&!r.ca.length)r.ra=new f.Ec(g.d);else if(b(g)&&!r.zb&&!p.color&&!r.ca.length){e.D();r.zb=new f.Ja(e.la(function(v){return!b(v)},false))}else if(l&h&&q===","){if(p.color){r.ca.push(p);p={}}}else break}}else if(!i.N&&l&j.URL){i.Ab=q;i.N="image"}else if(b(g)&&!i.$){e.D();i.$=new f.Ja(e.la(function(v){return!b(v)},false))}else if(l&k)if(q in this.fb&&!i.bb)i.bb=q;else if(q in this.sc&&!i.Wa){i.Wa=q;if((g=e.next())&& |  | ||||||
| g.k&k&&g.d in this.sc)i.ub=g.d;else{i.ub=q;e.D()}}else if(q in this.cd&&!i.bc)i.bc=q;else return null;else if(l&n&&!t.color)t.color=f.ha(q);else if(l&h&&q==="/"&&!i.Xa&&i.$){g=e.next();if(g.k&k&&g.d in this.Td)i.Xa=new f.Ka(g.d);else if(g=c(g)){l=c(e.next());if(!l){l=g;e.D()}i.Xa=new f.Ka(g,l)}else return null}else if(l&h&&q===","&&i.N){i.Hb=a.substring(s,e.ch-1);s=e.ch;t.L.push(i);i={}}else return null}if(i.N){i.Hb=a.substring(s);t.L.push(i)}}else this.Bc(f.Ba<9?function(){var v=this.eb,o=d[v.R+ |  | ||||||
| "X"],u=d[v.R+"Y"],x=d[v.da],y=d[v.B];if(y!=="transparent")t.color=f.ha(y);if(x!=="none")t.L=[{N:"image",Ab:(new f.v(x)).next().d,bb:d[v.S],$:new f.Ja((new f.v(o+" "+u)).all())}]}:function(){var v=this.eb,o=/\s*,\s*/,u=d[v.da].split(o),x=d[v.B],y,z,D,G,E,B;if(x!=="transparent")t.color=f.ha(x);if((G=u.length)&&u[0]!=="none"){x=d[v.S].split(o);y=d[v.R].split(o);z=d[v.Pa].split(o);D=d[v.Ma].split(o);v=d[v.Sa].split(o);t.L=[];for(o=0;o<G;o++)if((E=u[o])&&E!=="none"){B=v[o].split(" ");t.L.push({Hb:E+" "+ |  | ||||||
| x[o]+" "+y[o]+" / "+v[o]+" "+z[o]+" "+D[o],N:"image",Ab:(new f.v(E)).next().d,bb:x[o],$:new f.Ja((new f.v(y[o])).all()),Wa:z[o],ub:D[o],Xa:new f.Ka(B[0],B[1])})}}});return t.color||t.L[0]?t:null},Bc:function(a){var b=f.Ba>8,c=this.eb,d=this.e.runtimeStyle,e=d[c.da],g=d[c.B],i=d[c.S],j,h,k,n;if(e)d[c.da]="";if(g)d[c.B]="";if(i)d[c.S]="";if(b){j=d[c.Ma];h=d[c.Pa];n=d[c.R];k=d[c.Sa];if(j)d[c.Ma]="";if(h)d[c.Pa]="";if(n)d[c.R]="";if(k)d[c.Sa]=""}a=a.call(this);if(e)d[c.da]=e;if(g)d[c.B]=g;if(i)d[c.S]= |  | ||||||
| i;if(b){if(j)d[c.Ma]=j;if(h)d[c.Pa]=h;if(n)d[c.R]=n;if(k)d[c.Sa]=k}return a},ia:f.C.ua(function(){return this.wb()||this.Bc(function(){var a=this.e.currentStyle,b=this.eb;return a[b.B]+" "+a[b.da]+" "+a[b.S]+" "+a[b.R+"X"]+" "+a[b.R+"Y"]})}),wb:f.C.ua(function(){var a=this.e;return a.style[this.Fa]||a.currentStyle.getAttribute(this.va)}),qc:function(){var a=0;if(f.V<7){a=this.e;a=""+(a.style[f.nb+"PngFix"]||a.currentStyle.getAttribute(f.Q+"png-fix"))==="true"}return a},h:f.C.ua(function(){return(this.wb()|| |  | ||||||
| this.qc())&&!!this.j()})});f.Vb=f.C.ja({wc:["Top","Right","Bottom","Left"],Hd:{thin:"1px",medium:"3px",thick:"5px"},ka:function(){var a={},b={},c={},d=false,e=true,g=true,i=true;this.Cc(function(){for(var j=this.e.currentStyle,h=0,k,n,l,q,s,m,r;h<4;h++){l=this.wc[h];r=l.charAt(0).toLowerCase();k=b[r]=j["border"+l+"Style"];n=j["border"+l+"Color"];l=j["border"+l+"Width"];if(h>0){if(k!==q)g=false;if(n!==s)e=false;if(l!==m)i=false}q=k;s=n;m=l;c[r]=f.ha(n);l=a[r]=f.n(b[r]==="none"?"0":this.Hd[l]||l);if(l.a(this.e)> |  | ||||||
| 0)d=true}});return d?{I:a,Yd:b,gd:c,de:i,hd:e,Zd:g}:null},ia:f.C.ua(function(){var a=this.e,b=a.currentStyle,c;a.tagName in f.Ac&&a.offsetParent.currentStyle.borderCollapse==="collapse"||this.Cc(function(){c=b.borderWidth+"|"+b.borderStyle+"|"+b.borderColor});return c}),Cc:function(a){var b=this.e.runtimeStyle,c=b.borderWidth,d=b.borderColor;if(c)b.borderWidth="";if(d)b.borderColor="";a=a.call(this);if(c)b.borderWidth=c;if(d)b.borderColor=d;return a}});(function(){f.jb=f.C.ja({va:"border-radius", |  | ||||||
| Fa:"borderRadius",ka:function(b){var c=null,d,e,g,i,j=false;if(b){e=new f.v(b);var h=function(){for(var k=[],n;(g=e.next())&&g.W();){i=f.n(g.d);n=i.ic();if(n<0)return null;if(n>0)j=true;k.push(i)}return k.length>0&&k.length<5?{tl:k[0],tr:k[1]||k[0],br:k[2]||k[0],bl:k[3]||k[1]||k[0]}:null};if(b=h()){if(g){if(g.k&f.v.pa.oa&&g.d==="/")d=h()}else d=b;if(j&&b&&d)c={x:b,y:d}}}return c}});var a=f.n("0");a={tl:a,tr:a,br:a,bl:a};f.jb.Dc={x:a,y:a}})();f.Ub=f.C.ja({va:"border-image",Fa:"borderImage",fb:{stretch:1, |  | ||||||
| round:1,repeat:1,space:1},ka:function(a){var b=null,c,d,e,g,i,j,h=0,k=f.v.pa,n=k.ma,l=k.na,q=k.Ra;if(a){c=new f.v(a);b={};for(var s=function(p){return p&&p.k&k.oa&&p.d==="/"},m=function(p){return p&&p.k&n&&p.d==="fill"},r=function(){g=c.la(function(p){return!(p.k&(l|q))});if(m(c.next())&&!b.fill)b.fill=true;else c.D();if(s(c.next())){h++;i=c.la(function(p){return!p.W()&&!(p.k&n&&p.d==="auto")});if(s(c.next())){h++;j=c.la(function(p){return!p.Ca()})}}else c.D()};a=c.next();){d=a.k;e=a.d;if(d&(l|q)&& |  | ||||||
| !g){c.D();r()}else if(m(a)&&!b.fill){b.fill=true;r()}else if(d&n&&this.fb[e]&&!b.repeat){b.repeat={f:e};if(a=c.next())if(a.k&n&&this.fb[a.d])b.repeat.Ob=a.d;else c.D()}else if(d&k.URL&&!b.src)b.src=e;else return null}if(!b.src||!g||g.length<1||g.length>4||i&&i.length>4||h===1&&i.length<1||j&&j.length>4||h===2&&j.length<1)return null;if(!b.repeat)b.repeat={f:"stretch"};if(!b.repeat.Ob)b.repeat.Ob=b.repeat.f;a=function(p,t){return{t:t(p[0]),r:t(p[1]||p[0]),b:t(p[2]||p[0]),l:t(p[3]||p[1]||p[0])}};b.slice= |  | ||||||
| a(g,function(p){return f.n(p.k&l?p.d+"px":p.d)});if(i&&i[0])b.I=a(i,function(p){return p.W()?f.n(p.d):p.d});if(j&&j[0])b.Da=a(j,function(p){return p.Ca()?f.n(p.d):p.d})}return b}});f.Ic=f.C.ja({va:"box-shadow",Fa:"boxShadow",ka:function(a){var b,c=f.n,d=f.v.pa,e;if(a){e=new f.v(a);b={Da:[],Bb:[]};for(a=function(){for(var g,i,j,h,k,n;g=e.next();){j=g.d;i=g.k;if(i&d.oa&&j===",")break;else if(g.Ca()&&!k){e.D();k=e.la(function(l){return!l.Ca()})}else if(i&d.B&&!h)h=j;else if(i&d.ma&&j==="inset"&&!n)n= |  | ||||||
| true;else return false}g=k&&k.length;if(g>1&&g<5){(n?b.Bb:b.Da).push({ee:c(k[0].d),fe:c(k[1].d),blur:c(k[2]?k[2].d:"0"),Ud:c(k[3]?k[3].d:"0"),color:f.ha(h||"currentColor")});return true}return false};a(););}return b&&(b.Bb.length||b.Da.length)?b:null}});f.Uc=f.C.ja({ia:f.C.ua(function(){var a=this.e.currentStyle;return a.visibility+"|"+a.display}),ka:function(){var a=this.e,b=a.runtimeStyle;a=a.currentStyle;var c=b.visibility,d;b.visibility="";d=a.visibility;b.visibility=c;return{be:d!=="hidden", |  | ||||||
| nd:a.display!=="none"}},h:function(){return false}});f.u={P:function(a){function b(c,d,e,g){this.e=c;this.s=d;this.g=e;this.parent=g}f.p.Eb(b.prototype,f.u,a);return b},Cb:false,O:function(){return false},Ea:f.aa,Lb:function(){this.m();this.h()&&this.U()},ib:function(){this.Cb=true},Mb:function(){this.h()?this.U():this.m()},sb:function(a,b){this.vc(a);for(var c=this.qa||(this.qa=[]),d=a+1,e=c.length,g;d<e;d++)if(g=c[d])break;c[a]=b;this.H().insertBefore(b,g||null)},ya:function(a){var b=this.qa;return b&& |  | ||||||
| b[a]||null},vc:function(a){var b=this.ya(a),c=this.Ta;if(b&&c){c.removeChild(b);this.qa[a]=null}},za:function(a,b,c,d){var e=this.rb||(this.rb={}),g=e[a];if(!g){g=e[a]=f.p.Za("shape");if(b)g.appendChild(g[b]=f.p.Za(b));if(d){c=this.ya(d);if(!c){this.sb(d,doc.createElement("group"+d));c=this.ya(d)}}c.appendChild(g);a=g.style;a.position="absolute";a.left=a.top=0;a.behavior="url(#default#VML)"}return g},vb:function(a){var b=this.rb,c=b&&b[a];if(c){c.parentNode.removeChild(c);delete b[a]}return!!c},kc:function(a){var b= |  | ||||||
| this.e,c=this.s.o(),d=c.i,e=c.f,g,i,j,h,k,n;c=a.x.tl.a(b,d);g=a.y.tl.a(b,e);i=a.x.tr.a(b,d);j=a.y.tr.a(b,e);h=a.x.br.a(b,d);k=a.y.br.a(b,e);n=a.x.bl.a(b,d);a=a.y.bl.a(b,e);d=Math.min(d/(c+i),e/(j+k),d/(n+h),e/(g+a));if(d<1){c*=d;g*=d;i*=d;j*=d;h*=d;k*=d;n*=d;a*=d}return{x:{tl:c,tr:i,br:h,bl:n},y:{tl:g,tr:j,br:k,bl:a}}},xa:function(a,b,c){b=b||1;var d,e,g=this.s.o();e=g.i*b;g=g.f*b;var i=this.g.F,j=Math.floor,h=Math.ceil,k=a?a.Jb*b:0,n=a?a.Ib*b:0,l=a?a.tb*b:0;a=a?a.Db*b:0;var q,s,m,r,p;if(c||i.h()){d= |  | ||||||
| this.kc(c||i.j());c=d.x.tl*b;i=d.y.tl*b;q=d.x.tr*b;s=d.y.tr*b;m=d.x.br*b;r=d.y.br*b;p=d.x.bl*b;b=d.y.bl*b;e="m"+j(a)+","+j(i)+"qy"+j(c)+","+j(k)+"l"+h(e-q)+","+j(k)+"qx"+h(e-n)+","+j(s)+"l"+h(e-n)+","+h(g-r)+"qy"+h(e-m)+","+h(g-l)+"l"+j(p)+","+h(g-l)+"qx"+j(a)+","+h(g-b)+" x e"}else e="m"+j(a)+","+j(k)+"l"+h(e-n)+","+j(k)+"l"+h(e-n)+","+h(g-l)+"l"+j(a)+","+h(g-l)+"xe";return e},H:function(){var a=this.parent.ya(this.M),b;if(!a){a=doc.createElement(this.Ya);b=a.style;b.position="absolute";b.top=b.left= |  | ||||||
| 0;this.parent.sb(this.M,a)}return a},mc:function(){var a=this.e,b=a.currentStyle,c=a.runtimeStyle,d=a.tagName,e=f.V===6,g;if(e&&(d in f.cc||d==="FIELDSET")||d==="BUTTON"||d==="INPUT"&&a.type in f.Gd){c.borderWidth="";d=this.g.z.wc;for(g=d.length;g--;){e=d[g];c["padding"+e]="";c["padding"+e]=f.n(b["padding"+e]).a(a)+f.n(b["border"+e+"Width"]).a(a)+(f.V!==8&&g%2?1:0)}c.borderWidth=0}else if(e){if(a.childNodes.length!==1||a.firstChild.tagName!=="ie6-mask"){b=doc.createElement("ie6-mask");d=b.style;d.visibility= |  | ||||||
| "visible";for(d.zoom=1;d=a.firstChild;)b.appendChild(d);a.appendChild(b);c.visibility="hidden"}}else c.borderColor="transparent"},he:function(){},m:function(){this.parent.vc(this.M);delete this.rb;delete this.qa}};f.Rc=f.u.P({h:function(){var a=this.ed;for(var b in a)if(a.hasOwnProperty(b)&&a[b].h())return true;return false},O:function(){return this.g.Pb.G()},ib:function(){if(this.h()){var a=this.jc(),b=a,c;a=a.currentStyle;var d=a.position,e=this.H().style,g=0,i=0;i=this.s.o();if(d==="fixed"&&f.V> |  | ||||||
| 6){g=i.x;i=i.y;b=d}else{do b=b.offsetParent;while(b&&b.currentStyle.position==="static");if(b){c=b.getBoundingClientRect();b=b.currentStyle;g=i.x-c.left-(parseFloat(b.borderLeftWidth)||0);i=i.y-c.top-(parseFloat(b.borderTopWidth)||0)}else{b=doc.documentElement;g=i.x+b.scrollLeft-b.clientLeft;i=i.y+b.scrollTop-b.clientTop}b="absolute"}e.position=b;e.left=g;e.top=i;e.zIndex=d==="static"?-1:a.zIndex;this.Cb=true}},Mb:f.aa,Nb:function(){var a=this.g.Pb.j();this.H().style.display=a.be&&a.nd?"":"none"}, |  | ||||||
| Lb:function(){this.h()?this.Nb():this.m()},jc:function(){var a=this.e;return a.tagName in f.Ac?a.offsetParent:a},H:function(){var a=this.Ta,b;if(!a){b=this.jc();a=this.Ta=doc.createElement("css3-container");a.style.direction="ltr";this.Nb();b.parentNode.insertBefore(a,b)}return a},ab:f.aa,m:function(){var a=this.Ta,b;if(a&&(b=a.parentNode))b.removeChild(a);delete this.Ta;delete this.qa}});f.Fc=f.u.P({M:2,Ya:"background",O:function(){var a=this.g;return a.w.G()||a.F.G()},h:function(){var a=this.g; |  | ||||||
| return a.q.h()||a.F.h()||a.w.h()||a.ga.h()&&a.ga.j().Bb},U:function(){var a=this.s.o();if(a.i&&a.f){this.od();this.pd()}},od:function(){var a=this.g.w.j(),b=this.s.o(),c=this.e,d=a&&a.color,e,g;if(d&&d.fa()>0){this.lc();a=this.za("bgColor","fill",this.H(),1);e=b.i;b=b.f;a.stroked=false;a.coordsize=e*2+","+b*2;a.coordorigin="1,1";a.path=this.xa(null,2);g=a.style;g.width=e;g.height=b;a.fill.color=d.T(c);c=d.fa();if(c<1)a.fill.opacity=c}else this.vb("bgColor")},pd:function(){var a=this.g.w.j(),b=this.s.o(); |  | ||||||
| a=a&&a.L;var c,d,e,g,i;if(a){this.lc();d=b.i;e=b.f;for(i=a.length;i--;){b=a[i];c=this.za("bgImage"+i,"fill",this.H(),2);c.stroked=false;c.fill.type="tile";c.fillcolor="none";c.coordsize=d*2+","+e*2;c.coordorigin="1,1";c.path=this.xa(0,2);g=c.style;g.width=d;g.height=e;if(b.N==="linear-gradient")this.bd(c,b);else{c.fill.src=b.Ab;this.Md(c,i)}}}for(i=a?a.length:0;this.vb("bgImage"+i++););},Md:function(a,b){var c=this;f.p.Rb(a.fill.src,function(d){var e=c.e,g=c.s.o(),i=g.i;g=g.f;if(i&&g){var j=a.fill, |  | ||||||
| h=c.g,k=h.z.j(),n=k&&k.I;k=n?n.t.a(e):0;var l=n?n.r.a(e):0,q=n?n.b.a(e):0;n=n?n.l.a(e):0;h=h.w.j().L[b];e=h.$?h.$.coords(e,i-d.i-n-l,g-d.f-k-q):{x:0,y:0};h=h.bb;q=l=0;var s=i+1,m=g+1,r=f.V===8?0:1;n=Math.round(e.x)+n+0.5;k=Math.round(e.y)+k+0.5;j.position=n/i+","+k/g;if(h&&h!=="repeat"){if(h==="repeat-x"||h==="no-repeat"){l=k+1;m=k+d.f+r}if(h==="repeat-y"||h==="no-repeat"){q=n+1;s=n+d.i+r}a.style.clip="rect("+l+"px,"+s+"px,"+m+"px,"+q+"px)"}}})},bd:function(a,b){var c=this.e,d=this.s.o(),e=d.i,g= |  | ||||||
| d.f;a=a.fill;d=b.ca;var i=d.length,j=Math.PI,h=f.Na,k=h.tc,n=h.dc;b=h.gc(c,e,g,b);h=b.ra;var l=b.xc,q=b.yc,s=b.Vd,m=b.Wd,r=b.rd,p=b.sd,t=b.kd,v=b.ld;b=b.rc;e=h%90?Math.atan2(t*e/g,v)/j*180:h+90;e+=180;e%=360;r=k(s,m,h,r,p);g=n(s,m,r[0],r[1]);j=[];r=k(l,q,h,s,m);n=n(l,q,r[0],r[1])/g*100;k=[];for(h=0;h<i;h++)k.push(d[h].db?d[h].db.a(c,b):h===0?0:h===i-1?b:null);for(h=1;h<i;h++){if(k[h]===null){l=k[h-1];b=h;do q=k[++b];while(q===null);k[h]=l+(q-l)/(b-h+1)}k[h]=Math.max(k[h],k[h-1])}for(h=0;h<i;h++)j.push(n+ |  | ||||||
| k[h]/g*100+"% "+d[h].color.T(c));a.angle=e;a.type="gradient";a.method="sigma";a.color=d[0].color.T(c);a.color2=d[i-1].color.T(c);if(a.colors)a.colors.value=j.join(",");else a.colors=j.join(",")},lc:function(){var a=this.e.runtimeStyle;a.backgroundImage="url(about:blank)";a.backgroundColor="transparent"},m:function(){f.u.m.call(this);var a=this.e.runtimeStyle;a.backgroundImage=a.backgroundColor=""}});f.Gc=f.u.P({M:4,Ya:"border",O:function(){var a=this.g;return a.z.G()||a.F.G()},h:function(){var a= |  | ||||||
| this.g;return(a.F.h()||a.w.h())&&!a.q.h()&&a.z.h()},U:function(){var a=this.e,b=this.g.z.j(),c=this.s.o(),d=c.i;c=c.f;var e,g,i,j,h;if(b){this.mc();b=this.wd(2);j=0;for(h=b.length;j<h;j++){i=b[j];e=this.za("borderPiece"+j,i.stroke?"stroke":"fill",this.H());e.coordsize=d*2+","+c*2;e.coordorigin="1,1";e.path=i.path;g=e.style;g.width=d;g.height=c;e.filled=!!i.fill;e.stroked=!!i.stroke;if(i.stroke){e=e.stroke;e.weight=i.Qb+"px";e.color=i.color.T(a);e.dashstyle=i.stroke==="dashed"?"2 2":i.stroke==="dotted"? |  | ||||||
| "1 1":"solid";e.linestyle=i.stroke==="double"&&i.Qb>2?"ThinThin":"Single"}else e.fill.color=i.fill.T(a)}for(;this.vb("borderPiece"+j++););}},wd:function(a){var b=this.e,c,d,e,g=this.g.z,i=[],j,h,k,n,l=Math.round,q,s,m;if(g.h()){c=g.j();g=c.I;s=c.Yd;m=c.gd;if(c.de&&c.Zd&&c.hd){if(m.t.fa()>0){c=g.t.a(b);k=c/2;i.push({path:this.xa({Jb:k,Ib:k,tb:k,Db:k},a),stroke:s.t,color:m.t,Qb:c})}}else{a=a||1;c=this.s.o();d=c.i;e=c.f;c=l(g.t.a(b));k=l(g.r.a(b));n=l(g.b.a(b));b=l(g.l.a(b));var r={t:c,r:k,b:n,l:b}; |  | ||||||
| b=this.g.F;if(b.h())q=this.kc(b.j());j=Math.floor;h=Math.ceil;var p=function(o,u){return q?q[o][u]:0},t=function(o,u,x,y,z,D){var G=p("x",o),E=p("y",o),B=o.charAt(1)==="r";o=o.charAt(0)==="b";return G>0&&E>0?(D?"al":"ae")+(B?h(d-G):j(G))*a+","+(o?h(e-E):j(E))*a+","+(j(G)-u)*a+","+(j(E)-x)*a+","+y*65535+","+2949075*(z?1:-1):(D?"m":"l")+(B?d-u:u)*a+","+(o?e-x:x)*a},v=function(o,u,x,y){var z=o==="t"?j(p("x","tl"))*a+","+h(u)*a:o==="r"?h(d-u)*a+","+j(p("y","tr"))*a:o==="b"?h(d-p("x","br"))*a+","+j(e- |  | ||||||
| u)*a:j(u)*a+","+h(e-p("y","bl"))*a;o=o==="t"?h(d-p("x","tr"))*a+","+h(u)*a:o==="r"?h(d-u)*a+","+h(e-p("y","br"))*a:o==="b"?j(p("x","bl"))*a+","+j(e-u)*a:j(u)*a+","+j(p("y","tl"))*a;return x?(y?"m"+o:"")+"l"+z:(y?"m"+z:"")+"l"+o};b=function(o,u,x,y,z,D){var G=o==="l"||o==="r",E=r[o],B,A;if(E>0&&s[o]!=="none"&&m[o].fa()>0){B=r[G?o:u];u=r[G?u:o];A=r[G?o:x];x=r[G?x:o];if(s[o]==="dashed"||s[o]==="dotted"){i.push({path:t(y,B,u,D+45,0,1)+t(y,0,0,D,1,0),fill:m[o]});i.push({path:v(o,E/2,0,1),stroke:s[o],Qb:E, |  | ||||||
| color:m[o]});i.push({path:t(z,A,x,D,0,1)+t(z,0,0,D-45,1,0),fill:m[o]})}else i.push({path:t(y,B,u,D+45,0,1)+v(o,E,0,0)+t(z,A,x,D,0,0)+(s[o]==="double"&&E>2?t(z,A-j(A/3),x-j(x/3),D-45,1,0)+v(o,h(E/3*2),1,0)+t(y,B-j(B/3),u-j(u/3),D,1,0)+"x "+t(y,j(B/3),j(u/3),D+45,0,1)+v(o,j(E/3),1,0)+t(z,j(A/3),j(x/3),D,0,0):"")+t(z,0,0,D-45,1,0)+v(o,0,1,0)+t(y,0,0,D,1,0),fill:m[o]})}};b("t","l","r","tl","tr",90);b("r","t","b","tr","br",0);b("b","r","l","br","bl",-90);b("l","b","t","bl","tl",-180)}}return i},m:function(){if(this.ec|| |  | ||||||
| !this.g.q.h())this.e.runtimeStyle.borderColor="";f.u.m.call(this)}});f.Tb=f.u.P({M:5,Ld:["t","tr","r","br","b","bl","l","tl","c"],O:function(){return this.g.q.G()},h:function(){return this.g.q.h()},U:function(){this.H();var a=this.g.q.j(),b=this.g.z.j(),c=this.s.o(),d=this.e,e=this.uc;f.p.Rb(a.src,function(g){function i(v,o,u,x,y){v=e[v].style;var z=Math.max;v.width=z(o,0);v.height=z(u,0);v.left=x;v.top=y}function j(v,o,u){for(var x=0,y=v.length;x<y;x++)e[v[x]].imagedata[o]=u}var h=c.i,k=c.f,n=f.n("0"), |  | ||||||
| l=a.I||(b?b.I:{t:n,r:n,b:n,l:n});n=l.t.a(d);var q=l.r.a(d),s=l.b.a(d);l=l.l.a(d);var m=a.slice,r=m.t.a(d),p=m.r.a(d),t=m.b.a(d);m=m.l.a(d);i("tl",l,n,0,0);i("t",h-l-q,n,l,0);i("tr",q,n,h-q,0);i("r",q,k-n-s,h-q,n);i("br",q,s,h-q,k-s);i("b",h-l-q,s,l,k-s);i("bl",l,s,0,k-s);i("l",l,k-n-s,0,n);i("c",h-l-q,k-n-s,l,n);j(["tl","t","tr"],"cropBottom",(g.f-r)/g.f);j(["tl","l","bl"],"cropRight",(g.i-m)/g.i);j(["bl","b","br"],"cropTop",(g.f-t)/g.f);j(["tr","r","br"],"cropLeft",(g.i-p)/g.i);j(["l","r","c"],"cropTop", |  | ||||||
| r/g.f);j(["l","r","c"],"cropBottom",t/g.f);j(["t","b","c"],"cropLeft",m/g.i);j(["t","b","c"],"cropRight",p/g.i);e.c.style.display=a.fill?"":"none"},this)},H:function(){var a=this.parent.ya(this.M),b,c,d,e=this.Ld,g=e.length;if(!a){a=doc.createElement("border-image");b=a.style;b.position="absolute";this.uc={};for(d=0;d<g;d++){c=this.uc[e[d]]=f.p.Za("rect");c.appendChild(f.p.Za("imagedata"));b=c.style;b.behavior="url(#default#VML)";b.position="absolute";b.top=b.left=0;c.imagedata.src=this.g.q.j().src; |  | ||||||
| c.stroked=false;c.filled=false;a.appendChild(c)}this.parent.sb(this.M,a)}return a},Ea:function(){if(this.h()){var a=this.e,b=a.runtimeStyle,c=this.g.q.j().I;b.borderStyle="solid";if(c){b.borderTopWidth=c.t.a(a)+"px";b.borderRightWidth=c.r.a(a)+"px";b.borderBottomWidth=c.b.a(a)+"px";b.borderLeftWidth=c.l.a(a)+"px"}this.mc()}},m:function(){var a=this.e.runtimeStyle;a.borderStyle="";if(this.ec||!this.g.z.h())a.borderColor=a.borderWidth="";f.u.m.call(this)}});f.Hc=f.u.P({M:1,Ya:"outset-box-shadow",O:function(){var a= |  | ||||||
| this.g;return a.ga.G()||a.F.G()},h:function(){var a=this.g.ga;return a.h()&&a.j().Da[0]},U:function(){function a(B,A,L,N,H,I,F){B=b.za("shadow"+B+A,"fill",d,i-B);A=B.fill;B.coordsize=n*2+","+l*2;B.coordorigin="1,1";B.stroked=false;B.filled=true;A.color=H.T(c);if(I){A.type="gradienttitle";A.color2=A.color;A.opacity=0}B.path=F;p=B.style;p.left=L;p.top=N;p.width=n;p.height=l;return B}var b=this,c=this.e,d=this.H(),e=this.g,g=e.ga.j().Da;e=e.F.j();var i=g.length,j=i,h,k=this.s.o(),n=k.i,l=k.f;k=f.V=== |  | ||||||
| 8?1:0;for(var q=["tl","tr","br","bl"],s,m,r,p,t,v,o,u,x,y,z,D,G,E;j--;){m=g[j];t=m.ee.a(c);v=m.fe.a(c);h=m.Ud.a(c);o=m.blur.a(c);m=m.color;u=-h-o;if(!e&&o)e=f.jb.Dc;u=this.xa({Jb:u,Ib:u,tb:u,Db:u},2,e);if(o){x=(h+o)*2+n;y=(h+o)*2+l;z=o*2/x;D=o*2/y;if(o-h>n/2||o-h>l/2)for(h=4;h--;){s=q[h];G=s.charAt(0)==="b";E=s.charAt(1)==="r";s=a(j,s,t,v,m,o,u);r=s.fill;r.focusposition=(E?1-z:z)+","+(G?1-D:D);r.focussize="0,0";s.style.clip="rect("+((G?y/2:0)+k)+"px,"+(E?x:x/2)+"px,"+(G?y:y/2)+"px,"+((E?x/2:0)+k)+ |  | ||||||
| "px)"}else{s=a(j,"",t,v,m,o,u);r=s.fill;r.focusposition=z+","+D;r.focussize=1-z*2+","+(1-D*2)}}else{s=a(j,"",t,v,m,o,u);t=m.fa();if(t<1)s.fill.opacity=t}}}});f.Pc=f.u.P({M:6,Ya:"imgEl",O:function(){var a=this.g;return this.e.src!==this.Xc||a.F.G()},h:function(){var a=this.g;return a.F.h()||a.w.qc()},U:function(){this.Xc=i;this.Cd();var a=this.za("img","fill",this.H()),b=a.fill,c=this.s.o(),d=c.i;c=c.f;var e=this.g.z.j(),g=e&&e.I;e=this.e;var i=e.src,j=Math.round,h=e.currentStyle,k=f.n;if(!g||f.V< |  | ||||||
| 7){g=f.n("0");g={t:g,r:g,b:g,l:g}}a.stroked=false;b.type="frame";b.src=i;b.position=(d?0.5/d:0)+","+(c?0.5/c:0);a.coordsize=d*2+","+c*2;a.coordorigin="1,1";a.path=this.xa({Jb:j(g.t.a(e)+k(h.paddingTop).a(e)),Ib:j(g.r.a(e)+k(h.paddingRight).a(e)),tb:j(g.b.a(e)+k(h.paddingBottom).a(e)),Db:j(g.l.a(e)+k(h.paddingLeft).a(e))},2);a=a.style;a.width=d;a.height=c},Cd:function(){this.e.runtimeStyle.filter="alpha(opacity=0)"},m:function(){f.u.m.call(this);this.e.runtimeStyle.filter=""}});f.Oc=f.u.P({ib:f.aa, |  | ||||||
| Mb:f.aa,Nb:f.aa,Lb:f.aa,Kd:/^,+|,+$/g,Fd:/,+/g,gb:function(a,b){(this.pb||(this.pb=[]))[a]=b||void 0},ab:function(){var a=this.pb,b;if(a&&(b=a.join(",").replace(this.Kd,"").replace(this.Fd,","))!==this.Wc)this.Wc=this.e.runtimeStyle.background=b},m:function(){this.e.runtimeStyle.background="";delete this.pb}});f.Mc=f.u.P({ta:1,O:function(){return this.g.w.G()},h:function(){var a=this.g;return a.w.h()||a.q.h()},U:function(){var a=this.g.w.j(),b,c,d=0,e,g;if(a){b=[];if(c=a.L)for(;e=c[d++];)if(e.N=== |  | ||||||
| "linear-gradient"){g=this.vd(e.Wa);g=(e.Xa||f.Ka.Kc).a(this.e,g.i,g.f,g.i,g.f);b.push("url(data:image/svg+xml,"+escape(this.xd(e,g.i,g.f))+") "+this.dd(e.$)+" / "+g.i+"px "+g.f+"px "+(e.bc||"")+" "+(e.Wa||"")+" "+(e.ub||""))}else b.push(e.Hb);a.color&&b.push(a.color.Y);this.parent.gb(this.ta,b.join(","))}},dd:function(a){return a?a.X.map(function(b){return b.d}).join(" "):"0 0"},vd:function(a){var b=this.e,c=this.s.o(),d=c.i;c=c.f;var e;if(a!=="border-box")if((e=this.g.z.j())&&(e=e.I)){d-=e.l.a(b)+ |  | ||||||
| e.l.a(b);c-=e.t.a(b)+e.b.a(b)}if(a==="content-box"){a=f.n;e=b.currentStyle;d-=a(e.paddingLeft).a(b)+a(e.paddingRight).a(b);c-=a(e.paddingTop).a(b)+a(e.paddingBottom).a(b)}return{i:d,f:c}},xd:function(a,b,c){var d=this.e,e=a.ca,g=e.length,i=f.Na.gc(d,b,c,a);a=i.xc;var j=i.yc,h=i.td,k=i.ud;i=i.rc;var n,l,q,s,m;n=[];for(l=0;l<g;l++)n.push(e[l].db?e[l].db.a(d,i):l===0?0:l===g-1?i:null);for(l=1;l<g;l++)if(n[l]===null){s=n[l-1];q=l;do m=n[++q];while(m===null);n[l]=s+(m-s)/(q-l+1)}b=['<svg width="'+b+'" height="'+ |  | ||||||
| c+'" xmlns="http://www.w3.org/2000/svg"><defs><linearGradient id="g" gradientUnits="userSpaceOnUse" x1="'+a/b*100+'%" y1="'+j/c*100+'%" x2="'+h/b*100+'%" y2="'+k/c*100+'%">'];for(l=0;l<g;l++)b.push('<stop offset="'+n[l]/i+'" stop-color="'+e[l].color.T(d)+'" stop-opacity="'+e[l].color.fa()+'"/>');b.push('</linearGradient></defs><rect width="100%" height="100%" fill="url(#g)"/></svg>');return b.join("")},m:function(){this.parent.gb(this.ta)}});f.Nc=f.u.P({S:"repeat",Sc:"stretch",Qc:"round",ta:0,O:function(){return this.g.q.G()}, |  | ||||||
| h:function(){return this.g.q.h()},U:function(){var a=this,b=a.g.q.j(),c=a.g.z.j(),d=a.s.o(),e=b.repeat,g=e.f,i=e.Ob,j=a.e,h=0;f.p.Rb(b.src,function(k){function n(R,S,U,V,W,T,w,C,K,O){J.push('<pattern patternUnits="userSpaceOnUse" id="pattern'+Q+'" x="'+(g===p?R+U/2-K/2:R)+'" y="'+(i===p?S+V/2-O/2:S)+'" width="'+K+'" height="'+O+'"><svg width="'+K+'" height="'+O+'" viewBox="'+W+" "+T+" "+w+" "+C+'" preserveAspectRatio="none"><image xlink:href="'+r+'" x="0" y="0" width="'+s+'" height="'+m+'" /></svg></pattern>'); |  | ||||||
| P.push('<rect x="'+R+'" y="'+S+'" width="'+U+'" height="'+V+'" fill="url(#pattern'+Q+')" />');Q++}var l=d.i,q=d.f,s=k.i,m=k.f,r=a.Dd(b.src,s,m),p=a.S,t=a.Sc;k=a.Qc;var v=Math.ceil,o=f.n("0"),u=b.I||(c?c.I:{t:o,r:o,b:o,l:o});o=u.t.a(j);var x=u.r.a(j),y=u.b.a(j);u=u.l.a(j);var z=b.slice,D=z.t.a(j),G=z.r.a(j),E=z.b.a(j);z=z.l.a(j);var B=l-u-x,A=q-o-y,L=s-z-G,N=m-D-E,H=g===t?B:L*o/D,I=i===t?A:N*x/G,F=g===t?B:L*y/E;t=i===t?A:N*u/z;var J=[],P=[],Q=0;if(g===k){H-=(H-(B%H||H))/v(B/H);F-=(F-(B%F||F))/v(B/ |  | ||||||
| F)}if(i===k){I-=(I-(A%I||I))/v(A/I);t-=(t-(A%t||t))/v(A/t)}k=['<svg width="'+l+'" height="'+q+'" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">'];n(0,0,u,o,0,0,z,D,u,o);n(u,0,B,o,z,0,L,D,H,o);n(l-x,0,x,o,s-G,0,G,D,x,o);n(0,o,u,A,0,D,z,N,u,t);if(b.fill)n(u,o,B,A,z,D,L,N,H||F||L,t||I||N);n(l-x,o,x,A,s-G,D,G,N,x,I);n(0,q-y,u,y,0,m-E,z,E,u,y);n(u,q-y,B,y,z,m-E,L,E,F,y);n(l-x,q-y,x,y,s-G,m-E,G,E,x,y);k.push("<defs>"+J.join("\n")+"</defs>"+P.join("\n")+"</svg>");a.parent.gb(a.ta, |  | ||||||
| "url(data:image/svg+xml,"+escape(k.join(""))+") no-repeat border-box border-box");h&&a.parent.ab()},a);h=1},Dd:function(){var a={};return function(b,c,d){var e=a[b],g;if(!e){e=new Image;g=doc.createElement("canvas");e.src=b;g.width=c;g.height=d;g.getContext("2d").drawImage(e,0,0);e=a[b]=g.toDataURL()}return e}}(),Ea:f.Tb.prototype.Ea,m:function(){var a=this.e.runtimeStyle;this.parent.gb(this.ta);a.borderColor=a.borderStyle=a.borderWidth=""}});f.kb=function(){function a(m,r){m.className+=" "+r}function b(m){var r= |  | ||||||
| s.slice.call(arguments,1),p=r.length;setTimeout(function(){for(;p--;)a(m,r[p])},0)}function c(m){var r=s.slice.call(arguments,1),p=r.length;setTimeout(function(){for(;p--;){var t=r[p];t=q[t]||(q[t]=new RegExp("\\b"+t+"\\b","g"));m.className=m.className.replace(t,"")}},0)}function d(m){function r(){if(!R){var w,C,K=f.Ba,O=m.currentStyle,M=O.getAttribute(g)==="true";T=O.getAttribute(i);T=K>7?T!=="false":T==="true";if(!Q){Q=1;m.runtimeStyle.zoom=1;O=m;for(var ba=1;O=O.previousSibling;)if(O.nodeType=== |  | ||||||
| 1){ba=0;break}ba&&a(m,n)}F.cb();if(M&&(C=F.o())&&(w=doc.documentElement||doc.body)&&(C.y>w.clientHeight||C.x>w.clientWidth||C.y+C.f<0||C.x+C.i<0)){if(!V){V=1;f.mb.ba(r)}}else{R=1;V=Q=0;f.mb.Ha(r);if(K===9){J={w:new f.Sb(m),q:new f.Ub(m),z:new f.Vb(m)};P=[J.w,J.q];I=new f.Oc(m,F,J);w=[new f.Mc(m,F,J,I),new f.Nc(m,F,J,I)]}else{J={w:new f.Sb(m),z:new f.Vb(m),q:new f.Ub(m),F:new f.jb(m),ga:new f.Ic(m),Pb:new f.Uc(m)};P=[J.w,J.z,J.q,J.F,J.ga,J.Pb];I=new f.Rc(m,F,J);w=[new f.Hc(m,F,J,I),new f.Fc(m,F,J, |  | ||||||
| I),new f.Gc(m,F,J,I),new f.Tb(m,F,J,I)];m.tagName==="IMG"&&w.push(new f.Pc(m,F,J,I));I.ed=w}H=[I].concat(w);if(w=m.currentStyle.getAttribute(f.Q+"watch-ancestors")){w=parseInt(w,10);C=0;for(M=m.parentNode;M&&(w==="NaN"||C++<w);){A(M,"onpropertychange",G);A(M,"onmouseenter",o);A(M,"onmouseleave",u);A(M,"onmousedown",x);if(M.tagName in f.fc){A(M,"onfocus",z);A(M,"onblur",D)}M=M.parentNode}}if(T){f.Oa.ba(t);f.Oa.Qd()}t(1)}if(!S){S=1;K<9&&A(m,"onmove",p);A(m,"onresize",p);A(m,"onpropertychange",v);A(m, |  | ||||||
| "onmouseenter",o);A(m,"onmouseleave",u);A(m,"onmousedown",x);if(m.tagName in f.fc){A(m,"onfocus",z);A(m,"onblur",D)}f.Qa.ba(p);f.K.ba(L)}F.hb()}}function p(){F&&F.Ad()&&t()}function t(w){if(!W)if(R){var C,K=H.length;E();for(C=0;C<K;C++)H[C].Ea();if(w||F.Nd())for(C=0;C<K;C++)H[C].ib();if(w||F.Sd())for(C=0;C<K;C++)H[C].Mb();I.ab();B()}else Q||r()}function v(){var w,C=H.length,K;w=event;if(!W&&!(w&&w.propertyName in l))if(R){E();for(w=0;w<C;w++)H[w].Ea();for(w=0;w<C;w++){K=H[w];K.Cb||K.ib();K.O()&&K.Lb()}I.ab(); |  | ||||||
| B()}else Q||r()}function o(){b(m,j)}function u(){c(m,j,h)}function x(){b(m,h);f.lb.ba(y)}function y(){c(m,h);f.lb.Ha(y)}function z(){b(m,k)}function D(){c(m,k)}function G(){var w=event.propertyName;if(w==="className"||w==="id")v()}function E(){F.cb();for(var w=P.length;w--;)P[w].cb()}function B(){for(var w=P.length;w--;)P[w].hb();F.hb()}function A(w,C,K){w.attachEvent(C,K);U.push([w,C,K])}function L(){if(S){for(var w=U.length,C;w--;){C=U[w];C[0].detachEvent(C[1],C[2])}f.K.Ha(L);S=0;U=[]}}function N(){if(!W){var w, |  | ||||||
| C;L();W=1;if(H){w=0;for(C=H.length;w<C;w++){H[w].ec=1;H[w].m()}}T&&f.Oa.Ha(t);f.Qa.Ha(t);H=F=J=P=m=null}}var H,I,F=new da(m),J,P,Q,R,S,U=[],V,W,T;this.Ed=r;this.update=t;this.m=N;this.qd=m}var e={},g=f.Q+"lazy-init",i=f.Q+"poll",j=f.La+"hover",h=f.La+"active",k=f.La+"focus",n=f.La+"first-child",l={background:1,bgColor:1,display:1},q={},s=[];d.yd=function(m){var r=f.p.Aa(m);return e[r]||(e[r]=new d(m))};d.m=function(m){m=f.p.Aa(m);var r=e[m];if(r){r.m();delete e[m]}};d.md=function(){var m=[],r;if(e){for(var p in e)if(e.hasOwnProperty(p)){r= |  | ||||||
| e[p];m.push(r.qd);r.m()}e={}}return m};return d}();f.supportsVML=f.zc;f.attach=function(a){f.Ba<10&&f.zc&&f.kb.yd(a).Ed()};f.detach=function(a){f.kb.m(a)}}; |  | ||||||
| var $=element;function init(){var a=window.PIE;a&&doc.media!=="print"&&a.attach($)}function cleanup(){var a=window.PIE;if(a){a.detach($);$=0}}$.readyState==="complete"&&init(); |  | ||||||
| </script> |  | ||||||
| </PUBLIC:COMPONENT> |  | ||||||
|  | @ -1,27 +0,0 @@ | ||||||
| # Require any additional compass plugins here. |  | ||||||
| 
 |  | ||||||
| # Set this to the root of your project when deployed: |  | ||||||
| http_path = "" # use if other than / |  | ||||||
| sass_dir = "sass" |  | ||||||
| css_dir = "css" |  | ||||||
| images_dir = "images" |  | ||||||
| javascripts_dir = "js" |  | ||||||
| 
 |  | ||||||
| # be: :production or :development |  | ||||||
| environment = :production |  | ||||||
| 
 |  | ||||||
| # You can select your preferred output style here (can be overridden via the command line): |  | ||||||
| # output_style = :expanded or :nested or :compact or :compressed |  | ||||||
| output_style = (environment == :production) ? :compressed : :nested |  | ||||||
| 
 |  | ||||||
| # To enable relative paths to assets via compass helper functions. Uncomment: |  | ||||||
| # relative_assets = true |  | ||||||
| 
 |  | ||||||
| # To disable debugging comments that display the original location of your selectors. Uncomment: |  | ||||||
| line_comments = false |  | ||||||
| 
 |  | ||||||
| # If you prefer the indented syntax, you might want to regenerate this |  | ||||||
| # project again passing --syntax sass, or you can uncomment this: |  | ||||||
| # preferred_syntax = :sass |  | ||||||
| # and then run: |  | ||||||
| # sass-convert -R --from scss --to sass sass scss && rm -rf sass && mv scss sass |  | ||||||
|  | @ -1,3 +0,0 @@ | ||||||
| /*! |  | ||||||
|  * @copyright:	https://github.com/divio/django-cms |  | ||||||
|  */#content>h2:first-child{display:none}#content{margin:10px 10px 0}#content .module{padding:10px}#container{padding-top:0}#footer{display:none}#cke_id_body{border:1px solid #e6e6e6 !important}#cke_id_body .cke_top,#cke_id_body .cke_bottom{background:#fafafa !important;border-color:#e6e6e6 !important;-moz-box-shadow:none !important;-webkit-box-shadow:none !important;box-shadow:none !important}.errornote{margin:0 !important} |  | ||||||
|  | @ -1,3 +0,0 @@ | ||||||
| /*! |  | ||||||
|  * @copyright:	https://github.com/divio/django-cms |  | ||||||
|  */#header{display:none}#container{padding-top:30px}.cms_debug #container{padding-top:35px}#container .breadcrumbs{display:block;background:#666 !important}#content{padding-top:10px}#content h1:first-child{margin-top:0}.change-form #content{margin-top:0}.submit-row{padding:10px 10px 5px !important}.submit-row input.default,.object-tools .addlink{font-weight:200 !important;padding:5px 12px !important;margin-bottom:5px !important;border:1px solid #0e72ec !important;background-image:url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4gPHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGRlZnM+PGxpbmVhckdyYWRpZW50IGlkPSJncmFkIiBncmFkaWVudFVuaXRzPSJvYmplY3RCb3VuZGluZ0JveCIgeDE9IjAuNSIgeTE9IjAuMCIgeDI9IjAuNSIgeTI9IjEuMCI+PHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iIzBlOTdlYyIvPjxzdG9wIG9mZnNldD0iMTAwJSIgc3RvcC1jb2xvcj0iIzBlNzJlYyIvPjwvbGluZWFyR3JhZGllbnQ+PC9kZWZzPjxyZWN0IHg9IjAiIHk9IjAiIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIGZpbGw9InVybCgjZ3JhZCkiIC8+PC9zdmc+IA==') !important;background-size:100%;background-image:-webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, #0e97ec),color-stop(100%, #0e72ec)) !important;background-image:-moz-linear-gradient(top, #0e97ec,#0e72ec) !important;background-image:-webkit-linear-gradient(top, #0e97ec,#0e72ec) !important;background-image:linear-gradient(to bottom, #0e97ec,#0e72ec) !important;-moz-box-shadow:inset #6accf6 0px 1px 0px;-webkit-box-shadow:inset #6accf6 0px 1px 0px;box-shadow:inset #6accf6 0px 1px 0px}.submit-row input.default:hover,.submit-row input.default:active,.submit-row input.default:focus,.object-tools .addlink:hover,.object-tools .addlink:active,.object-tools .addlink:focus{background:#0e72ec !important;-moz-box-shadow:none !important;-webkit-box-shadow:none !important;box-shadow:none !important}.submit-row input.default:active,.submit-row input.default:focus,.object-tools .addlink:active,.object-tools .addlink:focus{background:#0b5bbc !important}.object-tools .recoverlink,.submit-row input{font-weight:200 !important;padding:5px 12px !important;margin-bottom:5px !important;border:1px solid #e6e6e6 !important;-moz-box-shadow:none !important;-webkit-box-shadow:none !important;box-shadow:none !important} |  | ||||||
| Before Width: | Height: | Size: 7.6 KiB | 
| Before Width: | Height: | Size: 384 B | 
| Before Width: | Height: | Size: 621 B | 
| Before Width: | Height: | Size: 285 B | 
| Before Width: | Height: | Size: 650 B | 
| Before Width: | Height: | Size: 621 B | 
| Before Width: | Height: | Size: 388 B | 
| Before Width: | Height: | Size: 749 B | 
| Before Width: | Height: | Size: 702 B | 
| Before Width: | Height: | Size: 208 B | 
| Before Width: | Height: | Size: 296 B | 
| Before Width: | Height: | Size: 621 B | 
| Before Width: | Height: | Size: 279 B | 
| Before Width: | Height: | Size: 548 B | 
| Before Width: | Height: | Size: 648 B | 
| Before Width: | Height: | Size: 276 B | 
| Before Width: | Height: | Size: 654 B | 
| Before Width: | Height: | Size: 407 B | 
| Before Width: | Height: | Size: 548 B | 
| Before Width: | Height: | Size: 758 B | 
| Before Width: | Height: | Size: 1.7 KiB | 
| Before Width: | Height: | Size: 969 B | 
| Before Width: | Height: | Size: 1.7 KiB | 
| Before Width: | Height: | Size: 1,017 B | 
| Before Width: | Height: | Size: 5.1 KiB | 
| Before Width: | Height: | Size: 11 KiB | 
| Before Width: | Height: | Size: 3.9 KiB |