summaryrefslogtreecommitdiff
Side-by-side diff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--.gitignore4
-rw-r--r--backend/dev/properties/dev.properties.json9
-rw-r--r--frontend/beta/css/clipperz/clipperz.css126
-rw-r--r--frontend/beta/css/clipperz/ie.css112
-rw-r--r--frontend/beta/css/clipperz/ytheme-clipperz.css18
-rw-r--r--frontend/beta/css/yui-extensions/basic-dialog.css36
-rw-r--r--frontend/beta/css/yui-extensions/button.css8
-rw-r--r--frontend/beta/css/yui-extensions/dd.css8
-rw-r--r--frontend/beta/css/yui-extensions/grid.css56
-rw-r--r--frontend/beta/css/yui-extensions/layout.css22
-rw-r--r--frontend/beta/css/yui-extensions/qtips.css12
-rw-r--r--frontend/beta/css/yui-extensions/resizable.css16
-rw-r--r--frontend/beta/css/yui-extensions/tabs.css22
-rw-r--r--frontend/beta/css/yui-extensions/toolbar.css8
-rw-r--r--frontend/beta/css/yui-extensions/tree.css40
-rw-r--r--frontend/beta/css/yui-extensions/ytheme-aero.css60
-rw-r--r--frontend/beta/css/yui-extensions/ytheme-gray.css96
-rw-r--r--frontend/beta/css/yui-extensions/ytheme-vista.css102
-rw-r--r--frontend/beta/html/index_template.html6
-rw-r--r--frontend/beta/images/cardBlockLowerBorder.gifbin0 -> 331 bytes
-rw-r--r--frontend/beta/images/cardBlockLowerRoundedCorner.gifbin0 -> 474 bytes
-rw-r--r--frontend/beta/images/cardFiltersSprite.gifbin0 -> 543 bytes
-rw-r--r--frontend/beta/images/cardsBlockRoundCorners.gifbin0 -> 166 bytes
-rw-r--r--frontend/beta/images/clipperz/basic-dialog/btn-sprite.gifbin0 -> 637 bytes
-rw-r--r--frontend/beta/images/clipperz/basic-dialog/close.gifbin0 -> 352 bytes
-rw-r--r--frontend/beta/images/clipperz/basic-dialog/close.pngbin0 -> 3961 bytes
-rw-r--r--frontend/beta/images/clipperz/basic-dialog/close_over.gifbin0 -> 354 bytes
-rw-r--r--frontend/beta/images/clipperz/basic-dialog/e-handle.gifbin0 -> 995 bytes
-rw-r--r--frontend/beta/images/clipperz/basic-dialog/hd-sprite.gifbin0 -> 60 bytes
-rw-r--r--frontend/beta/images/clipperz/basic-dialog/progress.gifbin0 -> 19442 bytes
-rw-r--r--frontend/beta/images/clipperz/basic-dialog/progress2.gifbin0 -> 14113 bytes
-rw-r--r--frontend/beta/images/clipperz/basic-dialog/s-handle.gifbin0 -> 992 bytes
-rw-r--r--frontend/beta/images/clipperz/basic-dialog/se-handle.gifbin0 -> 833 bytes
-rw-r--r--frontend/beta/images/default/basic-dialog/btn-sprite.gifbin0 -> 1186 bytes
-rw-r--r--frontend/beta/images/default/basic-dialog/close.gifbin0 -> 893 bytes
-rw-r--r--frontend/beta/images/default/basic-dialog/e-handle.gifbin0 -> 995 bytes
-rw-r--r--frontend/beta/images/default/basic-dialog/hd-sprite.gifbin0 -> 1099 bytes
-rw-r--r--frontend/beta/images/default/basic-dialog/progress.gifbin0 -> 19442 bytes
-rw-r--r--frontend/beta/images/default/basic-dialog/progress2.gifbin0 -> 14113 bytes
-rw-r--r--frontend/beta/images/default/basic-dialog/s-handle.gifbin0 -> 992 bytes
-rw-r--r--frontend/beta/images/default/basic-dialog/se-handle.gifbin0 -> 833 bytes
-rw-r--r--frontend/beta/images/directLogin/toggle.pngbin0 -> 3956 bytes
-rw-r--r--frontend/beta/images/directLoginBox.pngbin0 -> 3033 bytes
-rw-r--r--frontend/beta/images/entropyBackground.gifbin0 -> 556 bytes
-rw-r--r--frontend/beta/images/exportLogo.pngbin0 -> 6377 bytes
-rw-r--r--frontend/beta/images/favicon.icobin0 -> 1810 bytes
-rw-r--r--frontend/beta/images/flags/br.pngbin0 -> 7654 bytes
-rw-r--r--frontend/beta/images/flags/cn.pngbin0 -> 6412 bytes
-rw-r--r--frontend/beta/images/flags/de.pngbin0 -> 6029 bytes
-rw-r--r--frontend/beta/images/flags/en.pngbin0 -> 8563 bytes
-rw-r--r--frontend/beta/images/flags/es.pngbin0 -> 6909 bytes
-rw-r--r--frontend/beta/images/flags/it.pngbin0 -> 5794 bytes
-rw-r--r--frontend/beta/images/flags/jp.pngbin0 -> 5557 bytes
-rw-r--r--frontend/beta/images/flags/ru.pngbin0 -> 5808 bytes
-rw-r--r--frontend/beta/images/grippie.pngbin0 -> 162 bytes
-rw-r--r--frontend/beta/images/importActiveStepsSeparator.pngbin0 -> 515 bytes
-rw-r--r--frontend/beta/images/importStepsBackground.pngbin0 -> 1991 bytes
-rw-r--r--frontend/beta/images/importStepsLabelsBackground.pngbin0 -> 540 bytes
-rw-r--r--frontend/beta/images/importStepsLeftLabelsBackground.pngbin0 -> 685 bytes
-rw-r--r--frontend/beta/images/importStepsSeparator.pngbin0 -> 253 bytes
-rw-r--r--frontend/beta/images/languageBox.pngbin0 -> 5647 bytes
-rw-r--r--frontend/beta/images/loginFormBox.pngbin0 -> 3174 bytes
-rw-r--r--frontend/beta/images/loginInfoBackground.pngbin0 -> 2462 bytes
-rw-r--r--frontend/beta/images/loginInfoInnerBackground.pngbin0 -> 383 bytes
-rw-r--r--frontend/beta/images/logo.gifbin0 -> 2212 bytes
-rw-r--r--frontend/beta/images/menubarSprite.gifbin0 -> 581 bytes
-rw-r--r--frontend/beta/images/newRecordPanelBackground.gifbin0 -> 2152 bytes
-rw-r--r--frontend/beta/images/newRecordPanelBackground.pngbin0 -> 6786 bytes
-rw-r--r--frontend/beta/images/passwordAssistant.pngbin0 -> 1202 bytes
-rw-r--r--frontend/beta/images/read-only.gifbin0 -> 2576 bytes
-rw-r--r--frontend/beta/images/read-only.pngbin0 -> 4330 bytes
-rw-r--r--frontend/beta/images/read-only_background.pngbin0 -> 1386 bytes
-rw-r--r--frontend/beta/images/recordFilterBackground.pngbin0 -> 6394 bytes
-rw-r--r--frontend/beta/images/rss.gifbin0 -> 1251 bytes
-rw-r--r--frontend/beta/images/scrambledValue.gifbin0 -> 789 bytes
-rw-r--r--frontend/beta/images/scrambledValue.pngbin0 -> 965 bytes
-rw-r--r--frontend/beta/images/smiles.gifbin0 -> 1767 bytes
-rw-r--r--frontend/beta/images/smiles_big.gifbin0 -> 8843 bytes
-rw-r--r--frontend/beta/images/smiles_small.gifbin0 -> 1653 bytes
-rw-r--r--frontend/beta/images/test-database.pngbin0 -> 3367 bytes
-rw-r--r--frontend/beta/js/Clipperz/PM/Connection.js9
-rw-r--r--frontend/beta/js/Clipperz/PM/DataModel/Record.js12
-rw-r--r--frontend/beta/js/Clipperz/PM/DataModel/User.js17
-rw-r--r--frontend/beta/properties/beta.properties.json8
-rw-r--r--frontend/beta/staticResources/static.css21
-rw-r--r--frontend/gamma/css/mobile.css2571
-rw-r--r--frontend/gamma/css/static.css166
-rw-r--r--frontend/gamma/css/web.css4099
-rw-r--r--frontend/gamma/html/exit_template.html (renamed from frontend/gamma/html/exitPage_template.html)0
-rw-r--r--frontend/gamma/html/index_template.html11
-rw-r--r--frontend/gamma/html/mobile.appcache24
-rw-r--r--frontend/gamma/html/mobile_template.html86
-rw-r--r--frontend/gamma/images/old/alert/alert.pngbin0 -> 3927 bytes
-rw-r--r--frontend/gamma/images/old/alert/body.pngbin0 -> 309 bytes
-rw-r--r--frontend/gamma/images/old/alert/footer.pngbin0 -> 1685 bytes
-rw-r--r--frontend/gamma/images/old/alert/header.pngbin0 -> 1336 bytes
-rw-r--r--frontend/gamma/images/old/bookmarklet/placeholder.pngbin0 -> 4280 bytes
-rw-r--r--frontend/gamma/images/old/bookmarklet/placeholder_icon.pngbin0 -> 4681 bytes
-rw-r--r--frontend/gamma/images/old/bookmarklet/placeholder_selected.pngbin0 -> 4287 bytes
-rw-r--r--frontend/gamma/images/old/bookmarklet/placeholder_selected_icon.pngbin0 -> 4651 bytes
-rw-r--r--frontend/gamma/images/old/button/clicked_left.pngbin0 -> 3670 bytes
-rw-r--r--frontend/gamma/images/old/button/clicked_main.pngbin0 -> 4626 bytes
-rw-r--r--frontend/gamma/images/old/button/default_left.pngbin0 -> 3648 bytes
-rw-r--r--frontend/gamma/images/old/button/default_main.pngbin0 -> 5370 bytes
-rw-r--r--frontend/gamma/images/old/button/hover_left.pngbin0 -> 3666 bytes
-rw-r--r--frontend/gamma/images/old/button/hover_main.pngbin0 -> 5541 bytes
-rw-r--r--frontend/gamma/images/old/cardDialog/addDirectLogin_background.pngbin0 -> 7658 bytes
-rw-r--r--frontend/gamma/images/old/cardDialog/addDirectLogin_disabled_background.pngbin0 -> 7673 bytes
-rw-r--r--frontend/gamma/images/old/cardDialog/back.pngbin0 -> 15875 bytes
-rw-r--r--frontend/gamma/images/old/cardDialog/back_selected.pngbin0 -> 10368 bytes
-rw-r--r--frontend/gamma/images/old/cardDialog/background_body.pngbin0 -> 3730 bytes
-rw-r--r--frontend/gamma/images/old/cardDialog/background_footer.pngbin0 -> 6155 bytes
-rw-r--r--frontend/gamma/images/old/cardDialog/background_header.pngbin0 -> 5289 bytes
-rw-r--r--frontend/gamma/images/old/cardDialog/dottedLine_background.pngbin0 -> 938 bytes
-rw-r--r--frontend/gamma/images/old/cardDialog/fieldTypes/email.pngbin0 -> 7819 bytes
-rw-r--r--frontend/gamma/images/old/cardDialog/fieldTypes/email_selected.pngbin0 -> 7694 bytes
-rw-r--r--frontend/gamma/images/old/cardDialog/fieldTypes/password.pngbin0 -> 7636 bytes
-rw-r--r--frontend/gamma/images/old/cardDialog/fieldTypes/passwordTooltip.pngbin0 -> 13016 bytes
-rw-r--r--frontend/gamma/images/old/cardDialog/fieldTypes/password_selected.pngbin0 -> 7599 bytes
-rw-r--r--frontend/gamma/images/old/cardDialog/fieldTypes/url.pngbin0 -> 7708 bytes
-rw-r--r--frontend/gamma/images/old/cardDialog/fieldTypes/url_selected.pngbin0 -> 7710 bytes
-rw-r--r--frontend/gamma/images/old/cardDialog/loading.gifbin0 -> 10819 bytes
-rw-r--r--frontend/gamma/images/old/cardDialog/lock_closed.pngbin0 -> 3707 bytes
-rw-r--r--frontend/gamma/images/old/cardDialog/lock_open.pngbin0 -> 3703 bytes
-rw-r--r--frontend/gamma/images/old/cardDialog/openDirectLogin.pngbin0 -> 7751 bytes
-rw-r--r--frontend/gamma/images/old/cardDialog/openDirectLogin_selected.pngbin0 -> 7775 bytes
-rw-r--r--frontend/gamma/images/old/cardDialog/password_background.pngbin0 -> 6114 bytes
-rw-r--r--frontend/gamma/images/old/cardDialog/tabs_background.pngbin0 -> 994 bytes
-rw-r--r--frontend/gamma/images/old/cardDialog/tabs_shadow.pngbin0 -> 982 bytes
-rw-r--r--frontend/gamma/images/old/creatingUser.gifbin0 -> 3208 bytes
-rw-r--r--frontend/gamma/images/old/delete_background.pngbin0 -> 3635 bytes
-rw-r--r--frontend/gamma/images/old/delete_background_left.pngbin0 -> 3494 bytes
-rw-r--r--frontend/gamma/images/old/directLink_background.pngbin0 -> 3736 bytes
-rw-r--r--frontend/gamma/images/old/directLink_background_left.pngbin0 -> 3459 bytes
-rw-r--r--frontend/gamma/images/old/directLink_no_background.pngbin0 -> 3585 bytes
-rw-r--r--frontend/gamma/images/old/directLogins_background.pngbin0 -> 6748 bytes
-rw-r--r--frontend/gamma/images/old/directLogins_background_bottom.pngbin0 -> 3570 bytes
-rw-r--r--frontend/gamma/images/old/filter/clearFilter_notSelected.pngbin0 -> 3784 bytes
-rw-r--r--frontend/gamma/images/old/filter/clearFilter_selected.pngbin0 -> 3984 bytes
-rw-r--r--frontend/gamma/images/old/flags/br.pngbin0 -> 7654 bytes
-rw-r--r--frontend/gamma/images/old/flags/cn.pngbin0 -> 6412 bytes
-rw-r--r--frontend/gamma/images/old/flags/de.pngbin0 -> 6029 bytes
-rw-r--r--frontend/gamma/images/old/flags/en.pngbin0 -> 8563 bytes
-rw-r--r--frontend/gamma/images/old/flags/es.pngbin0 -> 6909 bytes
-rw-r--r--frontend/gamma/images/old/flags/it.pngbin0 -> 5794 bytes
-rw-r--r--frontend/gamma/images/old/flags/jp.pngbin0 -> 5557 bytes
-rw-r--r--frontend/gamma/images/old/flags/ru.pngbin0 -> 5808 bytes
-rw-r--r--frontend/gamma/images/old/footer/star.pngbin0 -> 2542 bytes
-rw-r--r--frontend/gamma/images/old/home/box/box_body.pngbin0 -> 868 bytes
-rw-r--r--frontend/gamma/images/old/home/box/box_bottom.pngbin0 -> 811 bytes
-rw-r--r--frontend/gamma/images/old/home/box/box_top.pngbin0 -> 796 bytes
-rw-r--r--frontend/gamma/images/old/home/download.pngbin0 -> 1990 bytes
-rw-r--r--frontend/gamma/images/old/home/features/bullet.pngbin0 -> 866 bytes
-rw-r--r--frontend/gamma/images/old/home/look.pngbin0 -> 2736 bytes
-rw-r--r--frontend/gamma/images/old/home/register.pngbin0 -> 14113 bytes
-rw-r--r--frontend/gamma/images/old/home/register_selected.pngbin0 -> 14205 bytes
-rw-r--r--frontend/gamma/images/old/iPhone/backButton.pngbin0 -> 816 bytes
-rw-r--r--frontend/gamma/images/old/iPhone/icon.pngbin0 -> 4186 bytes
-rw-r--r--frontend/gamma/images/old/iPhone/listArrow.pngbin0 -> 259 bytes
-rw-r--r--frontend/gamma/images/old/iPhone/locked.pngbin0 -> 407 bytes
-rw-r--r--frontend/gamma/images/old/iPhone/logo_and_header.pngbin0 -> 11666 bytes
-rw-r--r--frontend/gamma/images/old/iPhone/password_background.pngbin0 -> 6114 bytes
-rw-r--r--frontend/gamma/images/old/iPhone/pinstripes.pngbin0 -> 117 bytes
-rw-r--r--frontend/gamma/images/old/iPhone/thumb.pngbin0 -> 2835 bytes
-rw-r--r--frontend/gamma/images/old/iPhone/toggle.pngbin0 -> 2815 bytes
-rw-r--r--frontend/gamma/images/old/iPhone/toggleOn.pngbin0 -> 163 bytes
-rw-r--r--frontend/gamma/images/old/iPhone/toolbar.pngbin0 -> 171 bytes
-rw-r--r--frontend/gamma/images/old/iPhone/whiteButton.pngbin0 -> 978 bytes
-rw-r--r--frontend/gamma/images/old/loading/loadingBar.gifbin0 -> 2721 bytes
-rw-r--r--frontend/gamma/images/old/loading/loadingBarProgress.pngbin0 -> 624 bytes
-rw-r--r--frontend/gamma/images/old/loading/news.gifbin0 -> 673 bytes
-rw-r--r--frontend/gamma/images/old/lock/background_star.pngbin0 -> 19897 bytes
-rw-r--r--frontend/gamma/images/old/lock/locked.pngbin0 -> 407 bytes
-rw-r--r--frontend/gamma/images/old/lock/locked_hover.pngbin0 -> 447 bytes
-rw-r--r--frontend/gamma/images/old/lock/unlocked.pngbin0 -> 431 bytes
-rw-r--r--frontend/gamma/images/old/lock/unlocked_hover.pngbin0 -> 452 bytes
-rw-r--r--frontend/gamma/images/old/logo.pngbin0 -> 8635 bytes
-rw-r--r--frontend/gamma/images/old/logo_blue.pngbin0 -> 6812 bytes
-rw-r--r--frontend/gamma/images/old/main/blocks/cardGridBackground.pngbin0 -> 7872 bytes
-rw-r--r--frontend/gamma/images/old/main/blocks/cardGridStripes.pngbin0 -> 122 bytes
-rw-r--r--frontend/gamma/images/old/main/blocks/directLoginGridBackground.pngbin0 -> 7923 bytes
-rw-r--r--frontend/gamma/images/old/main/blocks/directLoginGridStripes.pngbin0 -> 122 bytes
-rw-r--r--frontend/gamma/images/old/main/blocks/otherPanelBackground.pngbin0 -> 10595 bytes
-rw-r--r--frontend/gamma/images/old/main/blocks/otherPanelBackground_selected.pngbin0 -> 5285 bytes
-rw-r--r--frontend/gamma/images/old/main/grid/ascending.pngbin0 -> 3647 bytes
-rw-r--r--frontend/gamma/images/old/main/grid/createNewCardSplash.pngbin0 -> 11694 bytes
-rw-r--r--frontend/gamma/images/old/main/grid/createNewCardSplash_selected.pngbin0 -> 11942 bytes
-rw-r--r--frontend/gamma/images/old/main/grid/descending.pngbin0 -> 3637 bytes
-rw-r--r--frontend/gamma/images/old/main/grid/directLogins/ascending.pngbin0 -> 3623 bytes
-rw-r--r--frontend/gamma/images/old/main/grid/directLogins/descending.pngbin0 -> 3632 bytes
-rw-r--r--frontend/gamma/images/old/main/grid/directLogins/unsorted.pngbin0 -> 3632 bytes
-rw-r--r--frontend/gamma/images/old/main/grid/favicon.pngbin0 -> 411 bytes
-rw-r--r--frontend/gamma/images/old/main/grid/running_search.gifbin0 -> 1737 bytes
-rw-r--r--frontend/gamma/images/old/main/grid/search.pngbin0 -> 4275 bytes
-rw-r--r--frontend/gamma/images/old/main/grid/unsorted.pngbin0 -> 3660 bytes
-rw-r--r--frontend/gamma/images/old/main/messageBoxBackground.pngbin0 -> 4128 bytes
-rw-r--r--frontend/gamma/images/old/main/messageBoxCloseButton.pngbin0 -> 4101 bytes
-rw-r--r--frontend/gamma/images/old/main/messageBoxCloseButtonActive.pngbin0 -> 4188 bytes
-rw-r--r--frontend/gamma/images/old/main/tabs/cardsBackground.pngbin0 -> 9048 bytes
-rw-r--r--frontend/gamma/images/old/main/tabs/directLoginBackground.pngbin0 -> 8538 bytes
-rw-r--r--frontend/gamma/images/old/main/tabs/groupsBackground.pngbin0 -> 5061 bytes
-rw-r--r--frontend/gamma/images/old/main/tabs/itemsBackground.pngbin0 -> 7184 bytes
-rw-r--r--frontend/gamma/images/old/main/tabs/selectionHighligher.pngbin0 -> 3877 bytes
-rw-r--r--frontend/gamma/images/old/main/tabs/selectionHighligherGray copy.pngbin0 -> 3858 bytes
-rw-r--r--frontend/gamma/images/old/main/tabs/selectionHighligherGray.pngbin0 -> 3853 bytes
-rw-r--r--frontend/gamma/images/old/main/tabs/tagsBackground.pngbin0 -> 5385 bytes
-rw-r--r--frontend/gamma/images/old/main/userInfoBackground.pngbin0 -> 17374 bytes
-rw-r--r--frontend/gamma/images/old/main/userInfoBullet.pngbin0 -> 3609 bytes
-rw-r--r--frontend/gamma/images/old/new_background.pngbin0 -> 3611 bytes
-rw-r--r--frontend/gamma/images/old/new_background_left.pngbin0 -> 3482 bytes
-rw-r--r--frontend/gamma/images/old/note.pngbin0 -> 4323 bytes
-rw-r--r--frontend/gamma/images/old/passwordField/background copy.pngbin0 -> 232793 bytes
-rw-r--r--frontend/gamma/images/old/passwordField/background.pngbin0 -> 145979 bytes
-rw-r--r--frontend/gamma/images/old/ruler/exit.pngbin0 -> 7291 bytes
-rw-r--r--frontend/gamma/images/old/ruler/exit_selected.pngbin0 -> 7521 bytes
-rw-r--r--frontend/gamma/images/old/ruler/marker.pngbin0 -> 7599 bytes
-rw-r--r--frontend/gamma/images/old/ruler/next.pngbin0 -> 8074 bytes
-rw-r--r--frontend/gamma/images/old/ruler/previous.pngbin0 -> 8212 bytes
-rw-r--r--frontend/gamma/images/old/ruler/ruler.pngbin0 -> 43016 bytes
-rw-r--r--frontend/gamma/images/old/ruler/small_next.pngbin0 -> 7229 bytes
-rw-r--r--frontend/gamma/images/old/ruler/small_next_disabled.pngbin0 -> 7281 bytes
-rw-r--r--frontend/gamma/images/old/ruler/small_next_selected.pngbin0 -> 7441 bytes
-rw-r--r--frontend/gamma/images/old/ruler/small_previous.pngbin0 -> 7266 bytes
-rw-r--r--frontend/gamma/images/old/ruler/small_previous_disabled.pngbin0 -> 7278 bytes
-rw-r--r--frontend/gamma/images/old/ruler/small_previous_selected.pngbin0 -> 7449 bytes
-rw-r--r--frontend/gamma/images/old/tabPanels/background.pngbin0 -> 1118 bytes
-rw-r--r--frontend/gamma/images/old/tips/Tips_background.pngbin0 -> 5912 bytes
-rw-r--r--frontend/gamma/images/old/tips/close.pngbin0 -> 3448 bytes
-rw-r--r--frontend/gamma/images/old/tips/open.pngbin0 -> 3441 bytes
-rw-r--r--frontend/gamma/images/old/tooltips/body.pngbin0 -> 5461 bytes
-rw-r--r--frontend/gamma/images/old/tooltips/body_bottom.pngbin0 -> 3546 bytes
-rw-r--r--frontend/gamma/images/old/tooltips/bottom_arrow.pngbin0 -> 3660 bytes
-rw-r--r--frontend/gamma/images/old/tooltips/left_arrow.pngbin0 -> 3725 bytes
-rw-r--r--frontend/gamma/images/old/tooltips/right_arrow.pngbin0 -> 3703 bytes
-rw-r--r--frontend/gamma/images/old/tooltips/top_arrow.pngbin0 -> 3647 bytes
-rw-r--r--frontend/gamma/js/Clipperz/Async.js4
-rw-r--r--frontend/gamma/js/Clipperz/Base.js5
-rw-r--r--frontend/gamma/js/Clipperz/PM/Connection.js34
-rw-r--r--frontend/gamma/js/Clipperz/PM/DataModel/User.js20
-rw-r--r--frontend/gamma/js/Clipperz/PM/PIN.js134
-rw-r--r--frontend/gamma/js/Clipperz/PM/Proxy/Proxy.OfflineCache.js65
-rw-r--r--frontend/gamma/js/Clipperz/PM/UI/Common/Components/BaseComponent.js4
-rw-r--r--frontend/gamma/js/Clipperz/PM/UI/Common/Components/Button.js34
-rw-r--r--frontend/gamma/js/Clipperz/PM/UI/Common/Components/SimpleMessagePanel.js34
-rw-r--r--frontend/gamma/js/Clipperz/PM/UI/Mobile/Components/CardDetail.js299
-rw-r--r--frontend/gamma/js/Clipperz/PM/UI/Mobile/Components/CardList.js (renamed from frontend/gamma/js/Clipperz/PM/UI/iPhone/Components/CardList.js)111
-rw-r--r--frontend/gamma/js/Clipperz/PM/UI/Mobile/Components/LoginForm.js356
-rw-r--r--frontend/gamma/js/Clipperz/PM/UI/Mobile/Controllers/MainController.js393
-rw-r--r--frontend/gamma/js/Clipperz/PM/UI/Web/Components/AccountPanel.js17
-rw-r--r--frontend/gamma/js/Clipperz/PM/UI/Web/Components/DataPanel.js18
-rw-r--r--frontend/gamma/js/Clipperz/PM/UI/Web/Components/LoginProgress.js14
-rw-r--r--frontend/gamma/js/Clipperz/PM/UI/Web/Components/PageFooter.js5
-rw-r--r--frontend/gamma/js/Clipperz/PM/UI/Web/Components/ToolsPanel.js8
-rw-r--r--frontend/gamma/js/Clipperz/PM/UI/Web/Controllers/AppController.js31
-rw-r--r--frontend/gamma/js/Clipperz/PM/UI/iPhone/Components/CardDetail.js163
-rw-r--r--frontend/gamma/js/Clipperz/PM/UI/iPhone/Components/LoginForm.js178
-rw-r--r--frontend/gamma/js/Clipperz/PM/UI/iPhone/Controllers/MainController.js369
-rw-r--r--frontend/gamma/js/JQTouch/extensions/jqt.actionsheet.js159
-rw-r--r--frontend/gamma/js/JQTouch/extensions/jqt.autotitles.js52
-rw-r--r--frontend/gamma/js/JQTouch/extensions/jqt.floaty.js96
-rw-r--r--frontend/gamma/js/JQTouch/extensions/jqt.location.js51
-rw-r--r--frontend/gamma/js/JQTouch/extensions/jqt.menusheet.js137
-rw-r--r--frontend/gamma/js/JQTouch/extensions/jqt.offline.js97
-rwxr-xr-xfrontend/gamma/js/JQTouch/extensions/jqt.themeswitcher.js123
-rw-r--r--frontend/gamma/js/JQTouch/jqtouch.js889
-rw-r--r--frontend/gamma/js/Zepto/ajax.js285
-rw-r--r--frontend/gamma/js/Zepto/assets.js21
-rw-r--r--frontend/gamma/js/Zepto/data.js67
-rw-r--r--frontend/gamma/js/Zepto/detect.js42
-rw-r--r--frontend/gamma/js/Zepto/event.js248
-rw-r--r--frontend/gamma/js/Zepto/form.js40
-rw-r--r--frontend/gamma/js/Zepto/fx.js102
-rw-r--r--frontend/gamma/js/Zepto/fx_methods.js71
-rw-r--r--frontend/gamma/js/Zepto/gesture.js35
-rw-r--r--frontend/gamma/js/Zepto/polyfill.js36
-rw-r--r--frontend/gamma/js/Zepto/selector.js81
-rw-r--r--frontend/gamma/js/Zepto/stack.js22
-rw-r--r--frontend/gamma/js/Zepto/touch.js113
-rw-r--r--frontend/gamma/js/Zepto/zepto.js751
-rw-r--r--frontend/gamma/js/main.mobile.js (renamed from frontend/gamma/js/main_iPhone.js)13
-rw-r--r--frontend/gamma/properties/creditsAndCopyrights.txt346
-rw-r--r--frontend/gamma/properties/gamma.properties.json4
-rw-r--r--frontend/gamma/properties/mobile.properties.json53
-rw-r--r--frontend/gamma/tests/tests/Clipperz/PM/PIN.html66
-rw-r--r--frontend/gamma/tests/tests/Clipperz/PM/PIN.test.js97
-rw-r--r--frontend/gamma/tests/tests/Clipperz/PM/index.html1
-rw-r--r--frontend/gamma/tests/tests/Components/FullApp/User.data.js4
-rw-r--r--frontend/gamma/tests/tests/Components/FullApp/index.html62
-rw-r--r--frontend/gamma/tests/tests/Components/FullApp/main_test.js111
-rw-r--r--frontend/gamma/tests/tests/Components/FullApp/mobile.index.html204
-rw-r--r--scripts/builder/backendBuilder.py37
-rw-r--r--scripts/builder/backends/devBuilder.py56
-rw-r--r--scripts/builder/frontendBuilder.py58
-rw-r--r--scripts/builder/frontends/betaBuilder.py14
-rw-r--r--scripts/builder/frontends/gammaBuilder.py26
-rw-r--r--scripts/builder/frontends/gamma_mobileBuilder.py9
-rwxr-xr-xscripts/builder/main.py26
-rwxr-xr-xscripts/dev-proxy7
-rwxr-xr-xscripts/proxy/main.py95
299 files changed, 12157 insertions, 2731 deletions
diff --git a/.gitignore b/.gitignore
index 6e317a9..f4556ce 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,2 +1,4 @@
target
-*.pyc \ No newline at end of file
+*.pyc
+backend/java
+scripts/builder/backends/javaBuilder.py \ No newline at end of file
diff --git a/backend/dev/properties/dev.properties.json b/backend/dev/properties/dev.properties.json
new file mode 100644
index 0000000..1c49ea5
--- a/dev/null
+++ b/backend/dev/properties/dev.properties.json
@@ -0,0 +1,9 @@
+{
+ "request.path": "json",
+ "should.pay.toll": "true",
+
+ "development.settings": {
+ "url": "http://homer.local:8084/java-backend"
+ }
+
+} \ No newline at end of file
diff --git a/frontend/beta/css/clipperz/clipperz.css b/frontend/beta/css/clipperz/clipperz.css
index cf99ac9..f41dfad 100644
--- a/frontend/beta/css/clipperz/clipperz.css
+++ b/frontend/beta/css/clipperz/clipperz.css
@@ -54,12 +54,12 @@ div#applicationVersionType {
}
div#applicationVersionType.readOnly {
-/* background: url(../images/read-only.png) no-repeat fixed -5px -8px; */
+/* background: url(./images/read-only.png) no-repeat fixed -5px -8px; */
background: url(data:image/png;charset=utf-8;base64,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) no-repeat fixed -5px -8px;
}
div#applicationVersionType.TEST {
-/* background: url(../images/test-database.png) no-repeat fixed -5px -8px; */
+/* background: url(./images/test-database.png) no-repeat fixed -5px -8px; */
background: url(data:image/png;charset=utf-8;base64,iVBORw0KGgoAAAANSUhEUgAAAIMAAACGCAYAAAD+UDnVAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAADMlJREFUeNrtnX+MXFUVx99OaaFLwdIfKrTQym81hsQCmiiIYPUP+R0ggXSL0KYgBKMBUUn9QVJMTIx/dDet1EAT21qEQM1iirKEFrKBGlOpbBoK6Lqhu6CLTJ2hdKY7O3s9575777v3zczuzPs19807L/lm29lt3+bd7/vcc8499z3HSc/RBcqBZoNOBM0DnQb6BGj5m+udjWyjw0i1+udPnD64RmeBFoNOEdfvBHFNuxhjDsqRfwgqMoLdeu1B53G4RheBzhbXaz5orriWOcMMRITO1UvfcX4P1+hK0ArQeaAzxLXrrmsGy8mQnBF6uzrKCM992+mHa3QzaCXoUtAFoKWghaCTQXPSRIaEjNDl+5p+7VrrPA/XaJ1mhkuEGZaAFjQ0g6VkoKkhoJ68w9kL1+h+0BrQjWKa+Lw2TSxIExmmNcJbZISG2nm7MwjXaD3oPlAP6BrQ5VoA+UktgLQ+myAjBNSO1c4rcI0eBj0AWiumiK+DvgD6jJZango6STODYyMZyAgBtX218ypcow2gB0F3g24DXQ26TFDhXNDp4nrKKWJWjRksIQMZIZwRHgH9CHQvaBXoWtAVIqW8EHQmaJEoOMkawywbyZCcEXpndVTWsK3H2QfX6OeaETBOuA70VZFB4PSwTFzLj4n6gkEFm8jQJiJ0daIRVoOuB12lGeFTImiU04NRhq4xA8UIHWOEG4QRLp3BCAYVbCBD7EY4PvInxvrmJDdIvSek0gjtJkPsRiiMv8bYZJmxF1bFP0BbFrM80459P0uVEdpJhgSMcMAdlMF7YzdCue9EVsFzDf+BsScuZtXRl9xz7+lJjRHaRYbYjfCfwr9qjbB1GWNPfyUWMxQGvw8n+4f6+1j5CGNDj7gB6lNfToUR2kGGWI0wBRdfEWGgx0B4ZWoSpozhWMxwGM9Z2MsHfwTPPfQL/vk7SIjCQCqMkDQZYidCdcfnvDlbmgGNwD8Yh+BO//lcZGYo7rlHixUeUp+/jYQ41JcKIyRJhuTSR5iz1TH0KCvVMwKaZqrKjRLoHID+ijzHY0tYFYylgseBbzG2qdsNIPF49LRUGCEpMsRvhK3L3QGuZwgcpo0+I/CjyNjmU1oPFnGweTwCccKur3npJPxfRjaBdvnt+W03QiuDGzcZYjfCBzJG4EfJuxN1Q+xZV2uETXNbj0nwjud3uxeLFHEq4JnETvUZN2dKpoakyJBc1rD/l2xCmmL8j/UJceh3Au3BjGBQAb/CFMSPMkxB8vfYutSaYDFI2h8XGZIzwlNfMinBo/oGMUQII0gyVPRpQKSNeaQRjx/OSCUR4iRDcumjHieAxoefdQcJ0Y0FIMMQIYyA/15OPxhn4N/1OgNQh5X/ah0R2k2G9qSP+Hn/NQLbR7S7N69F8wFWKOHflvSYUDPfFAaP6hhLNRHiIEN70kecv+XADH5X/cwE3q31solWpwT8//VUUhoCfwc8B37fUiK0hQxtWYY2YgFfxVEKBypA+oh6F6ec4S1qampEiE4gQpRkaF8/gkGIaBeFeFl5dLtXbu7/hls3kMfum6wnQqJkSC5rKHoFnukMIesJEagqlqCPYiyiZSi8sFR+NzBxbCRCFGSI3Qjvy5KuXlSqN0cbhrgz2PlgGZrtvsUV/lmuQGoLT1N4nvIrqSFCImRIamqYhLuPB26F12GQ7zF9gUbRBk2lj03csRgDMIwJ5GfyPPohSDQiK4zya4rWGpIgQ6Ixgls7gGOTGEQggxHMYUTfYvro9h/gAL/J/z6MS81YTkYjwbTgZQ6f5VkFr24W3uKLUmkiQqxkSKKgxBtDYBBUDyMOAK/9P+4uF8OAlcSdWtKnD50STeioLCdDTFJCoui/hzyn1rDSSVlDFGSInQiTKlofMSN7HkSWOLqL2h0dNn1UhuD4n2d87wj/Xsk6I7SdDElODR/IYtHATfWrjroRIpBHiL8Zn7/H+xjHMkGEVsgQ+9SgI74CvQFFuajU68v78djcHd4EOA1ohSOPEEWXNDJOsaAfodGAJU6GJIygVh8xpZNxglxnECmd8dn+n0bX/7B/Q/0pAzOXFmOQNBOhGTJMa4S3f+z0RtFibmQG5XdUxD4iTSIyBTROPuSi0L/RCOMv8+aTvEwVNcO5hij6eiXtbGdPjAxJGKHmjoeBKqrexU0c0TzFG/+zN4XgHRswWOQFIy0gfE/ubfAZIotEmI4MsRqBxwi+fgC3sDPGB6ICXUta+4h7PLGi9Wri0EY3+BRd0G5twTXDcWxK4ZXEHLbKusdof6ra2WMnQxJEGJN4Hh1Qd6GqJex/SPURHJPTRIB8/7CMCyAz4dPB4F1uRgKmwgCVH32+NnckVEaJUI8MyUwNgH+ji1isNbwvA7gtC72f5X0KRbf1POj2Ol+M4Q7+uJa5lKyOEdpChtiNgF3DAt1cmD3otQOYOnjMUBgMbTiepUgCcUL82otR9POGWdjqICLUM0N8RgDsq/lfW+jhyNZTOnlg70DYcyL24f9X05JmCMbjkpKRzqatnT1uMsRshErjhR6ghhkjjERWUFLrHXx941l30UmscxARGpshOSM0ShF5r2E+cBdzo4KSYQgkQtBtdRa1s8dNhshjhEqdi1+R0XvISmKrBSVpNiJCc2aINGtQC07cDAtNIwz9KlydwkeVpgtKHdTOHjcZIq0sqs0l0hAyUPQZgZeAywebb1Tld33JWLDqlIKSNWSIzAh8SsjVMQSrCdzU4pDctNpMz4Pc78hb3Lq9Je6MFJSSqUCGNYGxJd0MGA1CiPjBM8K21qcKtZupaBAi7QUla8gQWR1Bpoi+DbCGIWS/QAAj8Gok1AdK+mZaYYgsFJTsJgM3wpR7R4q1hiMyDvA9RMOcMrYFOpcbAzznkkctammESHFBKd1k2LKIVarAhKnDZv1fW3l0y80HTUOMPhNogPgDs3wFKbXhNuCTWNLazm4dGfJIgIkP4Slq/1WxgBocnL+BDOrJJgO3ht/yxqegkcbPaghTucwwESKbJop/h0aU43BXVkH7oJCEU0b/N2tb3fd9L/RA/U/usNJ2WyszhOiSTmM7u7XZRPF1WASaOAo+mKx5IutHcsOKthdiOvHCVINGVF5W1jfP4M/xKSlPRLAmm0BDDP3GfU7z1EfqcTYqum+y4liSdYHygWm7mPL68nQEW+TT2M5uBxn6Zjc2xMGtMF1gknnMew5ik1mDMoJv/8KMq5Mhn+JORAhkhube+1h4Y5sbNwQxAlYrNqfrfQ1JP3zbwphhBkMc2tF0+ljy766ueaxvuh7TTzFDQHlTw194LOCliPEaIo7d0BkmQ3Qv7PDHCF4TSjyGICJYZAbej4DpJlYTMcisEwDGZYg4n49AZAiwsln0N782aEEzDBFylxMRIZQZon/FX1U1m+TdtBCrhTNUDPMyhth1lfVPTCEytKAPZVOK1irPt76pVvlKTY8i/37IvkUigoUxg/sklIpHA9Wx5DtCPkCrXc9QIjIE2W3tf0EH7zvIeaudsC+SsoYOJANfdNIwf0xvbvG991Gtbu6+PnXPWSQyNL3o5O98zk2zAYZ6FjuODI2N4OtQwl5ImCaOyTSy1ecwWPKcRSJDC0bghSZtWlBviNWf4xjyvU5EBMvIoHZM4Ta3em1p2oDztBGbU0I+US2r7exWk8F4t+P4i7WFI9/OaFpr6FAyyFY13LiiDAFrDxN13iWlKpERvA4gy+3sVpLB36pmGMIXFFb1/Y/0DKXOIkOjVjXDEGLKMIxgwVpD2gfMKjLM1KpmGuIAm7Bo0YkYEKEZmm1Vq5kyyAidRYZWW9WUIcgIHUiGAK1qYVNJMkLK6gw2t6rRPd+GCiS1qhEZrG1Vo3u9zauW1KpGZKAYgchARiAykBGIDGQEIgMZgchARiAykBGIDGQEIkPiZiAjEBnICEQGMgKRgYxAZCAjEBnICEQGMgKRgYxAZCAjEBnICEQGMgKRgYxAZAhjBjICkYGMQGQgIxAZyAhEBjICkYGMQGQgI5DRmjADGYHIQEYgMnjavtp5lYxAZJBG2AD6IRkhw2TYebszCN97GPQDYYQeMkIGyfDkHc5e+Hw96AHQ3cII15ERMkSGZ9Y4z+9a6wzAZ/eD7gOtBd0GuhZ0JRkhQ2SAYx3oLtAa0CrQzaCrQVeALiYjZIgMYvBRNwoarARdBlpBRsgeGVYK4ZRwOeiLoItAF4CWkxGyRQaMCS4RUwKa4NOgc0FngT5ORsgWGS4UOh90DmgZ6HTQYtB8MkK2yLAUdCZoiZgSFgkanArqBs0hI2SHDAtAC4UB5gsTzAOdREbIHhlO1jRXTAn6tJAjI2SHDHM0zdZMIGlARsgQGWZpymkGIBNkjQxBX/tL6jzRRSCRGUi1+j+w3nFdxUGuNgAAAABJRU5ErkJgggo=) no-repeat fixed -5px -8px;
}
@@ -139,7 +139,7 @@ div#miscLinks ul li a:hover {
/* @group Menu */
div#mainTabs {
-/* background: #ff9400 url(../images/menubarSprite.gif) repeat-x; */
+/* background: #ff9400 url(./images/menubarSprite.gif) repeat-x; */
background: #ff9400 url(data:image/gif;charset=utf-8;base64,R0lGODlhAQCcAOYAANN7AKNfAP2zTf/KgO7QppVXAKJeALFmAOCkTfKtTZhZAPWvTaVgAJ5cAPCsTd2hTdygTaxjAOinTc13APySAOe8gO6rTfSuTZFVAKdhAOqIAN+jTfuyTZJVAO+LAPmxTeuqTbBlAKGDWbFnAOKkTaFdAOmoTfevTeSkTZdXAK9lAPyzTY9TAO+rTeamTfGMALKNWf60TeSmTZ1bAN+BAJpZAP/apvmyTZRWAKliAKpjAJxaAK1lAOiHAPaPANh9APyTANd9APSOANyBAPqQAPiPANF6ANB5AOOEANV9AOaGANV8AOyKANyAAPWPAP6UAPiQANp/AOGDANp+AOaFAOCDAO2KANJ6AP2TAPqRAOOFAM95APSNAP2UAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAAAAAAALAAAAAABAJwAAAeigANdQBRZUD5cLx5MGj1USFU0Q1E/SwBXWxUTNjECKxw3HycLFwkOLRYgJhIuMigkCBsPBBAwIwchKjwROjkZDAEGJQ0zOzUKKQU4HRgiLBVHRgBJQVNNNFJaSj0aVh4vQk5FRBRYTwMTIhgdOAUpCjU7Mw0lBgEMGTk6ETwqIQcjYLAg8GADAhIoZLiQYAKEhRYOElxYcOLDDQ4rBMSwASEQADsK) repeat-x;
height: 26px;
}
@@ -188,14 +188,14 @@ div#menus {
position: absolute;
right: 20;
top: 44px;
-/* background: url(../images/menubarSprite.gif) no-repeat right -26px; */
+/* background: url(./images/menubarSprite.gif) no-repeat right -26px; */
background: url(data:image/gif;charset=utf-8;base64,R0lGODlhAQCcAOYAANN7AKNfAP2zTf/KgO7QppVXAKJeALFmAOCkTfKtTZhZAPWvTaVgAJ5cAPCsTd2hTdygTaxjAOinTc13APySAOe8gO6rTfSuTZFVAKdhAOqIAN+jTfuyTZJVAO+LAPmxTeuqTbBlAKGDWbFnAOKkTaFdAOmoTfevTeSkTZdXAK9lAPyzTY9TAO+rTeamTfGMALKNWf60TeSmTZ1bAN+BAJpZAP/apvmyTZRWAKliAKpjAJxaAK1lAOiHAPaPANh9APyTANd9APSOANyBAPqQAPiPANF6ANB5AOOEANV9AOaGANV8AOyKANyAAPWPAP6UAPiQANp/AOGDANp+AOaFAOCDAO2KANJ6AP2TAPqRAOOFAM95APSNAP2UAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAAAAAAALAAAAAABAJwAAAeigANdQBRZUD5cLx5MGj1USFU0Q1E/SwBXWxUTNjECKxw3HycLFwkOLRYgJhIuMigkCBsPBBAwIwchKjwROjkZDAEGJQ0zOzUKKQU4HRgiLBVHRgBJQVNNNFJaSj0aVh4vQk5FRBRYTwMTIhgdOAUpCjU7Mw0lBgEMGTk6ETwqIQcjYLAg8GADAhIoZLiQYAKEhRYOElxYcOLDDQ4rBMSwASEQADsK) no-repeat right -26px;
}
div#menus table {
padding-left: 1px;
-/* background: url(../images/menubarSprite.gif) no-repeat 0 -52px; */
+/* background: url(./images/menubarSprite.gif) no-repeat 0 -52px; */
background: url(data:image/gif;charset=utf-8;base64,R0lGODlhAQCcAOYAANN7AKNfAP2zTf/KgO7QppVXAKJeALFmAOCkTfKtTZhZAPWvTaVgAJ5cAPCsTd2hTdygTaxjAOinTc13APySAOe8gO6rTfSuTZFVAKdhAOqIAN+jTfuyTZJVAO+LAPmxTeuqTbBlAKGDWbFnAOKkTaFdAOmoTfevTeSkTZdXAK9lAPyzTY9TAO+rTeamTfGMALKNWf60TeSmTZ1bAN+BAJpZAP/apvmyTZRWAKliAKpjAJxaAK1lAOiHAPaPANh9APyTANd9APSOANyBAPqQAPiPANF6ANB5AOOEANV9AOaGANV8AOyKANyAAPWPAP6UAPiQANp/AOGDANp+AOaFAOCDAO2KANJ6AP2TAPqRAOOFAM95APSNAP2UAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAAAAAAALAAAAAABAJwAAAeigANdQBRZUD5cLx5MGj1USFU0Q1E/SwBXWxUTNjECKxw3HycLFwkOLRYgJhIuMigkCBsPBBAwIwchKjwROjkZDAEGJQ0zOzUKKQU4HRgiLBVHRgBJQVNNNFJaSj0aVh4vQk5FRBRYTwMTIhgdOAUpCjU7Mw0lBgEMGTk6ETwqIQcjYLAg8GADAhIoZLiQYAKEhRYOElxYcOLDDQ4rBMSwASEQADsK) no-repeat 0 -52px;
}
@@ -204,7 +204,7 @@ div#menus table tbody tr td {
}
div#menus table tbody tr td div {
-/* background: url(../images/menubarSprite.gif) no-repeat right -52px; */
+/* background: url(./images/menubarSprite.gif) no-repeat right -52px; */
background: url(data:image/gif;charset=utf-8;base64,R0lGODlhAQCcAOYAANN7AKNfAP2zTf/KgO7QppVXAKJeALFmAOCkTfKtTZhZAPWvTaVgAJ5cAPCsTd2hTdygTaxjAOinTc13APySAOe8gO6rTfSuTZFVAKdhAOqIAN+jTfuyTZJVAO+LAPmxTeuqTbBlAKGDWbFnAOKkTaFdAOmoTfevTeSkTZdXAK9lAPyzTY9TAO+rTeamTfGMALKNWf60TeSmTZ1bAN+BAJpZAP/apvmyTZRWAKliAKpjAJxaAK1lAOiHAPaPANh9APyTANd9APSOANyBAPqQAPiPANF6ANB5AOOEANV9AOaGANV8AOyKANyAAPWPAP6UAPiQANp/AOGDANp+AOaFAOCDAO2KANJ6AP2TAPqRAOOFAM95APSNAP2UAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAAAAAAALAAAAAABAJwAAAeigANdQBRZUD5cLx5MGj1USFU0Q1E/SwBXWxUTNjECKxw3HycLFwkOLRYgJhIuMigkCBsPBBAwIwchKjwROjkZDAEGJQ0zOzUKKQU4HRgiLBVHRgBJQVNNNFJaSj0aVh4vQk5FRBRYTwMTIhgdOAUpCjU7Mw0lBgEMGTk6ETwqIQcjYLAg8GADAhIoZLiQYAKEhRYOElxYcOLDDQ4rBMSwASEQADsK) no-repeat right -52px;
}
@@ -214,7 +214,7 @@ div#menus table tbody tr td div a {
font-size: 10pt;
text-decoration: none;
padding: 0px 15px;
-/* background: url(../images/menubarSprite.gif) no-repeat left -26px; */
+/* background: url(./images/menubarSprite.gif) no-repeat left -26px; */
background: url(data:image/gif;charset=utf-8;base64,R0lGODlhAQCcAOYAANN7AKNfAP2zTf/KgO7QppVXAKJeALFmAOCkTfKtTZhZAPWvTaVgAJ5cAPCsTd2hTdygTaxjAOinTc13APySAOe8gO6rTfSuTZFVAKdhAOqIAN+jTfuyTZJVAO+LAPmxTeuqTbBlAKGDWbFnAOKkTaFdAOmoTfevTeSkTZdXAK9lAPyzTY9TAO+rTeamTfGMALKNWf60TeSmTZ1bAN+BAJpZAP/apvmyTZRWAKliAKpjAJxaAK1lAOiHAPaPANh9APyTANd9APSOANyBAPqQAPiPANF6ANB5AOOEANV9AOaGANV8AOyKANyAAPWPAP6UAPiQANp/AOGDANp+AOaFAOCDAO2KANJ6AP2TAPqRAOOFAM95APSNAP2UAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAAAAAAALAAAAAABAJwAAAeigANdQBRZUD5cLx5MGj1USFU0Q1E/SwBXWxUTNjECKxw3HycLFwkOLRYgJhIuMigkCBsPBBAwIwchKjwROjkZDAEGJQ0zOzUKKQU4HRgiLBVHRgBJQVNNNFJaSj0aVh4vQk5FRBRYTwMTIhgdOAUpCjU7Mw0lBgEMGTk6ETwqIQcjYLAg8GADAhIoZLiQYAKEhRYOElxYcOLDDQ4rBMSwASEQADsK) no-repeat left -26px;
height: 26px;
line-height: 26px;
@@ -226,18 +226,18 @@ div#menus table tbody tr td.hover div a {
/* @group .selected */
div#menus table tbody tr td.selectedTab {
-/* background: url(../images/menubarSprite.gif) repeat-x right -78px; */
+/* background: url(./images/menubarSprite.gif) repeat-x right -78px; */
background: url(data:image/gif;charset=utf-8;base64,R0lGODlhAQCcAOYAANN7AKNfAP2zTf/KgO7QppVXAKJeALFmAOCkTfKtTZhZAPWvTaVgAJ5cAPCsTd2hTdygTaxjAOinTc13APySAOe8gO6rTfSuTZFVAKdhAOqIAN+jTfuyTZJVAO+LAPmxTeuqTbBlAKGDWbFnAOKkTaFdAOmoTfevTeSkTZdXAK9lAPyzTY9TAO+rTeamTfGMALKNWf60TeSmTZ1bAN+BAJpZAP/apvmyTZRWAKliAKpjAJxaAK1lAOiHAPaPANh9APyTANd9APSOANyBAPqQAPiPANF6ANB5AOOEANV9AOaGANV8AOyKANyAAPWPAP6UAPiQANp/AOGDANp+AOaFAOCDAO2KANJ6AP2TAPqRAOOFAM95APSNAP2UAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAAAAAAALAAAAAABAJwAAAeigANdQBRZUD5cLx5MGj1USFU0Q1E/SwBXWxUTNjECKxw3HycLFwkOLRYgJhIuMigkCBsPBBAwIwchKjwROjkZDAEGJQ0zOzUKKQU4HRgiLBVHRgBJQVNNNFJaSj0aVh4vQk5FRBRYTwMTIhgdOAUpCjU7Mw0lBgEMGTk6ETwqIQcjYLAg8GADAhIoZLiQYAKEhRYOElxYcOLDDQ4rBMSwASEQADsK) repeat-x right -78px;
}
div#menus table tbody tr td.selectedTab div {
-/* background: url(../images/menubarSprite.gif) no-repeat right -130px; */
+/* background: url(./images/menubarSprite.gif) no-repeat right -130px; */
background: url(data:image/gif;charset=utf-8;base64,R0lGODlhAQCcAOYAANN7AKNfAP2zTf/KgO7QppVXAKJeALFmAOCkTfKtTZhZAPWvTaVgAJ5cAPCsTd2hTdygTaxjAOinTc13APySAOe8gO6rTfSuTZFVAKdhAOqIAN+jTfuyTZJVAO+LAPmxTeuqTbBlAKGDWbFnAOKkTaFdAOmoTfevTeSkTZdXAK9lAPyzTY9TAO+rTeamTfGMALKNWf60TeSmTZ1bAN+BAJpZAP/apvmyTZRWAKliAKpjAJxaAK1lAOiHAPaPANh9APyTANd9APSOANyBAPqQAPiPANF6ANB5AOOEANV9AOaGANV8AOyKANyAAPWPAP6UAPiQANp/AOGDANp+AOaFAOCDAO2KANJ6AP2TAPqRAOOFAM95APSNAP2UAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAAAAAAALAAAAAABAJwAAAeigANdQBRZUD5cLx5MGj1USFU0Q1E/SwBXWxUTNjECKxw3HycLFwkOLRYgJhIuMigkCBsPBBAwIwchKjwROjkZDAEGJQ0zOzUKKQU4HRgiLBVHRgBJQVNNNFJaSj0aVh4vQk5FRBRYTwMTIhgdOAUpCjU7Mw0lBgEMGTk6ETwqIQcjYLAg8GADAhIoZLiQYAKEhRYOElxYcOLDDQ4rBMSwASEQADsK) no-repeat right -130px;
}
div#menus table tbody tr td.selectedTab div a {
color: #333366;
-/* background: url(../images/menubarSprite.gif) no-repeat left -104px; */
+/* background: url(./images/menubarSprite.gif) no-repeat left -104px; */
background: url(data:image/gif;charset=utf-8;base64,R0lGODlhAQCcAOYAANN7AKNfAP2zTf/KgO7QppVXAKJeALFmAOCkTfKtTZhZAPWvTaVgAJ5cAPCsTd2hTdygTaxjAOinTc13APySAOe8gO6rTfSuTZFVAKdhAOqIAN+jTfuyTZJVAO+LAPmxTeuqTbBlAKGDWbFnAOKkTaFdAOmoTfevTeSkTZdXAK9lAPyzTY9TAO+rTeamTfGMALKNWf60TeSmTZ1bAN+BAJpZAP/apvmyTZRWAKliAKpjAJxaAK1lAOiHAPaPANh9APyTANd9APSOANyBAPqQAPiPANF6ANB5AOOEANV9AOaGANV8AOyKANyAAPWPAP6UAPiQANp/AOGDANp+AOaFAOCDAO2KANJ6AP2TAPqRAOOFAM95APSNAP2UAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAAAAAAALAAAAAABAJwAAAeigANdQBRZUD5cLx5MGj1USFU0Q1E/SwBXWxUTNjECKxw3HycLFwkOLRYgJhIuMigkCBsPBBAwIwchKjwROjkZDAEGJQ0zOzUKKQU4HRgiLBVHRgBJQVNNNFJaSj0aVh4vQk5FRBRYTwMTIhgdOAUpCjU7Mw0lBgEMGTk6ETwqIQcjYLAg8GADAhIoZLiQYAKEhRYOElxYcOLDDQ4rBMSwASEQADsK) no-repeat left -104px;
}
@@ -367,7 +367,7 @@ div.clipperzLoginForm a:hover {
div.clipperzLoginForm div.loginFormHeaderBox {
padding: 30px 20px 0px 20px;
-/* background: url(../images/loginFormBox.png) no-repeat -3px top; */
+/* background: url(./images/loginFormBox.png) no-repeat -3px top; */
background: url(data:image/png;charset=utf-8;base64,iVBORw0KGgoAAAANSUhEUgAABMAAAAAvCAIAAACKdSGFAAAABGdBTUEAANbY1E9YMgAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAv4SURBVHja7N3Zj1vlGcfxY3u8e7ZMokCUNCIbVdIAQrlAkZAIoSigFoTaSOWmN73oQiWqUlX9D0oXEL0A2steRSqV2kRViygpaaAsEpCKQNIkbRayTZaZTGbz2B7bfY6f8eM3niU+E0/EnPl+VE09M6aDjtWf3t857xKpVqseACxC27Z998MPfzfHGyqVyuTkZKFQGB8fHx0dHRkZuXbt2uDg4Df6v9V40zMlriSAYF6O28s/rtyzfPny7ppsNpvJZJLJZDwej0QitxhfpVJJ42tsbGx4eHhoaGhgYOCbl54mvgC0K76WLVvW29vb1dWVy+XS6bTGVzQanft/I8plBBBi7j0yfc1dMwDtJWVvxrQBgFCiQAIIf4dkMAdgUQfO3M8zAeBWsiVowlAgAQAAvqBju5vOJQOAdgVOi02SVAIAAPgiDuZu+hMAuP05Q4EEAAAAALSEAgkAAAAAoEACAACESMlLNL4pjnBBAATghMYNYUKBBAAACA3bJlGMVbsbvxi/yMUBEIATGhImukfXPHbqokACAAB8oXuj7Y44HulpvGPkLFcJQABOaGiYNOUMBRIAAGBxt0d3bBeNRkeiKxpvOvsmFwpAAE5oSJhIpDTdomqxQ3Ys0L/ejKfocpY3sKSGPrN9CwAIGqpaIM/Ftt5deXfqp6f2edt/zsUB0KqTe+2lhImmyjwGaW0ukG5FrFQq+pOm3qg/BxDK0mgxZC8kmyQEAt3ZAgBoZkZvdDG+dbIY64iU/V8PHffOveWt3sGFAnBzEhfXT+jLyWqsP3FP143x0vogrT0Fsqk3akW0r1XHbP8UgBC0R2+mRTu2RHsecyQAYCnnqqWoiMVifpzGs6crd2+IHZl607s/83a/75GoAG7W1vy4qDtd+XIllu7o6NBgaRqkLXiBtBIoL7QrVm7k/rzp/RRIIEyjHPvWGqNFUtP9LWuV1EgAmDtdrT3KUC8ej8vXj6KPra9+NpWfVz72Pn3V2/oDrhWAuRx+xY+Legv7KLpL80TjRWvkbXoCqQ1Qq6D0w3K5rKVxcnLS/6/CSOz8/sTF/bHRM7GJS7HCpWg5z8cHhF4lli4nV5ZTK8u5tcU7d06uejiW6tJsspCS0KBDAsAc3HtwmpzaIQcS646M37sl/snU+97+sde72Vv9EFcMwMzOHfDeec6+OzJ573B2/bJagdQOafeqWnwIOf8Cqe1RG6NVx1KpJO0xcvXf2SMvJS+9Fa2W+MiAJTfoKeej46fj46e9wQ+yn/+hEokXVu4Y2/yj6vL7ZOgTq9MOaU8jAQBGslEHWhqYWh1VIpF4b/Tx9ZX/pKLF2oCs7L2+29v1Gh0SwMztUSKiWtbvJiqJ9yqPa5LE6x1SBJrCOs9xmz111PYopbFYLObz+dLAfzP/+l7f/sfS/W/QHgH4KVMtSSBILEg4FK+eKBQKEhelUsluPLGxFgDM2CHdJ5CJmmQymUqliqk7/zy+u1KpLwUqDHn7dvlT1FgcBMApbH4sSDhIRNRIaEh0SIBIjEiYWIfUkFnYAmk74mh1lIGgDAcnJia8M6/3vfnV7Pl9zEkDMH0kJOEgEVE59VfrkBIgdiuKSwQAM3ZIfT6gHVKHffL1Qvyev4/tdAZnZe/gs95rD/gbLQKARIEEgsRC/dmjkNCQ6LD2qGwrnQVcA9nUHrVAynAwdfSV3qO/aP673Ru9dU96ax7xOtd4mVVeIsenCYRfcdQbv+CNnPXPqz251/aMFrHy2IoPvjN4/aeFLT/U7bW82gQt/S1zWQFgeoHUKaz2BDKTyehtuEPFHeWh8q6uAzLwm/oHrnzs7X3U69nk3fUEoy+A0ZeRMdfrww8d7ni4O+NLp9NSI7U9LniBnN4e9dmjtMdlx3/luX90xf3e9uc5mwhYimSwktjkj2DW7PQPuT73lr9zdH3vL0mnvmO/vFqtFjY/M30rZjokAFh7tJ0tdA2kjPZk2CdDLymQpZpDwzv6ry57uu8v6ZizbmjouHfo1/5/AMDz8uX4noGv9Sfv68xksjXSIfU5pG5OYbPlF/AYj6Z1j9Gzb/Qdc9pjJOY9+KL3le9zKhEA3+od/jFln77qbxVYn0choXE+s66wdpc7TuJoHwCY3iFtEx0pkDL60g6p9/FlSHZh5J7f9PftzB3Y1nWCNUQAXDKy+nB44z/GdpTSqzqz2Vwul6k/gXTXQE4dM9uyjkD/BnZch7bHQqEwOfi/L33yXCOvkj3sAwZg+iDIP6asd7O/D1htJbf84M7DP/k8tyGyfKN7x4tNWQGgqUPaQ0gZ8OlhaVPnpdUXAoxGVv9p9Kl/Xj/zSPf7WzrPxaOsKgeWulIl+tnImv3DDwzG1kpj7OrslPbYWZPNZt0prEHnrwYokHZoh22cI/L5fN+xF2LlsXrIxWiPAGYl4SARsW+XPoeU6Og59sJg7qWIQyJMcoYOCQDWHmUMJiO8eDxuu98LW1Vk6yRH8hv2XF9duTyyMXlqc/bM8vhwT3y8JzGeipW5kkDoTZRjQ8XMUClztdR1ZGzticJdkUROimJnOp2tPXu09ug+gXQL5IKsgbQnkFog/W1Xrxzqufy3xlTVB1+kPQK4SYeUoDj4rH4nATJw+duFO7bZMdn6gusEAEbvqckYTDtkKpWyZ486wVXrpQwH8/n8xETyZLHr+PAWGa3ZaUn6ZlsmwHoBIATcymeLGPVMDgmETHdSd2zO1Nc9SofUr9oehe6gE7Q9BiuQmkG2d06hUFh58tXGH1txv7/uEQDmJkFx9Pe6p44ESN/J317qfdkiTOk9dS4VAGgY2tDQPfTIHTLqBq1iYmJCz1drKpCclgSEOCJsBKW3k3TGuxVI7ZD2IlWj2+fMY/5qqwXSpknY40e/QI4Odl9/v/Gm7c+zaw6AVqLOj4u9j+p33dffOzt2raNOgkxyJuidMAAI9wDRJvZLUbSxmZ3woY8fZUSYTqelQNpBu7ZUUtsjHRIIa3t0N9yyTNBYsA6pEaFLH3XyqrxNa+eCFEjNKXcBpGRT+srb0Wp9z+ieTZzYAaBVEhfdG/WEIomR1OWDxfTXdSswuxnGRQIAl87OcDuk+8BBR4rSHvWEj9meQDJ5FQhfMnizPIHUiQk2YdUePNrxj/OYvDqfAqlhJMHkz18dfKfx67ue4PMDEMC6J+2Mss7Bd/rveFSiTRJGcs3dGYLrBABe7TmDbqWj38r4zwaLOl6Un/g392snfOhOh/r4UTukhioFEghlONgRjjqhXedzJer0sEf96p7bIea99f18prAWa5IT5xvvWPMInx+AACQ06gVSwsQmXOnuguyjAwCzdUhbFWn7r0p+6gMHq44WpzZ/dcYCSZ8EFmMUTH9hgWAdUouiLpCO11i3tGeP857wdfMCaYljU1jlq4z2EqWrjTd1ruHjBBCAExoSJm57tJvlPIEEgOkd0masWYHUwaIEqY7TbPKqe9qHxxpIIKRlsqlAWizYdFZbG+lud38ry4VafQJpi7B1CqtIVQYb78is4iMEEIATGhImurja3e+B++IAMNt4UY/MleGgbpshYzMdHepMsYqjafUj0QqELA1U00pIOx1NS6NlhU12vcV79AGO8dCHA3pny58sUS00fpfI8SkCCMAJDQkTm3Ml7GY5AGC2gaP79ED7pO5inUgk3GeP1h7JVSDcNdKaoc1NsHkK7oTVtuxT2FKBdG9i2URWPjAA7WITrjRn2EcHAFoZNepY0IaGNmBzZ65Ob4+USSBM1bFpMaQbC5EbtetPB9iF1S2QTKMH0Ea20wPzVwEg6AhS10Z6Nz6ZnHHnVdIVCF+BNPZ//6a1kW3/08EKpFsj+dgAtL1A2uCGUQ4AzKNJzpGf5CqwRJrkQk/gCrALq1VHm1IPAG3hTrtyjywDANz6aPL2jCkBLBEtLaN0p0C4a7IBoF2aVuxwQQAAABZrgZw+wmN4B6CN3F0fuBoAAADhKZBcMgALipwBAAAISYFkeAdg4Uoj2QIAABDCAgkAAAAAoEACAAAAAHDLBZLZZQAAAABAgQxQHVmqBGAh6OFA09MGAAAAi6xAevUDPLheAG4DAgcAAGBxF0gAAAAAwBL3fwEGAGLpZ+CuDirCAAAAAElFTkSuQmCCCg==) no-repeat -3px top;
}
@@ -422,7 +422,7 @@ div.oneTimePassword span {
div.clipperzLoginForm div.loginForm {
text-align: left;
-/* background: url(../images/loginFormBox.png) repeat-y -408px; */
+/* background: url(./images/loginFormBox.png) repeat-y -408px; */
background: url(data:image/png;charset=utf-8;base64,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) repeat-y -408px;
margin: 0px;
}
@@ -433,7 +433,7 @@ div.clipperzLoginForm form table.formLayout {
div.loginForm div.loginFormFooterBox {
padding: 0px 20px 30px 20px;
-/* background: url(../images/loginFormBox.png) no-repeat -813px bottom; */
+/* background: url(./images/loginFormBox.png) no-repeat -813px bottom; */
background: url(data:image/png;charset=utf-8;base64,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) no-repeat -813px bottom;
}
@@ -452,7 +452,7 @@ div.loginFormButtonFooter {
div.clipperzLoginForm div.registrationForm {
text-align: left;
-/* background: url(../images/loginFormBox.png) repeat-y -408px; */
+/* background: url(./images/loginFormBox.png) repeat-y -408px; */
background: url(data:image/png;charset=utf-8;base64,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) repeat-y -408px;
margin: 0px;
}
@@ -469,23 +469,23 @@ div.registrationForm form table.formLayout {
/*
div.clipperzLoginForm form.read-only table.formLayout {
- background-image: url(../images/read-only_background.png);
+ background-image: url(./images/read-only_background.png);
}
div.panelBody form.read-only table.panelBody {
- background-image: url(../images/read-only_background.png);
+ background-image: url(./images/read-only_background.png);
}
*/
div.clipperzLoginForm form.read-only table.formLayout, div.panelBody form.read-only table.panelBody, div.clipperzSubPanel span.read-only, div.read-only {
-/* background-image: url(../images/read-only_background.png); */
+/* background-image: url(./images/read-only_background.png); */
background-image: url(data:image/png;charset=utf-8;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAABGdBTUEAANbY1E9YMgAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAT8SURBVHjaxJppc9NIEIZbshTHxkACNhRHQVGQAwJF8cv5FxRfdosjCVeyG7aA3U3sOM7tIxLdGmFLmkMz40lwpSo+ZtR69HbPdLfkxZsvD6AyW4XkFSd/cP0ZwOW7wL32vwLsfgDwMt9FOKHeBGg+B6jM5McPjwG2/8T/Bzjn1yQyUAG48QKg1uJtdD8D9P7ibTRuow08L8/Pjx/0AP593Q8gqM9CpRowCJw9vwBw6TZv4PA7gvwNENYKEPMI/gTAD/PjRycAnXUcM8I59ZSBIHw2vtbkbfTw+Ic/eBuNGwDXlgUQeIE6H+mdF0AcxWMl5hcR4pYYYu8Lf5VmFRDtNVTiEH/z9CFIcd8rXCgJBKncQRtnp8nBM0ooILpfknMYk1hBoDtdf2wB8TjjllklUoj0t4ApsaBWQgixgt8HehBehZ2QlRIFCDp2AYLE8OKDbwNo3AnV7jQFRKLEsjiwxxAFGwZKJDaiaOjFcTzAj3mQw28IseEIokwJEYQoJvDY7VUewp+h8cNArIQFxEjkTssWECIlyJ0kEBSn1TnweSUs3ckTQbQslDCHYMHu2p1wRbdTQrRPEMR7hOgrIQDSQzKITUfutOQuJjQhmCJk4OCrAGJOAYFSD48slNDd7Ciw9SFo+fWh+0mixFMDCF0lzgGCfsNUKDBzJ5kSSyWBPa0SoRyCFqf9fzLBroQ4ZRAjmRKti1cCUghKMvGcAj2I9xJ3WnajhHJ1wnOqXhUrkUJARNfLNcT+lgTiJlNPuDqt6kMUlJisWhSgSRYrgRjZKCFypyUHSkRsrytA0BwvPhsOECLUV0KSO5ESvS2JEotsrlbuFLIVU6REl1civVCYaxkrYbLE3jRUQgIRi90psUEl+dxDCJwoIQ3sRYOYUCghcqcMBG0fQbkSvkZRZKKEI3fKQEySxotQ4hwhGMjoOM1ibZTwfrsSE5D//8B5ZwYQpkpIylMpBCgg7iDEI378aQe9myuKCOKJZJ/YYi4l3bErU0LErEEnhVgQQHQBtt9Q0iiCaBpAyNzJtRISiM4HHDNIg70UQpU7ySDWHcaEwJ36XWYjHiY2WIMOypQwSQAlSnguYyIPkS6/FXdtTGMlwC4mChAs1zraHkC9FTrpxbZlMbEiqCfcQeAHSYPOQS9WnYpbQFBMtAUQlRp5lKBB56IXm6vsDCAaisAWQtQBmmgjbBSSRmU9cRFKiCD25EqkEPkGnbTv1Dp/JaRL7B6rWeLRxAaND+o5iAmIaS9WGtiyRoEtxFoegmwENQ6CgYwNaPZik8rOBMJysxNBJO6Ey3h4iSuBfehtpgY0e7Ht1XOG2DODiDDh3XmbybW0erEGEBrlqVZMKJVACOqUHv1XaNC57gBOG9hlELsfAY53Ehv+dB3AFUdKdC0gPo0hWLCr7mNfmBImMTFi7pSBYCD0RIGzXuyGhRLrAohZdUwUIFjSGJ0NECLkVyeEiEx6sRvs/qNmjT1tTIwvXgRkA3Mt2eoU9SVZrF4vVglxihC7a24grj4AuHK/kGu56sUqISSpuMqdSiAm9xBLO4Ar1h1AVXmah3hmDTHJtUz7TrGNO5lCROzJn5NyCAYy2PeMGwWmEKTEroUSJ4XVSQLBHnP68QoJ4moyIU5P1JthD5JxSqQb0a/CK8pAXLknhjjpYC70JmnZ5Gz4ipjYeZekHTkbNI+Oz0Pg2O/9nwIMAFYA4szm5y3UAAAAAElFTkSuQmCCCg==);
}
div.registrationForm div.loginFormFooterBox {
padding: 0px 20px 30px 20px;
-/* background: url(../images/loginFormBox.png) no-repeat -813px bottom; */
+/* background: url(./images/loginFormBox.png) no-repeat -813px bottom; */
background: url(data:image/png;charset=utf-8;base64,iVBORw0KGgoAAAANSUhEUgAABMAAAAAvCAIAAACKdSGFAAAABGdBTUEAANbY1E9YMgAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAv4SURBVHja7N3Zj1vlGcfxY3u8e7ZMokCUNCIbVdIAQrlAkZAIoSigFoTaSOWmN73oQiWqUlX9D0oXEL0A2steRSqV2kRViygpaaAsEpCKQNIkbRayTZaZTGbz2B7bfY6f8eM3niU+E0/EnPl+VE09M6aDjtWf3t857xKpVqseACxC27Z998MPfzfHGyqVyuTkZKFQGB8fHx0dHRkZuXbt2uDg4Df6v9V40zMlriSAYF6O28s/rtyzfPny7ppsNpvJZJLJZDwej0QitxhfpVJJ42tsbGx4eHhoaGhgYOCbl54mvgC0K76WLVvW29vb1dWVy+XS6bTGVzQanft/I8plBBBi7j0yfc1dMwDtJWVvxrQBgFCiQAIIf4dkMAdgUQfO3M8zAeBWsiVowlAgAQAAvqBju5vOJQOAdgVOi02SVAIAAPgiDuZu+hMAuP05Q4EEAAAAALSEAgkAAAAAoEACAACESMlLNL4pjnBBAATghMYNYUKBBAAACA3bJlGMVbsbvxi/yMUBEIATGhImukfXPHbqokACAAB8oXuj7Y44HulpvGPkLFcJQABOaGiYNOUMBRIAAGBxt0d3bBeNRkeiKxpvOvsmFwpAAE5oSJhIpDTdomqxQ3Ys0L/ejKfocpY3sKSGPrN9CwAIGqpaIM/Ftt5deXfqp6f2edt/zsUB0KqTe+2lhImmyjwGaW0ukG5FrFQq+pOm3qg/BxDK0mgxZC8kmyQEAt3ZAgBoZkZvdDG+dbIY64iU/V8PHffOveWt3sGFAnBzEhfXT+jLyWqsP3FP143x0vogrT0Fsqk3akW0r1XHbP8UgBC0R2+mRTu2RHsecyQAYCnnqqWoiMVifpzGs6crd2+IHZl607s/83a/75GoAG7W1vy4qDtd+XIllu7o6NBgaRqkLXiBtBIoL7QrVm7k/rzp/RRIIEyjHPvWGqNFUtP9LWuV1EgAmDtdrT3KUC8ej8vXj6KPra9+NpWfVz72Pn3V2/oDrhWAuRx+xY+Legv7KLpL80TjRWvkbXoCqQ1Qq6D0w3K5rKVxcnLS/6/CSOz8/sTF/bHRM7GJS7HCpWg5z8cHhF4lli4nV5ZTK8u5tcU7d06uejiW6tJsspCS0KBDAsAc3HtwmpzaIQcS646M37sl/snU+97+sde72Vv9EFcMwMzOHfDeec6+OzJ573B2/bJagdQOafeqWnwIOf8Cqe1RG6NVx1KpJO0xcvXf2SMvJS+9Fa2W+MiAJTfoKeej46fj46e9wQ+yn/+hEokXVu4Y2/yj6vL7ZOgTq9MOaU8jAQBGslEHWhqYWh1VIpF4b/Tx9ZX/pKLF2oCs7L2+29v1Gh0SwMztUSKiWtbvJiqJ9yqPa5LE6x1SBJrCOs9xmz111PYopbFYLObz+dLAfzP/+l7f/sfS/W/QHgH4KVMtSSBILEg4FK+eKBQKEhelUsluPLGxFgDM2CHdJ5CJmmQymUqliqk7/zy+u1KpLwUqDHn7dvlT1FgcBMApbH4sSDhIRNRIaEh0SIBIjEiYWIfUkFnYAmk74mh1lIGgDAcnJia8M6/3vfnV7Pl9zEkDMH0kJOEgEVE59VfrkBIgdiuKSwQAM3ZIfT6gHVKHffL1Qvyev4/tdAZnZe/gs95rD/gbLQKARIEEgsRC/dmjkNCQ6LD2qGwrnQVcA9nUHrVAynAwdfSV3qO/aP673Ru9dU96ax7xOtd4mVVeIsenCYRfcdQbv+CNnPXPqz251/aMFrHy2IoPvjN4/aeFLT/U7bW82gQt/S1zWQFgeoHUKaz2BDKTyehtuEPFHeWh8q6uAzLwm/oHrnzs7X3U69nk3fUEoy+A0ZeRMdfrww8d7ni4O+NLp9NSI7U9LniBnN4e9dmjtMdlx3/luX90xf3e9uc5mwhYimSwktjkj2DW7PQPuT73lr9zdH3vL0mnvmO/vFqtFjY/M30rZjokAFh7tJ0tdA2kjPZk2CdDLymQpZpDwzv6ry57uu8v6ZizbmjouHfo1/5/AMDz8uX4noGv9Sfv68xksjXSIfU5pG5OYbPlF/AYj6Z1j9Gzb/Qdc9pjJOY9+KL3le9zKhEA3+od/jFln77qbxVYn0choXE+s66wdpc7TuJoHwCY3iFtEx0pkDL60g6p9/FlSHZh5J7f9PftzB3Y1nWCNUQAXDKy+nB44z/GdpTSqzqz2Vwul6k/gXTXQE4dM9uyjkD/BnZch7bHQqEwOfi/L33yXCOvkj3sAwZg+iDIP6asd7O/D1htJbf84M7DP/k8tyGyfKN7x4tNWQGgqUPaQ0gZ8OlhaVPnpdUXAoxGVv9p9Kl/Xj/zSPf7WzrPxaOsKgeWulIl+tnImv3DDwzG1kpj7OrslPbYWZPNZt0prEHnrwYokHZoh22cI/L5fN+xF2LlsXrIxWiPAGYl4SARsW+XPoeU6Og59sJg7qWIQyJMcoYOCQDWHmUMJiO8eDxuu98LW1Vk6yRH8hv2XF9duTyyMXlqc/bM8vhwT3y8JzGeipW5kkDoTZRjQ8XMUClztdR1ZGzticJdkUROimJnOp2tPXu09ug+gXQL5IKsgbQnkFog/W1Xrxzqufy3xlTVB1+kPQK4SYeUoDj4rH4nATJw+duFO7bZMdn6gusEAEbvqckYTDtkKpWyZ486wVXrpQwH8/n8xETyZLHr+PAWGa3ZaUn6ZlsmwHoBIATcymeLGPVMDgmETHdSd2zO1Nc9SofUr9oehe6gE7Q9BiuQmkG2d06hUFh58tXGH1txv7/uEQDmJkFx9Pe6p44ESN/J317qfdkiTOk9dS4VAGgY2tDQPfTIHTLqBq1iYmJCz1drKpCclgSEOCJsBKW3k3TGuxVI7ZD2IlWj2+fMY/5qqwXSpknY40e/QI4Odl9/v/Gm7c+zaw6AVqLOj4u9j+p33dffOzt2raNOgkxyJuidMAAI9wDRJvZLUbSxmZ3woY8fZUSYTqelQNpBu7ZUUtsjHRIIa3t0N9yyTNBYsA6pEaFLH3XyqrxNa+eCFEjNKXcBpGRT+srb0Wp9z+ieTZzYAaBVEhfdG/WEIomR1OWDxfTXdSswuxnGRQIAl87OcDuk+8BBR4rSHvWEj9meQDJ5FQhfMnizPIHUiQk2YdUePNrxj/OYvDqfAqlhJMHkz18dfKfx67ue4PMDEMC6J+2Mss7Bd/rveFSiTRJGcs3dGYLrBABe7TmDbqWj38r4zwaLOl6Un/g392snfOhOh/r4UTukhioFEghlONgRjjqhXedzJer0sEf96p7bIea99f18prAWa5IT5xvvWPMInx+AACQ06gVSwsQmXOnuguyjAwCzdUhbFWn7r0p+6gMHq44WpzZ/dcYCSZ8EFmMUTH9hgWAdUouiLpCO11i3tGeP857wdfMCaYljU1jlq4z2EqWrjTd1ruHjBBCAExoSJm57tJvlPIEEgOkd0masWYHUwaIEqY7TbPKqe9qHxxpIIKRlsqlAWizYdFZbG+lud38ry4VafQJpi7B1CqtIVQYb78is4iMEEIATGhImurja3e+B++IAMNt4UY/MleGgbpshYzMdHepMsYqjafUj0QqELA1U00pIOx1NS6NlhU12vcV79AGO8dCHA3pny58sUS00fpfI8SkCCMAJDQkTm3Ml7GY5AGC2gaP79ED7pO5inUgk3GeP1h7JVSDcNdKaoc1NsHkK7oTVtuxT2FKBdG9i2URWPjAA7WITrjRn2EcHAFoZNepY0IaGNmBzZ65Ob4+USSBM1bFpMaQbC5EbtetPB9iF1S2QTKMH0Ea20wPzVwEg6AhS10Z6Nz6ZnHHnVdIVCF+BNPZ//6a1kW3/08EKpFsj+dgAtL1A2uCGUQ4AzKNJzpGf5CqwRJrkQk/gCrALq1VHm1IPAG3hTrtyjywDANz6aPL2jCkBLBEtLaN0p0C4a7IBoF2aVuxwQQAAABZrgZw+wmN4B6CN3F0fuBoAAADhKZBcMgALipwBAAAISYFkeAdg4Uoj2QIAABDCAgkAAAAAoEACAAAAAHDLBZLZZQAAAABAgQxQHVmqBGAh6OFA09MGAAAAi6xAevUDPLheAG4DAgcAAGBxF0gAAAAAwBL3fwEGAGLpZ+CuDirCAAAAAElFTkSuQmCCCg==) no-repeat -813px bottom;
}
@@ -560,7 +560,7 @@ div.loginPanelSwitchLanguageBox {
font-weight: bold;
text-align: center;
height: 75px;
-/* background: url(../images/languageBox.png) no-repeat 19px -15px; */
+/* background: url(./images/languageBox.png) no-repeat 19px -15px; */
background: url(data:image/png;charset=utf-8;base64,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) no-repeat 19px -15px;
width: 400px;
margin: 0px;
@@ -591,12 +591,12 @@ div#directLoginsBlock {
width: 230px;
padding: 0px;
/* border: 4px solid #ff9400;*/
-/* background: url(../images/directLoginBox.png) repeat-y -262px bottom; */
+/* background: url(./images/directLoginBox.png) repeat-y -262px bottom; */
background: url(data:image/png;charset=utf-8;base64,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) repeat-y -262px bottom;
}
div#directLoginsBlock div.directLoginsBlockHeaderBox {
-/* background: url(../images/directLoginBox.png) no-repeat -11px -13px; */
+/* background: url(./images/directLoginBox.png) no-repeat -11px -13px; */
background: url(data:image/png;charset=utf-8;base64,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) no-repeat -11px -13px;
}
@@ -614,7 +614,7 @@ ul#directLogins {
/* padding: 7px 20px 45px 20px; */
padding: 7px 12px 45px 12px;
min-height: 200px;
-/* background: url(../images/directLoginBox.png) no-repeat -513px bottom; */
+/* background: url(./images/directLoginBox.png) no-repeat -513px bottom; */
background: url(data:image/png;charset=utf-8;base64,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) no-repeat -513px bottom;
}
@@ -646,7 +646,7 @@ div#directLoginsDescription {
padding: 6px 20px 50px 20px;
color: #999999;
font-size: 10pt;
-/* background: url(../images/directLoginBox.png) no-repeat -513px bottom; */
+/* background: url(./images/directLoginBox.png) no-repeat -513px bottom; */
background: url(data:image/png;charset=utf-8;base64,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) no-repeat -513px bottom;
}
@@ -728,7 +728,7 @@ div#recordListBlock {
}
div#recordListFilterHeader {
-/* background: url(../images/cardFiltersSprite.gif) repeat-x 0 -114px; */
+/* background: url(./images/cardFiltersSprite.gif) repeat-x 0 -114px; */
background: url(data:image/gif;charset=utf-8;base64,R0lGODlhAQCFAOYAAISEuaen6ZSU0KCg4IKCt8zM9bOz0qWl552d3JGRzJqb2Gpqlaio7MfH7oeHvcTF6snJ8ZeX1IKCtr+/48HB5cLC6La216Oj5IyLxLy83nd3p3JyoGdnkrm53Li42YCAtMvL9LKy0W5umnl5qo6OyHR1o3BwnY+PqcrK8nt7rrW11X5+sYaFuuDg+WZmj7294Gtrl9HR5MbG7LS01KOjxH5+somJwYaHvH9/so+OyIaGvJKSzamp7IuMxImJwJua2JeX1aKj5AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAAAAAAALAAAAAABAIUAAAd8gAUMAQcXAwgKEQIJJBg2NwAEBjUtICgQDTIPFRQTLxkdHhYqMzEhNA4sABIfKykjGiUbJiIwCxwnLgUEADo+PTk7AkA/CANBBwE8BjgtHAswIiYbJRojKSsfEgAsDqY0MyoWHh0ZLxMUFQ8yDRAoILmChIaIioyOkJI1gQA7Cg==) repeat-x 0 -114px;
}
@@ -739,14 +739,14 @@ div#recordFiltersTableWrapper {
/* padding: 0px; border: 0px; margin: 0px; */
margin-left: 15px;
padding-left: 1px;
-/* background: url(../images/cardFiltersSprite.gif) no-repeat left -38px; */
+/* background: url(./images/cardFiltersSprite.gif) no-repeat left -38px; */
background: url(data:image/gif;charset=utf-8;base64,R0lGODlhAQCFAOYAAISEuaen6ZSU0KCg4IKCt8zM9bOz0qWl552d3JGRzJqb2Gpqlaio7MfH7oeHvcTF6snJ8ZeX1IKCtr+/48HB5cLC6La216Oj5IyLxLy83nd3p3JyoGdnkrm53Li42YCAtMvL9LKy0W5umnl5qo6OyHR1o3BwnY+PqcrK8nt7rrW11X5+sYaFuuDg+WZmj7294Gtrl9HR5MbG7LS01KOjxH5+somJwYaHvH9/so+OyIaGvJKSzamp7IuMxImJwJua2JeX1aKj5AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAAAAAAALAAAAAABAIUAAAd8gAUMAQcXAwgKEQIJJBg2NwAEBjUtICgQDTIPFRQTLxkdHhYqMzEhNA4sABIfKykjGiUbJiIwCxwnLgUEADo+PTk7AkA/CANBBwE8BjgtHAswIiYbJRojKSsfEgAsDqY0MyoWHh0ZLxMUFQ8yDRAoILmChIaIioyOkJI1gQA7Cg==) no-repeat left -38px;
height: 19px;
}
div#recordFiltersDIV table {
padding-right: 1px;
-/* background: url(../images/cardFiltersSprite.gif) no-repeat right -19px; */
+/* background: url(./images/cardFiltersSprite.gif) no-repeat right -19px; */
background: url(data:image/gif;charset=utf-8;base64,R0lGODlhAQCFAOYAAISEuaen6ZSU0KCg4IKCt8zM9bOz0qWl552d3JGRzJqb2Gpqlaio7MfH7oeHvcTF6snJ8ZeX1IKCtr+/48HB5cLC6La216Oj5IyLxLy83nd3p3JyoGdnkrm53Li42YCAtMvL9LKy0W5umnl5qo6OyHR1o3BwnY+PqcrK8nt7rrW11X5+sYaFuuDg+WZmj7294Gtrl9HR5MbG7LS01KOjxH5+somJwYaHvH9/so+OyIaGvJKSzamp7IuMxImJwJua2JeX1aKj5AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAAAAAAALAAAAAABAIUAAAd8gAUMAQcXAwgKEQIJJBg2NwAEBjUtICgQDTIPFRQTLxkdHhYqMzEhNA4sABIfKykjGiUbJiIwCxwnLgUEADo+PTk7AkA/CANBBwE8BjgtHAswIiYbJRojKSsfEgAsDqY0MyoWHh0ZLxMUFQ8yDRAoILmChIaIioyOkJI1gQA7Cg==) no-repeat right -19px;
}
@@ -756,7 +756,7 @@ div#recordFiltersDIV table tbody tr td {
}
div#recordFiltersDIV table tbody tr td div {
-/* background: url(../images/cardFiltersSprite.gif) no-repeat right -38px; */
+/* background: url(./images/cardFiltersSprite.gif) no-repeat right -38px; */
background: url(data:image/gif;charset=utf-8;base64,R0lGODlhAQCFAOYAAISEuaen6ZSU0KCg4IKCt8zM9bOz0qWl552d3JGRzJqb2Gpqlaio7MfH7oeHvcTF6snJ8ZeX1IKCtr+/48HB5cLC6La216Oj5IyLxLy83nd3p3JyoGdnkrm53Li42YCAtMvL9LKy0W5umnl5qo6OyHR1o3BwnY+PqcrK8nt7rrW11X5+sYaFuuDg+WZmj7294Gtrl9HR5MbG7LS01KOjxH5+somJwYaHvH9/so+OyIaGvJKSzamp7IuMxImJwJua2JeX1aKj5AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAAAAAAALAAAAAABAIUAAAd8gAUMAQcXAwgKEQIJJBg2NwAEBjUtICgQDTIPFRQTLxkdHhYqMzEhNA4sABIfKykjGiUbJiIwCxwnLgUEADo+PTk7AkA/CANBBwE8BjgtHAswIiYbJRojKSsfEgAsDqY0MyoWHh0ZLxMUFQ8yDRAoILmChIaIioyOkJI1gQA7Cg==) no-repeat right -38px;
}
@@ -767,7 +767,7 @@ div#recordFiltersDIV table tbody tr td div a {
color: white;
line-height: 19px;
height: 19px;
-/* background: url(../images/cardFiltersSprite.gif) no-repeat left -19px; */
+/* background: url(./images/cardFiltersSprite.gif) no-repeat left -19px; */
background: url(data:image/gif;charset=utf-8;base64,R0lGODlhAQCFAOYAAISEuaen6ZSU0KCg4IKCt8zM9bOz0qWl552d3JGRzJqb2Gpqlaio7MfH7oeHvcTF6snJ8ZeX1IKCtr+/48HB5cLC6La216Oj5IyLxLy83nd3p3JyoGdnkrm53Li42YCAtMvL9LKy0W5umnl5qo6OyHR1o3BwnY+PqcrK8nt7rrW11X5+sYaFuuDg+WZmj7294Gtrl9HR5MbG7LS01KOjxH5+somJwYaHvH9/so+OyIaGvJKSzamp7IuMxImJwJua2JeX1aKj5AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAAAAAAALAAAAAABAIUAAAd8gAUMAQcXAwgKEQIJJBg2NwAEBjUtICgQDTIPFRQTLxkdHhYqMzEhNA4sABIfKykjGiUbJiIwCxwnLgUEADo+PTk7AkA/CANBBwE8BjgtHAswIiYbJRojKSsfEgAsDqY0MyoWHh0ZLxMUFQ8yDRAoILmChIaIioyOkJI1gQA7Cg==) no-repeat left -19px;
}
@@ -778,17 +778,17 @@ div#recordFiltersDIV table tbody tr td:hover div a {
div#recordFiltersDIV table tbody tr td.selectedTab {
height: 19px;
-/* background: url(../images/cardFiltersSprite.gif) repeat-x -57px; */
+/* background: url(./images/cardFiltersSprite.gif) repeat-x -57px; */
background: url(data:image/gif;charset=utf-8;base64,R0lGODlhAQCFAOYAAISEuaen6ZSU0KCg4IKCt8zM9bOz0qWl552d3JGRzJqb2Gpqlaio7MfH7oeHvcTF6snJ8ZeX1IKCtr+/48HB5cLC6La216Oj5IyLxLy83nd3p3JyoGdnkrm53Li42YCAtMvL9LKy0W5umnl5qo6OyHR1o3BwnY+PqcrK8nt7rrW11X5+sYaFuuDg+WZmj7294Gtrl9HR5MbG7LS01KOjxH5+somJwYaHvH9/so+OyIaGvJKSzamp7IuMxImJwJua2JeX1aKj5AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAAAAAAALAAAAAABAIUAAAd8gAUMAQcXAwgKEQIJJBg2NwAEBjUtICgQDTIPFRQTLxkdHhYqMzEhNA4sABIfKykjGiUbJiIwCxwnLgUEADo+PTk7AkA/CANBBwE8BjgtHAswIiYbJRojKSsfEgAsDqY0MyoWHh0ZLxMUFQ8yDRAoILmChIaIioyOkJI1gQA7Cg==) repeat-x -57px;
}
div#recordFiltersDIV table tbody tr td.selectedTab div {
-/* background: url(../images/cardFiltersSprite.gif) no-repeat right -95px; */
+/* background: url(./images/cardFiltersSprite.gif) no-repeat right -95px; */
background: url(data:image/gif;charset=utf-8;base64,R0lGODlhAQCFAOYAAISEuaen6ZSU0KCg4IKCt8zM9bOz0qWl552d3JGRzJqb2Gpqlaio7MfH7oeHvcTF6snJ8ZeX1IKCtr+/48HB5cLC6La216Oj5IyLxLy83nd3p3JyoGdnkrm53Li42YCAtMvL9LKy0W5umnl5qo6OyHR1o3BwnY+PqcrK8nt7rrW11X5+sYaFuuDg+WZmj7294Gtrl9HR5MbG7LS01KOjxH5+somJwYaHvH9/so+OyIaGvJKSzamp7IuMxImJwJua2JeX1aKj5AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAAAAAAALAAAAAABAIUAAAd8gAUMAQcXAwgKEQIJJBg2NwAEBjUtICgQDTIPFRQTLxkdHhYqMzEhNA4sABIfKykjGiUbJiIwCxwnLgUEADo+PTk7AkA/CANBBwE8BjgtHAswIiYbJRojKSsfEgAsDqY0MyoWHh0ZLxMUFQ8yDRAoILmChIaIioyOkJI1gQA7Cg==) no-repeat right -95px;
}
div#recordFiltersDIV table tbody tr td.selectedTab div a {
-/* background: url(../images/cardFiltersSprite.gif) no-repeat left -76px; */
+/* background: url(./images/cardFiltersSprite.gif) no-repeat left -76px; */
background: url(data:image/gif;charset=utf-8;base64,R0lGODlhAQCFAOYAAISEuaen6ZSU0KCg4IKCt8zM9bOz0qWl552d3JGRzJqb2Gpqlaio7MfH7oeHvcTF6snJ8ZeX1IKCtr+/48HB5cLC6La216Oj5IyLxLy83nd3p3JyoGdnkrm53Li42YCAtMvL9LKy0W5umnl5qo6OyHR1o3BwnY+PqcrK8nt7rrW11X5+sYaFuuDg+WZmj7294Gtrl9HR5MbG7LS01KOjxH5+somJwYaHvH9/so+OyIaGvJKSzamp7IuMxImJwJua2JeX1aKj5AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAAAAAAALAAAAAABAIUAAAd8gAUMAQcXAwgKEQIJJBg2NwAEBjUtICgQDTIPFRQTLxkdHhYqMzEhNA4sABIfKykjGiUbJiIwCxwnLgUEADo+PTk7AkA/CANBBwE8BjgtHAswIiYbJRojKSsfEgAsDqY0MyoWHh0ZLxMUFQ8yDRAoILmChIaIioyOkJI1gQA7Cg==) no-repeat left -76px;
}
@@ -808,7 +808,7 @@ div#recordFiltersSearchPanel {
div#recordFiltersSearchInnerPanel {
padding: 10px 24px 25px 24px;
-/* background: url(../images/recordFilterBackground.png) no-repeat -10px -138px; */
+/* background: url(./images/recordFilterBackground.png) no-repeat -10px -138px; */
background: url(data:image/png;charset=utf-8;base64,iVBORw0KGgoAAAANSUhEUgAAAQ4AAADMCAYAAACC5k2uAAANIWlDQ1BJQ0MgUHJvZmlsZQAAeJyV13k0lG8bB/BrFsYyZhhjDyO77LKHLJFItmwp2bdhJiZRypIUIkso2iiSFC0kEtWPLCHJkq2oyJI9kmXeP6R6f+f9ve95rz+ecz3385xz389zzud7nxsAr+FKpZKRABAQSAuyNjEgOTg6kTBdgAJewAEzaLi6B1P1LS3N4R9roRMQAADtcq5UKvmf3/uPhQtycHQCQMgCANF7vd8OAES39d4WAIhHaFQaAMIHAIjuPq4eAIhwAJANsrU2BEAUAADOe70vBwCc23pfDwC4EHdvGgCiG4CREOjhGwiAmQBg1PXwDHYHwMkCgIdHsHsAAC4ZACwCAigeALgPACDlTg2iAeCZAEDOwdGJtL7kffEAW/kAmMx+jx1JByjNAZDa/XtM9BEAtytAbuLvsTlrQAAAgrs12EtFGQAAEFgDAIYBOn1OAgCTCrCaQqcv59Lpq9cBUH0ANWT3w0EhP/8XAtEM8L/u17/5Z6EQAEgAhBgiH3kUFY4OZzjBGImJZjrJbMRcy3Ka9Qw2ju0srozdhyOFkMKZSjzPlc6dzpPJW8tPEcjelC14WaiedFgkd/N10VbxYxL5km3SJ2Rub+mUi5a/o9CjdFr5vsp71bNqZeqDmklaFdrDOmm6T/XG9DMMnhtO7sgyrjOZNb26q9FsYXeuRcue15avrdqsV2wL93bYddp3OXQ7offdc+7b339gwOX9wQ9uWPfHHp88P3sNe4/4fPEd9eciPwv4GjhJmaJOH5oJmg2ep80f/haycGQx9HvY0tEfx1bCV46vRkhHdkQjTiJjUKfQsQynGc9g4pjimRNYzrImYpPYzuGS8SnsqRxphPOc6cQMrkzuCzwXebP4svkvCVzedEXwqtA14RxSrsj1zTdE88TyxW9KFkjekiqUvi1ze7yIfEf2rlyxQoniPaX7Sg+UH24tVS1TK1t4FFKu/lijQqtS+8m2qm1PdZ6uVUfU6D3b/lz/hcFfhrXo2pi6HS+N600aTBtNm1iaEl6ZNZu3WLTiWs+9tmyzemPdTmhPfWvTYdu5t4u7K7Pb/p1Dj1Mvf292n3O/88D+90Lvr35wGTw4JDKU+9Htk/tnj2Hx4fwRry/eoz5j0mOF434T/l/Jk3KTd6cCpykz1Fml2ftzQfPB32gLqgtliyHfQ5fCfoQtay1XrhxbDV/TWXtKpwMgRJE45DSqCX2bIY0xHOPNZMtsyLKVVRIrycaL48HzsvNycBEkOKWIGlzm3Ad4gnmT+Ir5mwRGBTmF1IS9SRdEXooixHTED0nck5ySlpIhb6mUQ8nrK6QoDipLq8Ru7VKTUadq1GrxaIdue6XLrUfZ/txAzPCYUZuxkEnozirTJTMlc8/d6RZtljgrE+tQmzzbt3Ys9tsdDjledqrbN7Vf+MAel6MHc11r3UY9uDz1vBy8T/hc863x6/dfCuAM3EIxovocCg9KDs6llR6uD+k9Mha6cBR1jCOcdFz2hGrE9kizqD3R+04ejPE8RY6lnQ46ExkXGX8yIe5samJCUta5i8mZKSmpl9JSz2ekX8goyLx54e7Fgqzb2cWXnlx+cqX26qtrbTntue3X22/05n3KH7k5VPD51lThzO2posk7s3enisdLJu6N3B98MPSwp7StrOFRTfmjx8UVlypTn0RWBTzdV21Ws+2ZzHPC86UXH/5qrH1Yl/YyqN6mQa1RoJHe1PPqYXN8i1OraOvw6wdtx9/saMe197+91uHXqdK52tXcnfZuf490z1xvRV90v9kAcWDg/a0PwYPaQ+ihxo/nPx34LPl5YrhiJOrLrlGu0f6xG+PkCdWJta8Nk6lT+6bFpidmHsyGz5nME+a7v+UtUBY1v6O+v1xK+bFvWXT560rZauSaKZ2bTgeAk4hQ5FGUNqoCfZxBj6GaMQpzismYqZY5luU0azx2F7aJLRGXiE9i38PeypFMSOVMI6Zx2XK95c7gyeC9wJfFny2QvemSoLNgv9BV4WukHJGczTmi18VuiOdJ5EvelCqQviXjKzO2pVC2SO6O/F2FYsUSpXvK91UebH2oWqZWpl6mEarxXbNCq0K7ctsTnSrdE7pretXba/SfGTw3fGEUswO9o9a4zuTlznrThl2NZgnmWPNXu5stWva0WiZbsVu1Wb+xabd9u7fTLsOe277LodvxnVPPvmxnAee+/f0H3rt8OPjBNcdNxG3I/aPHJ8/PXvneEusJ4jfmf5ssS574txSZ+5Ui5WEaYUtHfxxbDl85vnpiLYIeBdHIX0mCOYOJY4priN+VwHoWm4hNYjuHT2ZP4fiVJdyZPBd4f2bJpj+zJHfouvsN0TyxfImbEhtpUiR7R+6u/B9ZolK6tUz1kXq5+mONCs1K7SfaVdue6lbr/pEjO+qMXxrXmzTsbDRtMnsV0rK51eK1ZZvlG6v24x0ynXZd9t3RPQq9Tn2xAyrv4wZVh85+8hjWHkkZ9R33+0qeoszEzzstnFtKWLWm0wHW9z4AAEY1gIwtAHZZADa5ALFbACRdALgLACzZAGw1AckgBEgdKiB26WzsH4AAdhAEeTAARwiGZCiB7wgSwgwRiihAtCBGkHikCTIKWYVcQemgolB1qBW0CNoRnY/+xmDMcIqhmGGK0YQxh3EYw4VxxlQxYZg0mWKYxpm1mCnMNSxyLJEs5aw41ijWd1giNhD7hW0H20m2QZwr7jkehffCT7BbsWewr3LEccwStAh5nOqceZxTRBfiIpcvVxn3Fu6XPF68GN5CPnG+I3zz/JcFTATmNl0TFBMMF0IIlQr7kURIPSLnN2/eHCmKF20VSxHfK8EvMSR5W8pQ6pa0gQyHzOCWB7Kn5ZzlVRSwCiOKfynlKkereGw1UZVV41RbUR/WyNTEadZolWjnbDuvc0Y3Qu/I9kP6ZANfQx8jnx3+xoEmtJ3HTGN2nTPLNr+1u9yiYU+f5Yw1xkbIVmOvjR3VPsnhruNrpzln3v26B7xckg9Wun5x5/Ew8QzzKvLl9bP0jyfXBiIp+tSoQy+CGWlmh1NDxcIoR5+Esxx3OlEUQY+yjUGeco59dIYz7lB8W2J60lKyS0pdmsL5rMzgCx+zbLJrr9y9Jp5z+TpPPvvNpFu4wnN3MosFS27clys1Kmsrd308U8XztKjG4AWtFl9XVL+rKb5ZrqXtdUh7XQe1S6C7vk+iv/t9/KDep6Jhjy/Coz1f7aa4p7tms+ZdFieWSpcj6Lx0OgAggQV4QBr0wAEOQzqUwwACg1BEuCCSENWIOaQM0gWZhXyLwqN2o86imtFs6D3odHQvA4nBl6GE4TujIeM5xncYccxhzAsmApMHUzkzK7Mz810WNMsBloesLKzurNVYLiwV28wmw5bINoEzxxXj2fAUfCf7dvYbHDiOEI5egjHhHieJM5VzjRhM/MrlxzXGTeae5aHxLPAe5UPwneXn5y8U0BSo22S3aVQwUohPqEzYSniMFCsiIVK/OVCUR/SpmLs4VvyZRKCksOQbqThpA+lVmcot4bI6soty1fJnFGwVRRSnlKqVU1T8thqpCqkuq3WoP9a4rBml5a1tv01HR0FXRI+wHa2P0p81mDGcMhrfMWw8ZzK+89supBnRnGe3koXunj2W1lb+1mE22bb3976y67VfcSQ6KeyzcD60/+KBWpcRV2Y3RXcfjyzPaq9pH2lfT79M/44AgcC9lGzqlyCp4BBaQ4jgkeDQxqOix5LCx044RtRHqUXnxRBOJZ0mnMmI503ITlRNakn2TPmRlpiunvH5wpUsv0t7r0hfY8iZuP48r/TmxVuxt93vOBcb39N4sLVU/pHcY6lK8SqpasVnei921lq9JDccakppvtb6pG2gnd4p3K3T49GXMFDxYeIj32eDkcjRgvFPk/zTXrNX5ocXpZYCl8vWEHQ6ADACOwiCAThCMpTAmw37G+7X1aPxaEf0NwZjhqyf3tcwzkzCTDFM48y2zDUsciyXWHGsUayL2EDsFzYPnCvuI94LP8EezL7KEUfgJuRxqnM2El2Ii1zJv0xb8M3/9GwphBAq/WnZal3yT8ch0gZ/Gv4t+KffN5o1WiW/7f6W+89u/5ta70FfXj/Lv6sN6fm72+jCP+WeVf4tN4Nxw+5lzQ29N9I2/BYRNgQ/KN8wXHlyXfGzng3HDaNN8a/+as5oaXsd8kawva6D2lnSFdtd3xPSJ9HvP2D0Pn5Qb+j0R7dPRZ8Xhtu/CI/6j5mOS01gvtpN5k/FTnvP7JyVmWOdm5x//e3BQsai7eLE95glgx+SP4aXI1Z4V66scqzGrC6u3aAn0OkA6+clAABgMaSQKUEkc0Oj//Ow978qgHx4Yw4kAGA9A/faAAABAKR8aaa2AEAEAC0wBAqQgQJBQAJzMASjn1cSuP964guwfpYDAGBkB7hkDwBQ/f1Y5N/npXmG0gAADCnUsCBfbx8aSZ9KJXuSDCkB1MM0zyBZkmmgu7wsSVlRURUA4F93RgACxGzQPQAAAAlwSFlzAAALEwAACxMBAJqcGAAAC39JREFUeJzt3W+MHHUdx/HP7Ozu7e1dDyjXq+215dBWSkhMbbWIEQ2JQhB5YuIjHxvQiCZijCFaCPGJJBgTYjD+4ZmAhCeikQQTkX+BAsWqTajU0BZ7Lb0eB1zvbu92dnZ8MPvr/m671/Y7O72e7fuV/LJ3u3e70wfz3t/8Zm4rAQAAAAAAAAAAAAAAAAAAAADQVXABn/98vzZwqUjO8b7cnI+dt/M5C979nY91uw/AmSVdvvbva57hsVzkudP6z1VQOwpudLvvfG4PcDFaKhr+aGpxPPyRi2JOzxN4ty4SYeu2c7jHO3/PvwXQXXOJ75tdRty6TXT6LKQneYSjc1bhB6M4NnZd5e7vPH7bFVes/XK51LctKBTXFoJgIIfXBSCpmSSzSbNxvB4t7H3vvWNP//wXX//jwYP7FpSGw41Ap89GMuv1Hd6PRuiNoqTSgw+8dvvG0Wt+/JF15bENm0INrymovz9QscTEAshLI0pUqyWaPNHUkXdivXt04fB/j751/90/+PRTkhpKw9FojVzi0cse3C0aRUnlarVafuhnb+4aHR25c/vOktaMhL1sIwCDExOx3ng10vj4xC/v+t6198/NzS0ojUaknOKRNRzu904dkkgqtUbfbx4+uGvzlnV33HBjWeVyoChKdGB/Q8fGY83MJIobWTcXQKewKA0OBlo3GmrL1qJKpUD1eqKXX6jrwFtHf/WNb330PqXRqLdGt7UPk17C4dY0ipLKSqNR+cn9z97+qU9+5uGbbu5TuRxo4nisPbsjVasFrR4uqtIfKAw5VAHyEseJ5muJpiYbmptrasf1JY2sDVWvJ3r2mQW9/vdXvvmjXTc9JWlBaTgitdc+MoWjcPYfOU3nQmhJrXgMD68f3Dy27Z7tO0unovHKi3Wt31DSxrGyBgYLRAPIWRgGGhgsaONYWes3lPTKi3VNHI9VLgfavrOkzWPb7hkeHh2U1Kf2/uqfxDDL9EstnfGofPuO3962fkP/xjUjoaIo0Z7dka66uqxVQ6xxAMth1VCoq64ua8/uSFGUaM1IqPUb+jfedecjtykNR1ntaGR+F88aDn9twx2q9I2OXvOlDZvSSBzY31C1WiAawDJbNRSqWi3owP50MXHDplDr12+5We0ZR0ntExqZrt7O61ClLKlvoDp03fCa9CmPjcdaPZzX9WUALFYPF3VsPJYkDa8paKA6dJ3aM45lP1Txr/B0xToVjmKpb7i/P/2RmZlElX7WM4ALodIfaGYmvUg0vXaqb1hSRe0TGUUt/jMQk15nHK5cRUnlsBD2u4u74oZYCAUukDAMTl32UCwFCgthv9qHKS4a/p+BmPQSDj8ebtYBYOXyD1PcoYpjikfWcLhSLbpiNMNzAVg+brbRucaxLDMOaXE8/LMrAFYuPxpn+niLs+plcdQ/XMm8Ogtg2XR+1IX/pyMmec04Oo+XAKw8nYcnmS8Cy7rG0e17wgGsfEt9iFamJ8nqbB8FCGDlONPn/2Z6oqz4yD/g/0/P+y2HF8ClI7c3eMIBwKzXP6sHcAnK86wKIQFWvs6zKlri+3N6EivOogAXh2X761gAlzjCAcCMcAAwIxwAzAgHADPCAcCMcAAwIxwAzAgHADPCAcCMcAAwIxwAzAgHADPCAcCMcAAwIxwAzAgHADPCAcCMcAAwIxwAzAgHADPCAcCMcAAwIxwAzAgHADPCAcCMcAAwIxwAzAgHADPCAcCMcAAwIxwAzAgHADPCAcCMcAAwIxwAzAgHADPCAcCMcAAwIxwAzAgHADPCAcCMcAAwIxwAzAgHADPCAcCMcAAwIxwAzAgHADPCAcCMcAAwIxwAzAgHADPCAcCMcAAwIxwAzAgHADPCAcCMcAAwIxwAzAgHADPCAcCMcAAwIxwAzAgHADPCAcCMcAAwIxwAzAgHADPCAcCMcAAwIxwAzAgHADPCAcCMcAAwIxwAzAgHADPCAcCMcAAwIxwAzAgHADPCAcCMcAAwIxwAzAgHADPCAcCMcAAwIxwAzAgHADPCAcCMcAAwIxwAzAgHADPCAcCMcAAwIxwAzAgHADPCAcCMcAAwIxwAzAgHADPCAcCMcAAwIxwAzAgHADPCAcCMcAAwIxwAzAgHADPCAcCMcAAwIxwAzAgHADPCAcCMcAAwIxwAzAgHADPCAcCMcAAwIxwAzAgHADPCAcCMcAAwIxwAzAgHADPCAcCMcAAwyyMcSQ7PAWB5JB23mWQNRyKp2csLA1gREmWISJZwLPUizDyAlS+X/Zc1DgBmhAOAWa/h8Kc3SSNuzDei9K6wKMUxRy/AhRDHicJi+nUjStSIG/PKaWFU6n2Nw33dlKSF+ZkPa7X0rsHBQPM1wgFcCPO1RIODgSSpVku0MD/zoRaHwx9mvZxVcaPpbienxg9NnkhPtqwbDTU12cj49AB6MTXZ0LrRUJI0eaKpyanxQ0r3Vbe/Zo6GZA9Htxc6FY5/7fvbG0feiSVJW7YWNTfX1MnpOOu2Acjg5HSsubmmtmxNj1WOvBNr377n9mjxG70fjmU5HeteyK9XQ1L82BP3vXbo7anJExOxSqVAO64v6fDBOvEAlsnJ6ViHD9a14/qSSqVAJyZiHXp7avLRJ3btUWs/bY2eZh2h8eeD1ghbo9QaZUl9jUZUrlSH5tdeecOOTWOhhi4r6IorC3rrzUi12aaKxUBhKBUKQZZtBdBFHCeqzSU6fjTS1Huxdn62rJG1oer1RC8/X9eTf3jod3v3/uWApFlJNUnzrRG1hgvJOStm3FZ/fSNWWrKGpPpjj9/7+sfGtn280n/LF264Mf0HfPHWgg7sb+jYeF0zM4lilj6A3ITF9GTEutFQW7b2qVQK0mi8UNeLLz3z3GOP3/u62pFwsw53xJCJ9a0/UHp4U5TUJ6kiaUDSoKTLW2N1oVBY/cPvP/nVz9946+e27yxpzYh1YgMgqxMTsd54NdJzz//5pZ8++LUnm83m+5LelzQlaVrSSbVnH3WlMXHLDuckyx7t4uGPoj+SJAlfeOn3h2dr0fuF5rWjJ6crlWZTKhalsCAVQg5VgLw0okSzs4mOHom17x+Rdr/87gePPvHAU79+5Lt/TZJkRpI/apIWlAbDHaaYoiHZZxzud4pqr230S6oqnXUMSbpM6cxjlaRV5XJl6Cu33vWJbdtuvmZ03eaRavXygXKpr5ThdQF0UY8Worm5D2bHj/1nYu/eZ/79p6cf+me9Pj+tNBQfeuOk2rONBbUDYl7jyBoOf3G0ojQcVbVi0RpDrduB1mN9reFmJgXv9TtvAXTnr0v464xuBlFrjVm1QzHdGjNqH6K4aJgPU6R8FkcbrQ1whywuCIHap2rrSgNTVhob/+f4exnAxr9i251ejZTuZwuS5pQGYlbdY+F+J/PiaJZwuGAE3ga7CIRqB8NFw02JKmqfvnUzFj8yAM7Oj4b/5u2Ho6Z2PNztvLqvbZhnG1L2GYf7B7jiuXjUWo+5jYnUDkefFofDLawSDsDGn/H7+2C9NebVPmSZVxoPtx/6p2MzX3Ley6GKm+YErY0JOh53/5gFpRvvDlP82QbhALJpanE4Tl1LpXY8Om8j72f9S8/NeplxSN2PkVw03PSprHSjXTTc+oY7rJG6h4OYAKluf5HuvnaHKk21L/ByF3stqD0TaXiP9RQNqfdDlUBLr/LGSmNRb71O6N36Mw0WRwEbf53DRcDtc34gGt7onGn09JnBebyru+fwF0j9UVT3wxP/dGxe2wJczDpnCN3WOvw3bhcN/3Ephw8az2tn7YyHHxH/ClP/qlOJ2QaQVefZFT8gLhKd90k5REPK/13eD4i79b8OuvzM+dwe4GLTbb3DD4d0ekyknILhnK8d1X/eQsf9Sy2IEg3gzJZazOxcZ+wMSu6Wa2c92+sQDcCG/98IAAAAAAAAAAAAAAAAAAAAALAS/Q8LAUdRAb/LqgAAAABJRU5ErkJgggo=) no-repeat -10px -138px;
}
@@ -832,7 +832,7 @@ div#recordListAndDetailBlock {
table#recordListAndDetailBlockTABLE {
width: 100%;
-/* background: url(../images/cardBlockLowerBorder.gif) repeat-x 0 bottom; */
+/* background: url(./images/cardBlockLowerBorder.gif) repeat-x 0 bottom; */
background: url(data:image/gif;charset=utf-8;base64,R0lGODlhBwAZANUAAP///6qq7tzc+OLi+eXl+vz8/v7+/9/f+dnZ9/b2/fr7/vT0/fv7/vLy/Ojo+vj5/vT1/dnZ+Ovq++3t+/n5/e3t/Orq+/n5/u7t/Orr+/Dv/PPy/PLy/e/v/OXk+tna9/38/uvq+ufn++Df+P7+/vX1/fj5/fz9/+jo+9/f+Ojn++/w/P79//v6/vb3/efo+u3u/Pf3/ejn+vDw/PDw+/X0/e/w+/f2/QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAAAAAAALAAAAAAHABkAAAZoQIBwSCwaj8ikEkAyOFnOAqhALZwYCkZLkaVQHpfLw+SKJRK3M2RRKy0WkA2H06hvNDMbbdXRVCYYMBUYExYSIRkSGRYiMi8qDg4oBJSVHgOYmQMpIweengKhogIIEREIHwgIAaytAUEAOwo=) repeat-x 0 bottom;
}
@@ -852,12 +852,12 @@ div#recordListBlockHeader table.recordListBlockHeaderTABLE {
width: 100%;
height: 30px;
color: white;
-/* background: url(../images/cardsBlockRoundCorners.gif) no-repeat right -51px; */
+/* background: url(./images/cardsBlockRoundCorners.gif) no-repeat right -51px; */
background: url(data:image/gif;charset=utf-8;base64,R0lGODlhCQBkALMMAP///z8/b7e3yaKiufX19zQ0Zzw8bVxchaSkuz4+bltbhDk5av///wAAAAAAAAAAACH5BAEAAAwALAAAAAAJAGQAAARTEEhAhgplimCYl8jijYAwnkRwjkO3MsfrJTJT1Hiu73zv/8CgcEgsGo/IpHJZKyQOA8IEMDIEBJMXQvJaYGUBgswwqClqKtmNyW673/C4fE4/RgAAOwo=) no-repeat right -51px;
}
div#recordListBlockHeader table.recordListBlockHeaderTABLE tbody tr td.recordBlockTitleTD {
-/* background: url(../images/cardsBlockRoundCorners.gif) no-repeat left 0px; */
+/* background: url(./images/cardsBlockRoundCorners.gif) no-repeat left 0px; */
background: url(data:image/gif;charset=utf-8;base64,R0lGODlhCQBkALMMAP///z8/b7e3yaKiufX19zQ0Zzw8bVxchaSkuz4+bltbhDk5av///wAAAAAAAAAAACH5BAEAAAwALAAAAAAJAGQAAARTEEhAhgplimCYl8jijYAwnkRwjkO3MsfrJTJT1Hiu73zv/8CgcEgsGo/IpHJZKyQOA8IEMDIEBJMXQvJaYGUBgswwqClqKtmNyW673/C4fE4/RgAAOwo=) no-repeat left 0px;
}
@@ -941,12 +941,12 @@ ul#records li.selected span {
/* @group Bottom rounded corners */
td#cardBoxLowerLeftTD {
-/* background: url(../images/cardBlockLowerRoundedCorner.gif) no-repeat left -32px; */
+/* background: url(./images/cardBlockLowerRoundedCorner.gif) no-repeat left -32px; */
background: url(data:image/gif;charset=utf-8;base64,R0lGODlhCQBkANUyAP////Ly/PDw/O3t/OLi+ejo+vz8//n5/urq++Xl+tzc+Ovr+/z8/t/f+Pv6/vb3/fT0/f7+//v7/vT1/efo+/79/8vL9fr6/uXl+e3t+/3+/9jY9/b2/vX1/d/f+ff2/fb2/fj5/uHh+dnZ+OLi+rOz8NnZ99vb+LKy7/r7/6ur7sDA8vLy/f7+/vn4/u/w/Pj4/vX0/P///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAADIALAAAAAAJAGQAAAb3QJlwSCwaj8ikcslsOp/QqHRKfQKu2Kx2y+16v+BtRFNpjSuRisHAYKzdDMfFIZE7UpfQYa8/wFwfDyAcgSAPHB0QExCJExMxAZGSkSwClpeWLwObnAMZGQsLCAiipAgUFAUFqaoFGwkJGLCyGBIEBCS3uQQAIhYNwA0eHlcnFgrIyFgiJRYmIyNZEhsrKCpV2Nna29zd3t9h4eLj5FdoFRoRLegRcG9uBhcpdnVzLjB8ewchHIIPHxwMfYjhiJEiRiwmTXqBCdOnTpxMSQzVapUqVLRmwdqgqyMBCcOCNbAgAkAyZBZOXIFmwkKJkldUoFixQUKWIAA7Cg==) no-repeat left -32px;
}
td#cardBoxLowerRightTD {
-/* background: url(../images/cardBlockLowerRoundedCorner.gif) no-repeat right -82px; */
+/* background: url(./images/cardBlockLowerRoundedCorner.gif) no-repeat right -82px; */
background: url(data:image/gif;charset=utf-8;base64,R0lGODlhCQBkANUyAP////Ly/PDw/O3t/OLi+ejo+vz8//n5/urq++Xl+tzc+Ovr+/z8/t/f+Pv6/vb3/fT0/f7+//v7/vT1/efo+/79/8vL9fr6/uXl+e3t+/3+/9jY9/b2/vX1/d/f+ff2/fb2/fj5/uHh+dnZ+OLi+rOz8NnZ99vb+LKy7/r7/6ur7sDA8vLy/f7+/vn4/u/w/Pj4/vX0/P///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAADIALAAAAAAJAGQAAAb3QJlwSCwaj8ikcslsOp/QqHRKfQKu2Kx2y+16v+BtRFNpjSuRisHAYKzdDMfFIZE7UpfQYa8/wFwfDyAcgSAPHB0QExCJExMxAZGSkSwClpeWLwObnAMZGQsLCAiipAgUFAUFqaoFGwkJGLCyGBIEBCS3uQQAIhYNwA0eHlcnFgrIyFgiJRYmIyNZEhsrKCpV2Nna29zd3t9h4eLj5FdoFRoRLegRcG9uBhcpdnVzLjB8ewchHIIPHxwMfYjhiJEiRiwmTXqBCdOnTpxMSQzVapUqVLRmwdqgqyMBCcOCNbAgAkAyZBZOXIFmwkKJkldUoFixQUKWIAA7Cg==) no-repeat right -82px;
}
@@ -964,7 +964,7 @@ div#newRecordPanel {
div#newRecordInnerPanel {
width: 400px;
height: 160px;
-/* background: url(../images/newRecordPanelBackground.png) no-repeat 0 -165px; */
+/* background: url(./images/newRecordPanelBackground.png) no-repeat 0 -165px; */
background: url(data:image/png;charset=utf-8;base64,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) no-repeat 0 -165px;
}
@@ -1099,7 +1099,7 @@ div.noteFieldContent {
}
.resizable-textarea .grippie {
height: 5px;
-/* background: #eee url(../images/grippie.png) no-repeat center 1px; */
+/* background: #eee url(./images/grippie.png) no-repeat center 1px; */
background: #eee url(data:image/png;charset=utf-8;base64,iVBORw0KGgoAAAANSUhEUgAAABsAAAAFCAMAAACD1meMAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAAGUExURbu7u////3iwjPUAAAACdFJOU/8A5bcwSgAAABRJREFUeNpiYMADGHEDBhroAwgwAA9QADeT0qnSAAAAAElFTkSuQmCCCg==) no-repeat center 1px;
border: 1px solid #ddd;
border-top-width: 0;
@@ -1195,7 +1195,7 @@ div.Clipperz_recordFieldData a.scrambleLink {
}
div.Clipperz_recordFieldData div.passwordBackground, div.passwordEntropy {
-/* background: url(../images/entropyBackground.gif) repeat-x 0 0; */
+/* background: url(./images/entropyBackground.gif) repeat-x 0 0; */
background: url(data:image/gif;charset=utf-8;base64,R0lGODlhAQCWAOYAABb8Ev9KAP81AP8hABvxAP86AP95AP9qAP8FAP8HAP9QAP9SAP9wAPCGAP8PAP9jAP8XAP9EAP88AP8+AP9UAP9bAP8bAP8JAP8tAP9WAAj6AAv5AP8rAP8fANSUAP8zANGWAMScAP9AAA/3AP8lADvhAF7PAOyIALGmAI23AC/nAJG2ADPlAHXDAOSMAEfbACfrAL2gAKGuAP8RAM2YAIW8AP9YAMiaAIG+AELdAHrBAGbLAP8ZAP99AD7fABfzAKWsAP9mAP9IAP9GAPuBAP8jAMGeAP9rAP9xAP9CAP8TAP8vADfjAP8VABT0AP9OAPiDAP8dAP9gAFbTAKmqAP9oAPSEAP9iANyQAJW0AJ2vAIq6AP8TEh/vALWkAP91AH6/AP9MAP84AP94AE7XAP82AP8LAP8oAP97AGLOANiSAG7HAP8wAFrRAP8DAOCOAP9tAP9zAP9aAP8nAP8NAGrJAOiKAHHGAFLVAJmyAK2nACPtALmiAErZAP9eACvpACH5BAAAAAAALAAAAAABAJYAAAeJgFxuCAkXZnQOM0pNEDwWUR0DRSRzZxwYS2wfAmViBRITIkkRQ0IBYU8KCxQZNnIVflJXD0FVB0dwDEhxX2MGaD1EUFYNJ3Yub1hqHiA0NyFGMXxeKHpUQDJaeVkrKVs1OGA6LXdrdTtpJm1TeGR9Lzk+JUwsKn8we10EP04jGxoAAgocSLBgwEAAOwo=) repeat-x 0 0;
}
@@ -1207,14 +1207,14 @@ div.Clipperz_recordFieldData input.scrambledField {
color: white;
padding-top: 4px;
border: 0px solid white;
-/* background: transparent url(../images/scrambledValue.png) no-repeat 0 0px; */
+/* background: transparent url(./images/scrambledValue.png) no-repeat 0 0px; */
background: transparent url(data:image/png;charset=utf-8;base64,iVBORw0KGgoAAAANSUhEUgAAAEcAAAAgCAYAAABAQWX9AAAABGdBTUEAANbY1E9YMgAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAANXSURBVHja7FgxixNBFJ6TEyFXxEBiYWFEuCKHcEJio6RRIZAycF3qjWU67xcEr0par04Q7mA7hSAWErVyC1GTIiAmoMUlcHeFQblC53uZWTbJzmZ3cazmwUBm5+ObN9978zb7Nv5wY8Z87ZKRwIjz78SZTqes2+2ywWAQiqTX6xE+jOnkjoE/5OMgkjiTyYTZts3G43GoHRzHIXwY08kdA3/Mx/5acRDR2WymZBmNRoHz5ezwcunkjoF3AsT6ysepnGzKH1AbqufzeZZOp91N2+02PYc1m033eaPRIBzwcnOkM7BYr1QqrFQqaeeOiMdmBT5u8bHnEeJAZBHWn/LxZEGcbDZLKktnZYrCvBsnEgl6ViwWad17v2U6e0XQzR0DbwkhvLVGXq09IRzZxvL/HCjdarXcCFSrVdpcZYg+iqAUoV6vu4f0uz66uGPga6Igk4Z8vOIjFViQQQ7npdNyrjosIgYHECE5D3qT6OKOiHdE9qREtsi5+m0FMjicy+Uoqrir2ERV/TudDh3OsizCwzFg/QqkTu4Y+JqoN0d8PBMi7S8X65XMwf0EOQxFDIfJZDIr7HAEWImBM3DMD6ubOyL+VNQVFN1HQpgjb61R1hxj5vPBiGPE0WibL/tGBJM5Rpz/IM7P8ykbfuiyyThcz+Xb5x7hw5hO7hj46P2c2fmE9d/Z7OwkXM/lx9AhfBjTyR0Df1zeCdHPQUQvfqt7Lmcno8D5cnZ4uXRyx8BH7+dAbah+fTvPtpJpd9OPr9vs+3DOV37cdJ+/ed4gHPAXv+abI53BgfWd+xW2XShp546Id3imFPgb2refw9ccvrbaz7l6LctTfkqE3hSFuRvzCFy+Mm8B3LxdpIN577dMZ68Iurmj4vnhLSGEW2vk1eJri/2cF18Wv62g9Hu75abi7sMqba4yRB9FUIpwr1J3D+l3fXRxx8DXuCiHQpRw/ZzRpx45L52Wc9VhETE4gAjJubLnopE7Ip76N1yUFLIF12ltPwepDuUzN3IUVdxVbNJ/aysi1aHD3S1b7A7HwzFg/QqkTu4YeGSN28+BSKH6Obifuw/mPRcUMRwmkVzti8CRBMdKDJyBY1tJdT9HF3dEPPVzuCDr+znLNceY+Xww4hhxNNpfAQYAoVB5BoFW//8AAAAASUVORK5CYIIK) no-repeat 0 0px;
}
div.Clipperz_recordFieldData input.scrambledField:focus {
color: #b5d5ff;
border: 0px solid white;
-/* background: transparent url(../images/scrambledValue.png) no-repeat 0 -16px; */
+/* background: transparent url(./images/scrambledValue.png) no-repeat 0 -16px; */
background: transparent url(data:image/png;charset=utf-8;base64,iVBORw0KGgoAAAANSUhEUgAAAEcAAAAgCAYAAABAQWX9AAAABGdBTUEAANbY1E9YMgAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAANXSURBVHja7FgxixNBFJ6TEyFXxEBiYWFEuCKHcEJio6RRIZAycF3qjWU67xcEr0par04Q7mA7hSAWErVyC1GTIiAmoMUlcHeFQblC53uZWTbJzmZ3cazmwUBm5+ObN9978zb7Nv5wY8Z87ZKRwIjz78SZTqes2+2ywWAQiqTX6xE+jOnkjoE/5OMgkjiTyYTZts3G43GoHRzHIXwY08kdA3/Mx/5acRDR2WymZBmNRoHz5ezwcunkjoF3AsT6ysepnGzKH1AbqufzeZZOp91N2+02PYc1m033eaPRIBzwcnOkM7BYr1QqrFQqaeeOiMdmBT5u8bHnEeJAZBHWn/LxZEGcbDZLKktnZYrCvBsnEgl6ViwWad17v2U6e0XQzR0DbwkhvLVGXq09IRzZxvL/HCjdarXcCFSrVdpcZYg+iqAUoV6vu4f0uz66uGPga6Igk4Z8vOIjFViQQQ7npdNyrjosIgYHECE5D3qT6OKOiHdE9qREtsi5+m0FMjicy+Uoqrir2ERV/TudDh3OsizCwzFg/QqkTu4Y+JqoN0d8PBMi7S8X65XMwf0EOQxFDIfJZDIr7HAEWImBM3DMD6ubOyL+VNQVFN1HQpgjb61R1hxj5vPBiGPE0WibL/tGBJM5Rpz/IM7P8ykbfuiyyThcz+Xb5x7hw5hO7hj46P2c2fmE9d/Z7OwkXM/lx9AhfBjTyR0Df1zeCdHPQUQvfqt7Lmcno8D5cnZ4uXRyx8BH7+dAbah+fTvPtpJpd9OPr9vs+3DOV37cdJ+/ed4gHPAXv+abI53BgfWd+xW2XShp546Id3imFPgb2refw9ccvrbaz7l6LctTfkqE3hSFuRvzCFy+Mm8B3LxdpIN577dMZ68Iurmj4vnhLSGEW2vk1eJri/2cF18Wv62g9Hu75abi7sMqba4yRB9FUIpwr1J3D+l3fXRxx8DXuCiHQpRw/ZzRpx45L52Wc9VhETE4gAjJubLnopE7Ip76N1yUFLIF12ltPwepDuUzN3IUVdxVbNJ/aysi1aHD3S1b7A7HwzFg/QqkTu4YeGSN28+BSKH6Obifuw/mPRcUMRwmkVzti8CRBMdKDJyBY1tJdT9HF3dEPPVzuCDr+znLNceY+Xww4hhxNNpfAQYAoVB5BoFW//8AAAAASUVORK5CYIIK) no-repeat 0 -16px;
}
@@ -1232,7 +1232,7 @@ div.passwordTooltip {
font-size: 10pt;
font-weight: bold;
color: black;
- background: url(../images/tooltipBackground.png) no-repeat 0 -30px;
+ background: url(./images/tooltipBackground.png) no-repeat 0 -30px;
width: 335px;
height: 148px;
z-index: 10000;
@@ -1409,7 +1409,7 @@ div.directLoginCollapseLink {
width: 15px;
height: 15px;
cursor: pointer;
-/* background: url(../images/directLogin/toggle.png) no-repeat; */
+/* background: url(./images/directLogin/toggle.png) no-repeat; */
background: url(data:image/png;charset=utf-8;base64,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) no-repeat;
overflow: hidden;
}
@@ -1736,7 +1736,7 @@ div.clipperzSubPanel {
}
div.clipperzSubPanel span.read-only {
-/* background-image: url(../images/read-only_background.png); */
+/* background-image: url(./images/read-only_background.png); */
display: block;
color: #666666;
padding: 10px;
@@ -1972,7 +1972,7 @@ div.passwordEntropy {
margin-bottom: 4px;
height: 3px;
font-size: 1pt;
-/* background: url(../images/entropyBackground.gif) repeat-x 0 0; */
+/* background: url(./images/entropyBackground.gif) repeat-x 0 0; */
line-height: 3px;
}
@@ -2056,14 +2056,14 @@ div#donateSplash div.ydlg-dlg-body div.ydlg-ft {
/* @group Password Generator */
div.Clipperz_PasswordGenerator_button {
-/* background: url(../images/passwordAssistant.png) 0 22px; */
+/* background: url(./images/passwordAssistant.png) 0 22px; */
background: url(data:image/png;charset=utf-8;base64,iVBORw0KGgoAAAANSUhEUgAAABsAAAAuCAMAAADuvZJ5AAACZFBMVEX///8APHTHyc4zM2bAwsn+/v/6+vrW2N/z9fjw8vX5/P329/ra3OH92InllwD4sjDd3+T+/v7/8M/3+Pnd3uL80nklV4P3+vwWTX7r7fLj5+v19vng4ujo6u9cXYW7vcuVlq56laiPkKtcXISpqr+EhaP09fnNz9fy9Pd9mar8ymnP0dmNjqmBgqHZ2+FniKDf4en6wVD8znFVfaJFRnR7lan5ukH+3ZX6xFnO0Nnn6e/09PCAgaH7x2H29vNtbpJXWIHw8/Z1dpfz9PjU1uCNnqHf4eiwscX29vTl5+319fF/f5/a3OLy8u5qi6Jmh6D2+fuHiKVsjKT09fji5Ov9/fzX2uLx8ew4OGr3+vv4tTXd3+WtrsP09O9gYIjy8u380nq/wdBmZoxWVoD7ymrz8+5VVoBYWYI7O2y+wM3u3K16fJw5OWo9PW6Ula+oqb/Z2+Dq7PFVVYC8vs4+Pm79249sbpGvsMTw8OtKcZP8znLttUf4szDr6OL6ukH6wFD+35rq6OH29vLs6+bv6NK/x8rs6+T5vUnt6ub5vUjs6+Xg3dTr6OH91YL+/v394Jv7yGCjrrRIbpDo5d+xt7bz8e7Az93x8Or47dPm493V3+i/ztvp5uDq5+Dm49y2vb3l4tvv7ujb1836+vn91YH4+PeEhnH4tDXk4tnk4tr5tzv7z3L6xFjt7OX4+Pb7+/rx8Ov5uDvvtUnw7urw7+n80Xro5d7n5N3u7eb6wFH6vkn5tzr4tzv6vUn19PL29PL19fK/ztzu7ef6w1jw8Orr6uPr6+X5ukLi39aDhG/5tDX6x2HHdGeUAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAeRJREFUOMtjYGPADdgYFMUYMYGEPkhO0bVFCBPMcDUFyollifJiAtEsMaAcY4MoKyYQ7WcEyZmLckGAeCSXuHiAoziILWoOlisV5YYAaTVp52BubjVpIFu0FCzHK8oBAxocHJ5WYJYoL1iuV5QTDly8ixwC3YAM0SVguYQEScnC4vzyGBV3lWRmIJAzkJQU3QqWMzKSlVXNYYYBE5uSvBDZ1VVgOa0UKak0uBSzvVR2WZhUihZYznaCjEyik5Kuqk5cBFAuNylDKVrmtC1Y7rCFABT4ZKaD7bMUEFhjAZarN+SBAj0edQVlZQVtngKenYZgufZd7EhAXh5M7e0Ey9UdZ8EEZmZguY2rmDDBnt1AOQbGU1EimCBqOUhOYhM/FlBTLQGU81/Ghw2c9AOlGE2s6SWIAT8gPw0aT8OiZZYxOA0eFMQC+maD02BoKJY0uH4/OMzYFmNJg/s2g+WWrsOSBqd2gOU8PLCkwQ21YDk7OyxpcHoPWK7pAJY0uGUuWM7LC0saXDgHLGdtjSUNHpoMlouNxZIGd2wDy6WmYkmDa7eD5Xx9saTBrplgufh4LGmwbR5YLjwcSxo8ugAsV3EESxpsXAFOg83HsMit7AanwdYTWOQWzQenwcqJwphgyiTy0yAAb2mGoAo92xQAAAAASUVORK5CYIIK) 0 22px;
width: 27px;
height: 22px;
}
div.Clipperz_PasswordGenerator_button.hover {
-/* background: url(../images/passwordAssistant.png) 0 -1px; */
+/* background: url(./images/passwordAssistant.png) 0 -1px; */
background: url(data:image/png;charset=utf-8;base64,iVBORw0KGgoAAAANSUhEUgAAABsAAAAuCAMAAADuvZJ5AAACZFBMVEX///8APHTHyc4zM2bAwsn+/v/6+vrW2N/z9fjw8vX5/P329/ra3OH92InllwD4sjDd3+T+/v7/8M/3+Pnd3uL80nklV4P3+vwWTX7r7fLj5+v19vng4ujo6u9cXYW7vcuVlq56laiPkKtcXISpqr+EhaP09fnNz9fy9Pd9mar8ymnP0dmNjqmBgqHZ2+FniKDf4en6wVD8znFVfaJFRnR7lan5ukH+3ZX6xFnO0Nnn6e/09PCAgaH7x2H29vNtbpJXWIHw8/Z1dpfz9PjU1uCNnqHf4eiwscX29vTl5+319fF/f5/a3OLy8u5qi6Jmh6D2+fuHiKVsjKT09fji5Ov9/fzX2uLx8ew4OGr3+vv4tTXd3+WtrsP09O9gYIjy8u380nq/wdBmZoxWVoD7ymrz8+5VVoBYWYI7O2y+wM3u3K16fJw5OWo9PW6Ula+oqb/Z2+Dq7PFVVYC8vs4+Pm79249sbpGvsMTw8OtKcZP8znLttUf4szDr6OL6ukH6wFD+35rq6OH29vLs6+bv6NK/x8rs6+T5vUnt6ub5vUjs6+Xg3dTr6OH91YL+/v394Jv7yGCjrrRIbpDo5d+xt7bz8e7Az93x8Or47dPm493V3+i/ztvp5uDq5+Dm49y2vb3l4tvv7ujb1836+vn91YH4+PeEhnH4tDXk4tnk4tr5tzv7z3L6xFjt7OX4+Pb7+/rx8Ov5uDvvtUnw7urw7+n80Xro5d7n5N3u7eb6wFH6vkn5tzr4tzv6vUn19PL29PL19fK/ztzu7ef6w1jw8Orr6uPr6+X5ukLi39aDhG/5tDX6x2HHdGeUAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAeRJREFUOMtjYGPADdgYFMUYMYGEPkhO0bVFCBPMcDUFyollifJiAtEsMaAcY4MoKyYQ7WcEyZmLckGAeCSXuHiAoziILWoOlisV5YYAaTVp52BubjVpIFu0FCzHK8oBAxocHJ5WYJYoL1iuV5QTDly8ixwC3YAM0SVguYQEScnC4vzyGBV3lWRmIJAzkJQU3QqWMzKSlVXNYYYBE5uSvBDZ1VVgOa0UKak0uBSzvVR2WZhUihZYznaCjEyik5Kuqk5cBFAuNylDKVrmtC1Y7rCFABT4ZKaD7bMUEFhjAZarN+SBAj0edQVlZQVtngKenYZgufZd7EhAXh5M7e0Ey9UdZ8EEZmZguY2rmDDBnt1AOQbGU1EimCBqOUhOYhM/FlBTLQGU81/Ghw2c9AOlGE2s6SWIAT8gPw0aT8OiZZYxOA0eFMQC+maD02BoKJY0uH4/OMzYFmNJg/s2g+WWrsOSBqd2gOU8PLCkwQ21YDk7OyxpcHoPWK7pAJY0uGUuWM7LC0saXDgHLGdtjSUNHpoMlouNxZIGd2wDy6WmYkmDa7eD5Xx9saTBrplgufh4LGmwbR5YLjwcSxo8ugAsV3EESxpsXAFOg83HsMit7AanwdYTWOQWzQenwcqJwphgyiTy0yAAb2mGoAo92xQAAAAASUVORK5CYIIK) 0 -1px;
}
@@ -2151,17 +2151,17 @@ div#loginInfo {
margin: 0px;
border: 0px;
width: 389px;
- background: url(../images/loginInfoBackground.png) repeat-y -405px 0;
+ background: url(./images/loginInfoBackground.png) repeat-y -405px 0;
}
div#loginInfo div.header {
- background: url(../images/loginInfoBackground.png) no-repeat 0 0;
+ background: url(./images/loginInfoBackground.png) no-repeat 0 0;
min-height: 20px;
height: 20px;
}
div#loginInfo div.footer {
- background: url(../images/loginInfoBackground.png) 389px -5px;
+ background: url(./images/loginInfoBackground.png) 389px -5px;
min-height: 20px;
height: 20px;
}
@@ -2225,14 +2225,14 @@ div#loginInfo div.loginInfo_latest div.icons img {
/* @group Latest */
div#loginInfo div.content div.loginInfo_latest {
- background: url(../images/loginInfoInnerBackground.png) repeat-y -349px 0px;
+ background: url(./images/loginInfoInnerBackground.png) repeat-y -349px 0px;
width: 349px;
min-width: 349px;
clear: both;
}
div#loginInfo div.loginInfo_latest div.inner_header {
- background: url(../images/loginInfoInnerBackground.png) 0px 0px;
+ background: url(./images/loginInfoInnerBackground.png) 0px 0px;
min-height: 6px;
height: 6px;
max-height: 6px;
@@ -2254,7 +2254,7 @@ div#loginInfo div.loginInfo_latest div.text {
div#loginInfo div.loginInfo_latest div.inner_footer {
- background: url(../images/loginInfoInnerBackground.png) 349px -9px;
+ background: url(./images/loginInfoInnerBackground.png) 349px -9px;
min-height: 6px;
height: 6px;
max-height: 6px;
@@ -2701,7 +2701,7 @@ div.importWizardStepsBox {
width:600px;
- background: url(../images/importStepsBackground.png) no-repeat;
+ background: url(./images/importStepsBackground.png) no-repeat;
}
div.importWizardStepsInnerBox {
@@ -2711,7 +2711,7 @@ div.importWizardStepsInnerBox {
min-height: 53px;
max-height: 53px;
- background: url(../images/importStepsBackground.png) repeat-x 0 -53px;
+ background: url(./images/importStepsBackground.png) repeat-x 0 -53px;
}
div.importWizardStepsBoxFooter {
@@ -2725,7 +2725,7 @@ div.importWizardStepsBoxFooter {
min-width: 18px;
max-width: 18px;
- background: url(../images/importStepsBackground.png) no-repeat -9px -106px;
+ background: url(./images/importStepsBackground.png) no-repeat -9px -106px;
}
div.importWizardStepsBox table.importWizardSteps tbody tr td {
@@ -2756,23 +2756,23 @@ div.importWizardStepsBox table.importWizardSteps tbody tr td div span {
div.importWizardStepsBox table.importWizardSteps tbody tr td.current div {
padding-left: 8px;
- background: url(../images/importStepsLabelsBackground.png) repeat-x 0 0px;
+ background: url(./images/importStepsLabelsBackground.png) repeat-x 0 0px;
}
div.importWizardStepsBox table.importWizardSteps tbody tr td.current div span {
color: white;
padding-right: 8px;
- background: url(../images/importStepsLabelsBackground.png) repeat-x right -23px;
+ background: url(./images/importStepsLabelsBackground.png) repeat-x right -23px;
}
div.importWizardStepsBox table.importWizardSteps tbody tr td.currentProcessing div {
padding-left: 8px;
- background: url(../images/importStepsLeftLabelsBackground.png) repeat-x 0 0px;
+ background: url(./images/importStepsLeftLabelsBackground.png) repeat-x 0 0px;
}
div.importWizardStepsBox table.importWizardSteps tbody tr td.currentProcessing div span {
padding-right: 8px;
- background: url(../images/importStepsLeftLabelsBackground.png) repeat-x right -23px;
+ background: url(./images/importStepsLeftLabelsBackground.png) repeat-x right -23px;
}
/* @group Steps separator */
@@ -2781,7 +2781,7 @@ div.importWizardStepsBox table.importWizardSteps tbody tr td.stepSeparator div {
max-width: 18px;
min-width: 18px;
- background: url(../images/importStepsSeparator.png) no-repeat 0 2px;
+ background: url(./images/importStepsSeparator.png) no-repeat 0 2px;
}
div.importWizardStepsBox table.importWizardSteps tbody tr td.stepSeparator div span {
@@ -2793,7 +2793,7 @@ div.importWizardStepsBox table.importWizardSteps tbody tr td.stepSeparatorProces
max-width: 18px;
min-width: 18px;
- background: url(../images/importActiveStepsSeparator.png) no-repeat 0 2px;
+ background: url(./images/importActiveStepsSeparator.png) no-repeat 0 2px;
}
div.importWizardStepsBox table.importWizardSteps tbody tr td.stepSeparatorProcessing div span {
diff --git a/frontend/beta/css/clipperz/ie.css b/frontend/beta/css/clipperz/ie.css
index 320363c..99bf2d8 100644
--- a/frontend/beta/css/clipperz/ie.css
+++ b/frontend/beta/css/clipperz/ie.css
@@ -46,7 +46,7 @@ div.clipperzLoginForm div.registrationForm form {
div#newRecordInnerPanel {
width: 350px;
height: 160px;
- background: url(../images/newRecordPanelBackground.png) no-repeat 0 -165px;
+ background: url(./images/newRecordPanelBackground.png) no-repeat 0 -165px;
/* background: url(data:image/png;charset=utf-8;base64,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) no-repeat 0 -165px; */
}
@@ -62,208 +62,208 @@ div#applicationVersionType {
}
div#applicationVersionType.readOnly {
- background: url(../images/read-only.png) no-repeat fixed -5px -8px;
+ background: url(./images/read-only.png) no-repeat fixed -5px -8px;
}
div#applicationVersionType.TEST {
- background: url(../images/test-database.png) no-repeat fixed -5px -8px;
+ background: url(./images/test-database.png) no-repeat fixed -5px -8px;
}
div#mainTabs {
- background: #ff9400 url(../images/menubarSprite.gif) repeat-x;
+ background: #ff9400 url(./images/menubarSprite.gif) repeat-x;
}
div#menus {
- background: url(../images/menubarSprite.gif) no-repeat right -26px;
+ background: url(./images/menubarSprite.gif) no-repeat right -26px;
}
div#menus table {
- background: url(../images/menubarSprite.gif) no-repeat 0 -52px;
+ background: url(./images/menubarSprite.gif) no-repeat 0 -52px;
}
div#menus table tbody tr td div {
- background: url(../images/menubarSprite.gif) no-repeat right -52px;
+ background: url(./images/menubarSprite.gif) no-repeat right -52px;
}
div#menus table tbody tr td div a {
- background: url(../images/menubarSprite.gif) no-repeat left -26px;
+ background: url(./images/menubarSprite.gif) no-repeat left -26px;
}
div#menus table tbody tr td.selectedTab {
- background: url(../images/menubarSprite.gif) repeat-x right -78px;
+ background: url(./images/menubarSprite.gif) repeat-x right -78px;
}
div#menus table tbody tr td.selectedTab div {
- background: url(../images/menubarSprite.gif) no-repeat right -130px;
+ background: url(./images/menubarSprite.gif) no-repeat right -130px;
}
div#menus table tbody tr td.selectedTab div a {
- background: url(../images/menubarSprite.gif) no-repeat left -104px;
+ background: url(./images/menubarSprite.gif) no-repeat left -104px;
}
div.clipperzLoginForm div.loginFormHeaderBox {
- background: url(../images/loginFormBox.png) no-repeat -3px top;
+ background: url(./images/loginFormBox.png) no-repeat -3px top;
}
div.clipperzLoginForm div.loginForm {
- background: url(../images/loginFormBox.png) repeat-y -408px;
+ background: url(./images/loginFormBox.png) repeat-y -408px;
}
div.loginForm div.loginFormFooterBox {
- background: url(../images/loginFormBox.png) no-repeat -813px bottom;
+ background: url(./images/loginFormBox.png) no-repeat -813px bottom;
}
div.clipperzLoginForm div.registrationForm {
- background: url(../images/loginFormBox.png) repeat-y -408px;
+ background: url(./images/loginFormBox.png) repeat-y -408px;
}
div.clipperzLoginForm form.read-only table.formLayout, div.panelform.read-only table.panelBody, div.clipperzSubPanel span.read-only, div.read-only {
- background-image: url(../images/read-only_background.png);
+ background-image: url(./images/read-only_background.png);
}
div.registrationForm div.loginFormFooterBox {
- background: url(../images/loginFormBox.png) no-repeat -813px bottom;
+ background: url(./images/loginFormBox.png) no-repeat -813px bottom;
}
div.loginPanelSwitchLanguageBox {
- background: url(../images/languageBox.png) no-repeat 19px -15px;
+ background: url(./images/languageBox.png) no-repeat 19px -15px;
}
div#directLoginsBlock {
- background: url(../images/directLoginBox.png) repeat-y -262px bottom;
+ background: url(./images/directLoginBox.png) repeat-y -262px bottom;
}
div#directLoginsBlock div.directLoginsBlockHeaderBox {
- background: url(../images/directLoginBox.png) no-repeat -11px -13px;
+ background: url(./images/directLoginBox.png) no-repeat -11px -13px;
}
ul#directLogins {
- background: url(../images/directLoginBox.png) no-repeat -513px bottom;
+ background: url(./images/directLoginBox.png) no-repeat -513px bottom;
}
div#directLoginsDescription {
- background: url(../images/directLoginBox.png) no-repeat -513px bottom;
+ background: url(./images/directLoginBox.png) no-repeat -513px bottom;
}
/*
div#recordListFilterHeader {
- background: url(../images/cardFiltersSprite.gif) repeat-x 0 -114px;
+ background: url(./images/cardFiltersSprite.gif) repeat-x 0 -114px;
}
div#recordFiltersTableWrapper {
- background: url(../images/cardFiltersSprite.gif) no-repeat left -38px;
+ background: url(./images/cardFiltersSprite.gif) no-repeat left -38px;
}
div#recordFiltersDIV table {
- background: url(../images/cardFiltersSprite.gif) no-repeat right -19px;
+ background: url(./images/cardFiltersSprite.gif) no-repeat right -19px;
}
div#recordFiltersDIV table tbody tr td div {
- background: url(../images/cardFiltersSprite.gif) no-repeat right -38px;
+ background: url(./images/cardFiltersSprite.gif) no-repeat right -38px;
}
div#recordFiltersDIV table tbody tr td div a {
- background: url(../images/cardFiltersSprite.gif) no-repeat left -19px;
+ background: url(./images/cardFiltersSprite.gif) no-repeat left -19px;
}
div#recordFiltersDIV table tbody tr td.selectedTab {
- background: url(../images/cardFiltersSprite.gif) repeat-x -57px;
+ background: url(./images/cardFiltersSprite.gif) repeat-x -57px;
}
div#recordFiltersDIV table tbody tr td.selectedTab div {
- background: url(../images/cardFiltersSprite.gif) no-repeat right -95px;
+ background: url(./images/cardFiltersSprite.gif) no-repeat right -95px;
}
div#recordFiltersDIV table tbody tr td.selectedTab div a {
- background: url(../images/cardFiltersSprite.gif) no-repeat left -76px;
+ background: url(./images/cardFiltersSprite.gif) no-repeat left -76px;
}
*/
div#recordFiltersSearchInnerPanel {
- background: url(../images/recordFilterBackground.png) no-repeat -10px -138px;
+ background: url(./images/recordFilterBackground.png) no-repeat -10px -138px;
}
table#recordListAndDetailBlockTABLE {
- background: url(../images/cardBlockLowerBorder.gif) repeat-x 0 bottom;
+ background: url(./images/cardBlockLowerBorder.gif) repeat-x 0 bottom;
}
div#recordListBlockHeader table.recordListBlockHeaderTABLE {
- background: url(../images/cardsBlockRoundCorners.gif) no-repeat right -51px;
+ background: url(./images/cardsBlockRoundCorners.gif) no-repeat right -51px;
}
div#recordListBlockHeader table.recordListBlockHeaderTABLE tbody tr td.recordBlockTitleTD {
- background: url(../images/cardsBlockRoundCorners.gif) no-repeat left 0px;
+ background: url(./images/cardsBlockRoundCorners.gif) no-repeat left 0px;
}
td#cardBoxLowerLeftTD {
- background: url(../images/cardBlockLowerRoundedCorner.gif) no-repeat left -32px;
+ background: url(./images/cardBlockLowerRoundedCorner.gif) no-repeat left -32px;
}
td#cardBoxLowerRightTD {
- background: url(../images/cardBlockLowerRoundedCorner.gif) no-repeat right -82px;
+ background: url(./images/cardBlockLowerRoundedCorner.gif) no-repeat right -82px;
}
div#newRecordInnerPanel {
- background: url(../images/newRecordPanelBackground.png) no-repeat 0 -165px;
+ background: url(./images/newRecordPanelBackground.png) no-repeat 0 -165px;
}
.resizable-textarea .grippie {
- background: #eee url(../images/grippie.png) no-repeat center 1px;
+ background: #eee url(./images/grippie.png) no-repeat center 1px;
}
div.Clipperz_recordFieldData div.passwordBackground, div.passwordEntropy {
- background: url(../images/entropyBackground.gif) repeat-x 0 0;
+ background: url(./images/entropyBackground.gif) repeat-x 0 0;
}
div.Clipperz_recordFieldData input.scrambledField {
- background: transparent url(../images/scrambledValue.png) no-repeat 0 0px;
+ background: transparent url(./images/scrambledValue.png) no-repeat 0 0px;
}
div.Clipperz_recordFieldData input.scrambledField:focus {
- background: transparent url(../images/scrambledValue.png) no-repeat 0 -16px;
+ background: transparent url(./images/scrambledValue.png) no-repeat 0 -16px;
}
div.directLoginCollapseLink {
- background: url(../images/directLogin/toggle.png) no-repeat;
+ background: url(./images/directLogin/toggle.png) no-repeat;
}
#mb-dlg .ext-mb-progress {
- background:transparent url(../images/default/basic-dialog/progress2.gif) repeat-x 1px 1px;
+ background:transparent url(./images/default/basic-dialog/progress2.gif) repeat-x 1px 1px;
}
.ydlg .ydlg-hd {
- background: url(../images/clipperz/basic-dialog/hd-sprite.gif) repeat-x 0 -82px;
+ background: url(./images/clipperz/basic-dialog/hd-sprite.gif) repeat-x 0 -82px;
}
.ydlg .ydlg-hd-left {
- background: url(../images/clipperz/basic-dialog/hd-sprite.gif) no-repeat 0 -41px;
+ background: url(./images/clipperz/basic-dialog/hd-sprite.gif) no-repeat 0 -41px;
}
.ydlg .ydlg-hd-right {
- background: url(../images/clipperz/basic-dialog/hd-sprite.gif) no-repeat right 0;
+ background: url(./images/clipperz/basic-dialog/hd-sprite.gif) no-repeat right 0;
}
.ydlg .ydlg-close {
- background-image:url(../images/clipperz/basic-dialog/close.gif);
+ background-image:url(./images/clipperz/basic-dialog/close.gif);
}
body .ybtn-left{
- background:url(../images/default/basic-dialog/btn-sprite.gif) no-repeat 0 0;
+ background:url(./images/default/basic-dialog/btn-sprite.gif) no-repeat 0 0;
}
body .ybtn-right{
- background:url(../images/default/basic-dialog/btn-sprite.gif) no-repeat 0 -21px;
+ background:url(./images/default/basic-dialog/btn-sprite.gif) no-repeat 0 -21px;
}
body .ybtn-center{
- background:url(../images/default/basic-dialog/btn-sprite.gif) repeat-x 0 -42px;
+ background:url(./images/default/basic-dialog/btn-sprite.gif) repeat-x 0 -42px;
}
div.Clipperz_PasswordGenerator_button {
- background: url(../images/passwordAssistant.png) 0 22px;
+ background: url(./images/passwordAssistant.png) 0 22px;
}
div.Clipperz_PasswordGenerator_button.hover {
- background: url(../images/passwordAssistant.png) 0 -1px;
+ background: url(./images/passwordAssistant.png) 0 -1px;
}
body ul.radioList li h4 {
@@ -292,7 +292,7 @@ div#newRecordPanel {
div#newRecordInnerPanel {
width: 350px;
height: 160px;
- background: url(../images/newRecordPanelBackground.gif) no-repeat 0 -165px;
+ background: url(./images/newRecordPanelBackground.gif) no-repeat 0 -165px;
/* background: url(data:image/gif;charset=utf-8;base64,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) no-repeat 0 -165px; */
}
@@ -311,7 +311,7 @@ div#newRecordPanel table td.newRecordPanelLabelTD {
}
div#readOnlyBanner {
- background: url(../images/read-only.gif) no-repeat fixed -5px -8px;
+ background: url(./images/read-only.gif) no-repeat fixed -5px -8px;
/* background: url(data:image/gif;charset=utf-8;base64,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) no-repeat fixed -5px -8px; */
}
@@ -332,12 +332,12 @@ div.clipperzSubPanel {
div.Clipperz_recordFieldData input.scrambledField {
- background: transparent url(../images/scrambledValue.gif) no-repeat 0 0px;
+ background: transparent url(./images/scrambledValue.gif) no-repeat 0 0px;
/* background: transparent url(data:image/gif;charset=utf-8;base64,R0lGODlhRwAgANUmAP///7XV/2ZmZqW/4ODg4HBwcGttcJChuLi4uHZ8hYWFhfX19bDO9YCLmZmZmaOjo4aSo6C31tbW1q2trXuEj4uarY+Pj+vr66rG68LCwpWpwnp6eszMzHF1epuwzMTd/7rY/9Pm/8ng/7/b/87j/9jp/////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAACYALAAAAABHACAAAAb/QIBwSCwaj8ikcslsOp/QqHRKRV4QkmQGkbxmkVtlGGkyLSUCLtIiSKLVR7ZSTjYfLwvAW0gY9gF0eEKCewB/hkKBeXyJbQCCRGVIDgIOE5UPBQV8AhsTCmmgapSWmJqcnqKiqJ+haUJlsbFFCKACt50TeQSZuLcOHEK1vrm7vb7AfMe4yQCyskcEBbcZRw+3CotE0tTW2NpE1wLZRtBI19fk25qU1UXo4+CG7ALu6wXt5bNHHAIWAAgEPCgCSsICTYcA9PsXcCCRggcLJAQAEWEkO5KMcNhwIREcAAssCZGgIOHGjoA+hpwwsiSRlS0TZsxYpabNmzhz6tzJs6fP/wBAgwodSrSo0aNIkypdyrSp06dQo0o1iuFAhKMaDhytetVoVqRfjZZJGkGAVqMUBBwte7ZoWqRvxZqgyiAAW6ADguYNEBdD3QB+7ZrFqxdo378B9h4G+gHo2AAjQAhtIKBBhcoQDBjAK6BDhQRmQZ+lbBmzZs6eRYtG/Tn04A/PYpUQegC0L891B2Qm1sAD0NrEcCfe7as3XuK4jMOObYIE0QEGbmkoCuFWAsR6owuYTrS6gOvUrWN3HEty+OrghUI3QJm70Orox69v/1wzfaHLy4Qo6kEAhQAHCADBUKBFwIBmewHV338BDihUgQcakCBQECIoVBkigFBGY0N50DIBBoa1FQADlgEVQQITeggiXyKSWIGJKArlIowJajhXABtOpeOOPPbo449ABinkkAEEAQA7Cg==) no-repeat 0 0px; */
}
div.Clipperz_recordFieldData input.scrambledField:focus {
- background: transparent url(../images/scrambledValue.gif) no-repeat 0 -14px;
+ background: transparent url(./images/scrambledValue.gif) no-repeat 0 -14px;
/* background: transparent url(data:image/gif;charset=utf-8;base64,R0lGODlhRwAgANUmAP///7XV/2ZmZqW/4ODg4HBwcGttcJChuLi4uHZ8hYWFhfX19bDO9YCLmZmZmaOjo4aSo6C31tbW1q2trXuEj4uarY+Pj+vr66rG68LCwpWpwnp6eszMzHF1epuwzMTd/7rY/9Pm/8ng/7/b/87j/9jp/////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAACYALAAAAABHACAAAAb/QIBwSCwaj8ikcslsOp/QqHRKRV4QkmQGkbxmkVtlGGkyLSUCLtIiSKLVR7ZSTjYfLwvAW0gY9gF0eEKCewB/hkKBeXyJbQCCRGVIDgIOE5UPBQV8AhsTCmmgapSWmJqcnqKiqJ+haUJlsbFFCKACt50TeQSZuLcOHEK1vrm7vb7AfMe4yQCyskcEBbcZRw+3CotE0tTW2NpE1wLZRtBI19fk25qU1UXo4+CG7ALu6wXt5bNHHAIWAAgEPCgCSsICTYcA9PsXcCCRggcLJAQAEWEkO5KMcNhwIREcAAssCZGgIOHGjoA+hpwwsiSRlS0TZsxYpabNmzhz6tzJs6fP/wBAgwodSrSo0aNIkypdyrSp06dQo0o1iuFAhKMaDhytetVoVqRfjZZJGkGAVqMUBBwte7ZoWqRvxZqgyiAAW6ADguYNEBdD3QB+7ZrFqxdo378B9h4G+gHo2AAjQAhtIKBBhcoQDBjAK6BDhQRmQZ+lbBmzZs6eRYtG/Tn04A/PYpUQegC0L891B2Qm1sAD0NrEcCfe7as3XuK4jMOObYIE0QEGbmkoCuFWAsR6owuYTrS6gOvUrWN3HEty+OrghUI3QJm70Orox69v/1wzfaHLy4Qo6kEAhQAHCADBUKBFwIBmewHV338BDihUgQcakCBQECIoVBkigFBGY0N50DIBBoa1FQADlgEVQQITeggiXyKSWIGJKArlIowJajhXABtOpeOOPPbo449ABinkkAEEAQA7Cg==) no-repeat 0 -14px; */
}
diff --git a/frontend/beta/css/clipperz/ytheme-clipperz.css b/frontend/beta/css/clipperz/ytheme-clipperz.css
index effed2e..ed71348 100644
--- a/frontend/beta/css/clipperz/ytheme-clipperz.css
+++ b/frontend/beta/css/clipperz/ytheme-clipperz.css
@@ -34,12 +34,12 @@ refer to http://www.clipperz.com.
#mb-dlg .ext-mb-progress {
height:18px;
-/* background:transparent url(../images/default/basic-dialog/progress2.gif) repeat-x 1px 1px; */
+/* background:transparent url(./images/default/basic-dialog/progress2.gif) repeat-x 1px 1px; */
background:transparent url(data:image/gif;charset=utf-8;base64,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) repeat-x 1px 1px;
}
.ydlg .ydlg-hd {
-/* background: url(../images/clipperz/basic-dialog/hd-sprite.gif) repeat-x 0 -82px; */
+/* background: url(./images/clipperz/basic-dialog/hd-sprite.gif) repeat-x 0 -82px; */
background: url(data:image/gif;charset=utf-8;base64,R0lGODlhAwB7AIABADMzZv///yH5BAEAAAEALAAAAAADAHsAAAITBGKpy+0Po5y0Houz3rz7D4ZUAQA7Cg==) repeat-x 0 -82px;
background-color:navy;
color:#ffffff;
@@ -48,18 +48,18 @@ refer to http://www.clipperz.com.
padding:5px;
}
.ydlg .ydlg-hd-left {
-/* background: url(../images/clipperz/basic-dialog/hd-sprite.gif) no-repeat 0 -41px; */
+/* background: url(./images/clipperz/basic-dialog/hd-sprite.gif) no-repeat 0 -41px; */
background: url(data:image/gif;charset=utf-8;base64,R0lGODlhAwB7AIABADMzZv///yH5BAEAAAEALAAAAAADAHsAAAITBGKpy+0Po5y0Houz3rz7D4ZUAQA7Cg==) no-repeat 0 -41px;
padding-left:3px;
margin:0px;
}
.ydlg .ydlg-hd-right {
-/* background: url(../images/clipperz/basic-dialog/hd-sprite.gif) no-repeat right 0; */
+/* background: url(./images/clipperz/basic-dialog/hd-sprite.gif) no-repeat right 0; */
background: url(data:image/gif;charset=utf-8;base64,R0lGODlhAwB7AIABADMzZv///yH5BAEAAAEALAAAAAADAHsAAAITBGKpy+0Po5y0Houz3rz7D4ZUAQA7Cg==) no-repeat right 0;
padding-right:3px;
}
.ydlg .ydlg-dlg-body {
-/* background:url(../images/clipperz/layout/gradient-bg.gif);*/
+/* background:url(./images/clipperz/layout/gradient-bg.gif);*/
background-color: white;
border:1px solid #333366;
border-top:0 none;
@@ -88,7 +88,7 @@ refer to http://www.clipperz.com.
background-repeat:no-repeat;
cursor:pointer;
visibility:inherit;
-/* background-image:url(../images/clipperz/basic-dialog/close.gif); */
+/* background-image:url(./images/clipperz/basic-dialog/close.gif); */
background-image:url(data:image/gif;charset=utf-8;base64,R0lGODlhDwAPANUAADk1bpeVs5+dub27z+Df6LGvxo2KqzIyZdfW4jk0brq4zNbU4cTD1ImGqVZSg/f2+Y+MraKgu9/e6NjX4qyqwjIyZtrZ5Pn5+mZij0pGenx4n0A7c7Oxx8C/0XZzm/39/Tw3cLCvxX57obe1yrCuxX16oP///zMzZjYxbAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAAAAAAALAAAAAAPAA8AAAZ9wJNQSAgJKIuh8oTAoJ5PB2M5AEGvKMEQYcVeFUInqmSBoDyTwDNzIEAtJlPnY7oAngMSFBLvF6AGAlcdfRIJUBoUUB50fWpPDQtQE3EScQ93KBwnDk8BFwUJAQ8jTxsVJwxQmSisEUOCXk8iSwoZWBuvSycHAwYaDRyoQ0EAOwo=);
}
@@ -116,15 +116,15 @@ div.ydlg-btns-center table tbody tr td {
/* @end */
body .ybtn-left{
-/* background:url(../images/default/basic-dialog/btn-sprite.gif) no-repeat 0 0; */
+/* background:url(./images/default/basic-dialog/btn-sprite.gif) no-repeat 0 0; */
background:url(data:image/gif;charset=utf-8;base64,R0lGODlhAwCTAIcAAAA8dBZNfiVXg0hukEpxk1V9okD/QGaHoGeIoGqLomyMpHqVqHuVqX2ZqoOEb4SGceWXAPiyMPizMPi0Nfi1Nfm0Nfi3O/m3Ovm3O/m4O+21R++1Sfm6Qfm6Qvq6Qfm9SPm9Sfq9Sfq+SfrAUPrAUfrBUPrDWPrEWPrEWfrHYfvHYfvIYPvKavzKafvPcvzOcfzOcvzRevzSefzSeo2eoaOutLG3tra9vb/Hyr/O27/O3P3Vgf3Vgv3Yif3bj/7dlf7fmu7crf3gm8DCycfJzsDP3dvXzdbY39Xf6Nrc4d3e4t3f5ODd1OLf1uTi2eTi2uXi2+bj3Obj3efk3ejl3ujl3+/o0vjt0//wz+Di6OPn6+nm4Orn4Oro4evo4evo4uvq4+vr5ezr5Ozr5ezr5u3q5u3s5e7t5u7t5+jq7+/u6Ovt8vDv6fDu6vDw6vDw6/Hw6vHw6/Hx7PPx7vLy7fLy7vPz7vT07/Dy9fT08PX18fX08vX18vb08vb28vb28/b29PP1+Pb3+vf4+fj49vj49/r6+fr6+vv7+vn8/f39/P7+/f7+/v7+/////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAMAAAYALAAAAAADAJMAAAj/AA0sELCgQBEBOhgBUKQIwCFDAAoRAgAIEIA/fwD44QNAjx4AefIAuHMHgB07AOrUAUCHDgA5cgC8cQOATJgAOJocIFDDQAMBARAYQFKAwaIcAhD1AbCnDYA5ZQDE+QIAjhcAbLgAULMFAJoqAM5QAWBmCoAxUgCIiQIADBQAXZwAeMIEgJEbAWwMSBBAgQEAgB0JZkS4keFEiAUpDsQYj+M1kNNI1kI5i+UlmJNoPsJ5iGcioEOHHkQaMACBBGlYERBEBgAgrn+49uG6h2sermfMAPDiBYAWLACoWAHABAoAI0oAACECgIcOADJgAFCBQoANEQ48gOATqNArNBjIfwgiQIYQADJ+oPeBvgf6HehjAHABAwCLFgBSqABw4jgJ5SF8AAAHHABgwQUAUDABABJoEAAEDvDll2lYVNjDhYY1glgiignCWCCO4QHZGpKlQZkWlmWB2RKaJcHZEZ4NEZoSNEZgIwQ4mkahhRee6OOPQAYp5JAn2hgBjhCYFhAAOwo=) no-repeat 0 0;
}
body .ybtn-right{
-/* background:url(../images/default/basic-dialog/btn-sprite.gif) no-repeat 0 -21px; */
+/* background:url(./images/default/basic-dialog/btn-sprite.gif) no-repeat 0 -21px; */
background:url(data:image/gif;charset=utf-8;base64,R0lGODlhAwCTAIcAAAA8dBZNfiVXg0hukEpxk1V9okD/QGaHoGeIoGqLomyMpHqVqHuVqX2ZqoOEb4SGceWXAPiyMPizMPi0Nfi1Nfm0Nfi3O/m3Ovm3O/m4O+21R++1Sfm6Qfm6Qvq6Qfm9SPm9Sfq9Sfq+SfrAUPrAUfrBUPrDWPrEWPrEWfrHYfvHYfvIYPvKavzKafvPcvzOcfzOcvzRevzSefzSeo2eoaOutLG3tra9vb/Hyr/O27/O3P3Vgf3Vgv3Yif3bj/7dlf7fmu7crf3gm8DCycfJzsDP3dvXzdbY39Xf6Nrc4d3e4t3f5ODd1OLf1uTi2eTi2uXi2+bj3Obj3efk3ejl3ujl3+/o0vjt0//wz+Di6OPn6+nm4Orn4Oro4evo4evo4uvq4+vr5ezr5Ozr5ezr5u3q5u3s5e7t5u7t5+jq7+/u6Ovt8vDv6fDu6vDw6vDw6/Hw6vHw6/Hx7PPx7vLy7fLy7vPz7vT07/Dy9fT08PX18fX08vX18vb08vb28vb28/b29PP1+Pb3+vf4+fj49vj49/r6+fr6+vv7+vn8/f39/P7+/f7+/v7+/////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAMAAAYALAAAAAADAJMAAAj/AA0sELCgQBEBOhgBUKQIwCFDAAoRAgAIEIA/fwD44QNAjx4AefIAuHMHgB07AOrUAUCHDgA5cgC8cQOATJgAOJocIFDDQAMBARAYQFKAwaIcAhD1AbCnDYA5ZQDE+QIAjhcAbLgAULMFAJoqAM5QAWBmCoAxUgCIiQIADBQAXZwAeMIEgJEbAWwMSBBAgQEAgB0JZkS4keFEiAUpDsQYj+M1kNNI1kI5i+UlmJNoPsJ5iGcioEOHHkQaMACBBGlYERBEBgAgrn+49uG6h2sermfMAPDiBYAWLACoWAHABAoAI0oAACECgIcOADJgAFCBQoANEQ48gOATqNArNBjIfwgiQIYQADJ+oPeBvgf6HehjAHABAwCLFgBSqABw4jgJ5SF8AAAHHABgwQUAUDABABJoEAAEDvDll2lYVNjDhYY1glgiignCWCCO4QHZGpKlQZkWlmWB2RKaJcHZEZ4NEZoSNEZgIwQ4mkahhRee6OOPQAYp5JAn2hgBjhCYFhAAOwo=) no-repeat 0 -21px;
}
body .ybtn-center{
-/* background:url(../images/default/basic-dialog/btn-sprite.gif) repeat-x 0 -42px; */
+/* background:url(./images/default/basic-dialog/btn-sprite.gif) repeat-x 0 -42px; */
background:url(data:image/gif;charset=utf-8;base64,R0lGODlhAwCTAIcAAAA8dBZNfiVXg0hukEpxk1V9okD/QGaHoGeIoGqLomyMpHqVqHuVqX2ZqoOEb4SGceWXAPiyMPizMPi0Nfi1Nfm0Nfi3O/m3Ovm3O/m4O+21R++1Sfm6Qfm6Qvq6Qfm9SPm9Sfq9Sfq+SfrAUPrAUfrBUPrDWPrEWPrEWfrHYfvHYfvIYPvKavzKafvPcvzOcfzOcvzRevzSefzSeo2eoaOutLG3tra9vb/Hyr/O27/O3P3Vgf3Vgv3Yif3bj/7dlf7fmu7crf3gm8DCycfJzsDP3dvXzdbY39Xf6Nrc4d3e4t3f5ODd1OLf1uTi2eTi2uXi2+bj3Obj3efk3ejl3ujl3+/o0vjt0//wz+Di6OPn6+nm4Orn4Oro4evo4evo4uvq4+vr5ezr5Ozr5ezr5u3q5u3s5e7t5u7t5+jq7+/u6Ovt8vDv6fDu6vDw6vDw6/Hw6vHw6/Hx7PPx7vLy7fLy7vPz7vT07/Dy9fT08PX18fX08vX18vb08vb28vb28/b29PP1+Pb3+vf4+fj49vj49/r6+fr6+vv7+vn8/f39/P7+/f7+/v7+/////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAMAAAYALAAAAAADAJMAAAj/AA0sELCgQBEBOhgBUKQIwCFDAAoRAgAIEIA/fwD44QNAjx4AefIAuHMHgB07AOrUAUCHDgA5cgC8cQOATJgAOJocIFDDQAMBARAYQFKAwaIcAhD1AbCnDYA5ZQDE+QIAjhcAbLgAULMFAJoqAM5QAWBmCoAxUgCIiQIADBQAXZwAeMIEgJEbAWwMSBBAgQEAgB0JZkS4keFEiAUpDsQYj+M1kNNI1kI5i+UlmJNoPsJ5iGcioEOHHkQaMACBBGlYERBEBgAgrn+49uG6h2sermfMAPDiBYAWLACoWAHABAoAI0oAACECgIcOADJgAFCBQoANEQ48gOATqNArNBjIfwgiQIYQADJ+oPeBvgf6HehjAHABAwCLFgBSqABw4jgJ5SF8AAAHHABgwQUAUDABABJoEAAEDvDll2lYVNjDhYY1glgiignCWCCO4QHZGpKlQZkWlmWB2RKaJcHZEZ4NEZoSNEZgIwQ4mkahhRee6OOPQAYp5JAn2hgBjhCYFhAAOwo=) repeat-x 0 -42px;
}
diff --git a/frontend/beta/css/yui-extensions/basic-dialog.css b/frontend/beta/css/yui-extensions/basic-dialog.css
index 5a9f311..5a6cefb 100644
--- a/frontend/beta/css/yui-extensions/basic-dialog.css
+++ b/frontend/beta/css/yui-extensions/basic-dialog.css
@@ -24,6 +24,10 @@ refer to http://www.clipperz.com.
*/
.ydlg-proxy {
+<<<<<<< HEAD
+ background-image: url(./images/default/gradient-bg.gif);
+=======
+>>>>>>> 0db1d5c8b18eadc4bd9cfc6603e86227fa94b5a9
background-color:#c3daf9;
border:1px solid #6593cf;
z-index:10001;
@@ -75,7 +79,7 @@ body.masked .ydlg select {
z-index:10002;
}
.ydlg .ydlg-hd {
- background: url(../images/default/basic-dialog/hd-sprite.gif) repeat-x 0 -82px;
+ background: url(./images/default/basic-dialog/hd-sprite.gif) repeat-x 0 -82px;
background-color:navy;
color:#ffffff;
font:bold 12px "sans serif", tahoma, verdana, helvetica;
@@ -83,15 +87,19 @@ body.masked .ydlg select {
padding:5px;
}
.ydlg .ydlg-hd-left {
- background: url(../images/default/basic-dialog/hd-sprite.gif) no-repeat 0 -41px;
+ background: url(./images/default/basic-dialog/hd-sprite.gif) no-repeat 0 -41px;
padding-left:3px;
margin:0px;
}
.ydlg .ydlg-hd-right {
- background: url(../images/default/basic-dialog/hd-sprite.gif) no-repeat right 0;
+ background: url(./images/default/basic-dialog/hd-sprite.gif) no-repeat right 0;
padding-right:3px;
}
.ydlg .ydlg-dlg-body{
+<<<<<<< HEAD
+ background:url(./images/default/layout/gradient-bg.gif);
+=======
+>>>>>>> 0db1d5c8b18eadc4bd9cfc6603e86227fa94b5a9
border:1px solid #6593cf;
border-top:0 none;
padding:10px;
@@ -166,45 +174,45 @@ body.masked .ydlg select {
background-repeat:no-repeat;
cursor:pointer;
visibility:inherit;
- background-image:url(../images/default/basic-dialog/close.gif);
+ background-image:url(./images/default/basic-dialog/close.gif);
}
.ydlg div.yresizable-handle-east{
- background-image:url(../images/default/sizer/e-handle-dark.gif);
+ background-image:url(./images/default/sizer/e-handle-dark.gif);
border:0;
background-position:left;
margin-right:0;
}
.ydlg div.yresizable-handle-south{
- background-image:url(../images/default/sizer/s-handle-dark.gif);
+ background-image:url(./images/default/sizer/s-handle-dark.gif);
border:0;
height:6px;
}
.ydlg div.yresizable-handle-west{
- background-image:url(../images/default/sizer/e-handle-dark.gif);
+ background-image:url(./images/default/sizer/e-handle-dark.gif);
border:0;
background-position:1px;
}
.ydlg div.yresizable-handle-north{
- background-image:url(../images/default/s.gif);
+ background-image:url(./images/default/s.gif);
border:0;
}
.ydlg div.yresizable-handle-northeast, .ytheme-gray .ydlg div.yresizable-handle-northeast{
- background-image:url(../images/default/s.gif);
+ background-image:url(./images/default/s.gif);
border:0;
}
.ydlg div.yresizable-handle-northwest, .ytheme-gray .ydlg div.yresizable-handle-northwest{
- background-image:url(../images/default/s.gif);
+ background-image:url(./images/default/s.gif);
border:0;
}
.ydlg div.yresizable-handle-southeast{
- background-image:url(../images/default/sizer/corners-sprite.gif);
+ background-image:url(./images/default/sizer/corners-sprite.gif);
background-position: top left;
width:8px;
height:8px;
border:0;
}
.ydlg div.yresizable-handle-southwest{
- background-image:url(../images/default/sizer/corners-sprite.gif);
+ background-image:url(./images/default/sizer/corners-sprite.gif);
background-position: top right;
margin-left:1px;
margin-bottom:1px;
@@ -235,11 +243,11 @@ body.masked .ydlg select {
}
#mb-dlg .ext-mb-progress {
height:18px;
- background:transparent url(../images/default/basic-dialog/progress2.gif) repeat-x 1px 1px;
+ background:transparent url(./images/default/basic-dialog/progress2.gif) repeat-x 1px 1px;
}
#mb-dlg .ext-mb-progress-bar {
height:18px;
overflow:hidden;
width:0;
background:#8bb8f3;
-}
+}
diff --git a/frontend/beta/css/yui-extensions/button.css b/frontend/beta/css/yui-extensions/button.css
index ad1b2fc..fa32854 100644
--- a/frontend/beta/css/yui-extensions/button.css
+++ b/frontend/beta/css/yui-extensions/button.css
@@ -35,12 +35,12 @@ refer to http://www.clipperz.com.
.ybtn-left{
width:3px;
height:21px;
- background:url(../images/default/basic-dialog/btn-sprite.gif) no-repeat 0 0;
+ background:url(./images/default/basic-dialog/btn-sprite.gif) no-repeat 0 0;
}
.ybtn-right{
width:3px;
height:21px;
- background:url(../images/default/basic-dialog/btn-sprite.gif) no-repeat 0 -21px;
+ background:url(./images/default/basic-dialog/btn-sprite.gif) no-repeat 0 -21px;
}
.ybtn-focus{
text-decoration:none !important;
@@ -52,7 +52,7 @@ refer to http://www.clipperz.com.
white-space: nowrap;
}
.ybtn-center{
- background:url(../images/default/basic-dialog/btn-sprite.gif) repeat-x 0 -42px;
+ background:url(./images/default/basic-dialog/btn-sprite.gif) repeat-x 0 -42px;
font:normal 11px "san serif",tahoma,verdana,helvetica;
vertical-align: middle;
text-align:center;
@@ -80,4 +80,4 @@ refer to http://www.clipperz.com.
.ybtn-disabled .ybtn-center{
color:gray;
cursor:default;
-}
+}
diff --git a/frontend/beta/css/yui-extensions/dd.css b/frontend/beta/css/yui-extensions/dd.css
index d4413e5..87cfdae 100644
--- a/frontend/beta/css/yui-extensions/dd.css
+++ b/frontend/beta/css/yui-extensions/dd.css
@@ -68,11 +68,11 @@ refer to http://www.clipperz.com.
z-index:1;
}
.ydd-drop-nodrop .ydd-drop-icon{
- background-image: url(../images/default/dd/drop-no.gif);
+ background-image: url(./images/default/dd/drop-no.gif);
}
.ydd-drop-ok .ydd-drop-icon{
- background-image: url(../images/default/dd/drop-yes.gif);
+ background-image: url(./images/default/dd/drop-yes.gif);
}
.ydd-drop-ok-add .ydd-drop-icon{
- background-image: url(../images/default/dd/drop-add.gif);
-}
+ background-image: url(./images/default/dd/drop-add.gif);
+}
diff --git a/frontend/beta/css/yui-extensions/grid.css b/frontend/beta/css/yui-extensions/grid.css
index 37066ce..45a40ab 100644
--- a/frontend/beta/css/yui-extensions/grid.css
+++ b/frontend/beta/css/yui-extensions/grid.css
@@ -82,11 +82,11 @@ refer to http://www.clipperz.com.
right:0;
top:0;
z-index:2;
- background-image: url(../images/default/grid/pick-button.gif);
+ background-image: url(./images/default/grid/pick-button.gif);
background-repeat: no-repeat;
}
.ygrid-editor-invalid{
- background-image: url(../images/default/grid/invalid_line.gif);
+ background-image: url(./images/default/grid/invalid_line.gif);
background-repeat: repeat-x;
background-position: bottom;
border: 1px solid #afbdc9;
@@ -160,13 +160,13 @@ select.ygrid-editor{
background-repeat: no-repeat;
}
.ygrid-drop-nodrop{
- background-image: url(../images/default/grid/drop-no.gif);
+ background-image: url(./images/default/grid/drop-no.gif);
}
.ygrid-drop-ok{
- background-image: url(../images/default/grid/drop-yes.gif);
+ background-image: url(./images/default/grid/drop-yes.gif);
}
.ygrid-hd .sort-asc {
- background-image: url(../images/default/grid/sort_asc.gif);
+ background-image: url(./images/default/grid/sort_asc.gif);
background-position: right;
background-repeat: no-repeat;
display: none;
@@ -174,7 +174,7 @@ select.ygrid-editor{
width: 16px;
}
.ygrid-hd .sort-desc {
- background-image: url(../images/default/grid/sort_desc.gif);
+ background-image: url(./images/default/grid/sort_desc.gif);
background-position: right;
background-repeat: no-repeat;
display: none;
@@ -204,7 +204,7 @@ select.ygrid-editor{
border-bottom: 1px solid #f9a900;
}
.ygrid-hd-split {
- background-image: url(../images/default/grid/grid-split.gif);
+ background-image: url(./images/default/grid/grid-split.gif);
background-position: center;
background-repeat: no-repeat;
cursor: e-resize;
@@ -218,7 +218,7 @@ select.ygrid-editor{
z-index: 3;
}
.ygrid-hrow{
- background: #ebeadb url(../images/default/grid/grid-hrow.gif) repeat-x;
+ background: #ebeadb url(./images/default/grid/grid-hrow.gif) repeat-x;
display: block;
height: 22px;
left: 0;
@@ -245,34 +245,34 @@ select.ygrid-editor{
height:14px;
}
.ygrid-page-first{
- background-image: url(../images/default/grid/page-first.gif);
+ background-image: url(./images/default/grid/page-first.gif);
}
.ygrid-loading{
- background-image: url(../images/default/grid/done.gif);
+ background-image: url(./images/default/grid/done.gif);
}
.ygrid-page-last{
- background-image: url(../images/default/grid/page-last.gif);
+ background-image: url(./images/default/grid/page-last.gif);
}
.ygrid-page-next{
- background-image: url(../images/default/grid/page-next.gif);
+ background-image: url(./images/default/grid/page-next.gif);
}
.ygrid-page-prev{
- background-image: url(../images/default/grid/page-prev.gif);
+ background-image: url(./images/default/grid/page-prev.gif);
}
.ytb-button-disabled .ygrid-loading{
- background-image: url(../images/default/grid/loading.gif);
+ background-image: url(./images/default/grid/loading.gif);
}
.ytb-button-disabled .ygrid-page-first{
- background-image: url(../images/default/grid/page-first-disabled.gif);
+ background-image: url(./images/default/grid/page-first-disabled.gif);
}
.ytb-button-disabled .ygrid-page-last{
- background-image: url(../images/default/grid/page-last-disabled.gif);
+ background-image: url(./images/default/grid/page-last-disabled.gif);
}
.ytb-button-disabled .ygrid-page-next{
- background-image: url(../images/default/grid/page-next-disabled.gif);
+ background-image: url(./images/default/grid/page-next-disabled.gif);
}
.ytb-button-disabled .ygrid-page-prev{
- background-image: url(../images/default/grid/page-prev-disabled.gif);
+ background-image: url(./images/default/grid/page-prev-disabled.gif);
}
.ygrid-mso{
}
@@ -297,13 +297,13 @@ select.ygrid-editor{
background-color: transparent;
}
.ygrid-mso .ygrid-hd-split {
- background-image: url(../images/default/grid/grid-blue-split.gif);
+ background-image: url(./images/default/grid/grid-blue-split.gif);
}
.ygrid-mso .ytoolbar .ytb-sep {
- background-image: url(../images/default/grid/grid-blue-split.gif);
+ background-image: url(./images/default/grid/grid-blue-split.gif);
}
.ygrid-mso .ygrid-hrow{
- background: url(../images/default/grid/mso-hd.gif);
+ background: url(./images/default/grid/mso-hd.gif);
border-bottom: 1px solid #6593cf;
height: 21px;
}
@@ -388,10 +388,10 @@ select.ygrid-editor{
border-bottom:0;
}
.ygrid-vista .ygrid-hd-split {
- background-image: url(../images/default/grid/grid-split.gif);
+ background-image: url(./images/default/grid/grid-split.gif);
}
.ygrid-vista .ygrid-hrow{
- background: url(../images/default/grid/grid-vista-hd.gif);
+ background: url(./images/default/grid/grid-vista-hd.gif);
height: 21px;
}
.ygrid-vista .ygrid-row-alt{
@@ -408,10 +408,10 @@ select.ygrid-editor{
}
.ygrid-vista .ytoolbar{
border: 0px none;
- background: url(../images/default/grid/grid-vista-hd.gif);
+ background: url(./images/default/grid/grid-vista-hd.gif);
}
.ygrid-vista .ytoolbar .ytb-sep{
- background-image: url(../images/default/grid/grid-split.gif);
+ background-image: url(./images/default/grid/grid-split.gif);
}
/*
To have the scrollbars overlap the header, change .ygrid-wrap top style to 0 and
@@ -499,14 +499,14 @@ select.ygrid-editor{
.ypopcal-head .next-month{
width:16px;
- background-image: url(../images/default/grid/arrow-right-white.gif);
+ background-image: url(./images/default/grid/arrow-right-white.gif);
background-position: center;
background-repeat: no-repeat;
cursor:pointer;
}
.ypopcal-head .prev-month{
width:16px;
- background-image: url(../images/default/grid/arrow-left-white.gif);
+ background-image: url(./images/default/grid/arrow-left-white.gif);
background-position: center;
background-repeat: no-repeat;
cursor:pointer;
@@ -578,4 +578,4 @@ select.ygrid-editor{
.ygrid-simple-view .ygrid-row{
position:static;
display: table-row;
-}
+}
diff --git a/frontend/beta/css/yui-extensions/layout.css b/frontend/beta/css/yui-extensions/layout.css
index 0c0feee..4f1fa03 100644
--- a/frontend/beta/css/yui-extensions/layout.css
+++ b/frontend/beta/css/yui-extensions/layout.css
@@ -96,7 +96,7 @@ refer to http://www.clipperz.com.
background-color:#c3daf9;
}
.ylayout-panel-hd{
- background-image: url(../images/default/layout/panel-title-light-bg.gif);
+ background-image: url(./images/default/layout/panel-title-light-bg.gif);
color: black;
border-bottom:1px solid #98c0f4;
position:relative;
@@ -135,40 +135,40 @@ refer to http://www.clipperz.com.
background-position:center;
}
.ylayout-close{
- background-image:url(../images/default/layout/layout-sprite.gif);
+ background-image:url(./images/default/layout/layout-sprite.gif);
background-repeat: no-repeat;
background-position: 50% -48px;
}
.ylayout-collapse-west,.ylayout-expand-east{
- background-image:url(../images/default/layout/layout-sprite.gif);
+ background-image:url(./images/default/layout/layout-sprite.gif);
background-repeat: no-repeat;
background-position: 50% 0;
}
.ylayout-expand-west,.ylayout-collapse-east{
- background-image:url(../images/default/layout/layout-sprite.gif);
+ background-image:url(./images/default/layout/layout-sprite.gif);
background-repeat: no-repeat;
background-position: 50% -12px;
}
.ylayout-collapse-north,.ylayout-expand-south{
- background-image:url(../images/default/layout/layout-sprite.gif);
+ background-image:url(./images/default/layout/layout-sprite.gif);
background-repeat: no-repeat;
background-position: 50% -24px;
}
.ylayout-expand-north,.ylayout-collapse-south{
- background-image:url(../images/default/layout/layout-sprite.gif);
+ background-image:url(./images/default/layout/layout-sprite.gif);
background-repeat: no-repeat;
background-position: 50% -36px;
}
.ylayout-split-h{
- background-image:url(../images/default/sizer/e-handle.gif);
+ background-image:url(./images/default/sizer/e-handle.gif);
background-position: left;
}
.ylayout-split-v{
- background-image:url(../images/default/sizer/s-handle.gif);
+ background-image:url(./images/default/sizer/s-handle.gif);
background-position: top;
}
.ylayout-panel .ytab-wrap{
- background:url(../images/default/layout/gradient-bg.gif);
+ background:url(./images/default/layout/gradient-bg.gif);
}
.ylayout-panel .yui-ext-tabbody {
background-color:white;
@@ -204,7 +204,7 @@ refer to http://www.clipperz.com.
border: 2px solid #6593cf;
}
.ylayout-panel-proxy {
- background-image: url(../images/default/layout/gradient-bg.gif);
+ background-image: url(./images/default/layout/gradient-bg.gif);
background-color:#c3daf9;
border:1px dashed #6593cf;
z-index:10001;
@@ -222,4 +222,4 @@ refer to http://www.clipperz.com.
-moz-user-select: none;
-khtml-user-select: none;
cursor:default;
-}
+}
diff --git a/frontend/beta/css/yui-extensions/qtips.css b/frontend/beta/css/yui-extensions/qtips.css
index 34d3323..d4af0a2 100644
--- a/frontend/beta/css/yui-extensions/qtips.css
+++ b/frontend/beta/css/yui-extensions/qtips.css
@@ -30,13 +30,13 @@ refer to http://www.clipperz.com.
z-index: 11000;
}
.ytip .ytip-bd{
- background: #e0e8f3 url(../images/default/qtip/bg.gif) repeat-x;
+ background: #e0e8f3 url(./images/default/qtip/bg.gif) repeat-x;
border: 1px solid #a3bad9;
font: normal 11px arial,helvetica,sans-serif;
padding: 5px;
}
.ytip .ytip-close{
- background-image: url(../images/default/basic-dialog/close.gif);
+ background-image: url(./images/default/basic-dialog/close.gif);
height: 15px;
position: absolute;
right: 3px;
@@ -44,7 +44,7 @@ refer to http://www.clipperz.com.
width: 15px;
}
.ytip .ytip-hd {
- background: url(../images/default/basic-dialog/hd-sprite.gif) repeat-x 0px -82px;
+ background: url(./images/default/basic-dialog/hd-sprite.gif) repeat-x 0px -82px;
background-color: navy;
color: #FFF;
display: block;
@@ -52,16 +52,16 @@ refer to http://www.clipperz.com.
padding: 4px;
}
.ytip .ytip-hd-left {
- background: url(../images/default/basic-dialog/hd-sprite.gif) no-repeat 0px -41px;
+ background: url(./images/default/basic-dialog/hd-sprite.gif) no-repeat 0px -41px;
display: block;
margin: 0px;
padding-left: 3px;
}
.ytip .ytip-hd-right {
- background: url(../images/default/basic-dialog/hd-sprite.gif) no-repeat right 0px;
+ background: url(./images/default/basic-dialog/hd-sprite.gif) no-repeat right 0px;
display: block;
padding-right: 3px;
}
y\:qtip, qtip{
display: none;
-}
+}
diff --git a/frontend/beta/css/yui-extensions/resizable.css b/frontend/beta/css/yui-extensions/resizable.css
index 51d91ac..61b826b 100644
--- a/frontend/beta/css/yui-extensions/resizable.css
+++ b/frontend/beta/css/yui-extensions/resizable.css
@@ -102,35 +102,35 @@ refer to http://www.clipperz.com.
opacity:1;
}
.yresizable-over .yresizable-handle-east, .yresizable-pinned .yresizable-handle-east{
- background:url(../images/default/sizer/e-handle.gif);
+ background:url(./images/default/sizer/e-handle.gif);
background-position: left;
}
.yresizable-over .yresizable-handle-west, .yresizable-pinned .yresizable-handle-west{
- background:url(../images/default/sizer/e-handle.gif);
+ background:url(./images/default/sizer/e-handle.gif);
background-position: left;
}
.yresizable-over .yresizable-handle-south, .yresizable-pinned .yresizable-handle-south{
- background:url(../images/default/sizer/s-handle.gif);
+ background:url(./images/default/sizer/s-handle.gif);
background-position: top;
}
.yresizable-over .yresizable-handle-north, .yresizable-pinned .yresizable-handle-north{
- background:url(../images/default/sizer/s-handle.gif);
+ background:url(./images/default/sizer/s-handle.gif);
background-position: top;
}
.yresizable-over .yresizable-handle-southeast, .yresizable-pinned .yresizable-handle-southeast{
- background:url(../images/default/sizer/corners-sprite.gif);
+ background:url(./images/default/sizer/corners-sprite.gif);
background-position: top left;
}
.yresizable-over .yresizable-handle-northwest, .yresizable-pinned .yresizable-handle-northwest{
- background:url(../images/default/sizer/corners-sprite.gif);
+ background:url(./images/default/sizer/corners-sprite.gif);
background-position:bottom right;
}
.yresizable-over .yresizable-handle-northeast, .yresizable-pinned .yresizable-handle-northeast{
- background:url(../images/default/sizer/corners-sprite.gif);
+ background:url(./images/default/sizer/corners-sprite.gif);
background-position: bottom left;
}
.yresizable-over .yresizable-handle-southwest, .yresizable-pinned .yresizable-handle-southwest{
- background:url(../images/default/sizer/corners-sprite.gif);
+ background:url(./images/default/sizer/corners-sprite.gif);
background-position: top right;
}
.yresizable-proxy{
diff --git a/frontend/beta/css/yui-extensions/tabs.css b/frontend/beta/css/yui-extensions/tabs.css
index 6fd0f89..025214a 100644
--- a/frontend/beta/css/yui-extensions/tabs.css
+++ b/frontend/beta/css/yui-extensions/tabs.css
@@ -68,16 +68,16 @@ refer to http://www.clipperz.com.
}
.ytab-strip .on .ytab-right {
- background: url(../images/default/tabs/tab-sprite.gif) no-repeat right 0;
+ background: url(./images/default/tabs/tab-sprite.gif) no-repeat right 0;
}
.ytab-strip .on .ytab-left {
- background: url(../images/default/tabs/tab-sprite.gif) no-repeat 0 -100px;
+ background: url(./images/default/tabs/tab-sprite.gif) no-repeat 0 -100px;
}
.ytab-strip .ytab-right {
- background: url(../images/default/tabs/tab-sprite.gif) no-repeat right -50px;
+ background: url(./images/default/tabs/tab-sprite.gif) no-repeat right -50px;
}
.ytab-strip .ytab-left {
- background: url(../images/default/tabs/tab-sprite.gif) no-repeat 0 -150px;
+ background: url(./images/default/tabs/tab-sprite.gif) no-repeat 0 -150px;
}
.ytab-strip a {
@@ -98,7 +98,7 @@ refer to http://www.clipperz.com.
.ytab-strip .ytab-closable .close-icon{
line-height: 1px;
font-size:1px;
- background-image:url(../images/default/layout/layout-sprite.gif);
+ background-image:url(./images/default/layout/layout-sprite.gif);
background-repeat: no-repeat;
background-position: 50% -60px;
display:block;
@@ -108,12 +108,12 @@ refer to http://www.clipperz.com.
cursor:pointer;
}
.ytab-strip .on .close-icon{
- background-image:url(../images/default/layout/layout-sprite.gif);
+ background-image:url(./images/default/layout/layout-sprite.gif);
background-repeat: no-repeat;
background-position: 50% -60px;
}
.ytab-strip .ytab-closable .close-over{
- background-image:url(../images/default/layout/layout-sprite.gif);
+ background-image:url(./images/default/layout/layout-sprite.gif);
background-repeat: no-repeat;
background-position: 50% -72px;
}
@@ -125,16 +125,16 @@ refer to http://www.clipperz.com.
padding-bottom:2px;
}
.ytabs-bottom .ytab-strip .ytab-right {
- background: url(../images/default/tabs/tab-btm-inactive-right-bg.gif) no-repeat bottom left;
+ background: url(./images/default/tabs/tab-btm-inactive-right-bg.gif) no-repeat bottom left;
}
.ytabs-bottom .ytab-strip .ytab-left {
- background: url(../images/default/tabs/tab-btm-inactive-left-bg.gif) no-repeat bottom right;
+ background: url(./images/default/tabs/tab-btm-inactive-left-bg.gif) no-repeat bottom right;
}
.ytabs-bottom .ytab-strip .on .ytab-right {
- background: url(../images/default/tabs/tab-btm-right-bg.gif) no-repeat bottom left;
+ background: url(./images/default/tabs/tab-btm-right-bg.gif) no-repeat bottom left;
}
.ytabs-bottom .ytab-strip .on .ytab-left {
- background: url(../images/default/tabs/tab-btm-left-bg.gif) no-repeat bottom right;
+ background: url(./images/default/tabs/tab-btm-left-bg.gif) no-repeat bottom right;
}
.ytabs-bottom .ytab-strip a {
position:relative;
diff --git a/frontend/beta/css/yui-extensions/toolbar.css b/frontend/beta/css/yui-extensions/toolbar.css
index dea6754..198b47c 100644
--- a/frontend/beta/css/yui-extensions/toolbar.css
+++ b/frontend/beta/css/yui-extensions/toolbar.css
@@ -32,7 +32,7 @@ refer to http://www.clipperz.com.
.mso .ytoolbar, .ygrid-mso .ytoolbar{
border: 0px none;
- background: url(../images/default/grid/mso-hd.gif);
+ background: url(./images/default/grid/mso-hd.gif);
}
.ytoolbar td,.ytoolbar span,.ytoolbar input,.ytoolbar div{
white-space: nowrap;
@@ -89,12 +89,12 @@ refer to http://www.clipperz.com.
display:block;
}
.ytoolbar .ytb-button-over{
- background:#c3d3ed url(../images/default/toolbar/btn-over-bg.gif) repeat-x;
+ background:#c3d3ed url(./images/default/toolbar/btn-over-bg.gif) repeat-x;
border:1px solid #6593cf;
padding:1px 2px;
}
.ytoolbar .ytb-sep {
- background-image: url(../images/default/grid/grid-split.gif);
+ background-image: url(./images/default/grid/grid-split.gif);
background-position: center;
background-repeat: no-repeat;
display: block;
@@ -107,6 +107,6 @@ refer to http://www.clipperz.com.
border:0px;
}
.mso .ytoolbar .ytb-sep, .ygrid-mso .ytoolbar .ytb-sep{
- background-image: url(../images/default/grid/grid-blue-split.gif);
+ background-image: url(./images/default/grid/grid-blue-split.gif);
}
diff --git a/frontend/beta/css/yui-extensions/tree.css b/frontend/beta/css/yui-extensions/tree.css
index 992909d..4b448e8 100644
--- a/frontend/beta/css/yui-extensions/tree.css
+++ b/frontend/beta/css/yui-extensions/tree.css
@@ -43,18 +43,18 @@ refer to http://www.clipperz.com.
/* some default icons for leaf/folder */
.ytree-node-collapsed .ytree-node-icon{
- background:transparent url(../images/default/tree/folder.gif);
+ background:transparent url(./images/default/tree/folder.gif);
}
.ytree-node-expanded .ytree-node-icon{
- background:transparent url(../images/default/tree/folder-open.gif);
+ background:transparent url(./images/default/tree/folder-open.gif);
}
.ytree-node-leaf .ytree-node-icon{
- background:transparent url(../images/default/tree/leaf.gif);
+ background:transparent url(./images/default/tree/leaf.gif);
}
/* loading icon */
.ytree-node-loading .ytree-node-icon{
- background:transparent url(../images/default/tree/loading.gif) !important;
+ background:transparent url(./images/default/tree/loading.gif) !important;
}
.ytree-node-loading a span{
font-style: italic;
@@ -63,25 +63,25 @@ refer to http://www.clipperz.com.
/* Line styles */
.ytree-lines .ytree-elbow{
- background:transparent url(../images/default/tree/elbow.gif);
+ background:transparent url(./images/default/tree/elbow.gif);
}
.ytree-lines .ytree-elbow-plus{
- background:transparent url(../images/default/tree/elbow-plus.gif);
+ background:transparent url(./images/default/tree/elbow-plus.gif);
}
.ytree-lines .ytree-elbow-minus{
- background:transparent url(../images/default/tree/elbow-minus.gif);
+ background:transparent url(./images/default/tree/elbow-minus.gif);
}
.ytree-lines .ytree-elbow-end{
- background:transparent url(../images/default/tree/elbow-end.gif);
+ background:transparent url(./images/default/tree/elbow-end.gif);
}
.ytree-lines .ytree-elbow-end-plus{
- background:transparent url(../images/default/tree/elbow-end-plus.gif);
+ background:transparent url(./images/default/tree/elbow-end-plus.gif);
}
.ytree-lines .ytree-elbow-end-minus{
- background:transparent url(../images/default/tree/elbow-end-minus.gif);
+ background:transparent url(./images/default/tree/elbow-end-minus.gif);
}
.ytree-lines .ytree-elbow-line{
- background:transparent url(../images/default/tree/elbow-line.gif);
+ background:transparent url(./images/default/tree/elbow-line.gif);
}
/* No line styles */
@@ -89,19 +89,19 @@ refer to http://www.clipperz.com.
background:transparent;
}
.ytree-no-lines .ytree-elbow-plus{
- background:transparent url(../images/default/tree/elbow-plus-nl.gif);
+ background:transparent url(./images/default/tree/elbow-plus-nl.gif);
}
.ytree-no-lines .ytree-elbow-minus{
- background:transparent url(../images/default/tree/elbow-minus-nl.gif);
+ background:transparent url(./images/default/tree/elbow-minus-nl.gif);
}
.ytree-no-lines .ytree-elbow-end{
background:transparent;
}
.ytree-no-lines .ytree-elbow-end-plus{
- background:transparent url(../images/default/tree/elbow-end-plus-nl.gif);
+ background:transparent url(./images/default/tree/elbow-end-plus-nl.gif);
}
.ytree-no-lines .ytree-elbow-end-minus{
- background:transparent url(../images/default/tree/elbow-end-minus-nl.gif);
+ background:transparent url(./images/default/tree/elbow-end-minus-nl.gif);
}
.ytree-no-lines .ytree-elbow-line{
background:transparent;
@@ -171,20 +171,20 @@ refer to http://www.clipperz.com.
display:none !important;
}
.ytree-drop-ok-append .ydd-drop-icon{
- background-image: url(../images/default/tree/drop-add.gif);
+ background-image: url(./images/default/tree/drop-add.gif);
}
.ytree-drop-ok-above .ydd-drop-icon{
- background-image: url(../images/default/tree/drop-over.gif);
+ background-image: url(./images/default/tree/drop-over.gif);
}
.ytree-drop-ok-below .ydd-drop-icon{
- background-image: url(../images/default/tree/drop-under.gif);
+ background-image: url(./images/default/tree/drop-under.gif);
}
.ytree-drop-ok-between .ydd-drop-icon{
- background-image: url(../images/default/tree/drop-between.gif);
+ background-image: url(./images/default/tree/drop-between.gif);
}
.ylayer-shadow{
background:#cccccc;
opacity:.3;
-moz-opacity:.3;
filter: alpha(opacity=30);
-}
+}
diff --git a/frontend/beta/css/yui-extensions/ytheme-aero.css b/frontend/beta/css/yui-extensions/ytheme-aero.css
index b599de0..a3087b0 100644
--- a/frontend/beta/css/yui-extensions/ytheme-aero.css
+++ b/frontend/beta/css/yui-extensions/ytheme-aero.css
@@ -34,7 +34,7 @@ refer to http://www.clipperz.com.
}
.ytab-strip-wrap{
padding-top:1px;
- background:#cedff5 url(../images/aero/tabs/tab-strip-bg.gif) repeat-x bottom;
+ background:#cedff5 url(./images/aero/tabs/tab-strip-bg.gif) repeat-x bottom;
border-bottom:1px solid #8db2e3;
}
.ytab-strip .ytab-text {
@@ -46,16 +46,16 @@ refer to http://www.clipperz.com.
color:#15428b;
}
.ytabs-top .ytab-strip .on .ytab-right {
- background: url(../images/aero/tabs/tab-sprite.gif) no-repeat right 0px;
+ background: url(./images/aero/tabs/tab-sprite.gif) no-repeat right 0px;
}
.ytabs-top .ytab-strip .on .ytab-left,.ytabs-top .ytab-strip .on a:hover .ytab-left{
- background: url(../images/aero/tabs/tab-sprite.gif) no-repeat 0px -100px;
+ background: url(./images/aero/tabs/tab-sprite.gif) no-repeat 0px -100px;
}
.ytabs-top .ytab-strip .ytab-right {
- background:transparent url(../images/aero/tabs/tab-sprite.gif) no-repeat right -50px;
+ background:transparent url(./images/aero/tabs/tab-sprite.gif) no-repeat right -50px;
}
.ytabs-top .ytab-strip .ytab-left {
- background:transparent url(../images/aero/tabs/tab-sprite.gif) no-repeat 0px -150px;
+ background:transparent url(./images/aero/tabs/tab-sprite.gif) no-repeat 0px -150px;
}
.ytabs-top .yui-ext-tabbody {
border:1px solid #8db2e3;
@@ -70,21 +70,21 @@ refer to http://www.clipperz.com.
.ytabs-bottom .ytab-strip-wrap{
padding-top:0px;
padding-bottom:1px;
- background:#cedff5 url(../images/aero/tabs/tab-strip-btm-bg.gif) repeat-x top;
+ background:#cedff5 url(./images/aero/tabs/tab-strip-btm-bg.gif) repeat-x top;
border-top:1px solid #8db2e3;
border-bottom:0px none;
}
.ytabs-bottom .ytab-strip .ytab-right {
- background:transparent url(../images/aero/tabs/tab-btm-inactive-right-bg.gif) no-repeat bottom right;
+ background:transparent url(./images/aero/tabs/tab-btm-inactive-right-bg.gif) no-repeat bottom right;
}
.ytabs-bottom .ytab-strip .ytab-left {
- background:transparent url(../images/aero/tabs/tab-btm-inactive-left-bg.gif) no-repeat bottom left;
+ background:transparent url(./images/aero/tabs/tab-btm-inactive-left-bg.gif) no-repeat bottom left;
}
.ytabs-bottom .ytab-strip .on .ytab-right,.ytabs-bottom .ytab-strip .on a:hover {
- background: url(../images/aero/tabs/tab-btm-right-bg.gif) no-repeat bottom left;
+ background: url(./images/aero/tabs/tab-btm-right-bg.gif) no-repeat bottom left;
}
.ytabs-bottom .ytab-strip .on .ytab-left,.ytabs-bottom .ytab-strip .on a:hover .ytab-left {
- background: url(../images/aero/tabs/tab-btm-left-bg.gif) no-repeat bottom right;
+ background: url(./images/aero/tabs/tab-btm-left-bg.gif) no-repeat bottom right;
}
.ytabs-bottom .yui-ext-tabbody {
border:1px solid #8db2e3;
@@ -107,7 +107,7 @@ refer to http://www.clipperz.com.
background:transparent;
}
.ydlg .ydlg-hd {
- background: url(../images/aero/basic-dialog/hd-sprite.gif) repeat-x 0px -82px;
+ background: url(./images/aero/basic-dialog/hd-sprite.gif) repeat-x 0px -82px;
background-color:#aabaca;
color:#15428b;
zoom:1;
@@ -115,7 +115,7 @@ refer to http://www.clipperz.com.
}
.ydlg .ydlg-hd-left {
opacity:.85;-moz-opacity:.85;filter:alpha(opacity=80);
- background: url(../images/aero/basic-dialog/hd-sprite.gif) no-repeat 0px -41px;
+ background: url(./images/aero/basic-dialog/hd-sprite.gif) no-repeat 0px -41px;
zoom:1;
}
.ydlg-modal .ydlg-hd-left {
@@ -123,7 +123,7 @@ refer to http://www.clipperz.com.
}
.ydlg .ydlg-hd-right {
- background: url(../images/aero/basic-dialog/hd-sprite.gif) no-repeat right 0px;
+ background: url(./images/aero/basic-dialog/hd-sprite.gif) no-repeat right 0px;
zoom:1;
}
.ydlg .ydlg-dlg-body{
@@ -154,17 +154,17 @@ refer to http://www.clipperz.com.
}
.ydlg .ydlg-bg-center {
padding: 2px 7px 7px 7px;
- background:transparent url(../images/aero/basic-dialog/bg-center.gif) repeat-x bottom;
+ background:transparent url(./images/aero/basic-dialog/bg-center.gif) repeat-x bottom;
zoom:1;
}
.ydlg .ydlg-bg-left{
padding-left:7px;
- background:transparent url(../images/aero/basic-dialog/bg-left.gif) no-repeat bottom left;
+ background:transparent url(./images/aero/basic-dialog/bg-left.gif) no-repeat bottom left;
zoom:1;
}
.ydlg .ydlg-bg-right{
padding-right:7px;
- background:transparent url(../images/aero/basic-dialog/bg-right.gif) no-repeat bottom right;
+ background:transparent url(./images/aero/basic-dialog/bg-right.gif) no-repeat bottom right;
zoom:1;
}
.ydlg-auto-tabs .ydlg-dlg-body, .ydlg-auto-layout .ydlg-dlg-body{
@@ -187,26 +187,26 @@ refer to http://www.clipperz.com.
top:5px;
right:5px;
opacity:.85;-moz-opacity:.85;filter:alpha(opacity=80);
- background-image:url(../images/aero/basic-dialog/aero-close.gif);
+ background-image:url(./images/aero/basic-dialog/aero-close.gif);
zoom:1;
}
.ydlg .ydlg-close-over {
- background-image:url(../images/aero/basic-dialog/aero-close-over.gif);
+ background-image:url(./images/aero/basic-dialog/aero-close-over.gif);
}
.ydlg div.yresizable-handle-east{
- background-image:url(../images/aero/s.gif);
+ background-image:url(./images/aero/s.gif);
border:0px none;
}
.ydlg div.yresizable-handle-south{
- background-image:url(../images/aero/s.gif);
+ background-image:url(./images/aero/s.gif);
border:0px none;
}
.ydlg div.yresizable-handle-west{
- background-image:url(../images/aero/s.gif);
+ background-image:url(./images/aero/s.gif);
border:0px none;
}
.ydlg div.yresizable-handle-southeast{
- background-image:url(../images/aero/basic-dialog/se-handle.gif);
+ background-image:url(./images/aero/basic-dialog/se-handle.gif);
background-position: bottom right;
width:9px;
height:9px;
@@ -215,14 +215,14 @@ refer to http://www.clipperz.com.
bottom:2px;
}
.ydlg div.yresizable-handle-southwest{
- background-image:url(../images/aero/s.gif);
+ background-image:url(./images/aero/s.gif);
background-position: top right;
margin-left:1px;
margin-bottom:1px;
border:0px;
}
.ydlg div.yresizable-handle-north{
- background-image:url(../images/aero/s.gif);
+ background-image:url(./images/aero/s.gif);
border:0px none;
}
@@ -252,7 +252,7 @@ refer to http://www.clipperz.com.
background-color:#deecfd;
}
.ylayout-panel-hd{
- background-image: url(../images/aero/layout/panel-title-light-bg.gif);
+ background-image: url(./images/aero/layout/panel-title-light-bg.gif);
border-bottom:1px solid #c0d7f4;
}
.ylayout-panel-hd-text {
@@ -293,7 +293,7 @@ refer to http://www.clipperz.com.
border: 2px solid #99bbe8;
}
.ylayout-panel-proxy {
- background-image: url(../images/aero/layout/gradient-bg.gif);
+ background-image: url(./images/aero/layout/gradient-bg.gif);
background-color:#f3f2e7;
border:1px dashed #99bbe8;
}
@@ -323,10 +323,10 @@ refer to http://www.clipperz.com.
border-bottom:0px;
}
.ygrid-hd-split {
- background-image: url(../images/aero/grid/grid-split.gif);
+ background-image: url(./images/aero/grid/grid-split.gif);
}
.ygrid-hrow{
- background: url(../images/aero/grid/grid-hrow.gif);
+ background: url(./images/aero/grid/grid-hrow.gif);
height: 22px;
border:0px none;
}
@@ -354,5 +354,5 @@ refer to http://www.clipperz.com.
border:1px solid #8db2e3;
}
.ytoolbar .ytb-sep{
- background-image: url(../images/aero/grid/grid-blue-split.gif);
-}
+ background-image: url(./images/aero/grid/grid-blue-split.gif);
+}
diff --git a/frontend/beta/css/yui-extensions/ytheme-gray.css b/frontend/beta/css/yui-extensions/ytheme-gray.css
index d1a1a4a..22538e3 100644
--- a/frontend/beta/css/yui-extensions/ytheme-gray.css
+++ b/frontend/beta/css/yui-extensions/ytheme-gray.css
@@ -27,7 +27,7 @@ refer to http://www.clipperz.com.
* Basic-Dialog
*/
.ydlg-proxy {
- background-image: url(../images/gray/layout/gradient-bg.gif);
+ background-image: url(./images/gray/layout/gradient-bg.gif);
background-color:#EAE8D5;
border:1px solid #b3b6b0;
}
@@ -35,17 +35,17 @@ refer to http://www.clipperz.com.
background:#aaaaaa;
}
.ydlg-proxy .tabset{
- background:url(../images/gray/layout/gradient-bg.gif);
+ background:url(./images/gray/layout/gradient-bg.gif);
}
.ydlg .ydlg-hd {
- background: url(../images/gray/basic-dialog/hd-sprite.gif) repeat-x 0px -82px;
+ background: url(./images/gray/basic-dialog/hd-sprite.gif) repeat-x 0px -82px;
background-color:#333333;
}
.ydlg .ydlg-hd-left {
- background: url(../images/gray/basic-dialog/hd-sprite.gif) no-repeat 0px -41px;
+ background: url(./images/gray/basic-dialog/hd-sprite.gif) no-repeat 0px -41px;
}
.ydlg .ydlg-hd-right {
- background: url(../images/gray/basic-dialog/hd-sprite.gif) no-repeat right 0px;
+ background: url(./images/gray/basic-dialog/hd-sprite.gif) no-repeat right 0px;
}
.ydlg .ydlg-dlg-body{
background:#efefec;
@@ -64,36 +64,36 @@ refer to http://www.clipperz.com.
border:0px none;
}
.ydlg .ydlg-close {
- background-image:url(../images/gray/basic-dialog/close.gif);
+ background-image:url(./images/gray/basic-dialog/close.gif);
}
.ydlg div.yresizable-handle-east{
- background-image:url(../images/gray/basic-dialog/e-handle.gif);
+ background-image:url(./images/gray/basic-dialog/e-handle.gif);
border:0px none;
}
.ydlg div.yresizable-handle-south{
- background-image:url(../images/gray/basic-dialog/s-handle.gif);
+ background-image:url(./images/gray/basic-dialog/s-handle.gif);
border:0px none;
}
.ydlg div.yresizable-handle-west{
- background-image:url(../images/gray/basic-dialog/e-handle.gif);
+ background-image:url(./images/gray/basic-dialog/e-handle.gif);
border:0px none;
}
.ydlg div.yresizable-handle-southeast{
- background-image:url(../images/gray/basic-dialog/se-handle.gif);
+ background-image:url(./images/gray/basic-dialog/se-handle.gif);
background-position: bottom right;
width:8px;
height:8px;
border:0px;
}
.ydlg div.yresizable-handle-southwest{
- background-image:url(../images/gray/sizer/sw-handle-dark.gif);
+ background-image:url(./images/gray/sizer/sw-handle-dark.gif);
background-position: top right;
margin-left:1px;
margin-bottom:1px;
border:0px;
}
.ydlg div.yresizable-handle-north{
- background-image:url(../images/gray/s.gif);
+ background-image:url(./images/gray/s.gif);
border:0px none;
}
@@ -108,27 +108,27 @@ refer to http://www.clipperz.com.
color:#333333;
}
.ytabs-top .ytab-strip .on .ytab-right {
- background: url(../images/gray/tabs/tab-sprite.gif) no-repeat right 0px;
+ background: url(./images/gray/tabs/tab-sprite.gif) no-repeat right 0px;
}
.ytabs-top .ytab-strip .on .ytab-left {
- background: url(../images/gray/tabs/tab-sprite.gif) no-repeat 0px -100px;
+ background: url(./images/gray/tabs/tab-sprite.gif) no-repeat 0px -100px;
}
.ytabs-top .ytab-strip .ytab-right {
- background: url(../images/gray/tabs/tab-sprite.gif) no-repeat right -50px;
+ background: url(./images/gray/tabs/tab-sprite.gif) no-repeat right -50px;
}
.ytabs-top .ytab-strip .ytab-left {
- background: url(../images/gray/tabs/tab-sprite.gif) no-repeat 0px -150px;
+ background: url(./images/gray/tabs/tab-sprite.gif) no-repeat 0px -150px;
}
.ytab-strip .ytab-closable .close-icon{
- background-image:url(../images/gray/layout/layout-sprite.gif);
+ background-image:url(./images/gray/layout/layout-sprite.gif);
background-position: 50% -60px;
}
.ytab-strip .on .close-icon{
- background-image:url(../images/gray/layout/layout-sprite.gif);
+ background-image:url(./images/gray/layout/layout-sprite.gif);
background-position: 50% -60px;
}
.ytab-strip .ytab-closable .close-over{
- background-image:url(../images/gray/layout/layout-sprite.gif);
+ background-image:url(./images/gray/layout/layout-sprite.gif);
background-position: 50% -72px;
}
@@ -138,34 +138,34 @@ refer to http://www.clipperz.com.
border-top:1px solid #aca899;
}
.ytabs-bottom .ytab-strip .ytab-right {
- background: url(../images/gray/tabs/tab-btm-inactive-right-bg.gif) no-repeat bottom left;
+ background: url(./images/gray/tabs/tab-btm-inactive-right-bg.gif) no-repeat bottom left;
}
.ytabs-bottom .ytab-strip .ytab-left {
- background: url(../images/gray/tabs/tab-btm-inactive-left-bg.gif) no-repeat bottom right;
+ background: url(./images/gray/tabs/tab-btm-inactive-left-bg.gif) no-repeat bottom right;
}
.ytabs-bottom .ytab-strip .on .ytab-right {
- background: url(../images/gray/tabs/tab-btm-right-bg.gif) no-repeat bottom left;
+ background: url(./images/gray/tabs/tab-btm-right-bg.gif) no-repeat bottom left;
}
.ytabs-bottom .ytab-strip .on .ytab-left {
- background: url(../images/gray/tabs/tab-btm-left-bg.gif) no-repeat bottom right;
+ background: url(./images/gray/tabs/tab-btm-left-bg.gif) no-repeat bottom right;
}
/* QuickTips */
.ytip .ytip-hd-right{
- background: url(../images/gray/basic-dialog/hd-sprite.gif) no-repeat right 0px;
+ background: url(./images/gray/basic-dialog/hd-sprite.gif) no-repeat right 0px;
}
.ytip .ytip-hd-left{
- background: url(../images/gray/basic-dialog/hd-sprite.gif) no-repeat 0px -41px;
+ background: url(./images/gray/basic-dialog/hd-sprite.gif) no-repeat 0px -41px;
}
.ytip .ytip-hd{
- background: url(../images/gray/basic-dialog/hd-sprite.gif) repeat-x 0px -82px;
+ background: url(./images/gray/basic-dialog/hd-sprite.gif) repeat-x 0px -82px;
}
.ytip .ytip-close{
- background-image: url(../images/gray/basic-dialog/close.gif);
+ background-image: url(./images/gray/basic-dialog/close.gif);
}
.ytip .ytip-bd{
- background: #e7e7e7 url(../images/gray/qtip/bg.gif);
+ background: #e7e7e7 url(./images/gray/qtip/bg.gif);
border: 1px solid #ababab;
}
@@ -191,45 +191,45 @@ refer to http://www.clipperz.com.
background-color:#f3f2e7;
}
.ylayout-panel-hd{
- background-image: url(../images/gray/layout/panel-title-light-bg.gif);
+ background-image: url(./images/gray/layout/panel-title-light-bg.gif);
border-bottom:1px solid #aca899;
}
.ylayout-tools-button-over{
border:1px solid #aca899;
}
.ylayout-close{
- background-image:url(../images/gray/layout/layout-sprite.gif);
+ background-image:url(./images/gray/layout/layout-sprite.gif);
background-repeat: no-repeat;
background-position: 50% -48px;
}
.ylayout-collapse-west,.ylayout-expand-east{
- background-image:url(../images/gray/layout/layout-sprite.gif);
+ background-image:url(./images/gray/layout/layout-sprite.gif);
background-repeat: no-repeat;
background-position: 50% 0;
}
.ylayout-expand-west,.ylayout-collapse-east{
- background-image:url(../images/gray/layout/layout-sprite.gif);
+ background-image:url(./images/gray/layout/layout-sprite.gif);
background-repeat: no-repeat;
background-position: 50% -12px;
}
.ylayout-collapse-north,.ylayout-expand-south{
- background-image:url(../images/gray/layout/layout-sprite.gif);
+ background-image:url(./images/gray/layout/layout-sprite.gif);
background-repeat: no-repeat;
background-position: 50% -24px;
}
.ylayout-expand-north,.ylayout-collapse-south{
- background-image:url(../images/gray/layout/layout-sprite.gif);
+ background-image:url(./images/gray/layout/layout-sprite.gif);
background-repeat: no-repeat;
background-position: 50% -36px;
}
.ylayout-split-h{
- background-image:url(../images/gray/sizer/e-handle-dark.gif);
+ background-image:url(./images/gray/sizer/e-handle-dark.gif);
}
.ylayout-split-v{
- background-image:url(../images/gray/sizer/s-handle-dark.gif);
+ background-image:url(./images/gray/sizer/s-handle-dark.gif);
}
.ylayout-panel .ytab-wrap{
- background:url(../images/gray/layout/gradient-bg.gif);
+ background:url(./images/gray/layout/gradient-bg.gif);
}
.ylayout-nested-layout .ylayout-panel-north {
border-bottom:1px solid #aca899;
@@ -247,42 +247,42 @@ refer to http://www.clipperz.com.
border: 2px solid #aca899;
}
.ylayout-panel-proxy {
- background-image: url(../images/gray/layout/gradient-bg.gif);
+ background-image: url(./images/gray/layout/gradient-bg.gif);
background-color:#f3f2e7;
border:1px dashed #aca899;
}
/** Resizable */
.yresizable-over .yresizable-handle-east, .yresizable-pinned .yresizable-handle-east{
- background:url(../images/gray/sizer/e-handle.gif);
+ background:url(./images/gray/sizer/e-handle.gif);
background-position: left;
}
.yresizable-over .yresizable-handle-east, .yresizable-pinned .yresizable-handle-west{
- background:url(../images/gray/sizer/e-handle.gif);
+ background:url(./images/gray/sizer/e-handle.gif);
background-position: left;
}
.yresizable-over .yresizable-handle-south, .yresizable-pinned .yresizable-handle-south{
- background:url(../images/gray/sizer/s-handle.gif);
+ background:url(./images/gray/sizer/s-handle.gif);
background-position: top;
}
.yresizable-over .yresizable-handle-south, .yresizable-pinned .yresizable-handle-north{
- background:url(../images/gray/sizer/s-handle.gif);
+ background:url(./images/gray/sizer/s-handle.gif);
background-position: top;
}
.yresizable-over .yresizable-handle-southeast, .yresizable-pinned .yresizable-handle-southeast{
- background:url(../images/gray/sizer/se-handle.gif);
+ background:url(./images/gray/sizer/se-handle.gif);
background-position: top left;
}
.yresizable-over .yresizable-handle-northwest,.yresizable-pinned .yresizable-handle-northwest{
- background:url(../images/gray/sizer/nw-handle.gif);
+ background:url(./images/gray/sizer/nw-handle.gif);
background-position:bottom right;
}
.yresizable-over .yresizable-handle-northeast,.yresizable-pinned .yresizable-handle-northeast{
- background:url(../images/gray/sizer/ne-handle.gif);
+ background:url(./images/gray/sizer/ne-handle.gif);
background-position: bottom left;
}
.yresizable-over .yresizable-handle-southwest,.yresizable-pinned .yresizable-handle-southwest{
- background:url(../images/gray/sizer/sw-handle.gif);
+ background:url(./images/gray/sizer/sw-handle.gif);
background-position: top right;
}
.yresizable-proxy{
@@ -292,6 +292,6 @@ refer to http://www.clipperz.com.
/** Toolbar */
.ytoolbar{
border:0px none;
- background: #efefe3 url(../images/gray/toolbar/gray-bg.gif) repeat-x;
+ background: #efefe3 url(./images/gray/toolbar/gray-bg.gif) repeat-x;
padding:3px;
-}
+}
diff --git a/frontend/beta/css/yui-extensions/ytheme-vista.css b/frontend/beta/css/yui-extensions/ytheme-vista.css
index 85bf82b..e0e520f 100644
--- a/frontend/beta/css/yui-extensions/ytheme-vista.css
+++ b/frontend/beta/css/yui-extensions/ytheme-vista.css
@@ -39,16 +39,16 @@ refer to http://www.clipperz.com.
color:#333333;
}
.ytabs-top .ytab-strip a:hover {
- background:transparent url(../images/vista/tabs/tab-sprite.gif) no-repeat right -50px;
+ background:transparent url(./images/vista/tabs/tab-sprite.gif) no-repeat right -50px;
}
.ytabs-top .ytab-strip a:hover .ytab-left {
- background:transparent url(../images/vista/tabs/tab-sprite.gif) no-repeat 0 -150px;
+ background:transparent url(./images/vista/tabs/tab-sprite.gif) no-repeat 0 -150px;
}
.ytabs-top .ytab-strip .on .ytab-right, .ytabs-top .ytab-strip .on a:hover {
- background: url(../images/vista/tabs/tab-sprite.gif) no-repeat right 0;
+ background: url(./images/vista/tabs/tab-sprite.gif) no-repeat right 0;
}
.ytabs-top .ytab-strip .on .ytab-left, .ytabs-top .ytab-strip .on a:hover .ytab-left {
- background: url(../images/vista/tabs/tab-sprite.gif) no-repeat 0 -100px;
+ background: url(./images/vista/tabs/tab-sprite.gif) no-repeat 0 -100px;
}
.ytabs-top .ytab-strip .ytab-right {
background:transparent;
@@ -57,15 +57,15 @@ refer to http://www.clipperz.com.
background:transparent;
}
.ytab-strip .ytab-closable .close-icon{
- background-image:url(../images/vista/layout/layout-sprite.gif);
+ background-image:url(./images/vista/layout/layout-sprite.gif);
background-position: 50% -60px;
}
.ytab-strip .on .close-icon{
- background-image:url(../images/vista/layout/layout-sprite.gif);
+ background-image:url(./images/vista/layout/layout-sprite.gif);
background-position: 50% -72px;
}
.ytab-strip .ytab-closable .close-over{
- background-image:url(../images/vista/layout/layout-sprite.gif);
+ background-image:url(./images/vista/layout/layout-sprite.gif);
background-position: 50% -72px;
}
@@ -73,10 +73,10 @@ refer to http://www.clipperz.com.
background:#4f4f4f;
}
.ytabs-bottom .ytab-strip a:hover {
- background:transparent url(../images/vista/tabs/tab-btm-inactive-right-bg.gif) no-repeat bottom right;
+ background:transparent url(./images/vista/tabs/tab-btm-inactive-right-bg.gif) no-repeat bottom right;
}
.ytabs-bottom .ytab-strip a:hover .ytab-left{
- background:transparent url(../images/vista/tabs/tab-btm-inactive-left-bg.gif) no-repeat bottom left;
+ background:transparent url(./images/vista/tabs/tab-btm-inactive-left-bg.gif) no-repeat bottom left;
}
.ytabs-bottom .ytab-wrap {
border-bottom:0px none;
@@ -90,10 +90,10 @@ refer to http://www.clipperz.com.
background:transparent;
}
.ytabs-bottom .ytab-strip .on .ytab-right,.ytabs-bottom .ytab-strip .on a:hover {
- background: url(../images/vista/tabs/tab-btm-right-bg.gif) no-repeat bottom left;
+ background: url(./images/vista/tabs/tab-btm-right-bg.gif) no-repeat bottom left;
}
.ytabs-bottom .ytab-strip .on .ytab-left,.ytabs-bottom .ytab-strip .on a:hover .ytab-left {
- background: url(../images/vista/tabs/tab-btm-left-bg.gif) no-repeat bottom right;
+ background: url(./images/vista/tabs/tab-btm-left-bg.gif) no-repeat bottom right;
}
/**
* Basic-Dialog
@@ -109,17 +109,17 @@ refer to http://www.clipperz.com.
filter: alpha(opacity=30);
}
.ydlg .ydlg-hd {
- background: url(../images/vista/basic-dialog/hd-sprite.gif) repeat-x 0px -82px;
+ background: url(./images/vista/basic-dialog/hd-sprite.gif) repeat-x 0px -82px;
background-color:#333333;
zoom:1;
}
.ydlg .ydlg-hd-left {
opacity:.95;-moz-opacity:.95;filter:alpha(opacity=90);
- background: url(../images/vista/basic-dialog/hd-sprite.gif) no-repeat 0px -41px;
+ background: url(./images/vista/basic-dialog/hd-sprite.gif) no-repeat 0px -41px;
zoom:1;
}
.ydlg .ydlg-hd-right {
- background: url(../images/vista/basic-dialog/hd-sprite.gif) no-repeat right 0px;
+ background: url(./images/vista/basic-dialog/hd-sprite.gif) no-repeat right 0px;
zoom:1;
}
.ydlg .ydlg-dlg-body{
@@ -150,17 +150,17 @@ refer to http://www.clipperz.com.
}
.ydlg .ydlg-bg-center {
padding: 0px 4px 4px 4px;
- background:transparent url(../images/vista/basic-dialog/bg-center.gif) repeat-x bottom;
+ background:transparent url(./images/vista/basic-dialog/bg-center.gif) repeat-x bottom;
zoom:1;
}
.ydlg .ydlg-bg-left{
padding-left:4px;
- background:transparent url(../images/vista/basic-dialog/bg-left.gif) no-repeat bottom left;
+ background:transparent url(./images/vista/basic-dialog/bg-left.gif) no-repeat bottom left;
zoom:1;
}
.ydlg .ydlg-bg-right{
padding-right:4px;
- background:transparent url(../images/vista/basic-dialog/bg-right.gif) no-repeat bottom right;
+ background:transparent url(./images/vista/basic-dialog/bg-right.gif) no-repeat bottom right;
zoom:1;
}
.ydlg .ytabs-top .yui-ext-tabbody{
@@ -174,55 +174,55 @@ refer to http://www.clipperz.com.
border:0px none;
}
.ydlg .ydlg-close {
- background-image:url(../images/vista/basic-dialog/close.gif);
+ background-image:url(./images/vista/basic-dialog/close.gif);
}
.ydlg div.yresizable-handle-east{
- background-image:url(../images/vista/s.gif);
+ background-image:url(./images/vista/s.gif);
border:0px none;
}
.ydlg div.yresizable-handle-south{
- background-image:url(../images/vista/s.gif);
+ background-image:url(./images/vista/s.gif);
border:0px none;
}
.ydlg div.yresizable-handle-west{
- background-image:url(../images/vista/s.gif);
+ background-image:url(./images/vista/s.gif);
border:0px none;
}
.ydlg div.yresizable-handle-southeast{
- background-image:url(../images/vista/s.gif);
+ background-image:url(./images/vista/s.gif);
background-position: bottom right;
width:8px;
height:8px;
border:0px;
}
.ydlg div.yresizable-handle-southwest{
- background-image:url(../images/vista/s.gif);
+ background-image:url(./images/vista/s.gif);
background-position: top right;
margin-left:1px;
margin-bottom:1px;
border:0px;
}
.ydlg div.yresizable-handle-north{
- background-image:url(../images/vista/s.gif);
+ background-image:url(./images/vista/s.gif);
border:0px none;
}
/* QuickTips */
.ytip .ytip-hd-right{
- background: url(../images/vista/basic-dialog/hd-sprite.gif) no-repeat right 0px;
+ background: url(./images/vista/basic-dialog/hd-sprite.gif) no-repeat right 0px;
}
.ytip .ytip-hd-left{
- background: url(../images/vista/basic-dialog/hd-sprite.gif) no-repeat 0px -41px;
+ background: url(./images/vista/basic-dialog/hd-sprite.gif) no-repeat 0px -41px;
}
.ytip .ytip-hd{
- background: url(../images/vista/basic-dialog/hd-sprite.gif) repeat-x 0px -82px;
+ background: url(./images/vista/basic-dialog/hd-sprite.gif) repeat-x 0px -82px;
}
.ytip .ytip-close{
- background-image: url(../images/vista/basic-dialog/close.gif);
+ background-image: url(./images/vista/basic-dialog/close.gif);
}
.ytip .ytip-bd{
- background: #e7e7e7 url(../images/vista/qtip/bg.gif);
+ background: #e7e7e7 url(./images/vista/qtip/bg.gif);
border: 1px solid #ababab;
}
@@ -247,7 +247,7 @@ refer to http://www.clipperz.com.
background-color:#f3f2e7;
}
.ylayout-panel-hd{
- background-image: url(../images/vista/layout/panel-title-bg.gif);
+ background-image: url(./images/vista/layout/panel-title-bg.gif);
border-bottom:1px solid #b5bac1;
}
.ylayout-panel-hd-text{
@@ -255,30 +255,30 @@ refer to http://www.clipperz.com.
}
.ylayout-tools-button-over{
border:1px solid #4c535c;
- background:#9f9f9f url(../images/vista/layout/panel-title-bg.gif) repeat-x;
+ background:#9f9f9f url(./images/vista/layout/panel-title-bg.gif) repeat-x;
}
.ylayout-close{
- background-image:url(../images/vista/layout/layout-sprite.gif);
+ background-image:url(./images/vista/layout/layout-sprite.gif);
background-repeat: no-repeat;
background-position: 50% -60px;
}
.ylayout-collapse-west,.ylayout-expand-east{
- background-image:url(../images/vista/layout/layout-sprite.gif);
+ background-image:url(./images/vista/layout/layout-sprite.gif);
background-repeat: no-repeat;
background-position: 50% 0;
}
.ylayout-expand-west,.ylayout-collapse-east{
- background-image:url(../images/vista/layout/layout-sprite.gif);
+ background-image:url(./images/vista/layout/layout-sprite.gif);
background-repeat: no-repeat;
background-position: 50% -12px;
}
.ylayout-collapse-north,.ylayout-expand-south{
- background-image:url(../images/vista/layout/layout-sprite.gif);
+ background-image:url(./images/vista/layout/layout-sprite.gif);
background-repeat: no-repeat;
background-position: 50% -24px;
}
.ylayout-expand-north,.ylayout-collapse-south{
- background-image:url(../images/vista/layout/layout-sprite.gif);
+ background-image:url(./images/vista/layout/layout-sprite.gif);
background-repeat: no-repeat;
background-position: 50% -36px;
}
@@ -307,42 +307,42 @@ refer to http://www.clipperz.com.
border: 2px solid #4c535c;
}
.ylayout-panel-proxy {
- background-image: url(../images/vista/layout/gradient-bg.gif);
+ background-image: url(./images/vista/layout/gradient-bg.gif);
background-color:#f3f2e7;
border:1px dashed #4c535c;
}
/** Resizable */
.yresizable-over .yresizable-handle-east, .yresizable-pinned .yresizable-handle-east{
- background:url(../images/vista/sizer/e-handle.gif);
+ background:url(./images/vista/sizer/e-handle.gif);
background-position: left;
}
.yresizable-over .yresizable-handle-east, .yresizable-pinned .yresizable-handle-west{
- background:url(../images/vista/sizer/e-handle.gif);
+ background:url(./images/vista/sizer/e-handle.gif);
background-position: left;
}
.yresizable-over .yresizable-handle-south, .yresizable-pinned .yresizable-handle-south{
- background:url(../images/vista/sizer/s-handle.gif);
+ background:url(./images/vista/sizer/s-handle.gif);
background-position: top;
}
.yresizable-over .yresizable-handle-south, .yresizable-pinned .yresizable-handle-north{
- background:url(../images/vista/sizer/s-handle.gif);
+ background:url(./images/vista/sizer/s-handle.gif);
background-position: top;
}
.yresizable-over .yresizable-handle-southeast, .yresizable-pinned .yresizable-handle-southeast{
- background:url(../images/vista/sizer/se-handle.gif);
+ background:url(./images/vista/sizer/se-handle.gif);
background-position: top left;
}
.yresizable-over .yresizable-handle-northwest,.yresizable-pinned .yresizable-handle-northwest{
- background:url(../images/vista/sizer/nw-handle.gif);
+ background:url(./images/vista/sizer/nw-handle.gif);
background-position:bottom right;
}
.yresizable-over .yresizable-handle-northeast,.yresizable-pinned .yresizable-handle-northeast{
- background:url(../images/vista/sizer/ne-handle.gif);
+ background:url(./images/vista/sizer/ne-handle.gif);
background-position: bottom left;
}
.yresizable-over .yresizable-handle-southwest,.yresizable-pinned .yresizable-handle-southwest{
- background:url(../images/vista/sizer/sw-handle.gif);
+ background:url(./images/vista/sizer/sw-handle.gif);
background-position: top right;
}
.yresizable-proxy{
@@ -352,14 +352,14 @@ refer to http://www.clipperz.com.
/** Toolbar */
.ytoolbar{
border:0px none;
- background: #efefe3 url(../images/vista/toolbar/gray-bg.gif) repeat-x;
+ background: #efefe3 url(./images/vista/toolbar/gray-bg.gif) repeat-x;
padding:3px;
}
.ytoolbar .ytb-button-over{
border:1px solid transparent;
border-bottom:1px solid #bbbbbb;
border-top:1px solid #eeeeee;
- background:#9f9f9f url(../images/vista/grid/grid-vista-hd.gif) repeat-x;
+ background:#9f9f9f url(./images/vista/grid/grid-vista-hd.gif) repeat-x;
}
/* grid */
.ygrid-hd{
@@ -377,10 +377,10 @@ refer to http://www.clipperz.com.
border-bottom:0px;
}
.ygrid-hd-split {
- background-image: url(../images/vista/grid/grid-split.gif);
+ background-image: url(./images/vista/grid/grid-split.gif);
}
.ygrid-hrow{
- background: url(../images/vista/grid/grid-vista-hd.gif);
+ background: url(./images/vista/grid/grid-vista-hd.gif);
height: 21px;
}
.ygrid-row-alt{
@@ -396,5 +396,5 @@ refer to http://www.clipperz.com.
.ygrid-wrap-body {
}
.ytoolbar .ytb-sep{
- background-image: url(../images/vista/grid/grid-split.gif);
-}
+ background-image: url(./images/vista/grid/grid-split.gif);
+}
diff --git a/frontend/beta/html/index_template.html b/frontend/beta/html/index_template.html
index 27a8a64..0b2875c 100644
--- a/frontend/beta/html/index_template.html
+++ b/frontend/beta/html/index_template.html
@@ -15,7 +15,7 @@
<script>
Clipperz_IEisBroken = false;
Clipperz_normalizedNewLine = '\n';
- Clipperz_dumpUrl = "/dump/";
+ Clipperz_dumpUrl = "/../dump/";
</script>
<!--[if IE]><script>
@@ -83,11 +83,11 @@ Clipperz_normalizedNewLine = '\x0d\x0a';
</div>
</div>
<div id="footer">
- Copyright &copy; 2008 Clipperz Srl -
+ Copyright &copy; 2008-2013 Clipperz Srl -
<a href="http://www.clipperz.com/terms_of_service" target="black">Terms of service</a> -
<a href="http://www.clipperz.com/privacy_policy" target="black">Privacy policy</a>
&nbsp;-&nbsp;
- Application version: @application.version@
+ Application version: <a href="https://github.com/clipperz/password-manager/tree/@application.version@" target="github">@application.version@</a>
</div>
<div id="recordDetailEditModeHeaderMask"></div>
diff --git a/frontend/beta/images/cardBlockLowerBorder.gif b/frontend/beta/images/cardBlockLowerBorder.gif
index e69de29..272ba83 100644
--- a/frontend/beta/images/cardBlockLowerBorder.gif
+++ b/frontend/beta/images/cardBlockLowerBorder.gif
Binary files differ
diff --git a/frontend/beta/images/cardBlockLowerRoundedCorner.gif b/frontend/beta/images/cardBlockLowerRoundedCorner.gif
index e69de29..920879a 100644
--- a/frontend/beta/images/cardBlockLowerRoundedCorner.gif
+++ b/frontend/beta/images/cardBlockLowerRoundedCorner.gif
Binary files differ
diff --git a/frontend/beta/images/cardFiltersSprite.gif b/frontend/beta/images/cardFiltersSprite.gif
index e69de29..5ffdd6c 100644
--- a/frontend/beta/images/cardFiltersSprite.gif
+++ b/frontend/beta/images/cardFiltersSprite.gif
Binary files differ
diff --git a/frontend/beta/images/cardsBlockRoundCorners.gif b/frontend/beta/images/cardsBlockRoundCorners.gif
index e69de29..c831db6 100644
--- a/frontend/beta/images/cardsBlockRoundCorners.gif
+++ b/frontend/beta/images/cardsBlockRoundCorners.gif
Binary files differ
diff --git a/frontend/beta/images/clipperz/basic-dialog/btn-sprite.gif b/frontend/beta/images/clipperz/basic-dialog/btn-sprite.gif
index e69de29..d00ea7c 100644
--- a/frontend/beta/images/clipperz/basic-dialog/btn-sprite.gif
+++ b/frontend/beta/images/clipperz/basic-dialog/btn-sprite.gif
Binary files differ
diff --git a/frontend/beta/images/clipperz/basic-dialog/close.gif b/frontend/beta/images/clipperz/basic-dialog/close.gif
index e69de29..07e6381 100644
--- a/frontend/beta/images/clipperz/basic-dialog/close.gif
+++ b/frontend/beta/images/clipperz/basic-dialog/close.gif
Binary files differ
diff --git a/frontend/beta/images/clipperz/basic-dialog/close.png b/frontend/beta/images/clipperz/basic-dialog/close.png
index e69de29..b4bc4e4 100644
--- a/frontend/beta/images/clipperz/basic-dialog/close.png
+++ b/frontend/beta/images/clipperz/basic-dialog/close.png
Binary files differ
diff --git a/frontend/beta/images/clipperz/basic-dialog/close_over.gif b/frontend/beta/images/clipperz/basic-dialog/close_over.gif
index e69de29..f99f083 100644
--- a/frontend/beta/images/clipperz/basic-dialog/close_over.gif
+++ b/frontend/beta/images/clipperz/basic-dialog/close_over.gif
Binary files differ
diff --git a/frontend/beta/images/clipperz/basic-dialog/e-handle.gif b/frontend/beta/images/clipperz/basic-dialog/e-handle.gif
index e69de29..dde2826 100644
--- a/frontend/beta/images/clipperz/basic-dialog/e-handle.gif
+++ b/frontend/beta/images/clipperz/basic-dialog/e-handle.gif
Binary files differ
diff --git a/frontend/beta/images/clipperz/basic-dialog/hd-sprite.gif b/frontend/beta/images/clipperz/basic-dialog/hd-sprite.gif
index e69de29..c894f35 100644
--- a/frontend/beta/images/clipperz/basic-dialog/hd-sprite.gif
+++ b/frontend/beta/images/clipperz/basic-dialog/hd-sprite.gif
Binary files differ
diff --git a/frontend/beta/images/clipperz/basic-dialog/progress.gif b/frontend/beta/images/clipperz/basic-dialog/progress.gif
index e69de29..0c3a537 100644
--- a/frontend/beta/images/clipperz/basic-dialog/progress.gif
+++ b/frontend/beta/images/clipperz/basic-dialog/progress.gif
Binary files differ
diff --git a/frontend/beta/images/clipperz/basic-dialog/progress2.gif b/frontend/beta/images/clipperz/basic-dialog/progress2.gif
index e69de29..0b3fcd2 100644
--- a/frontend/beta/images/clipperz/basic-dialog/progress2.gif
+++ b/frontend/beta/images/clipperz/basic-dialog/progress2.gif
Binary files differ
diff --git a/frontend/beta/images/clipperz/basic-dialog/s-handle.gif b/frontend/beta/images/clipperz/basic-dialog/s-handle.gif
index e69de29..c17db09 100644
--- a/frontend/beta/images/clipperz/basic-dialog/s-handle.gif
+++ b/frontend/beta/images/clipperz/basic-dialog/s-handle.gif
Binary files differ
diff --git a/frontend/beta/images/clipperz/basic-dialog/se-handle.gif b/frontend/beta/images/clipperz/basic-dialog/se-handle.gif
index e69de29..f730f60 100644
--- a/frontend/beta/images/clipperz/basic-dialog/se-handle.gif
+++ b/frontend/beta/images/clipperz/basic-dialog/se-handle.gif
Binary files differ
diff --git a/frontend/beta/images/default/basic-dialog/btn-sprite.gif b/frontend/beta/images/default/basic-dialog/btn-sprite.gif
index e69de29..8d657db 100644
--- a/frontend/beta/images/default/basic-dialog/btn-sprite.gif
+++ b/frontend/beta/images/default/basic-dialog/btn-sprite.gif
Binary files differ
diff --git a/frontend/beta/images/default/basic-dialog/close.gif b/frontend/beta/images/default/basic-dialog/close.gif
index e69de29..988ee82 100644
--- a/frontend/beta/images/default/basic-dialog/close.gif
+++ b/frontend/beta/images/default/basic-dialog/close.gif
Binary files differ
diff --git a/frontend/beta/images/default/basic-dialog/e-handle.gif b/frontend/beta/images/default/basic-dialog/e-handle.gif
index e69de29..dde2826 100644
--- a/frontend/beta/images/default/basic-dialog/e-handle.gif
+++ b/frontend/beta/images/default/basic-dialog/e-handle.gif
Binary files differ
diff --git a/frontend/beta/images/default/basic-dialog/hd-sprite.gif b/frontend/beta/images/default/basic-dialog/hd-sprite.gif
index e69de29..42da1ea 100644
--- a/frontend/beta/images/default/basic-dialog/hd-sprite.gif
+++ b/frontend/beta/images/default/basic-dialog/hd-sprite.gif
Binary files differ
diff --git a/frontend/beta/images/default/basic-dialog/progress.gif b/frontend/beta/images/default/basic-dialog/progress.gif
index e69de29..0c3a537 100644
--- a/frontend/beta/images/default/basic-dialog/progress.gif
+++ b/frontend/beta/images/default/basic-dialog/progress.gif
Binary files differ
diff --git a/frontend/beta/images/default/basic-dialog/progress2.gif b/frontend/beta/images/default/basic-dialog/progress2.gif
index e69de29..0b3fcd2 100644
--- a/frontend/beta/images/default/basic-dialog/progress2.gif
+++ b/frontend/beta/images/default/basic-dialog/progress2.gif
Binary files differ
diff --git a/frontend/beta/images/default/basic-dialog/s-handle.gif b/frontend/beta/images/default/basic-dialog/s-handle.gif
index e69de29..c17db09 100644
--- a/frontend/beta/images/default/basic-dialog/s-handle.gif
+++ b/frontend/beta/images/default/basic-dialog/s-handle.gif
Binary files differ
diff --git a/frontend/beta/images/default/basic-dialog/se-handle.gif b/frontend/beta/images/default/basic-dialog/se-handle.gif
index e69de29..f730f60 100644
--- a/frontend/beta/images/default/basic-dialog/se-handle.gif
+++ b/frontend/beta/images/default/basic-dialog/se-handle.gif
Binary files differ
diff --git a/frontend/beta/images/directLogin/toggle.png b/frontend/beta/images/directLogin/toggle.png
index e69de29..93d8218 100644
--- a/frontend/beta/images/directLogin/toggle.png
+++ b/frontend/beta/images/directLogin/toggle.png
Binary files differ
diff --git a/frontend/beta/images/directLoginBox.png b/frontend/beta/images/directLoginBox.png
index e69de29..387deb7 100644
--- a/frontend/beta/images/directLoginBox.png
+++ b/frontend/beta/images/directLoginBox.png
Binary files differ
diff --git a/frontend/beta/images/entropyBackground.gif b/frontend/beta/images/entropyBackground.gif
index e69de29..8b035b7 100644
--- a/frontend/beta/images/entropyBackground.gif
+++ b/frontend/beta/images/entropyBackground.gif
Binary files differ
diff --git a/frontend/beta/images/exportLogo.png b/frontend/beta/images/exportLogo.png
index e69de29..57a2d52 100644
--- a/frontend/beta/images/exportLogo.png
+++ b/frontend/beta/images/exportLogo.png
Binary files differ
diff --git a/frontend/beta/images/favicon.ico b/frontend/beta/images/favicon.ico
index e69de29..76db7bb 100644
--- a/frontend/beta/images/favicon.ico
+++ b/frontend/beta/images/favicon.ico
Binary files differ
diff --git a/frontend/beta/images/flags/br.png b/frontend/beta/images/flags/br.png
index e69de29..51ac06e 100644
--- a/frontend/beta/images/flags/br.png
+++ b/frontend/beta/images/flags/br.png
Binary files differ
diff --git a/frontend/beta/images/flags/cn.png b/frontend/beta/images/flags/cn.png
index e69de29..4be2967 100644
--- a/frontend/beta/images/flags/cn.png
+++ b/frontend/beta/images/flags/cn.png
Binary files differ
diff --git a/frontend/beta/images/flags/de.png b/frontend/beta/images/flags/de.png
index e69de29..a66d634 100644
--- a/frontend/beta/images/flags/de.png
+++ b/frontend/beta/images/flags/de.png
Binary files differ
diff --git a/frontend/beta/images/flags/en.png b/frontend/beta/images/flags/en.png
index e69de29..6d193aa 100644
--- a/frontend/beta/images/flags/en.png
+++ b/frontend/beta/images/flags/en.png
Binary files differ
diff --git a/frontend/beta/images/flags/es.png b/frontend/beta/images/flags/es.png
index e69de29..503ffca 100644
--- a/frontend/beta/images/flags/es.png
+++ b/frontend/beta/images/flags/es.png
Binary files differ
diff --git a/frontend/beta/images/flags/it.png b/frontend/beta/images/flags/it.png
index e69de29..a271baf 100644
--- a/frontend/beta/images/flags/it.png
+++ b/frontend/beta/images/flags/it.png
Binary files differ
diff --git a/frontend/beta/images/flags/jp.png b/frontend/beta/images/flags/jp.png
index e69de29..19e81e3 100644
--- a/frontend/beta/images/flags/jp.png
+++ b/frontend/beta/images/flags/jp.png
Binary files differ
diff --git a/frontend/beta/images/flags/ru.png b/frontend/beta/images/flags/ru.png
index e69de29..7391499 100644
--- a/frontend/beta/images/flags/ru.png
+++ b/frontend/beta/images/flags/ru.png
Binary files differ
diff --git a/frontend/beta/images/grippie.png b/frontend/beta/images/grippie.png
index e69de29..6524d41 100644
--- a/frontend/beta/images/grippie.png
+++ b/frontend/beta/images/grippie.png
Binary files differ
diff --git a/frontend/beta/images/importActiveStepsSeparator.png b/frontend/beta/images/importActiveStepsSeparator.png
index e69de29..4586878 100644
--- a/frontend/beta/images/importActiveStepsSeparator.png
+++ b/frontend/beta/images/importActiveStepsSeparator.png
Binary files differ
diff --git a/frontend/beta/images/importStepsBackground.png b/frontend/beta/images/importStepsBackground.png
index e69de29..74dd5b3 100644
--- a/frontend/beta/images/importStepsBackground.png
+++ b/frontend/beta/images/importStepsBackground.png
Binary files differ
diff --git a/frontend/beta/images/importStepsLabelsBackground.png b/frontend/beta/images/importStepsLabelsBackground.png
index e69de29..f0a72ce 100644
--- a/frontend/beta/images/importStepsLabelsBackground.png
+++ b/frontend/beta/images/importStepsLabelsBackground.png
Binary files differ
diff --git a/frontend/beta/images/importStepsLeftLabelsBackground.png b/frontend/beta/images/importStepsLeftLabelsBackground.png
index e69de29..02123ba 100644
--- a/frontend/beta/images/importStepsLeftLabelsBackground.png
+++ b/frontend/beta/images/importStepsLeftLabelsBackground.png
Binary files differ
diff --git a/frontend/beta/images/importStepsSeparator.png b/frontend/beta/images/importStepsSeparator.png
index e69de29..08df951 100644
--- a/frontend/beta/images/importStepsSeparator.png
+++ b/frontend/beta/images/importStepsSeparator.png
Binary files differ
diff --git a/frontend/beta/images/languageBox.png b/frontend/beta/images/languageBox.png
index e69de29..e13e0b1 100644
--- a/frontend/beta/images/languageBox.png
+++ b/frontend/beta/images/languageBox.png
Binary files differ
diff --git a/frontend/beta/images/loginFormBox.png b/frontend/beta/images/loginFormBox.png
index e69de29..46a1624 100644
--- a/frontend/beta/images/loginFormBox.png
+++ b/frontend/beta/images/loginFormBox.png
Binary files differ
diff --git a/frontend/beta/images/loginInfoBackground.png b/frontend/beta/images/loginInfoBackground.png
index e69de29..3692f74 100644
--- a/frontend/beta/images/loginInfoBackground.png
+++ b/frontend/beta/images/loginInfoBackground.png
Binary files differ
diff --git a/frontend/beta/images/loginInfoInnerBackground.png b/frontend/beta/images/loginInfoInnerBackground.png
index e69de29..37291b2 100644
--- a/frontend/beta/images/loginInfoInnerBackground.png
+++ b/frontend/beta/images/loginInfoInnerBackground.png
Binary files differ
diff --git a/frontend/beta/images/logo.gif b/frontend/beta/images/logo.gif
index e69de29..95ec1d0 100644
--- a/frontend/beta/images/logo.gif
+++ b/frontend/beta/images/logo.gif
Binary files differ
diff --git a/frontend/beta/images/menubarSprite.gif b/frontend/beta/images/menubarSprite.gif
index e69de29..966c1f6 100644
--- a/frontend/beta/images/menubarSprite.gif
+++ b/frontend/beta/images/menubarSprite.gif
Binary files differ
diff --git a/frontend/beta/images/newRecordPanelBackground.gif b/frontend/beta/images/newRecordPanelBackground.gif
index e69de29..8976ed4 100644
--- a/frontend/beta/images/newRecordPanelBackground.gif
+++ b/frontend/beta/images/newRecordPanelBackground.gif
Binary files differ
diff --git a/frontend/beta/images/newRecordPanelBackground.png b/frontend/beta/images/newRecordPanelBackground.png
index e69de29..513be3e 100644
--- a/frontend/beta/images/newRecordPanelBackground.png
+++ b/frontend/beta/images/newRecordPanelBackground.png
Binary files differ
diff --git a/frontend/beta/images/passwordAssistant.png b/frontend/beta/images/passwordAssistant.png
index e69de29..2f53a78 100644
--- a/frontend/beta/images/passwordAssistant.png
+++ b/frontend/beta/images/passwordAssistant.png
Binary files differ
diff --git a/frontend/beta/images/read-only.gif b/frontend/beta/images/read-only.gif
index e69de29..e4ad968 100644
--- a/frontend/beta/images/read-only.gif
+++ b/frontend/beta/images/read-only.gif
Binary files differ
diff --git a/frontend/beta/images/read-only.png b/frontend/beta/images/read-only.png
index e69de29..0c19fb7 100644
--- a/frontend/beta/images/read-only.png
+++ b/frontend/beta/images/read-only.png
Binary files differ
diff --git a/frontend/beta/images/read-only_background.png b/frontend/beta/images/read-only_background.png
index e69de29..c216dd4 100644
--- a/frontend/beta/images/read-only_background.png
+++ b/frontend/beta/images/read-only_background.png
Binary files differ
diff --git a/frontend/beta/images/recordFilterBackground.png b/frontend/beta/images/recordFilterBackground.png
index e69de29..a7f638a 100644
--- a/frontend/beta/images/recordFilterBackground.png
+++ b/frontend/beta/images/recordFilterBackground.png
Binary files differ
diff --git a/frontend/beta/images/rss.gif b/frontend/beta/images/rss.gif
index e69de29..481f712 100644
--- a/frontend/beta/images/rss.gif
+++ b/frontend/beta/images/rss.gif
Binary files differ
diff --git a/frontend/beta/images/scrambledValue.gif b/frontend/beta/images/scrambledValue.gif
index e69de29..541f642 100644
--- a/frontend/beta/images/scrambledValue.gif
+++ b/frontend/beta/images/scrambledValue.gif
Binary files differ
diff --git a/frontend/beta/images/scrambledValue.png b/frontend/beta/images/scrambledValue.png
index e69de29..feb40af 100644
--- a/frontend/beta/images/scrambledValue.png
+++ b/frontend/beta/images/scrambledValue.png
Binary files differ
diff --git a/frontend/beta/images/smiles.gif b/frontend/beta/images/smiles.gif
index e69de29..d1063a5 100644
--- a/frontend/beta/images/smiles.gif
+++ b/frontend/beta/images/smiles.gif
Binary files differ
diff --git a/frontend/beta/images/smiles_big.gif b/frontend/beta/images/smiles_big.gif
index e69de29..a3e5891 100644
--- a/frontend/beta/images/smiles_big.gif
+++ b/frontend/beta/images/smiles_big.gif
Binary files differ
diff --git a/frontend/beta/images/smiles_small.gif b/frontend/beta/images/smiles_small.gif
index e69de29..388c57b 100644
--- a/frontend/beta/images/smiles_small.gif
+++ b/frontend/beta/images/smiles_small.gif
Binary files differ
diff --git a/frontend/beta/images/test-database.png b/frontend/beta/images/test-database.png
index e69de29..db3ef1e 100644
--- a/frontend/beta/images/test-database.png
+++ b/frontend/beta/images/test-database.png
Binary files differ
diff --git a/frontend/beta/js/Clipperz/PM/Connection.js b/frontend/beta/js/Clipperz/PM/Connection.js
index 85aea21..e81c7a6 100644
--- a/frontend/beta/js/Clipperz/PM/Connection.js
+++ b/frontend/beta/js/Clipperz/PM/Connection.js
@@ -296,11 +296,15 @@ deferredResult.addErrback(MochiKit.Base.bind(function(res) {MochiKit.Logging.log
this.setConnectionId(someParameters['connectionId']);
this.user().setLoginInfo(someParameters['loginInfo']);
this.user().setShouldDownloadOfflineCopy(someParameters['offlineCopyNeeded']);
- this.user().setLock(someParameters['lock']);
+
+ if ((isReconnecting == true) && (this.user().lock() != someParameters['lock'])) {
+ throw Clipperz.PM.Connection.exception.StaleData;
+ }
if (this.oneTimePassword() != null) {
result.addCallback(MochiKit.Base.method(this.user().oneTimePasswordManager(), 'archiveOneTimePassword', this.oneTimePassword()));
}
+
result.addCallback(Clipperz.NotificationCenter.deferredNotification, this, 'updatedProgressState', 'connection_loggedIn');
result.addCallback(MochiKit.Async.succeed, someParameters);
@@ -577,5 +581,6 @@ Clipperz.PM.Connection.SRP['1.1'].prototype = MochiKit.Base.update(new Clipperz.
});
Clipperz.PM.Connection.exception = {
- WrongChecksum: new MochiKit.Base.NamedError("Clipperz.ByteArray.exception.InvalidValue")
+ WrongChecksum: new MochiKit.Base.NamedError("Clipperz.ByteArray.exception.InvalidValue"),
+ StaleData: new MochiKit.Base.NamedError("Stale data")
};
diff --git a/frontend/beta/js/Clipperz/PM/DataModel/Record.js b/frontend/beta/js/Clipperz/PM/DataModel/Record.js
index 9e496de..d6ebb39 100644
--- a/frontend/beta/js/Clipperz/PM/DataModel/Record.js
+++ b/frontend/beta/js/Clipperz/PM/DataModel/Record.js
@@ -645,11 +645,13 @@ console.log("Record.processData - currentVersionParameters", currentVersionParam
'saveChanges': function() {
var result;
- if (this.isBrandNew() == false) {
- result = this.user().saveRecords([this], 'updateData');
- } else {
- result = this.user().saveRecords([this], 'addNewRecords');
- }
+// if (this.isBrandNew() == false) {
+// result = this.user().saveRecords([this], 'updateData');
+// } else {
+// result = this.user().saveRecords([this], 'addNewRecords');
+// }
+
+ result = this.user().saveRecords([this]);
return result;
},
diff --git a/frontend/beta/js/Clipperz/PM/DataModel/User.js b/frontend/beta/js/Clipperz/PM/DataModel/User.js
index dbbe9a0..b065557 100644
--- a/frontend/beta/js/Clipperz/PM/DataModel/User.js
+++ b/frontend/beta/js/Clipperz/PM/DataModel/User.js
@@ -285,14 +285,14 @@ MochiKit.Logging.logError("- User.errorHandler: " + anErrorString + " (" + anExc
//-------------------------------------------------------------------------
- 'saveRecords': function(someRecords, aMethodName) {
+ 'saveRecords': function(someRecords /*, aMethodName*/) {
var deferredResult;
- var methodName;
+// var methodName;
var result;
var i,c;
//console.log("User.saveRecords - someRecords", someRecords);
- methodName = aMethodName || 'addNewRecords';
+// methodName = aMethodName || 'addNewRecords';
Clipperz.NotificationCenter.notify(this, 'updatedSection', 'records', true);
//MochiKit.Logging.logDebug(">>> User.saveRecords");
@@ -367,7 +367,7 @@ MochiKit.Logging.logDebug("--- User.saveRecords - 2");
//deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("User.saveRecords - 6.7 " + res); return res;});
deferredResult.addCallback(function(aResult, res) {
- aResult['records'].push(res);
+ aResult['records'] = { 'updated': [res] };
return aResult;
}, result);
//deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("User.saveRecords - 6.8 " + res); return res;});
@@ -376,7 +376,8 @@ MochiKit.Logging.logDebug("--- User.saveRecords - 2");
//deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("User.saveRecords - 7 " + res); return res;});
deferredResult.addCallback(Clipperz.NotificationCenter.deferredNotification, this, 'updatedProgressState', 'saveCard_sendingData');
//deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("User.saveRecords - 8 " + res); return res;});
- deferredResult.addCallback(MochiKit.Base.method(this.connection(), 'message'), methodName);
+// deferredResult.addCallback(MochiKit.Base.method(this.connection(), 'message'), methodName);
+ deferredResult.addCallback(MochiKit.Base.method(this.connection(), 'message'), 'saveChanges');
//deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("User.saveRecords - 9 " + res); return res;});
for (i=0; i<c; i++) {
@@ -431,7 +432,8 @@ MochiKit.Logging.logDebug("--- User.saveRecords - 2");
return result;
}, someRecords);
- someParameters.recordReferences = recordReferences;
+// someParameters.recordReferences = recordReferences;
+ someParameters['records'] = { 'deleted': recordReferences};
return someParameters;
}, parameters);
@@ -448,7 +450,8 @@ MochiKit.Logging.logDebug("--- User.saveRecords - 2");
deferredResult.addCallback(Clipperz.NotificationCenter.deferredNotification, this, 'updatedProgressState', 'deleteRecord_sendingData');
//deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("User.deleteRecords parameters: " + Clipperz.Base.serializeJSON(res)); return res;});
//deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("User.deleteRecordsAction - 7 " + res); return res;});
- deferredResult.addCallback(MochiKit.Base.method(this.connection(), 'message'), 'deleteRecords');
+// deferredResult.addCallback(MochiKit.Base.method(this.connection(), 'message'), 'deleteRecords');
+ deferredResult.addCallback(MochiKit.Base.method(this.connection(), 'message'), 'saveChanges');
//deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("User.deleteRecordsAction - 8 " + res); return res;});
deferredResult.addCallback(Clipperz.NotificationCenter.deferredNotification, this, 'updatedProgressState', 'deleteRecord_updatingInterface');
//deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("User.deleteRecordsAction - 9 " + res); return res;});
diff --git a/frontend/beta/properties/beta.properties.json b/frontend/beta/properties/beta.properties.json
index 810215b..bfa152d 100644
--- a/frontend/beta/properties/beta.properties.json
+++ b/frontend/beta/properties/beta.properties.json
@@ -185,6 +185,10 @@
"clipperz/ytheme-clipperz.css"
],
- "html.template": "index_template.html"
-
+ "staticResources": [
+ "accountDeleted.html",
+ "error.html",
+ "logout.html",
+ "static.css"
+ ]
}
diff --git a/frontend/beta/staticResources/static.css b/frontend/beta/staticResources/static.css
index 830d830..5e94440 100644
--- a/frontend/beta/staticResources/static.css
+++ b/frontend/beta/staticResources/static.css
@@ -41,7 +41,8 @@ div.header {
}
div#logo {
- background: url(./images/old/logo.png);
+ background: url(./images/logo.gif);
+ background-repeat: no-repeat;
width: 150px;
height: 39px;
display: block;
@@ -166,39 +167,39 @@ div.languageBlock div.flags {
}
div.languageBlock.en-us div.flags {
- background: url(./images/old/flags/en.png);
+ background: url(./images/flags/en.png);
}
div.languageBlock.zh-cn div.flags {
- background: url(./images/old/flags/cn.png);
+ background: url(./images/flags/cn.png);
}
div.languageBlock.fr-fr div.flags {
- background: url(./images/old/flags/fr.png);
+ background: url(./images/flags/fr.png);
}
div.languageBlock.it-it div.flags {
- background: url(./images/old/flags/it.png);
+ background: url(./images/flags/it.png);
}
div.languageBlock.ja-jp div.flags {
- background: url(./images/old/flags/jp.png);
+ background: url(./images/flags/jp.png);
}
div.languageBlock.pt-br div.flags {
- background: url(./images/old/flags/br.png);
+ background: url(./images/flags/br.png);
}
div.languageBlock.es-es div.flags {
- background: url(./images/old/flags/es.png);
+ background: url(./images/flags/es.png);
}
div.languageBlock.ru-ru div.flags {
- background: url(./images/old/flags/ru.png);
+ background: url(./images/flags/ru.png);
}
div.languageBlock.de-de div.flags {
- background: url(./images/old/flags/de.png);
+ background: url(./images/flags/de.png);
}
diff --git a/frontend/gamma/css/mobile.css b/frontend/gamma/css/mobile.css
new file mode 100644
index 0000000..8c4c1bf
--- a/dev/null
+++ b/frontend/gamma/css/mobile.css
@@ -0,0 +1,2571 @@
+/*
+
+Copyright 2008-2011 Clipperz Srl
+
+This file is part of Clipperz Community Edition.
+Clipperz Community Edition is an online password manager.
+For further information about its features and functionalities please
+refer to http://www.clipperz.com.
+
+* Clipperz Community Edition is free software: you can redistribute
+ it and/or modify it under the terms of the GNU Affero General Public
+ License as published by the Free Software Foundation, either version
+ 3 of the License, or (at your option) any later version.
+
+* Clipperz Community Edition is distributed in the hope that it will
+ be useful, but WITHOUT ANY WARRANTY; without even the implied
+ warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ See the GNU Affero General Public License for more details.
+
+* You should have received a copy of the GNU Affero General Public
+ License along with Clipperz Community Edition. If not, see
+ <http://www.gnu.org/licenses/>.
+
+*/
+
+/*
+
+Color list:
+- login box:
+ light #ff9955
+ dark #ff6622
+- login button:
+ regular #dd5500
+ hover #773311
+- login translations:
+ box: #cc6622;
+ not-selected:
+ color: #ddaa99
+ background: #994422
+ selected: #772211;
+*/
+html {
+ height: 100%;
+ -webkit-text-size-adjust: none;
+ -ms-text-size-adjust: none;
+}
+body {
+ font-family: Helvetica-Neue, Helvetica, Arial, Geneva, sans-serif;
+ margin: 0px;
+}
+.ellipsis {
+ text-overflow: ellipsis;
+ overflow: hidden;
+ white-space: nowrap;
+}
+/**
+ * Background noise recipe
+ *
+ * This recipe use a sass function to generate a .png file
+ *
+ * Inspired by a jQuery plugin "Noisy" by Daniel Rapp @DanielRapp
+ * @link https://github.com/DanielRapp/Noisy
+ *
+ * Converted using Sass by Aaron Russell @aaronrussell & Philipp Bosch @philippbosch
+ * @link https://gist.github.com/1021332
+ *
+ * Ported to a sass gem by Antti Salonen @antsa
+ * @link https://github.com/antsa/sassy_noise
+ *
+ * Mixin: background-noise
+ * Function: background_noise
+ *
+ * @author Daniel Rapp @DanielRapp
+ * @author Aaron Russell @aaronrussell
+ * @author Philipp Bosch @philippbosch
+ * @author Antti Salonen @antsa
+ * @author Maxime Thirouin maxime.thirouin@gmail.com @MoOx
+ */
+/**
+ *
+ * @class Gradients
+ * @author David Kaneda http://www.davidkaneda.com/
+ *
+ */
+/**
+ * Adds a background gradient into a specified selector.
+ *
+ * @include background-gradient(#444, 'glossy');
+ *
+ * You can also use color-stops if you want full control of the gradient:
+ *
+ * @include background-gradient(#444, color-stops(#333, #222, #111));
+ *
+ * @param {color} $bg-color
+ * The base color of the gradient.
+ *
+ * @param {string/list} $type
+ * The style of the gradient, one of five pre-defined options: matte, bevel, glossy, recessed, or linear:
+ *
+ * @include background-gradient(red, 'glossy');
+ *
+ * It can also accept a list of color-stop values:;
+ *
+ * @include background-gradient(black, color-stops(#333, #111, #000));
+ *
+ * @param {string} $direction
+ * The direction of the gradient.
+ */
+/**
+ * Blueprint grid background pattern
+ *
+ * @link http://lea.verou.me/css3patterns/#blueprint-grid
+ *
+ * @author Lea Verou http://lea.verou.me/ for the original pattern
+ * @author Maxime Thirouin maxime.thirouin@gmail.com @MoOx for the sass mixin
+ */
+/**
+ * Background overlay inspired by Google Chrome modal overlay
+ *
+ * @author Maxime Thirouin @MoOx maxime.thirouin@gmail.com
+ */
+/**
+ * Striped background pattern
+ *
+ * @link http://lea.verou.me/css3patterns/
+ *
+ * @author Lea Verou http://lea.verou.me/ for the original pattern
+ * @author David Kaneda http://www.davidkaneda.com @davidkaneda for the sass mixin
+ */
+/**
+ *
+ * Before compass 0.11.5, you need to add
+ * Compass::BrowserSupport.add_support("repeating-linear-gradient", "webkit", "moz", "o", "ms")
+ * To your configuration (config.rb)
+ * @see https://github.com/chriseppstein/compass/issues/401
+ *
+ * @link http://lea.verou.me/css3patterns/#tartan
+ *
+ * @author Marta Armada http://swwweet.com/ for the original pattern
+ * @author Maxime Thirouin maxime.thirouin@gmail.com @MoOx for the sass mixin
+ */
+/**
+ * Carbon Fiber background pattern
+ *
+ * @author Lea Verou http://lea.verou.me/ for the original pattern
+ * @author David Kaneda http://www.davidkaneda.com/ for the Sass mixin
+ *
+ * @link http://lea.verou.me/css3patterns/
+ *
+ */
+/**
+ * Normalize.css
+ * Opposite approche from CSS reset
+ *
+ * Based on normalize.css commit 9576d48fc234c5224b1fc4dccba2f5965243843d
+ *
+ * @link http://github.com/necolas/normalize.css
+ */
+/* normalize.css 2011-07-12T10:51 UTC · http://github.com/necolas/normalize.css */
+/* =============================================================================
+ HTML5 element display
+ ========================================================================== */
+/* =============================================================================
+ Base
+ ========================================================================== */
+/* =============================================================================
+ Links
+ ========================================================================== */
+/* =============================================================================
+ Typography
+ ========================================================================== */
+/* =============================================================================
+ Lists
+ ========================================================================== */
+/* =============================================================================
+ Embedded content
+ ========================================================================== */
+/* =============================================================================
+ Figures
+ ========================================================================== */
+/* =============================================================================
+ Forms
+ ========================================================================== */
+/* =============================================================================
+ Tables
+ ========================================================================== */
+/**
+ *
+ * @author David Kaneda - http://www.davidkaneda.com
+ *
+ */
+/**
+ * @class Color
+ */
+/**
+ * Returns the brightness (out of 100) of a specified color.
+ * @todo explain why this is useful
+ * @param {color} $color The color you want the brightness value of
+ * @return {measurement}
+ */
+/**
+ * Returns the luminosity for a specified color
+ * @todo explain why this is useful
+ * @param {color} The color to check
+ * @return {measurement}
+ */
+/**
+ * Glass effect
+ * Use this on image for better effect render
+ *
+ * Inspired from Simurai's IMDB redisign
+ *
+ * @link http://lab.simurai.com/redesign/imdb
+ * @thanks Simurai @simurai
+ */
+/**
+ * Note IE7/6 doesn't understand pseudo element as ::before and ::after
+ * IE8 need to have :before and not ::before
+ * So use only : and not :: if you want to support IE8
+ * IE9 Webkit Firefox Opera understand ::
+ */
+/**
+ * Scotch tape effect with pure CSS
+ *
+ * @thanks Nick La @nickla for original concept
+ * @link http://webdesignerwall.com/tutorials/css3-image-styles
+ *
+ * @author David Kaneda http://www.davidkaneda.com
+ *
+ */
+/**
+ * Note IE7/6 doesn't understand pseudo element as ::before and ::after
+ * IE8 need to have :before and not ::before
+ * So use only : and not :: if you want to support IE8
+ * IE9 Webkit Firefox Opera understand ::
+ */
+/**
+ * Corner folded with pure CSS
+ *
+ * Known support: Firefox 3.5+, Chrome 4+, Safari 4+, Opera 10+, IE 9+.
+ * IE8 is not supported because it not render properly box-shadow and
+ * pseudo element should be selected with ::element and not :element
+ *
+ * @thanks Nicolas Gallagher @necolas
+ * @link http://nicolasgallagher.com/pure-css-folded-corner-effect/demo/
+ * @todo Nix in .4
+ */
+/**
+ * Note IE7/6 doesn't understand pseudo element as ::before and ::after
+ * IE8 need to have :before and not ::before
+ * So use only : and not :: if you want to support IE8
+ * IE9 Webkit Firefox Opera understand ::
+ */
+/**
+ * Corner folded with pure CSS
+ *
+ * Known support: Firefox 3.5+, Chrome 4+, Safari 4+, Opera 10+, IE 9+.
+ * IE8 is not supported because it not render properly box-shadow and
+ * pseudo element should be selected with ::element and not :element
+ *
+ * @thanks Nicolas Gallagher @necolas
+ * @link http://nicolasgallagher.com/pure-css-folded-corner-effect/demo/
+ */
+/**
+ * Note IE7/6 doesn't understand pseudo element as ::before and ::after
+ * IE8 need to have :before and not ::before
+ * So use only : and not :: if you want to support IE8
+ * IE9 Webkit Firefox Opera understand ::
+ */
+/**
+ * Form element inline mixin
+ * This mixin allow you to have a label inline with your input
+ * It's simply based on inline-block behavior
+ *
+ * @author Maxime Thirouin maxime.thirouin@gmail.com @MoOx
+ */
+/**
+ * Vertical alignement for page
+ * Inspired by http://css-tricks.com/snippets/css/center-div-with-dynamic-height/
+ *
+ * Usage:
+ *
+ * SCSS
+ * @include vertical-align-requirement;
+ * .v-align-container { @include vertical-align-container }
+ * .v-align-content-container { @include vertical-align-content-container }
+ * .v-align-content { @include vertical-align-content }
+ *
+ * HTML
+ * <body>
+ * <div class="v-align-container">
+ * <div class="v-align-content-container">
+ * <div class="v-align-content">
+ * Your content !
+ * </div>
+ * </div>
+ * </div>
+ * </body>
+ *
+ * @thanks Chris Coyier @chriscoyier
+ * @autor Maxime Thirouin maxime.thirouin@gmail.com @MoOx
+ */
+/**
+ * Media Queries Mixins
+ *
+ * @todo Do we have to take care of print ?
+ *
+ * @require sass-3.2 (you need eventually to do "sudo gem install sass --pre")
+ * @author Maxime Thirouin <maxime.thirouin@gmail.com>
+ */
+/*
+$media-query-width-big: 1280px;
+$media-query-width-medium: 960px;
+$media-query-width-small: 480px;
+*/
+/**
+ * Drop shadow mixins from Nicolas Gallagher demo
+ *
+ * @thanks Nicolas Gallagher @necolas, @simurai, @cameronmoll, @matthamm
+ *
+ * @link http://nicolasgallagher.com/css-drop-shadows-without-images/demo/
+ */
+/**
+ * Drop shadow curled
+ *
+ * @thanks Nicolas Gallagher @necolas
+ * @link http://nicolasgallagher.com/css-drop-shadows-without-images/demo/
+ */
+/**
+ * Drop shadow curved
+ *
+ * @thanks Nicolas Gallagher @necolas
+ * @link http://nicolasgallagher.com/css-drop-shadows-without-images/demo/
+ */
+/**
+ * Drop shadow flying
+ *
+ * @thanks Geoffrey Crofte @geoffrey_crofte
+ * @link http://www.creativejuiz.fr/trytotry/css3-box-shadow-after-before/
+ */
+/**
+ * Drop shadow w/ lifted corners
+ *
+ * @thanks Nicolas Gallagher @necolas
+ * @link http://nicolasgallagher.com/css-drop-shadows-without-images/demo/
+ */
+/**
+ * Drop shadow w/ perspective
+ *
+ * @thanks Nicolas Gallagher @necolas
+ * @link http://nicolasgallagher.com/css-drop-shadows-without-images/demo/
+ */
+/**
+ * Drop shadow raised
+ *
+ * @thanks Nicolas Gallagher @necolas
+ * @link http://nicolasgallagher.com/css-drop-shadows-without-images/demo/
+ */
+/**
+ * Drop shadow rules required for transform on drop shadow
+ *
+ * /!\ This is required if you want to apply some transform on the element using drop shadow
+ *
+ * @thanks Nicolas Gallagher @necolas
+ * @link http://nicolasgallagher.com/css-drop-shadows-without-images/demo/
+ */
+/**
+ * Shadow along the top edge of the browser viewport
+ *
+ * @link http://playground.genelocklin.com/depth/
+ */
+/**
+* Shapes !
+* Polygons, ellipses and symbols
+*
+* @thanks Chris Coyier @chriscoyier
+* @link http://css-tricks.com/examples/ShapesOfCSS/
+* @author Maxime Thirouin maxime.thirouin@gmail.com @MoOx
+*/
+/**
+ * Shape/Ellipse
+ *
+ * @author Maxime Thirouin maxime.thirouin@gmail.com @MoOx
+ */
+/**
+ * Shape/Polygon
+ *
+ * @author Maxime Thirouin maxime.thirouin@gmail.com @MoOx
+ */
+/**
+ * Shape/Polygon/Hexagon
+ *
+ * @author Maxime Thirouin maxime.thirouin@gmail.com @MoOx
+ */
+/**
+ * Shape/Polygon/Octagon
+ *
+ * @author Maxime Thirouin maxime.thirouin@gmail.com @MoOx
+ */
+/**
+ * Shape/Polygon/Parallelogram
+ *
+ * @author Maxime Thirouin maxime.thirouin@gmail.com @MoOx
+ */
+/**
+ * Shape/Polygon/Pentagon
+ *
+ * @author Maxime Thirouin maxime.thirouin@gmail.com @MoOx
+ */
+/**
+ * Shape/Polygon/Rectangle
+ *
+ * @author Maxime Thirouin maxime.thirouin@gmail.com @MoOx
+ */
+/**
+ * Shape/Polygon/Rhombus
+ *
+ * @author Maxime Thirouin maxime.thirouin@gmail.com @MoOx
+ */
+/**
+ * Shape/Polygon/Square
+ *
+ * @author Maxime Thirouin maxime.thirouin@gmail.com @MoOx
+ */
+/**
+ * Shape/Polygon/Star
+ *
+ * @todo check if setting a z-index by default is a good thing
+ * @author Maxime Thirouin maxime.thirouin@gmail.com @MoOx
+ */
+/**
+ * Shape/Polygon/Trapezoid
+ *
+ * @author Maxime Thirouin maxime.thirouin@gmail.com @MoOx
+ */
+/**
+ * Shape/Polygon/Triangle
+ *
+ * @author Maxime Thirouin maxime.thirouin@gmail.com @MoOx
+ */
+/**
+ * Shape/Symbol
+ *
+ * @author Maxime Thirouin maxime.thirouin@gmail.com @MoOx
+ */
+/**
+ * Shape/Symbol/Diamond
+ *
+ * @todo add height support
+ *
+ * @author Alexander Futekov
+ * @author Maxime Thirouin maxime.thirouin@gmail.com @MoOx
+ */
+/**
+ * Shape/Symbol/Egg
+ *
+ * @author Maxime Thirouin maxime.thirouin@gmail.com @MoOx
+ */
+/**
+ * Shape/Symbol/Heart
+ *
+ * @author Nicolas Gallagher @necolas
+ * @author Maxime Thirouin maxime.thirouin@gmail.com @MoOx
+ */
+/**
+ * Shape/Symbol/Infinity
+ *
+ * @author Nicolas Gallagher @necolas
+ * @author Maxime Thirouin maxime.thirouin@gmail.com @MoOx
+ */
+/**
+ * Shape/Symbol/Pacman
+ *
+ * @author Maxime Thirouin maxime.thirouin@gmail.com @MoOx
+ */
+/**
+ * Shape/Symbol/Yin-yang
+ *
+ * @author Alexander Futekov
+ * @author Maxime Thirouin maxime.thirouin@gmail.com @MoOx
+ */
+/**
+ * Micro clearfix hack
+ *
+ * The clearfix hack is a popular way to clear floats without resorting to using presentational markup. This article presents an update to the clearfix method that further reduces the amount of CSS required.
+ * Known support: Firefox 2+, Safari 2+, Chrome, Opera 9.27+, IE 6+, IE Mac.
+ *
+ * @thanks Nicolas Gallagher @necolas
+ * @link http://nicolasgallagher.com/micro-clearfix-hack/
+ */
+/**
+ * Note IE7/6 doesn't understand pseudo element as ::before and ::after
+ * IE8 need to have :before and not ::before
+ * So use only : and not :: if you want to support IE8
+ * IE9 Webkit Firefox Opera understand ::
+ */
+/**
+ * UI convex effect from one color
+ *
+ * @todo merge with ui-button ?
+ *
+ * @author Maxime Thirouin maxime.thirouin@gmail.com @MoOx
+ */
+/**
+ * UI Glossy helper
+ *
+ * @deprecated
+ * @todo Remove in 0.4
+ * @see background/gradients
+ *
+ * @author Maxime Thirouin maxime.thirouin@gmail.com @MoOx
+ */
+/**
+ * UI simple gradient from one color
+ *
+ * @todo merge with ui-button ?
+ *
+ * @author Maxime Thirouin maxime.thirouin@gmail.com @MoOx
+ */
+/**
+ * Shape/Polygon/Triangle
+ *
+ * @author Maxime Thirouin maxime.thirouin@gmail.com @MoOx
+ */
+/**
+ * Keyboard key touch
+ * A simple stylesheet for rendering beautiful keyboard-style elements.
+
+ * @author Michael Hüneburg http://michaelhue.com/keyscss
+ * @link https://github.com/michaelhue/keyscss (commit 76bb603e921d0145362e0f60eabb79d4f69cbda0)
+ *
+ * @author Maxime Thirouin @MoOx maxime.thirouin@gmail.com
+*/
+/**
+ * Menu dropdown helper
+ *
+ * @author Maxime Thirouin @MoOx maxime.thirouin@gmail.com
+*/
+/**
+ * Ui background overlay inspired by Google Chrome modal overlay
+ *
+ * @author Maxime Thirouin @MoOx maxime.thirouin@gmail.com
+ */
+/**
+ * Background overlay inspired by Google Chrome modal overlay
+ *
+ * @author Maxime Thirouin @MoOx maxime.thirouin@gmail.com
+ */
+/**
+ * <hr /> separator style
+ *
+ * @author Chris Coyier @chriscoyier
+ * @link http://jsfiddle.net/chriscoyier/GaEzp/35/
+ *
+ * @author Maxime Thirouin @MoOx maxime.thirouin@gmail.com
+ */
+/**
+ * Micro clearfix hack
+ *
+ * The clearfix hack is a popular way to clear floats without resorting to using presentational markup. This article presents an update to the clearfix method that further reduces the amount of CSS required.
+ * Known support: Firefox 2+, Safari 2+, Chrome, Opera 9.27+, IE 6+, IE Mac.
+ *
+ * @thanks Nicolas Gallagher @necolas
+ * @link http://nicolasgallagher.com/micro-clearfix-hack/
+ */
+/**
+ * Note IE7/6 doesn't understand pseudo element as ::before and ::after
+ * IE8 need to have :before and not ::before
+ * So use only : and not :: if you want to support IE8
+ * IE9 Webkit Firefox Opera understand ::
+ */
+/**
+ *
+ * @class Gradients
+ * @author David Kaneda http://www.davidkaneda.com/
+ *
+ */
+/**
+ * Adds a background gradient into a specified selector.
+ *
+ * @include background-gradient(#444, 'glossy');
+ *
+ * You can also use color-stops if you want full control of the gradient:
+ *
+ * @include background-gradient(#444, color-stops(#333, #222, #111));
+ *
+ * @param {color} $bg-color
+ * The base color of the gradient.
+ *
+ * @param {string/list} $type
+ * The style of the gradient, one of five pre-defined options: matte, bevel, glossy, recessed, or linear:
+ *
+ * @include background-gradient(red, 'glossy');
+ *
+ * It can also accept a list of color-stop values:;
+ *
+ * @include background-gradient(black, color-stops(#333, #111, #000));
+ *
+ * @param {string} $direction
+ * The direction of the gradient.
+ */
+/**
+ * @class Webfont Icon
+ * Great to use with the [Pictos font](http://pictos.drewwilson.com/)
+ *
+ */
+/**
+ * @cfg {color} $webfont-icon-base-color
+ * The default color of icons when using the {@link #webfont-icon} mixin.
+ *
+ * Defaults to `white`.
+ */
+/**
+ * @cfg {color} $webfont-icon-default-stroke
+ * The default color to use on the border of icons, when using the {@link #webfont-icon} mixin.
+ *
+ * Defaults to `null`.
+ */
+/**
+ * @cfg {string} $webfont-icon-default-gradient
+ * The default gradient to use when using the {@link #webfont-icon} mixin.
+ *
+ * Defaults to `matte`.
+ */
+/* line 41, ../compass-recipes/stylesheets/recipes/_webfont-icon.scss */
+.webfont-icon-base {
+ color: transparent;
+ -webkit-background-clip: text;
+ background-clip: text;
+ position: absolute;
+ top: 0;
+ left: 0;
+ text-indent: 0;
+ text-shadow: none;
+ -webkit-user-select: none;
+ user-select: none;
+}
+/**
+ * Includes a character into the specified selector, styled as an icon.
+ *
+ * @include webfont-icon('a');
+ *
+ * @param {color} $color
+ * The color of the icon. Defaults to {@link #$webfont-icon-default-background $webfont-icon-default-background}.
+ *
+ * @param {measurement} $size
+ * The size of the icon
+ *
+ * @param {color} $stroke
+ * The color of the border. Defautls to {@link #$webfont-icon-default-border $webfont-icon-default-border}.
+ *
+ * @param {boolean} $include-staes
+ * True to include states for hover and active. Defaults to `true`.
+ */
+/* line 1, ../scss/include/_base.scss */
+* {
+ margin: 0;
+ padding: 0;
+}
+/* line 6, ../scss/include/_base.scss */
+body {
+ -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
+ -webkit-touch-callout: none;
+}
+/* line 11, ../scss/include/_base.scss */
+#jqt {
+ -webkit-text-size-adjust: none;
+ -webkit-user-select: none;
+ user-select: none;
+ font-family: "Helvetica Neue", Helvetica;
+ position: absolute;
+ right: 0;
+ top: 0;
+ left: 0;
+ bottom: 0;
+}
+/* line 21, ../scss/include/_base.scss */
+#jqt a {
+ -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
+ -webkit-user-drag: none;
+}
+/* line 26, ../scss/include/_base.scss */
+#jqt .selectable,
+#jqt input,
+#jqt textarea {
+ -webkit-user-select: auto;
+}
+/* line 30, ../scss/include/_base.scss */
+#jqt.notransform {
+ -webkit-transform: none !important;
+}
+/* line 35, ../scss/include/_base.scss */
+#jqt > * {
+ display: block;
+ left: 0;
+ top: 0;
+ min-height: 100%;
+ width: 100%;
+ overflow-x: hidden;
+ position: absolute;
+ z-index: 0;
+ display: -webkit-box;
+ display: box;
+ -webkit-box-orient: vertical;
+ box-orient: vertical;
+ -webkit-box-flex: 1;
+ box-flex: 1;
+}
+/* line 49, ../scss/include/_base.scss */
+#jqt > .current {
+ z-index: 10;
+}
+/* line 53, ../scss/include/_base.scss */
+#jqt > :not(.current) {
+ display: none;
+}
+/* line 57, ../scss/include/_base.scss */
+#jqt.touchscroll:not(.animating3d) {
+ overflow-y: auto;
+ -webkit-overflow-scrolling: touch;
+}
+/* line 61, ../scss/include/_base.scss */
+#jqt.touchscroll:not(.animating3d) > * {
+ height: 100%;
+}
+/* line 64, ../scss/include/_base.scss */
+#jqt.touchscroll:not(.animating3d) .scroll {
+ position: relative;
+ -webkit-box-flex: 1;
+ box-flex: 1;
+ overflow-y: auto;
+ -webkit-overflow-scrolling: touch;
+}
+/* line 72, ../scss/include/_base.scss */
+#jqt .scroll {
+ -webkit-margin-collapse: separate;
+}
+/* line 76, ../scss/include/_base.scss */
+#jqt .in,
+#jqt .out {
+ -webkit-animation-duration: 250ms;
+ -webkit-animation-fill-mode: both;
+ -webkit-animation-timing-function: ease-in-out;
+}
+/* line 82, ../scss/include/_base.scss */
+#jqt .in {
+ z-index: 10;
+}
+/* line 85, ../scss/include/_base.scss */
+#jqt .in:after {
+ content: "";
+ position: absolute;
+ display: block;
+ top: 0;
+ left: 0;
+ bottom: 0;
+ right: 0;
+}
+/* line 94, ../scss/include/_base.scss */
+#jqt .out {
+ z-index: 0 !important;
+}
+/* line 98, ../scss/include/_base.scss */
+#jqt.supports3d {
+ -webkit-perspective: 1000;
+}
+/* line 101, ../scss/include/_base.scss */
+#jqt.supports3d > * {
+ -webkit-transform: translate3d(0, 0, 0) rotate(0) scale(1);
+}
+/* Fade */
+/* line 3, ../scss/include/_animations.scss */
+#jqt .fade.in {
+ -webkit-animation-name: fadeIn;
+}
+/* line 7, ../scss/include/_animations.scss */
+#jqt .fade.out {
+ z-index: 10;
+ -webkit-animation-name: fadeOut;
+}
+@-webkit-keyframes fadeIn {
+ /* line 13, ../scss/include/_animations.scss */
+ 0% {
+ opacity: 0;
+ }
+ /* line 16, ../scss/include/_animations.scss */
+ 100% {
+ opacity: 1;
+ }
+}
+@-webkit-keyframes fadeOut {
+ /* line 22, ../scss/include/_animations.scss */
+ 0% {
+ opacity: 1;
+ }
+ /* line 25, ../scss/include/_animations.scss */
+ 100% {
+ opacity: 1;
+ }
+}
+/* Disolve */
+/* line 34, ../scss/include/_animations.scss */
+#jqt .dissolve.in {
+ -webkit-animation-name: dissolveIn;
+}
+/* line 38, ../scss/include/_animations.scss */
+#jqt .dissolve.out {
+ -webkit-animation-name: dissolveOut;
+}
+@-webkit-keyframes dissolveIn {
+ /* line 43, ../scss/include/_animations.scss */
+ 0% {
+ opacity: 0;
+ }
+ /* line 46, ../scss/include/_animations.scss */
+ 100% {
+ opacity: 1;
+ }
+}
+@-webkit-keyframes dissolveOut {
+ /* line 52, ../scss/include/_animations.scss */
+ 0% {
+ opacity: 1;
+ }
+ /* line 55, ../scss/include/_animations.scss */
+ 100% {
+ opacity: 0;
+ }
+}
+/* #Popin' */
+/* line 64, ../scss/include/_animations.scss */
+#jqt .pop.in {
+ -webkit-animation-name: popIn;
+}
+/* line 68, ../scss/include/_animations.scss */
+#jqt .pop.out {
+ -webkit-animation-name: popOut;
+}
+@-webkit-keyframes popIn {
+ /* line 73, ../scss/include/_animations.scss */
+ 0% {
+ -webkit-transform: scale(0.2);
+ opacity: 0;
+ }
+ /* line 77, ../scss/include/_animations.scss */
+ 100% {
+ -webkit-transform: scale(1);
+ opacity: 1;
+ }
+}
+@-webkit-keyframes popOut {
+ /* line 84, ../scss/include/_animations.scss */
+ 0% {
+ -webkit-transform: scale(1);
+ opacity: 1;
+ }
+ /* line 88, ../scss/include/_animations.scss */
+ 100% {
+ -webkit-transform: scale(0.2);
+ opacity: 0;
+ }
+}
+/* Slide Left */
+/* line 98, ../scss/include/_animations.scss */
+#jqt .slideleft.in {
+ -webkit-animation-name: slideLeftIn;
+}
+/* line 102, ../scss/include/_animations.scss */
+#jqt .slideleft.out {
+ -webkit-animation-name: slideLeftOut;
+}
+@-webkit-keyframes slideLeftIn {
+ /* line 107, ../scss/include/_animations.scss */
+ 0% {
+ -webkit-transform: translateX(100%);
+ }
+ /* line 110, ../scss/include/_animations.scss */
+ 100% {
+ -webkit-transform: translateX(0);
+ }
+}
+@-webkit-keyframes slideLeftOut {
+ /* line 116, ../scss/include/_animations.scss */
+ 0% {
+ -webkit-transform: translateX(0px);
+ }
+ /* line 119, ../scss/include/_animations.scss */
+ 100% {
+ -webkit-transform: translateX(-100%);
+ }
+}
+/* Slide Right */
+/* line 128, ../scss/include/_animations.scss */
+#jqt .slideright.in {
+ -webkit-animation-name: slideRightIn;
+}
+/* line 132, ../scss/include/_animations.scss */
+#jqt .slideright.out {
+ -webkit-animation-name: slideRightOut;
+}
+@-webkit-keyframes slideRightIn {
+ /* line 137, ../scss/include/_animations.scss */
+ 0% {
+ -webkit-transform: translateX(-100%);
+ }
+ /* line 140, ../scss/include/_animations.scss */
+ 100% {
+ -webkit-transform: translateX(0);
+ }
+}
+@-webkit-keyframes slideRightOut {
+ /* line 146, ../scss/include/_animations.scss */
+ 0% {
+ -webkit-transform: translateX(0);
+ }
+ /* line 149, ../scss/include/_animations.scss */
+ 100% {
+ -webkit-transform: translateX(100%);
+ }
+}
+/* Slide Up */
+/* line 158, ../scss/include/_animations.scss */
+#jqt .slideup.in {
+ z-index: 10;
+ -webkit-animation-name: slideUpIn;
+}
+/* line 162, ../scss/include/_animations.scss */
+#jqt .slideup.out {
+ z-index: 0;
+ -webkit-animation-name: slideUpOut;
+}
+@-webkit-keyframes slideUpIn {
+ /* line 168, ../scss/include/_animations.scss */
+ 0% {
+ -webkit-transform: translateY(100%);
+ }
+ /* line 171, ../scss/include/_animations.scss */
+ 100% {
+ -webkit-transform: translateY(0);
+ }
+}
+@-webkit-keyframes slideUpOut {
+ /* line 177, ../scss/include/_animations.scss */
+ 0% {
+ -webkit-transform: translateY(0);
+ }
+ /* line 180, ../scss/include/_animations.scss */
+ 100% {
+ -webkit-transform: translateY(0);
+ }
+}
+/* Slide Down */
+/* line 189, ../scss/include/_animations.scss */
+#jqt .slidedown.in {
+ z-index: 0;
+ -webkit-animation-name: slideDownIn;
+}
+/* line 193, ../scss/include/_animations.scss */
+#jqt .slidedown.out {
+ z-index: 10;
+ -webkit-animation-name: slideDownOut;
+}
+@-webkit-keyframes slideDownIn {
+ /* line 199, ../scss/include/_animations.scss */
+ 0% {
+ -webkit-transform: translateY(0);
+ }
+ /* line 202, ../scss/include/_animations.scss */
+ 100% {
+ -webkit-transform: translateY(0);
+ }
+}
+@-webkit-keyframes slideDownOut {
+ /* line 208, ../scss/include/_animations.scss */
+ 0% {
+ -webkit-transform: translateY(0);
+ }
+ /* line 211, ../scss/include/_animations.scss */
+ 100% {
+ -webkit-transform: translateY(100%);
+ }
+}
+/* Flip Left */
+/* line 220, ../scss/include/_animations.scss */
+#jqt .flipleft {
+ -webkit-backface-visibility: hidden;
+}
+/* line 224, ../scss/include/_animations.scss */
+#jqt .flipleft.in {
+ -webkit-animation-name: flipLeftIn;
+}
+/* line 228, ../scss/include/_animations.scss */
+#jqt .flipleft.out {
+ -webkit-animation-name: flipLeftOut;
+}
+@-webkit-keyframes flipLeftIn {
+ /* line 233, ../scss/include/_animations.scss */
+ 0% {
+ -webkit-transform: rotateY(180deg) scale(0.8);
+ }
+ /* line 236, ../scss/include/_animations.scss */
+ 100% {
+ -webkit-transform: rotateY(0deg) scale(1);
+ }
+}
+@-webkit-keyframes flipLeftOut {
+ /* line 242, ../scss/include/_animations.scss */
+ 0% {
+ -webkit-transform: rotateY(0deg) scale(1);
+ }
+ /* line 245, ../scss/include/_animations.scss */
+ 100% {
+ -webkit-transform: rotateY(-180deg) scale(0.8);
+ }
+}
+/* Flip Right */
+/* line 254, ../scss/include/_animations.scss */
+#jqt .flipright {
+ -webkit-backface-visibility: hidden;
+}
+/* line 258, ../scss/include/_animations.scss */
+#jqt .flipright.in {
+ -webkit-animation-name: flipRightIn;
+}
+/* line 262, ../scss/include/_animations.scss */
+#jqt .flipright.out {
+ -webkit-animation-name: flipRightOut;
+}
+@-webkit-keyframes flipRightIn {
+ /* line 267, ../scss/include/_animations.scss */
+ 0% {
+ -webkit-transform: rotateY(-180deg) scale(0.8);
+ }
+ /* line 270, ../scss/include/_animations.scss */
+ 100% {
+ -webkit-transform: rotateY(0deg) scale(1);
+ }
+}
+@-webkit-keyframes flipRightOut {
+ /* line 276, ../scss/include/_animations.scss */
+ 0% {
+ -webkit-transform: rotateY(0deg) scale(1);
+ }
+ /* line 279, ../scss/include/_animations.scss */
+ 100% {
+ -webkit-transform: rotateY(180deg) scale(0.8);
+ }
+}
+/* Swap Right */
+/* line 288, ../scss/include/_animations.scss */
+#jqt .swapright {
+ -webkit-animation-duration: .7s;
+ -webkit-transform: perspective(800);
+ -webkit-animation-timing-function: ease-out;
+}
+/* line 293, ../scss/include/_animations.scss */
+#jqt .swapright.in {
+ -webkit-animation-name: swapRightIn;
+}
+/* line 296, ../scss/include/_animations.scss */
+#jqt .swapright.out {
+ -webkit-animation-name: swapRightOut;
+}
+@-webkit-keyframes swapRightIn {
+ /* line 301, ../scss/include/_animations.scss */
+ 0% {
+ -webkit-transform: translate3d(0px, 0px, -800px) rotateY(70deg);
+ opacity: 0;
+ }
+ /* line 305, ../scss/include/_animations.scss */
+ 35% {
+ -webkit-transform: translate3d(-180px, 0px, -400px) rotateY(20deg);
+ opacity: 1;
+ }
+ /* line 309, ../scss/include/_animations.scss */
+ 100% {
+ -webkit-transform: translate3d(0px, 0px, 0px) rotateY(0deg);
+ opacity: 1;
+ }
+}
+@-webkit-keyframes swapRightOut {
+ /* line 316, ../scss/include/_animations.scss */
+ 0% {
+ -webkit-transform: translate3d(0px, 0px, 0px) rotateY(0deg);
+ opacity: 1;
+ }
+ /* line 320, ../scss/include/_animations.scss */
+ 35% {
+ -webkit-transform: translate3d(180px, 0px, -400px) rotateY(-20deg);
+ opacity: .5;
+ }
+ /* line 324, ../scss/include/_animations.scss */
+ 100% {
+ -webkit-transform: translate3d(0px, 0px, -800px) rotateY(-70deg);
+ opacity: 0;
+ }
+}
+/* Swap Left */
+/* line 332, ../scss/include/_animations.scss */
+#jqt .swapleft {
+ -webkit-animation-duration: .7s;
+ -webkit-transform: perspective(800);
+ -webkit-animation-timing-function: ease-out;
+}
+/* line 337, ../scss/include/_animations.scss */
+#jqt .swapleft.in {
+ -webkit-animation-name: swapLeftIn;
+}
+/* line 340, ../scss/include/_animations.scss */
+#jqt .swapleft.out {
+ -webkit-animation-name: swapLeftOut;
+}
+@-webkit-keyframes swapLeftIn {
+ /* line 345, ../scss/include/_animations.scss */
+ 0% {
+ -webkit-transform: translate3d(0px, 0px, -800px) rotateY(-70deg);
+ opacity: 0;
+ }
+ /* line 349, ../scss/include/_animations.scss */
+ 35% {
+ -webkit-transform: translate3d(180px, 0px, -400px) rotateY(-20deg);
+ opacity: 1;
+ }
+ /* line 353, ../scss/include/_animations.scss */
+ 100% {
+ opacity: 1;
+ -webkit-transform: translate3d(0px, 0px, 0px) rotateY(0deg);
+ }
+}
+@-webkit-keyframes swapLeftOut {
+ /* line 360, ../scss/include/_animations.scss */
+ 0% {
+ -webkit-transform: translate3d(0px, 0px, 0px) rotateY(0deg);
+ opacity: 1;
+ }
+ /* line 364, ../scss/include/_animations.scss */
+ 35% {
+ -webkit-transform: translate3d(-180px, 0px, -400px) rotateY(20deg);
+ opacity: .5;
+ }
+ /* line 368, ../scss/include/_animations.scss */
+ 100% {
+ -webkit-transform: translate3d(0px, 0px, -800px) rotateY(70deg);
+ opacity: 0;
+ }
+}
+/* Cube Left */
+/* line 382, ../scss/include/_animations.scss */
+#jqt .cubeleft.in,
+#jqt .cubeleft.out,
+#jqt .cuberight.in,
+#jqt .cuberight.out {
+ -webkit-animation-duration: .6s;
+ -webkit-transform: perspective(800);
+}
+/* line 389, ../scss/include/_animations.scss */
+#jqt .cubeleft.in {
+ -webkit-transform-origin: 0% 50%;
+ -webkit-animation-name: cubeLeftIn;
+}
+/* line 394, ../scss/include/_animations.scss */
+#jqt .cubeleft.out {
+ -webkit-transform-origin: 100% 50%;
+ -webkit-animation-name: cubeLeftOut;
+}
+@-webkit-keyframes cubeLeftIn {
+ /* line 400, ../scss/include/_animations.scss */
+ 0% {
+ -webkit-transform: rotateY(90deg) translateZ(320px);
+ opacity: .5;
+ }
+ /* line 404, ../scss/include/_animations.scss */
+ 100% {
+ -webkit-transform: rotateY(0deg) translateZ(0) translateX(0);
+ opacity: 1;
+ }
+}
+@-webkit-keyframes cubeLeftOut {
+ /* line 411, ../scss/include/_animations.scss */
+ 0% {
+ -webkit-transform: rotateY(0deg) translateZ(0) translateX(0);
+ opacity: 1;
+ }
+ /* line 415, ../scss/include/_animations.scss */
+ 100% {
+ -webkit-transform: rotateY(-90deg) translateZ(320px);
+ opacity: .5;
+ }
+}
+/* Cube Right */
+/* line 423, ../scss/include/_animations.scss */
+#jqt .cuberight.in {
+ -webkit-transform-origin: 100% 50%;
+ -webkit-animation-name: cubeRightIn;
+}
+/* line 428, ../scss/include/_animations.scss */
+#jqt .cuberight.out {
+ -webkit-transform-origin: 0% 50%;
+ -webkit-animation-name: cubeRightOut;
+}
+@-webkit-keyframes cubeRightIn {
+ /* line 434, ../scss/include/_animations.scss */
+ 0% {
+ -webkit-transform: rotateY(-90deg) translateZ(320px);
+ opacity: .5;
+ }
+ /* line 438, ../scss/include/_animations.scss */
+ 100% {
+ -webkit-transform: rotateY(0deg) translateZ(0) translateX(0);
+ opacity: 1;
+ }
+}
+@-webkit-keyframes cubeRightOut {
+ /* line 445, ../scss/include/_animations.scss */
+ 0% {
+ -webkit-transform: rotateY(0deg) translateZ(0) translateX(0);
+ opacity: 1;
+ }
+ /* line 449, ../scss/include/_animations.scss */
+ 100% {
+ -webkit-transform: rotateY(90deg) translateZ(320px);
+ opacity: .5;
+ }
+}
+/* line 5, ../scss/include/_skeleton.scss */
+body {
+ background: black;
+}
+/* line 9, ../scss/include/_skeleton.scss */
+.base-chevron,
+#jqt ul li.arrow:after,
+#jqt ul li.forward:after {
+ content: '›';
+ width: 22px;
+ height: 100%;
+ vertical-align: middle;
+ font-size: 30px;
+ line-height: 38px;
+ font-family: Futura, "Futura Condensed", Helvetica, Arial, sans-serif;
+ font-weight: bold;
+ filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=60);
+ opacity: 0.6;
+ position: absolute;
+ right: 0;
+ top: 0;
+ pointer-events: none;
+ z-index: 10;
+}
+/* line 26, ../scss/include/_skeleton.scss */
+.base-flatlists,
+#jqt ul.metal,
+#jqt ul.edgetoedge,
+#jqt ul.plastic {
+ margin: 0;
+ padding: 0;
+ border-width: 0 0 0 1px;
+ -webkit-border-radius: 0;
+ border-radius: 0;
+}
+/* line 35, ../scss/include/_skeleton.scss */
+#jqt h1,
+#jqt h2 {
+ font: bold 18px "Helvetica Neue", Helvetica;
+ margin: 10px 20px 6px;
+ color: #bbbcbe;
+ text-shadow: #3c3d3e 0 -1px 0;
+}
+/* line 41, ../scss/include/_skeleton.scss */
+#jqt .toolbar {
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+ -webkit-box-shadow: rgba(0, 0, 0, 0.4) 0 1px 6px;
+ box-shadow: rgba(0, 0, 0, 0.4) 0 1px 6px;
+ border-bottom: 1px solid black;
+ z-index: 10;
+ position: relative;
+ padding: 10px;
+ height: 44px;
+}
+/* line 52, ../scss/include/_skeleton.scss */
+#jqt .toolbar > h1 {
+ position: absolute;
+ overflow: hidden;
+ left: 50%;
+ bottom: 9px;
+ margin: 1px 0 0 -75px;
+ width: 150px;
+ font-size: 20px;
+ font-weight: bold;
+ line-height: 1.3em;
+ text-align: center;
+ text-overflow: ellipsis;
+ white-space: nowrap;
+ color: white;
+ text-shadow: #161717 0 -1px 0;
+}
+/* line 71, ../scss/include/_skeleton.scss */
+#jqt.black-translucent .toolbar {
+ padding-top: 30px;
+ height: 64px;
+}
+/* line 75, ../scss/include/_skeleton.scss */
+#jqt.landscape .toolbar > h1 {
+ margin-left: -125px;
+ width: 250px;
+}
+/* line 80, ../scss/include/_skeleton.scss */
+#jqt .button,
+#jqt .back,
+#jqt .cancel,
+#jqt .add {
+ position: absolute;
+ overflow: hidden;
+ width: auto;
+ height: 30px;
+ font-family: inherit;
+ font-size: 12px;
+ font-weight: bold;
+ line-height: 30px;
+ text-overflow: ellipsis;
+ text-decoration: none;
+ white-space: nowrap;
+ background: none;
+ bottom: 6px;
+ right: 10px;
+ margin: 0;
+ padding: 0 10px;
+ color: #e2e3e3;
+ text-shadow: #000000 0 -1px 0;
+ -webkit-box-shadow: rgba(255, 255, 255, 0.2) 0 1px 0, rgba(0, 0, 0, 0.2) 0 1px 2px inset;
+ box-shadow: rgba(255, 255, 255, 0.2) 0 1px 0, rgba(0, 0, 0, 0.2) 0 1px 2px inset;
+ border: 1px solid black;
+ -webkit-border-radius: 5px;
+ border-radius: 5px;
+ background-image: none;
+ background-color: #0a0a0a;
+ background-image: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, #2f3031), color-stop(50%, #161717), color-stop(51%, #0a0a0a), color-stop(100%, #000000));
+ background-image: -webkit-linear-gradient(top, #2f3031, #161717 50%, #0a0a0a 51%, #000000);
+ background-image: linear-gradient(top, #2f3031, #161717 50%, #0a0a0a 51%, #000000);
+}
+/* line 107, ../scss/include/_skeleton.scss */
+#jqt .button.active,
+#jqt .back.active,
+#jqt .cancel.active,
+#jqt .add.active {
+ border-color: black;
+ background-image: none;
+ background-color: black;
+ background-image: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, #262627), color-stop(50%, #0d0d0d), color-stop(51%, #000000), color-stop(100%, #000000));
+ background-image: -webkit-linear-gradient(top, #262627, #0d0d0d 50%, #000000 51%, #000000);
+ background-image: linear-gradient(top, #262627, #0d0d0d 50%, #000000 51%, #000000);
+ color: #d8d9d9;
+ text-shadow: #000000 0 -1px 0;
+}
+/* line 114, ../scss/include/_skeleton.scss */
+#jqt .back {
+ max-width: 60px;
+ margin-left: 15px;
+ overflow: visible;
+ padding-left: 5px;
+}
+/* line 121, ../scss/include/_skeleton.scss */
+#jqt .back:after,
+#jqt .back:before {
+ content: '';
+ position: absolute;
+ width: 20px;
+ height: 20px;
+ top: 1px;
+ left: 1px;
+ -webkit-transform: rotate(45deg) translate3d(0.2px, 0, 0);
+ transform: rotate(45deg) translate3d(0.2px, 0, 0);
+ -webkit-transform-origin: 0 0;
+ transform-origin: 0 0;
+ background-image: none;
+ background-color: #0a0a0a;
+ background-image: -webkit-gradient(linear, 0% 0%, 100% 100%, color-stop(0%, #2f3031), color-stop(50%, #161717), color-stop(51%, #0a0a0a), color-stop(100%, #000000));
+ background-image: -webkit-linear-gradient(top left, #2f3031, #161717 50%, #0a0a0a 51%, #000000);
+ background-image: linear-gradient(top left, #2f3031, #161717 50%, #0a0a0a 51%, #000000);
+ background-size: 100% 98%;
+ -webkit-border-radius: 0 0 0 2px;
+ border-radius: 0 0 0 2px;
+ -webkit-mask-image: -webkit-linear-gradient(45deg, #000000, #000000 15px, rgba(0, 0, 0, 0) 15px);
+ -webkit-mask-image: -webkit-gradient(linear, left bottom, right top, from(#000000), color-stop(50%, #000000), color-stop(50%, rgba(0, 0, 0, 0)), to(rgba(0, 0, 0, 0)));
+ -webkit-mask-clip: border-box;
+ -webkit-background-clip: content-box;
+}
+/* line 149, ../scss/include/_skeleton.scss */
+#jqt .back:after {
+ -webkit-box-shadow: rgba(0, 0, 0, 0.2) 1px 0 0 inset, rgba(0, 0, 0, 0.2) 0 -1px 0 inset;
+ box-shadow: rgba(0, 0, 0, 0.2) 1px 0 0 inset, rgba(0, 0, 0, 0.2) 0 -1px 0 inset;
+}
+/* line 152, ../scss/include/_skeleton.scss */
+#jqt .back:before {
+ margin-left: -1px;
+ background: black none;
+}
+/* line 157, ../scss/include/_skeleton.scss */
+#jqt .back.active:after {
+ background-image: none;
+ background-color: black;
+ background-image: -webkit-gradient(linear, 0% 0%, 100% 100%, color-stop(0%, #262627), color-stop(50%, #0d0d0d), color-stop(51%, #000000), color-stop(100%, #000000));
+ background-image: -webkit-linear-gradient(left top, #262627, #0d0d0d 50%, #000000 51%, #000000);
+ background-image: linear-gradient(left top, #262627, #0d0d0d 50%, #000000 51%, #000000);
+}
+/* line 160, ../scss/include/_skeleton.scss */
+#jqt .back.active:before {
+ background-color: black;
+}
+/* line 166, ../scss/include/_skeleton.scss */
+#jqt .blueButton {
+ background-image: #2f7ce3, glossy;
+ color: white;
+ text-shadow: #1a63c5 0 -1px 0;
+}
+/* line 170, ../scss/include/_skeleton.scss */
+#jqt .whiteButton,
+#jqt .grayButton,
+#jqt .redButton,
+#jqt .blueButton,
+#jqt .greenButton {
+ display: block;
+ font-size: 20px;
+ font-weight: bold;
+ margin: 10px 20px;
+ padding: 10px;
+ text-align: center;
+ text-decoration: inherit;
+ -webkit-border-radius: 8px;
+ border-radius: 8px;
+ -webkit-box-shadow: rgba(0, 0, 0, 0.4) 0 1px 3px, rgba(0, 0, 0, 0.4) 0 0 0 5px, rgba(255, 255, 255, 0.3) 0 1px 0 5px;
+ box-shadow: rgba(0, 0, 0, 0.4) 0 1px 3px, rgba(0, 0, 0, 0.4) 0 0 0 5px, rgba(255, 255, 255, 0.3) 0 1px 0 5px;
+}
+/* line 185, ../scss/include/_skeleton.scss */
+#jqt .whiteButton.active,
+#jqt .whiteButton:active,
+#jqt .grayButton.active,
+#jqt .grayButton:active,
+#jqt .redButton.active,
+#jqt .redButton:active,
+#jqt .blueButton.active,
+#jqt .blueButton:active,
+#jqt .greenButton.active,
+#jqt .greenButton:active {
+ background-image: none;
+ background-color: #3c8101;
+ background-image: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, #5fcd01), color-stop(50%, #479b01), color-stop(51%, #3c8101), color-stop(100%, #306801));
+ background-image: -webkit-linear-gradient(top, #5fcd01, #479b01 50%, #3c8101 51%, #306801);
+ background-image: linear-gradient(top, #5fcd01, #479b01 50%, #3c8101 51%, #306801);
+ color: white;
+ text-shadow: #244f00 0 -1px 0;
+}
+/* line 191, ../scss/include/_skeleton.scss */
+#jqt .whiteButton {
+ background-image: none;
+ background-color: #eeeeee;
+ background-image: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, #ffffff), color-stop(50%, #fbfbfb), color-stop(51%, #eeeeee), color-stop(100%, #e1e1e1));
+ background-image: -webkit-linear-gradient(top, #ffffff, #fbfbfb 50%, #eeeeee 51%, #e1e1e1);
+ background-image: linear-gradient(top, #ffffff, #fbfbfb 50%, #eeeeee 51%, #e1e1e1);
+ color: #151515;
+ text-shadow: white 0 1px 0;
+}
+/* line 195, ../scss/include/_skeleton.scss */
+#jqt .grayButton {
+ background-image: none;
+ background-color: #444444;
+ background-image: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, #6a6a6a), color-stop(50%, #515151), color-stop(51%, #444444), color-stop(100%, #373737));
+ background-image: -webkit-linear-gradient(top, #6a6a6a, #515151 50%, #444444 51%, #373737);
+ background-image: linear-gradient(top, #6a6a6a, #515151 50%, #444444 51%, #373737);
+ color: white;
+ text-shadow: #2b2b2b 0 -1px 0;
+}
+/* line 200, ../scss/include/_skeleton.scss */
+#jqt .redButton {
+ background-image: none;
+ background-color: #d83b38;
+ background-image: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, #e57a78), color-stop(50%, #dc504d), color-stop(51%, #d83b38), color-stop(100%, #ce2c28));
+ background-image: -webkit-linear-gradient(top, #e57a78, #dc504d 50%, #d83b38 51%, #ce2c28);
+ background-image: linear-gradient(top, #e57a78, #dc504d 50%, #d83b38 51%, #ce2c28);
+ color: white;
+ text-shadow: #b92724 0 -1px 0;
+}
+/* line 204, ../scss/include/_skeleton.scss */
+#jqt .redButton.active,
+#jqt .redButton:active {
+ background-image: none;
+ background-color: #c12926;
+ background-image: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, #de5856), color-stop(50%, #d52e2b), color-stop(51%, #c12926), color-stop(100%, #ac2422));
+ background-image: -webkit-linear-gradient(top, #de5856, #d52e2b 50%, #c12926 51%, #ac2422);
+ background-image: linear-gradient(top, #de5856, #d52e2b 50%, #c12926 51%, #ac2422);
+ color: white;
+ text-shadow: #97201e 0 -1px 0;
+}
+/* line 211, ../scss/include/_skeleton.scss */
+#jqt .greenButton {
+ background-image: none;
+ background-color: #53b401;
+ background-image: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, #76fe04), color-stop(50%, #5fcd01), color-stop(51%, #53b401), color-stop(100%, #479b01));
+ background-image: -webkit-linear-gradient(top, #76fe04, #5fcd01 50%, #53b401 51%, #479b01);
+ background-image: linear-gradient(top, #76fe04, #5fcd01 50%, #53b401 51%, #479b01);
+ color: white;
+ text-shadow: #3c8101 0 -1px 0;
+}
+/* line 216, ../scss/include/_skeleton.scss */
+#jqt .leftButton,
+#jqt .cancel,
+#jqt .back {
+ left: 6px;
+ right: auto;
+}
+/* line 221, ../scss/include/_skeleton.scss */
+#jqt .add {
+ font-size: 24px;
+ line-height: 24px;
+ font-weight: bold;
+}
+/* line 229, ../scss/include/_skeleton.scss */
+#jqt ul {
+ padding: 0;
+ margin: 5px 10px 10px 10px;
+ -webkit-margin-collapse: separate;
+}
+/* line 231, ../scss/include/_skeleton.scss */
+#jqt ul,
+#jqt ul.individual li {
+ background-color: #555658;
+ color: #d5d6d7;
+ text-shadow: #3c3d3e 0 -1px 0;
+ border: 1px solid #2f3031;
+ font: bold 18px "Helvetica Neue", Helvetica;
+}
+/* line 240, ../scss/include/_skeleton.scss */
+#jqt ul:first-child {
+ margin-top: 15px;
+}
+/* line 246, ../scss/include/_skeleton.scss */
+#jqt ul li {
+ border-top: 1px solid #48494b;
+ list-style-type: none;
+ overflow: hidden;
+ padding: 10px;
+ -webkit-transform: translate3d(0, 0, 0);
+ /* expensive way to avoid flickr */
+
+}
+/* line 253, ../scss/include/_skeleton.scss */
+#jqt ul li a {
+ text-decoration: none;
+ text-overflow: ellipsis;
+ white-space: nowrap;
+ overflow: hidden;
+ display: block;
+ padding: 10px;
+ margin: -10px;
+ -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
+ -webkit-transform: translateZ(0);
+ color: white;
+ text-shadow: #3c3d3e 0 -1px 0;
+}
+/* line 265, ../scss/include/_skeleton.scss */
+#jqt ul li a.active {
+ background-image: none;
+ background-color: #53b401;
+ -webkit-box-shadow: #5cc801 0 1px 0px inset;
+ box-shadow: #5cc801 0 1px 0px inset;
+ color: white;
+ text-shadow: #3c8101 0 -1px 0;
+}
+/* line 270, ../scss/include/_skeleton.scss */
+#jqt ul li a.active small {
+ color: #a0fe50;
+ text-shadow: #000000 0 -1px 0;
+}
+/* line 271, ../scss/include/_skeleton.scss */
+#jqt ul li a.active small.counter {
+ background-color: #306801;
+}
+/* line 280, ../scss/include/_skeleton.scss */
+#jqt ul li small {
+ color: #53b401;
+ font: 16px "Helvetica Neue", Helvetica;
+ text-align: right;
+ text-overflow: ellipsis;
+ white-space: nowrap;
+ overflow: hidden;
+ display: block;
+ width: 23%;
+ position: relative;
+ z-index: 20;
+ float: right;
+ line-height: 16px;
+ padding: 2px 8px 4px 8px;
+}
+/* line 295, ../scss/include/_skeleton.scss */
+#jqt ul li small.counter {
+ background: #2f3031;
+ color: #949698;
+ text-shadow: #0a0a0a 0 -1px 0;
+ z-index: 10;
+ font-size: 16px;
+ font-weight: bold;
+ -webkit-border-radius: 3px;
+ border-radius: 3px;
+ display: block;
+ width: auto;
+}
+/* line 311, ../scss/include/_skeleton.scss */
+#jqt ul li ::-webkit-input-placeholder {
+ color: #949698;
+ text-shadow: #3c3d3e 0 -1px 0;
+}
+/* line 322, ../scss/include/_skeleton.scss */
+#jqt ul li input[type="text"],
+#jqt ul li input[type="password"],
+#jqt ul li input[type="tel"],
+#jqt ul li input[type="number"],
+#jqt ul li input[type="search"],
+#jqt ul li input[type="email"],
+#jqt ul li input[type="url"],
+#jqt ul li textarea,
+#jqt ul li select {
+ color: white;
+ text-shadow: #3c3d3e 0 -1px 0;
+ background: transparent url("data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==");
+ border: 0;
+ font: normal 17px "Helvetica Neue", Helvetica;
+ padding: 0;
+ display: inline-block;
+ margin-left: 0px;
+ width: 100%;
+ -webkit-appearance: textarea;
+}
+/* line 333, ../scss/include/_skeleton.scss */
+#jqt ul li textarea {
+ height: 120px;
+ padding: 0;
+ text-indent: -2px;
+}
+/* line 338, ../scss/include/_skeleton.scss */
+#jqt ul li input[type="checkbox"],
+#jqt ul li input[type="radio"] {
+ margin: 0;
+ padding: 10px;
+}
+/* line 342, ../scss/include/_skeleton.scss */
+#jqt ul li input[type="checkbox"]:after,
+#jqt ul li input[type="radio"]:after {
+ content: attr(title);
+ position: absolute;
+ display: block;
+ width: 0;
+ left: 21px;
+ top: 12px;
+ font-family: "Helvetica Neue", Helvetica;
+ font-size: 17px;
+ line-height: 21px;
+ width: 246px;
+ margin: 0 0 0 17px;
+ color: white;
+ text-shadow: #3c3d3e 0 -1px 0;
+}
+/* line 355, ../scss/include/_skeleton.scss */
+#jqt ul li input[type='submit'] {
+ -webkit-border-radius: 4px;
+ border-radius: 4px;
+ background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#eeeeee), to(#9c9ea0));
+ border: 1px outset #aaa;
+ display: block;
+ font-size: inherit;
+ font-weight: inherit;
+ padding: 10px;
+}
+/* line 368, ../scss/include/_skeleton.scss */
+#jqt ul li.arrow small,
+#jqt ul li.forward small {
+ margin-right: 24px;
+}
+/* line 380, ../scss/include/_skeleton.scss */
+#jqt ul li.forward:before {
+ content: "";
+ position: absolute;
+ display: block;
+ top: 50%;
+ right: 6px;
+ margin-top: -12px;
+ width: 24px;
+ height: 24px;
+ -webkit-border-radius: 12px;
+ border-radius: 12px;
+ background-image: none;
+ background-color: #53b401;
+ background-image: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, #76fe04), color-stop(50%, #5fcd01), color-stop(51%, #53b401), color-stop(100%, #479b01));
+ background-image: -webkit-linear-gradient(top, #76fe04, #5fcd01 50%, #53b401 51%, #479b01);
+ background-image: linear-gradient(top, #76fe04, #5fcd01 50%, #53b401 51%, #479b01);
+ border: 2px solid #fff;
+ -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.3);
+ box-shadow: 0 1px 2px rgba(0, 0, 0, 0.3);
+ -webkit-box-sizing: border-box;
+ padding: 0;
+ z-index: 10;
+ line-height: 0;
+ pointer-events: none;
+}
+/* line 395, ../scss/include/_skeleton.scss */
+#jqt ul li.forward:after {
+ color: white;
+ text-shadow: #3c8101 0 -1px 0;
+ filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=100);
+ opacity: 1;
+ font-size: 24px;
+}
+/* line 404, ../scss/include/_skeleton.scss */
+#jqt ul.rounded,
+#jqt ul.individual li {
+ -webkit-box-shadow: rgba(255, 255, 255, 0.15) 0 1px 0;
+ box-shadow: rgba(255, 255, 255, 0.15) 0 1px 0;
+ border: 1px solid #2f3031;
+}
+/* line 409, ../scss/include/_skeleton.scss */
+#jqt ul.rounded {
+ -webkit-border-radius: 8px;
+ border-radius: 8px;
+}
+/* line 412, ../scss/include/_skeleton.scss */
+#jqt ul.rounded li:first-child,
+#jqt ul.rounded li:first-child a {
+ border-top: 0;
+ -webkit-border-top-left-radius: 8px;
+ border-top-left-radius: 8px;
+ -webkit-border-top-right-radius: 8px;
+ border-top-right-radius: 8px;
+}
+/* line 416, ../scss/include/_skeleton.scss */
+#jqt ul.rounded li:last-child,
+#jqt ul.rounded li:last-child a {
+ -webkit-border-bottom-left-radius: 8px;
+ border-bottom-left-radius: 8px;
+ -webkit-border-bottom-right-radius: 8px;
+ border-bottom-right-radius: 8px;
+}
+/* line 422, ../scss/include/_skeleton.scss */
+#jqt ul.form li {
+ padding: 7px 10px;
+}
+/* line 425, ../scss/include/_skeleton.scss */
+#jqt ul.form li.error {
+ border: 2px solid red;
+}
+/* line 428, ../scss/include/_skeleton.scss */
+#jqt ul.form li.error + #jqt ul.form li.error {
+ border-top: 0;
+}
+/* line 438, ../scss/include/_skeleton.scss */
+#jqt ul.metal li {
+ background-image: none;
+ border-top: 1px solid #fff;
+ border-bottom: 1px solid #666;
+ font-size: 26px;
+}
+/* line 445, ../scss/include/_skeleton.scss */
+#jqt ul.metal li a {
+ line-height: 26px;
+ margin: 0;
+ padding: 13px 0;
+}
+/* line 451, ../scss/include/_skeleton.scss */
+#jqt ul.metal li em {
+ display: block;
+ font-size: 14px;
+ font-style: normal;
+ width: 50%;
+ line-height: 14px;
+}
+/* line 459, ../scss/include/_skeleton.scss */
+#jqt ul.metal li small {
+ float: right;
+ position: relative;
+ margin-top: 10px;
+ font-weight: bold;
+}
+/* line 473, ../scss/include/_skeleton.scss */
+#jqt ul.edgetoedge li {
+ font-size: 20px;
+}
+/* line 476, ../scss/include/_skeleton.scss */
+#jqt ul.edgetoedge li:first-child {
+ border-top: 0;
+}
+/* line 480, ../scss/include/_skeleton.scss */
+#jqt ul.edgetoedge li.sep {
+ font-size: 16px;
+ padding: 2px 10px;
+}
+/* line 485, ../scss/include/_skeleton.scss */
+#jqt ul.edgetoedge li em {
+ font-weight: normal;
+ font-style: normal;
+}
+/* line 494, ../scss/include/_skeleton.scss */
+#jqt ul.plastic {
+ font-size: 18px;
+}
+/* line 498, ../scss/include/_skeleton.scss */
+#jqt ul.plastic li {
+ border-width: 1px 0;
+ border-style: solid;
+ background-image: none;
+ background-color: #2a2b2c;
+ border-top-color: #2f3031;
+ border-bottom-color: #232324;
+}
+/* line 506, ../scss/include/_skeleton.scss */
+#jqt ul.plastic li:nth-child(odd) {
+ background-image: none;
+ background-color: #2f3031;
+}
+/* line 510, ../scss/include/_skeleton.scss */
+#jqt ul.plastic li a.active.loading {
+ background-image: url(img/loading.gif);
+ background-position: 95% center;
+ background-repeat: no-repeat;
+}
+/* line 515, ../scss/include/_skeleton.scss */
+#jqt ul.plastic li small {
+ color: #949698;
+ font-size: 13px;
+ font-weight: bold;
+ text-transform: uppercase;
+}
+/* line 525, ../scss/include/_skeleton.scss */
+#jqt ul.individual {
+ border: 0;
+ background: none;
+ clear: both;
+ overflow: hidden;
+}
+/* line 531, ../scss/include/_skeleton.scss */
+#jqt ul.individual li {
+ font-size: 14px;
+ text-align: center;
+ -webkit-border-radius: 8px;
+ border-radius: 8px;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+ width: 48%;
+ float: left;
+ display: block;
+ padding: 11px 10px 14px 10px;
+}
+/* line 541, ../scss/include/_skeleton.scss */
+#jqt ul.individual li + li {
+ float: right;
+}
+/* line 546, ../scss/include/_skeleton.scss */
+#jqt ul.individual a {
+ line-height: 16px;
+ margin: -11px -10px -14px -10px;
+ padding: 11px 10px 14px 10px;
+ -webkit-border-radius: 8px;
+ border-radius: 8px;
+}
+/* line 555, ../scss/include/_skeleton.scss */
+#jqt .toggle {
+ width: 94px;
+ position: relative;
+ height: 27px;
+ display: block;
+ overflow: hidden;
+ float: right;
+}
+/* line 563, ../scss/include/_skeleton.scss */
+#jqt .toggle input[type="checkbox"] {
+ margin: 0;
+ -webkit-border-radius: 5px;
+ border-radius: 5px;
+ height: 27px;
+ overflow: hidden;
+ width: 149px;
+ border: 0;
+ -webkit-transition: left 0.15s ease-in-out;
+ transition: left 0.15s ease-in-out;
+ position: absolute;
+ top: 0;
+ left: -55px;
+ -webkit-appearance: textarea;
+ -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
+}
+/* line 577, ../scss/include/_skeleton.scss */
+#jqt .toggle input[type="checkbox"]:checked {
+ left: 0px;
+}
+/* line 583, ../scss/include/_skeleton.scss */
+#jqt .info {
+ font-size: 12px;
+ line-height: 16px;
+ text-align: center;
+ color: #444;
+ padding: 15px;
+ font-weight: bold;
+}
+/* line 12, ../scss/jqtouch.scss */
+#jqt {
+ /* Lists */
+
+}
+/* line 13, ../scss/jqtouch.scss */
+#jqt > * {
+ background-image: url('data:image/png;base64,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'), -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, #7b7c7f), color-stop(30%, #696a6d), color-stop(65%, #555658), color-stop(100%, #464748));
+ background-image: url('data:image/png;base64,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'), -webkit-linear-gradient(top, #7b7c7f, #696a6d 30%, #555658 65%, #464748);
+ background-image: url('data:image/png;base64,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'), linear-gradient(top, #7b7c7f, #696a6d 30%, #555658 65%, #464748);
+}
+/* line 20, ../scss/jqtouch.scss */
+#jqt .toolbar {
+ background-image: -webkit-gradient(radial, 50% 50%, 0, 50% 50%, 12.5, color-stop(12.5%, #181819), color-stop(12.5%, rgba(11, 11, 12, 0))), -webkit-gradient(radial, 50% 50%, 0, 50% 50%, 12.5, color-stop(12.5%, #181819), color-stop(12.5%, rgba(11, 11, 12, 0))), -webkit-gradient(radial, 50% 50%, 0, 50% 50%, 12.5, color-stop(12.5%, rgba(255, 255, 255, 0.1)), color-stop(12.5%, rgba(255, 255, 255, 0))), -webkit-gradient(radial, 50% 50%, 0, 50% 50%, 12.5, color-stop(12.5%, rgba(255, 255, 255, 0.1)), color-stop(12.5%, rgba(255, 255, 255, 0)));
+ background-image: -webkit-radial-gradient(#181819 12.5%, rgba(11, 11, 12, 0) 12.5%), -webkit-radial-gradient(#181819 12.5%, rgba(11, 11, 12, 0) 12.5%), -webkit-radial-gradient(rgba(255, 255, 255, 0.1) 12.5%, rgba(255, 255, 255, 0) 12.5%), -webkit-radial-gradient(rgba(255, 255, 255, 0.1) 12.5%, rgba(255, 255, 255, 0) 12.5%);
+ background-image: radial-gradient(#181819 12.5%, rgba(11, 11, 12, 0) 12.5%), radial-gradient(#181819 12.5%, rgba(11, 11, 12, 0) 12.5%), radial-gradient(rgba(255, 255, 255, 0.1) 12.5%, rgba(255, 255, 255, 0) 12.5%), radial-gradient(rgba(255, 255, 255, 0.1) 12.5%, rgba(255, 255, 255, 0) 12.5%);
+ background-repeat: repeat;
+ background-position: 0 0, 8px 8px, 0 1px, 8px 9px;
+ background-color: #2f3031;
+ background-size: 16px 16px;
+}
+/* line 29, ../scss/jqtouch.scss */
+#jqt ul li {
+ border-top: 1px solid #48494b;
+ background-image: none;
+ background-color: rgba(85, 86, 88, 0.2);
+ background-image: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, rgba(123, 124, 127, 0.2)), color-stop(3%, rgba(98, 99, 101, 0.2)), color-stop(100%, rgba(72, 73, 75, 0.2)));
+ background-image: -webkit-linear-gradient(top, rgba(123, 124, 127, 0.2), rgba(98, 99, 101, 0.2) 3%, rgba(72, 73, 75, 0.2));
+ background-image: linear-gradient(top, rgba(123, 124, 127, 0.2), rgba(98, 99, 101, 0.2) 3%, rgba(72, 73, 75, 0.2));
+}
+/* line 33, ../scss/jqtouch.scss */
+#jqt ul li a {
+ color: white;
+ text-shadow: #3c3d3e 0 -1px 0;
+}
+/* line 37, ../scss/jqtouch.scss */
+#jqt ul li .toggle input[type="checkbox"] {
+ -webkit-border-radius: 5px;
+ border-radius: 5px;
+ background: #ffffff url(../img/jqt/on_off.png) 0 0 no-repeat;
+}
+/* line 42, ../scss/jqtouch.scss */
+#jqt ul li input[type='submit'] {
+ background-image: none;
+ background-color: white;
+ background-image: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, #ffffff), color-stop(50%, #ffffff), color-stop(51%, #ffffff), color-stop(100%, #f2f2f2));
+ background-image: -webkit-linear-gradient(top, #ffffff, #ffffff 50%, #ffffff 51%, #f2f2f2);
+ background-image: linear-gradient(top, #ffffff, #ffffff 50%, #ffffff 51%, #f2f2f2);
+ border: 1px outset black;
+}
+/* line 47, ../scss/jqtouch.scss */
+#jqt ul li small.counter {
+ -webkit-box-shadow: rgba(255, 255, 255, 0.1) 0 1px 0;
+ box-shadow: rgba(255, 255, 255, 0.1) 0 1px 0;
+}
+/* line 54, ../scss/jqtouch.scss */
+#jqt ul.metal li {
+ background-image: none;
+ border-top: 1px solid #fff;
+ border-bottom: 1px solid #666;
+ background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#eeeeee), to(#9c9ea0));
+}
+/* line 60, ../scss/jqtouch.scss */
+#jqt ul.metal li a {
+ text-shadow: #fff 0 1px 0;
+}
+/* line 62, ../scss/jqtouch.scss */
+#jqt ul.metal li a.active {
+ color: #000;
+}
+/* line 65, ../scss/jqtouch.scss */
+#jqt ul.metal li em {
+ color: #444;
+}
+/* line 71, ../scss/jqtouch.scss */
+#jqt ul.edgetoedge li {
+ background-image: none;
+ background-color: #3c3d3e;
+ background-image: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, #282829), color-stop(100%, #2f3031));
+ background-image: -webkit-linear-gradient(top, #282829, #2f3031);
+ background-image: linear-gradient(top, #282829, #2f3031);
+ border-bottom: 1px solid #1e1e1f;
+ border-top: 1px solid #343536;
+}
+/* line 76, ../scss/jqtouch.scss */
+#jqt ul.edgetoedge li.sep {
+ background-image: none;
+ background-color: rgba(0, 0, 0, 0.3);
+ background-image: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, rgba(38, 38, 38, 0.3)), color-stop(30%, rgba(20, 20, 20, 0.3)), color-stop(65%, rgba(0, 0, 0, 0.3)), color-stop(100%, rgba(0, 0, 0, 0.3)));
+ background-image: -webkit-linear-gradient(top, rgba(38, 38, 38, 0.3), rgba(20, 20, 20, 0.3) 30%, rgba(0, 0, 0, 0.3) 65%, rgba(0, 0, 0, 0.3));
+ background-image: linear-gradient(top, rgba(38, 38, 38, 0.3), rgba(20, 20, 20, 0.3) 30%, rgba(0, 0, 0, 0.3) 65%, rgba(0, 0, 0, 0.3));
+ color: #949698;
+ text-shadow: #000000 0 -1px 0;
+}
+/* line 83, ../scss/jqtouch.scss */
+#jqt .info {
+ background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#cccccc), to(#aaaaaa), color-stop(0.6, #cccccc));
+ text-shadow: rgba(255, 255, 255, 0.8) 0 1px 0;
+ color: #444;
+ border-top: 1px solid rgba(255, 255, 255, 0.2);
+}
+div.spinner {
+ position: relative;
+ width: 100px;
+ height: 100px;
+ display: inline-block;
+}
+div.spinner div {
+ width: 12%;
+ height: 26%;
+ background: #000;
+ position: absolute;
+ left: 44.5%;
+ top: 37%;
+ opacity: 0;
+ -webkit-animation: fade 1s linear infinite;
+ -webkit-border-radius: 50px;
+ -webkit-box-shadow: 0 0 3px rgba(0, 0, 0, 0.2);
+}
+div.spinner div.bar01 {
+ -webkit-transform: rotate(0deg) translate(0, -142%);
+ -webkit-animation-delay: 0s;
+}
+div.spinner div.bar02 {
+ -webkit-transform: rotate(30deg) translate(0, -142%);
+ -webkit-animation-delay: -0.9167s;
+}
+div.spinner div.bar03 {
+ -webkit-transform: rotate(60deg) translate(0, -142%);
+ -webkit-animation-delay: -0.833s;
+}
+div.spinner div.bar04 {
+ -webkit-transform: rotate(90deg) translate(0, -142%);
+ -webkit-animation-delay: -0.75s;
+}
+div.spinner div.bar05 {
+ -webkit-transform: rotate(120deg) translate(0, -142%);
+ -webkit-animation-delay: -0.667s;
+}
+div.spinner div.bar06 {
+ -webkit-transform: rotate(150deg) translate(0, -142%);
+ -webkit-animation-delay: -0.5833s;
+}
+div.spinner div.bar07 {
+ -webkit-transform: rotate(180deg) translate(0, -142%);
+ -webkit-animation-delay: -0.5s;
+}
+div.spinner div.bar08 {
+ -webkit-transform: rotate(210deg) translate(0, -142%);
+ -webkit-animation-delay: -0.41667s;
+}
+div.spinner div.bar09 {
+ -webkit-transform: rotate(240deg) translate(0, -142%);
+ -webkit-animation-delay: -0.333s;
+}
+div.spinner div.bar10 {
+ -webkit-transform: rotate(270deg) translate(0, -142%);
+ -webkit-animation-delay: -0.25s;
+}
+div.spinner div.bar11 {
+ -webkit-transform: rotate(300deg) translate(0, -142%);
+ -webkit-animation-delay: -0.1667s;
+}
+div.spinner div.bar12 {
+ -webkit-transform: rotate(330deg) translate(0, -142%);
+ -webkit-animation-delay: -0.0833s;
+}
+@-webkit-keyframes fade {
+ from {
+ opacity: 1;
+ }
+ to {
+ opacity: 0.25;
+ }
+}
+/*
+
+Color list:
+- login box:
+ light #ff9955
+ dark #ff6622
+- login button:
+ regular #dd5500
+ hover #773311
+- login translations:
+ box: #cc6622;
+ not-selected:
+ color: #ddaa99
+ background: #994422
+ selected: #772211;
+*/
+html {
+ height: 100%;
+ -webkit-text-size-adjust: none;
+ -ms-text-size-adjust: none;
+}
+body {
+ font-family: Helvetica-Neue, Helvetica, Arial, Geneva, sans-serif;
+ margin: 0px;
+}
+.ellipsis {
+ text-overflow: ellipsis;
+ overflow: hidden;
+ white-space: nowrap;
+}
+div#loginForm div.credentialsMessage.error h1 {
+ color: red;
+}
+div#loginForm div.validating div.loading {
+ margin-top: 50px;
+ margin-bottom: 50px;
+ margin-left: auto;
+ margin-right: auto;
+ width: 100px;
+}
+/*
+
+Color list:
+- login box:
+ light #ff9955
+ dark #ff6622
+- login button:
+ regular #dd5500
+ hover #773311
+- login translations:
+ box: #cc6622;
+ not-selected:
+ color: #ddaa99
+ background: #994422
+ selected: #772211;
+*/
+html {
+ height: 100%;
+ -webkit-text-size-adjust: none;
+ -ms-text-size-adjust: none;
+}
+body {
+ font-family: Helvetica-Neue, Helvetica, Arial, Geneva, sans-serif;
+ margin: 0px;
+}
+.ellipsis {
+ text-overflow: ellipsis;
+ overflow: hidden;
+ white-space: nowrap;
+}
+#jqt div.cardList ul li.cardListItem a small.favicon {
+ background: white;
+ -webkit-border-radius: 3px;
+ border-radius: 3px;
+ display: block;
+ width: 26px;
+ height: 26px;
+ padding: 0px;
+}
+#jqt div.cardList ul li.cardListItem a small.favicon img.favicon {
+ margin-right: 3px;
+ margin-top: 3px;
+ width: 20px;
+ height: 20px;
+}
+#jqt div.cardDetail ul li a.password {
+ color: gray;
+}
+/* ---------------------------------------- */
+/*
+body {
+ margin: 0;
+ font-family: Helvetica;
+ background: #FFFFFF;
+ color: #000000;
+ overflow-x: hidden;
+ -webkit-user-select: none;
+ -webkit-text-size-adjust: none;
+}
+
+
+div.toolbar {
+ box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ -webkit-box-sizing: border-box;
+ border-bottom: 1px solid #2d3642;
+ border-top: 1px solid #6d84a2;
+ padding: 10px;
+ height: 45px;
+// background: url(./images/old/iPhone/toolbar.png) #6d84a2 repeat-x;
+ background: url(data:image/png;charset=utf-8;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAArCAIAAAA2QHWOAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAE1JREFUCNddjDEOgEAQAgn//5qltYWFnb1GB4vdSy4WBAYStKyb9+O0FJMYyjMyMWCC35lJM71r6vF1P07/lFSfPx6ZxNLcy1HtihzpA/RWcOj0zlDhAAAAAElFTkSuQmCCCg==) #6d84a2 repeat-x;
+}
+
+div.toolbar h1#pageTitle {
+ overflow: hidden;
+ margin-top: 1px;
+ margin-bottom: 0px;
+ margin-left: auto;
+ margin-right: auto;
+ width: 150px;
+ height: 25px;
+ font-size: 20px;
+ width: 150px;
+ font-weight: bold;
+ text-shadow: rgba(0, 0, 0, 0.4) 0px -1px 0;
+ text-align: center;
+ text-overflow: ellipsis;
+ white-space: nowrap;
+ color: #FFFFFF;
+}
+
+div.toolbar a.button {
+ position: absolute;
+ overflow: hidden;
+ top: 8px;
+ right: 6px;
+ margin: 0;
+ border-width: 0 5px;
+ padding: 0 3px;
+ width: auto;
+ height: 30px;
+ line-height: 30px;
+ font-family: inherit;
+ font-size: 12px;
+ font-weight: bold;
+ color: #FFFFFF;
+ text-shadow: rgba(0, 0, 0, 0.6) 0px -1px 0;
+ text-overflow: ellipsis;
+ text-decoration: none;
+ white-space: nowrap;
+ background: none;
+// -webkit-border-image: url(./images/old/iPhone/toolButton.png) 0 5 0 5;
+}
+
+div.toolbar a#backButton {
+ left: 6px;
+ right: auto;
+ padding: 0px;
+ max-width: 55px;
+ border-width: 0 8px 0 14px;
+// -webkit-border-image: url(./images/old/iPhone/backButton.png) 0 8 0 14;
+ -webkit-border-image: url(data:image/png;charset=utf-8;base64,iVBORw0KGgoAAAANSUhEUgAAACsAAAAeCAIAAAA6iHCJAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAtJJREFUeNrEV21P01AYbbtubNExBnXDbYjjZYI4BMdgEANDQoTElw/+Rw0mBs0UiSGaoJFEQEPwjRhFCW/JxrZ2Xdu1fe71bpAhCHzqupPnS5ObPOeec+5zb+lHLxao05HPiwvzr3/++J7N7FFGgaaDLe034+O+wCXyxSKET1u5+Wc98XTK39zeOzjudLmNIoAR2tlaf/Zkqm9gKNI/RBigE9dtb23MJKZj8fvuC16b3WGxsJRxOFfHeQOtH+ZnOI+XRfgEBoLAzz6fjo7ebfD4GYYhMiEdDGRAW6xOt6d7YGzl4xIL/7mgyPL044edkVt19T4EFAJEVQYud+MvOCkHc7MJ3+VrXGOzXrHeZS1s9trjOVj7tiqpONTWBRgD6BVmQFls9iMaSHnx/bu3ffEHgC2gVVqAIojKR3Iw9zLRcjVmtTnA0NydxQDg0IWvq59kYIOeZtWs9gQkagcMcgK/vLjYNXQHcEkas0AcYPdNIPr7Q/0M69B089ofavB5ZVm3OJ2cTwegzAUgxGbSe8tLS52xewjRZGabzAABZt+8mvGHBsiYNF+AAw1cXEBGNUiQqWpAlArM5MSYBXgEOl0NkLcCkxak28MRKbuDMa6KDAwAUnU8HO2Q+N0SJ3OLMCA7V1S9vt7d3tSg5LNV0ACXwOekcGfreVbVVYUqMjOvyPsH71cqkxsZ7NHFJIXBTCMONMAlEryoxAfDucyOmaOpmINyaTowrK23IyDxKbNzUIYoKU3+i37OXpCESvfGCOw11uMMcCkQke4rDlrS1coOSk2VOXftERfKtZsURmLXQUqBVqiUABgrQirc0Xp4Fv4t8kxN8dLkaJQupOVcGnTN0PuQHHlRSG1Eu9tUTLOnxZ5clclsfmK078va7/WN7axomCN2e42Xc/VEIoiiM0KePeM20DTY3M22BZtuhENW1rC/NrI3WVGTmZxSKEr7V4ABAJ+53J1I3nPjAAAAAElFTkSuQmCCCg==) 0 8 0 14;
+}
+
+// -------------------------------------------
+
+body.iPhone form.loginForm {
+ min-height: 372px;
+
+ box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ -webkit-box-sizing: border-box;
+ padding: 10px;
+// background: #c8c8c8 url(./images/old/iPhone/pinstripes.png);
+ background: #c8c8c8 url(data:image/png;charset=utf-8;base64,iVBORw0KGgoAAAANSUhEUgAAAAcAAAABCAIAAACdaSOZAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAABdJREFUeNpiPHrmCgMC/GNjYwNSAAEGADdNA3dnzPlQAAAAAElFTkSuQmCCCg==);
+}
+
+fieldset {
+ position: relative;
+ margin: 0 0 20px 0;
+ padding: 0;
+ background: #FFFFFF;
+ -webkit-border-radius: 10px;
+ -moz-border-radius: 10px;
+ border: 1px solid #999999;
+ text-align: right;
+ font-size: 16px;
+}
+
+.row {
+ position: relative;
+ min-height: 42px;
+ border-bottom: 1px solid #999999;
+ -webkit-border-radius: 0;
+ text-align: right;
+}
+
+fieldset > .row:last-child {
+ border-bottom: none !important;
+}
+
+
+.row > input:not(input[type|=radio]):not(input[type|=checkbox]),
+.row > div.fieldValue {
+ width: 100%;
+ box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ -webkit-box-sizing: border-box;
+ margin: 0;
+ border: none;
+ padding: 0px 10px 0 112px;
+ height: 42px;
+ background: none;
+ font-size: 16px;
+ font-weight: normal;
+
+ color: #666a60;
+ -webkit-user-select: text;
+}
+
+.row > div.fieldValue p {
+ margin: 0px;
+ text-align: left;
+ height: 40px;
+ vertical-align: middle;
+ line-height: 40px;
+}
+
+body[orientation="landscape"] .row > div.fieldValue.password {
+ padding-right: 120px;
+// background: url(./images/old/iPhone/password_background.png) no-repeat 105px;
+ background: url(data:image/png;charset=utf-8;base64,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) no-repeat 105px;
+}
+
+.row > div.fieldValue.password {
+ color: rgba(255,255,255,0.5);
+// background: url(./images/old/iPhone/password_background.png) no-repeat 106px;
+ background: url(data:image/png;charset=utf-8;base64,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) no-repeat 106px;
+}
+
+.row > div.fieldValue.password.clear {
+ color: #666a60;
+ background: none;
+}
+
+.row > input[type|=radio], .row > input[type|=checkbox] {
+ margin: 7px 7px 0 0;
+ height: 25px;
+ width: 25px;
+}
+
+
+.row > label {
+ position: absolute;
+ margin: 0 0 0 14px;
+ line-height: 42px;
+ font-weight: bold;
+ max-width: 92px;
+ overflow: hidden;
+ white-space: nowrap;
+}
+
+body[orientation="landscape"] .row > label {
+ max-width: 150px;
+}
+
+body[orientation="landscape"] .row > input:not(input[type|=radio]):not(input[type|=checkbox]) {
+ padding-left: 140px;
+}
+
+.row > img.favicon {
+ position: absolute;
+ width: 20px;
+ height: 20px;
+ top: 12px;
+ left: 11px;
+}
+
+.row > span {
+ padding: 8px 13px;
+ text-align: left;
+ display: block;
+ color: #666a60;
+ font-size: 10pt;
+}
+
+.row.notes {
+ -webkit-user-select: text;
+}
+
+// -------------------------------------------
+
+.whiteButton {
+ margin-left: auto;
+ margin-right: auto;
+ width: 150px;
+ display: block;
+ border-width: 0 12px;
+ padding: 10px;
+ text-align: center;
+ font-size: 20px;
+ font-weight: bold;
+ text-decoration: inherit;
+ color: inherit;
+
+// -webkit-border-image: url(./images/old/iPhone/whiteButton.png) 0 12 0 12;
+ -webkit-border-image: url(data:image/png;charset=utf-8;base64,iVBORw0KGgoAAAANSUhEUgAAAB0AAAAuCAQAAAB+dNqHAAAACXBIWXMAAABIAAAASABGyWs+AAAACXZwQWcAAAAdAAAALgChnaVgAAAAAmJLR0QA/4ePzL8AAANhSURBVEjHnZZNaFxVFMd/5747mclMkpmxzYdJtFaJglgFpYSiBAVX7l0UUZGuSkEEu3PtSulCUXFdxYXL7kQQIWD9CsRIqdomGGOaSdJmZjKTeW/eu/e4mKRmrE3n5X83j/ve7/3POfe+d67QrTxP8QLDnMTenkv4kQ2+YZ6d/Y/Kvut+XuZVKtygzVbXC8v0cT+jXORLWneix/mAZZZwKIrSbSAIAcd5kDdZ6kaf4zzfEeLPnHrr+UeOWpMJ9rjYxe7a5ntff/YThhyneJ/Zf9Ep3uEXkhNjX50bHoiStoPE76HWiPQFfcGN+kufLKxheZJ3+aOD5vmIBaLXpz89HSVhzF2Uy2TtGxe/+JksJzjHjgCvMEHz6cnZt7dD5zlAgSlkZy7MrVDgbz43FJimhV46W2vFzutBI3aN8NJZlBbTFAKepZ/o/IszU1Gs95Tz2Uw1nFuiiTE8Rhs9fbIROt/LaISvTaO0mbIM0kTKeefoUSMDCI6SxRCT9d77XlFrCYgQi0PH72vH9CyNMSjO4tGM9do76hXB4y2KU+c8aaR41KJ4SIn6DgqgPq2rggWc+kMEjBUBVDUNKQBiOx+218Pl6tVr+jJhUZx4PYSr4XBSsAKaJH9tpirT7uIoTj3pAna43TJJWtSjYDpxp5bv5OpTb4mOq3IIX0W14ypeUq+rYBH5T9fqbRerWMClrbB4PBgUjZPUuXrUGBW51Yhc71y9LSJi1NgQxVWj3a7aw2gmONSGJtNAxC9v9+56vaoe6aubXEWy4meXe/+VXl42TvqzG4ZFCkRzv/+w3lu436/PX6NNnsUgCctjUUJwnWdGC/ZenpXw47loTRrldu3XwLkSrQmiHbkSP3FkwB4MXpjfWDE3JTfw29ZGAGHjgWJdcDW9XC/0PVS4W47fVj5cuLUmFWlOVlevei8ApVLp8bWclnWU4khpZvTRwaw5VggEINHlZuSv1mcr6zW2ZF22xqLqlWr19uYdGSkeWyn4IY5okX61GBHMrp1HJaYldW4G9Ylm7c/19a4jV6k0+fBmtjbkCwxoDovdQ0lIpEXTNIrbR6OVxWr1joNeJjM+Xhyu2+0+Z6Ocmt17Kj4bBvFgPJTUNlZX4/j/zohAJlMuF4vW5vP7Z3d2kqRW29qKuxr4P1RbNFwZtqq8AAAAAElFTkSuQmCCCg==) 0 12 0 12;
+ text-shadow: rgba(255, 255, 255, 0.7) 0 1px 0;
+}
+
+// -------------------------------------------
+
+body.iPhone .loginProgressPanel {
+ min-height: 372px;
+
+ box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ -webkit-box-sizing: border-box;
+ padding: 10px;
+// background: #c8c8c8 url(./images/old/iPhone/pinstripes.png);
+ background: #c8c8c8 url(data:image/png;charset=utf-8;base64,iVBORw0KGgoAAAANSUhEUgAAAAcAAAABCAIAAACdaSOZAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAABdJREFUeNpiPHrmCgMC/GNjYwNSAAEGADdNA3dnzPlQAAAAAElFTkSuQmCCCg==);
+}
+
+body.iPhone .loadingBar {
+ margin-left: auto;
+ margin-right: auto;
+ margin-top: 60px;
+}
+
+div.loadingBar {
+ height: 22px;
+ width: 214px;
+// background: url(./images/old/loading/loadingBar.gif) no-repeat center;
+ background: url(data:image/gif;charset=utf-8;base64,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) no-repeat center;
+}
+
+div.loadingBar div.loadingBarProgress {
+ height: 100%;
+ width: 0%;
+}
+
+div.loadingBar div.loadingBarProgress div.loadingBarProgress_left {
+ height: 100%;
+ max-width: 8px;
+// background: url(./images/old/loading/loadingBarProgress.png) no-repeat 0;
+ background: url(data:image/png;charset=utf-8;base64,iVBORw0KGgoAAAANSUhEUgAAANYAAAAWCAYAAAC8C2KaAAAACXBIWXMAAAsSAAALEgHS3X78AAACIklEQVR4Ae3brU7DUBQH8HO6PQAazx4BRUKDwfChQTGFQ4wRFGEERdgQONRQoGEzGFISFI8w/DQSWHsP565r0xY2BiWY/ivW+530l52cdr0jwgEBCPy5AE9aUc7XV0kcl4jniGR20lj0QaAYAtzXWHgmNh7v3HTGXfOXgSWnKy6VqEZMCKZxcmiHgFCfAjrjva6XxfgUWNJc3tVBG9mBqEMAAmMFrrl+10r2pgJLTpYO9dZvNTkAZQhAYAoBNh3evz+KRsaBJccLevtXakYdOEMAAj8UCII6Hzx6dlY5nipBjXwTV1GAAAR+KiA1neHZWcOMJY35FS03bAMOCEAgl0CDG0/dMGP5by6xk2s1TIYABFRAjKufo8AyfoUkftyCDwQg8FsBloqdGmaswMf7qt9CYh4E0gLDWBrdCg7SXahBAAK5BEYZa9AnZmStXJSYDAEVENEtT/GtYNAjxl5AfDEgkFtAuGfXCDPW4N0jh9zci2IBCBRdwCTeY1kL2Z65RdYq+rcC159LQLjPFy9rdo0wY9nS+2uLSk5qI6FtxgEBCEwpEJg4flIvr2SrfEgOYxPulI4YBoFYwEiHL/2jqJ4KLNuowVXT4NqMBuAMAQh8I2DkSoPqLDnqU2DZTqmWF4mcXTxzJalQhkBGQJ+piEyL2/5DpifchJttjOpSLenmXMfVvboVBFmkgnOhBYbBJPqTuv41vx10C22Bi4fAfwt8AJe2flCLvH1PAAAAAElFTkSuQmCCCg==) no-repeat 0;
+}
+
+div.loadingBar div.loadingBarProgress div.loadingBarProgress_right {
+ position: relative;
+ height: 100%;
+ margin-left: 8px;
+// background: url(./images/old/loading/loadingBarProgress.png) no-repeat right;
+ background: url(data:image/png;charset=utf-8;base64,iVBORw0KGgoAAAANSUhEUgAAANYAAAAWCAYAAAC8C2KaAAAACXBIWXMAAAsSAAALEgHS3X78AAACIklEQVR4Ae3brU7DUBQH8HO6PQAazx4BRUKDwfChQTGFQ4wRFGEERdgQONRQoGEzGFISFI8w/DQSWHsP565r0xY2BiWY/ivW+530l52cdr0jwgEBCPy5AE9aUc7XV0kcl4jniGR20lj0QaAYAtzXWHgmNh7v3HTGXfOXgSWnKy6VqEZMCKZxcmiHgFCfAjrjva6XxfgUWNJc3tVBG9mBqEMAAmMFrrl+10r2pgJLTpYO9dZvNTkAZQhAYAoBNh3evz+KRsaBJccLevtXakYdOEMAAj8UCII6Hzx6dlY5nipBjXwTV1GAAAR+KiA1neHZWcOMJY35FS03bAMOCEAgl0CDG0/dMGP5by6xk2s1TIYABFRAjKufo8AyfoUkftyCDwQg8FsBloqdGmaswMf7qt9CYh4E0gLDWBrdCg7SXahBAAK5BEYZa9AnZmStXJSYDAEVENEtT/GtYNAjxl5AfDEgkFtAuGfXCDPW4N0jh9zci2IBCBRdwCTeY1kL2Z65RdYq+rcC159LQLjPFy9rdo0wY9nS+2uLSk5qI6FtxgEBCEwpEJg4flIvr2SrfEgOYxPulI4YBoFYwEiHL/2jqJ4KLNuowVXT4NqMBuAMAQh8I2DkSoPqLDnqU2DZTqmWF4mcXTxzJalQhkBGQJ+piEyL2/5DpifchJttjOpSLenmXMfVvboVBFmkgnOhBYbBJPqTuv41vx10C22Bi4fAfwt8AJe2flCLvH1PAAAAAElFTkSuQmCCCg==) no-repeat right;
+ top: -22px;
+}
+
+// -------------------------------------------
+
+body.iPhone .loginErrorPanel {
+ position: absolute;
+ min-height: 372px;
+ box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ -webkit-box-sizing: border-box;
+ padding: 10px;
+// background: #c8c8c8 url(./images/old/iPhone/pinstripes.png);
+ background: #c8c8c8 url(data:image/png;charset=utf-8;base64,iVBORw0KGgoAAAANSUhEUgAAAAcAAAABCAIAAACdaSOZAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAABdJREFUeNpiPHrmCgMC/GNjYwNSAAEGADdNA3dnzPlQAAAAAElFTkSuQmCCCg==);
+}
+
+body.iPhone .loginErrorPanel h2 {
+ text-align: center;
+ color: red;
+ margin-top: 40px;
+}
+
+// -------------------------------------------
+
+form.cardListSearchForm {
+ box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ -webkit-box-sizing: border-box;
+ border-bottom: 1px solid #2d3642;
+ border-top: 1px solid #6d84a2;
+ padding: 6px;
+ height: 45px;
+// background: url(./images/old/iPhone/toolbar.png) #6d84a2 repeat-x;
+ background: url(data:image/png;charset=utf-8;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAArCAIAAAA2QHWOAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAE1JREFUCNddjDEOgEAQAgn//5qltYWFnb1GB4vdSy4WBAYStKyb9+O0FJMYyjMyMWCC35lJM71r6vF1P07/lFSfPx6ZxNLcy1HtihzpA/RWcOj0zlDhAAAAAElFTkSuQmCCCg==) #6d84a2 repeat-x;
+ margin: 0px;
+}
+
+form.cardListSearchForm input {
+ margin: 7px;
+ -webkit-appearance: searchfield;
+ width: 200px;
+}
+
+ul.cardListPanel {
+ margin: 0px;
+ padding: 0px;
+ list-style-type: none;
+ min-height: 372px;
+}
+
+li.cardListItem {
+ height: 43px;
+ border-bottom: 1px solid #cccccc;
+// background: url(./images/old/iPhone/listArrow.png) no-repeat right center;
+ background: url(data:image/png;charset=utf-8;base64,iVBORw0KGgoAAAANSUhEUgAAABkAAAAUCAYAAAB4d5a9AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAKVJREFUeNpi/P//PwOtARMDHcDwsYQFRJSXl8P4dVC6CZvizs5O8i1BsqARid9Ei+BiQ2KDLKumhSU1QNyKxG+hlkXoEQ+yqAPNogpapK5KNIvaKbUIVxKeAsTvkPg5QCxETUukgfgAkqFPgdgBzVKKLIFZoIJmwR1qBRdNLEC2BJQpV9LCAmRL/gBxAtRwqlqAXqzcgRrOQE0LQIBxtNIiBQAEGAA7xCa2yF9zEgAAAABJRU5ErkJgggo=) no-repeat right center;
+
+}
+
+li.cardListItem a {
+ position: relative;
+ top: -22px;
+ left: 40px;
+ display: block;
+ white-space: nowrap;
+ overflow: hidden;
+}
+
+body[orientation="portrait"] li.cardListItem a {
+ max-width: 250px;
+}
+
+body[orientation="landscape"] li.cardListItem a {
+ max-width: 400px;
+}
+
+li.cardListItem img {
+ height: 20px;
+ width: 20px;
+ padding: 12px 10px 0px 10px;
+}
+
+li.cardListItem a {
+ text-decoration: none;
+ color: black;
+ font-weight: bold;
+ font-size: 14pt;
+ vertical-align: 3px;
+}
+
+
+div.cardDetailPanel {
+ position: absolute;
+ top: 45px;
+ min-height: 372px;
+
+ box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ -webkit-box-sizing: border-box;
+ padding: 10px;
+// background: #c8c8c8 url(./images/old/iPhone/pinstripes.png);
+ background: #c8c8c8 url(data:image/png;charset=utf-8;base64,iVBORw0KGgoAAAANSUhEUgAAAAcAAAABCAIAAACdaSOZAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAABdJREFUeNpiPHrmCgMC/GNjYwNSAAEGADdNA3dnzPlQAAAAAElFTkSuQmCCCg==);
+}
+
+div.cardDetailPanel > fieldset > div.row > span.directLogin {
+ width: 100%;
+ box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ -webkit-box-sizing: border-box;
+ margin: 0;
+ border: none;
+ padding: 12px 10px 0 110px;
+ height: 42px;
+ background: none;
+ font-size: 16px;
+ font-weight: normal;
+
+ padding-left: 40px;
+ color: black;
+// background: url(./images/old/iPhone/listArrow.png) no-repeat right center;
+ background: url(data:image/png;charset=utf-8;base64,iVBORw0KGgoAAAANSUhEUgAAABkAAAAUCAYAAAB4d5a9AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAKVJREFUeNpi/P//PwOtARMDHcDwsYQFRJSXl8P4dVC6CZvizs5O8i1BsqARid9Ei+BiQ2KDLKumhSU1QNyKxG+hlkXoEQ+yqAPNogpapK5KNIvaKbUIVxKeAsTvkPg5QCxETUukgfgAkqFPgdgBzVKKLIFZoIJmwR1qBRdNLEC2BJQpV9LCAmRL/gBxAtRwqlqAXqzcgRrOQE0LQIBxtNIiBQAEGAA7xCa2yF9zEgAAAABJRU5ErkJgggo=) no-repeat right center;
+}
+
+body[orientation="landscape"] div.cardDetailPanel > fieldset > div.row > span.directLogin {
+ padding-left: 50px;
+}
+
+div.cardDetailPanel h2 {
+ margin: 0 0 8px 14px;
+ font-size: inherit;
+ font-weight: bold;
+ color: #4d4d70;
+ text-shadow: rgba(255, 255, 255, 0.75) 1px 1px 0;
+}
+
+body[orientation="portrait"] > * {
+ width: 320px;
+}
+
+body[orientation="landscape"] > * {
+ width: 480px;
+}
+*/ \ No newline at end of file
diff --git a/frontend/gamma/css/static.css b/frontend/gamma/css/static.css
new file mode 100644
index 0000000..9953a8d
--- a/dev/null
+++ b/frontend/gamma/css/static.css
@@ -0,0 +1,166 @@
+/*
+
+Copyright 2008-2011 Clipperz Srl
+
+This file is part of Clipperz Community Edition.
+Clipperz Community Edition is an online password manager.
+For further information about its features and functionalities please
+refer to http://www.clipperz.com.
+
+* Clipperz Community Edition is free software: you can redistribute
+ it and/or modify it under the terms of the GNU Affero General Public
+ License as published by the Free Software Foundation, either version
+ 3 of the License, or (at your option) any later version.
+
+* Clipperz Community Edition is distributed in the hope that it will
+ be useful, but WITHOUT ANY WARRANTY; without even the implied
+ warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ See the GNU Affero General Public License for more details.
+
+* You should have received a copy of the GNU Affero General Public
+ License along with Clipperz Community Edition. If not, see
+ <http://www.gnu.org/licenses/>.
+
+*/
+
+body {
+ padding: 0px;
+ margin: 0px;
+ font-family: Helvetica, Arial, Geneva, sans-serif;
+ color: #666666;
+}
+div.header {
+ padding: 20px 25px;
+ background-color: #1f2148;
+}
+div#logo {
+ background: url(./images/old/logo.png);
+ width: 150px;
+ height: 39px;
+ display: block;
+}
+h5.clipperzPayoff {
+ color: white;
+ font-size: 13pt;
+ font-weight: normal;
+ padding-left: 20px;
+ white-space: nowrap;
+ margin: 0px;
+ padding-left: 4px;
+}
+/*
+h1 {
+ font-size: 40pt;
+ color: #333366;
+}
+
+h1 span.logo_z {
+ color: #ff9400;
+}
+*/
+div.contentWrapper {
+ padding: 20px;
+}
+div.block1 {
+ float: left;
+ margin-right: 40px;
+}
+div.block2 {
+ float: left;
+}
+div.languageBlock {
+ clear: both;
+ padding-top: 20px;
+}
+div.flags {
+ float: left;
+}
+div.content {
+ float: left;
+ margin-left: 20px;
+ width: 300px;
+}
+h3 {
+ margin: 0px;
+ padding-top: 10px;
+}
+p {
+ font-size: 10pt;
+ line-height: 20px;
+}
+/* @group RSS feed */
+body.iFrame {
+ margin: 0px;
+ padding: 0px;
+ border: 0px;
+ font-family: Helvetica, Arial, Geneva, sans-serif;
+}
+div#feedContent ul {
+ list-style-type: none;
+ padding: 0px;
+ margin: 0px;
+}
+div#feedContent ul li {
+ display: none;
+}
+div#feedContent ul li.selected {
+ display: block;
+ padding-top: 6px;
+}
+div#feedContent ul li.selected em.date {
+ display: none;
+}
+div#feedContent ul li.selected a {
+ display: none;
+}
+div#feedContent ul li.selected h2 {
+ font-size: 8pt;
+ color: #c3c4cf;
+ margin: 0px;
+ border: 0px;
+ padding: 0px;
+}
+div#feedContent ul li.selected p {
+ font-size: 8pt;
+ color: #c3c4cf;
+ margin: 0px;
+ display: inline;
+ line-height: 15px;
+}
+div#feedContent ul li.selected p a {
+ font-size: 8pt;
+ color: #c3c4cf;
+ display: inline;
+}
+div.languageBlock div.flags {
+ height: 64px;
+ width: 64px;
+}
+div.languageBlock.en-us div.flags {
+ background: url(./images/old/flags/en.png);
+}
+div.languageBlock.zh-cn div.flags {
+ background: url(./images/old/flags/cn.png);
+}
+div.languageBlock.fr-fr div.flags {
+ background: url(./images/old/flags/fr.png);
+}
+div.languageBlock.it-it div.flags {
+ background: url(./images/old/flags/it.png);
+}
+div.languageBlock.ja-jp div.flags {
+ background: url(./images/old/flags/jp.png);
+}
+div.languageBlock.pt-br div.flags {
+ background: url(./images/old/flags/br.png);
+}
+div.languageBlock.es-es div.flags {
+ background: url(./images/old/flags/es.png);
+}
+div.languageBlock.ru-ru div.flags {
+ background: url(./images/old/flags/ru.png);
+}
+div.languageBlock.de-de div.flags {
+ background: url(./images/old/flags/de.png);
+}
+/* @end */
diff --git a/frontend/gamma/css/web.css b/frontend/gamma/css/web.css
index 0a72e09..5d8bc20 100644
--- a/frontend/gamma/css/web.css
+++ b/frontend/gamma/css/web.css
@@ -212,308 +212,8 @@ div.tooltip div.tooltip_body {
border-radius: 8px;
-moz-border-radius: 8px;
-webkit-border-radius: 8px;
- border-radius: 8px;
- -moz-border-radius: 8px;
- -webkit-border-radius: 8px;
- border-radius: 8px;
- -moz-border-radius: 8px;
- -webkit-border-radius: 8px;
- border-radius: 8px;
- -moz-border-radius: 8px;
- -webkit-border-radius: 8px;
- border-radius: 8px;
- -moz-border-radius: 8px;
- -webkit-border-radius: 8px;
- border-radius: 8px;
- -moz-border-radius: 8px;
- -webkit-border-radius: 8px;
- background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#bbbbbb), to(#555555));
- background: -moz-linear-gradient(0% 100% 90deg, #555555, #bbbbbb);
- background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#bbbbbb), to(#555555));
- background: -moz-linear-gradient(0% 100% 90deg, #555555, #bbbbbb);
- background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#bbbbbb), to(#555555));
- background: -moz-linear-gradient(0% 100% 90deg, #555555, #bbbbbb);
- background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#bbbbbb), to(#555555));
- background: -moz-linear-gradient(0% 100% 90deg, #555555, #bbbbbb);
- background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#bbbbbb), to(#555555));
- background: -moz-linear-gradient(0% 100% 90deg, #555555, #bbbbbb);
- background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#bbbbbb), to(#555555));
- background: -moz-linear-gradient(0% 100% 90deg, #555555, #bbbbbb);
- -webkit-box-shadow: 4px 4px 10px #333333;
- -moz-box-shadow: 4px 4px 10px #333333;
- box-shadow: 4px 4px 10px #333333;
- -webkit-box-shadow: 4px 4px 10px #333333;
- -moz-box-shadow: 4px 4px 10px #333333;
- box-shadow: 4px 4px 10px #333333;
- -webkit-box-shadow: 4px 4px 10px #333333;
- -moz-box-shadow: 4px 4px 10px #333333;
- box-shadow: 4px 4px 10px #333333;
- -webkit-box-shadow: 4px 4px 10px #333333;
- -moz-box-shadow: 4px 4px 10px #333333;
- box-shadow: 4px 4px 10px #333333;
- -webkit-box-shadow: 4px 4px 10px #333333;
- -moz-box-shadow: 4px 4px 10px #333333;
- box-shadow: 4px 4px 10px #333333;
- -webkit-box-shadow: 4px 4px 10px #333333;
- -moz-box-shadow: 4px 4px 10px #333333;
- box-shadow: 4px 4px 10px #333333;
- border-top: 1px solid #d4d4d4;
- border-left: 1px solid #a2a2a2;
- border-right: 1px solid #6f6f6f;
- border-bottom: 1px solid #3c3c3c;
- border-radius: 8px;
- -moz-border-radius: 8px;
- -webkit-border-radius: 8px;
- border-radius: 8px;
- -moz-border-radius: 8px;
- -webkit-border-radius: 8px;
- border-radius: 8px;
- -moz-border-radius: 8px;
- -webkit-border-radius: 8px;
- border-radius: 8px;
- -moz-border-radius: 8px;
- -webkit-border-radius: 8px;
- border-radius: 8px;
- -moz-border-radius: 8px;
- -webkit-border-radius: 8px;
- border-radius: 8px;
- -moz-border-radius: 8px;
- -webkit-border-radius: 8px;
- background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#bbbbbb), to(#555555));
- background: -moz-linear-gradient(0% 100% 90deg, #555555, #bbbbbb);
- background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#bbbbbb), to(#555555));
- background: -moz-linear-gradient(0% 100% 90deg, #555555, #bbbbbb);
- background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#bbbbbb), to(#555555));
- background: -moz-linear-gradient(0% 100% 90deg, #555555, #bbbbbb);
- background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#bbbbbb), to(#555555));
- background: -moz-linear-gradient(0% 100% 90deg, #555555, #bbbbbb);
- background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#bbbbbb), to(#555555));
- background: -moz-linear-gradient(0% 100% 90deg, #555555, #bbbbbb);
- background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#bbbbbb), to(#555555));
- background: -moz-linear-gradient(0% 100% 90deg, #555555, #bbbbbb);
- -webkit-box-shadow: 4px 4px 10px #333333;
- -moz-box-shadow: 4px 4px 10px #333333;
- box-shadow: 4px 4px 10px #333333;
- -webkit-box-shadow: 4px 4px 10px #333333;
- -moz-box-shadow: 4px 4px 10px #333333;
- box-shadow: 4px 4px 10px #333333;
- -webkit-box-shadow: 4px 4px 10px #333333;
- -moz-box-shadow: 4px 4px 10px #333333;
- box-shadow: 4px 4px 10px #333333;
- -webkit-box-shadow: 4px 4px 10px #333333;
- -moz-box-shadow: 4px 4px 10px #333333;
- box-shadow: 4px 4px 10px #333333;
- -webkit-box-shadow: 4px 4px 10px #333333;
- -moz-box-shadow: 4px 4px 10px #333333;
- box-shadow: 4px 4px 10px #333333;
- -webkit-box-shadow: 4px 4px 10px #333333;
- -moz-box-shadow: 4px 4px 10px #333333;
- box-shadow: 4px 4px 10px #333333;
- border-top: 1px solid #d4d4d4;
- border-left: 1px solid #a2a2a2;
- border-right: 1px solid #6f6f6f;
- border-bottom: 1px solid #3c3c3c;
- border-radius: 8px;
- -moz-border-radius: 8px;
- -webkit-border-radius: 8px;
- border-radius: 8px;
- -moz-border-radius: 8px;
- -webkit-border-radius: 8px;
- border-radius: 8px;
- -moz-border-radius: 8px;
- -webkit-border-radius: 8px;
- border-radius: 8px;
- -moz-border-radius: 8px;
- -webkit-border-radius: 8px;
- border-radius: 8px;
- -moz-border-radius: 8px;
- -webkit-border-radius: 8px;
- border-radius: 8px;
- -moz-border-radius: 8px;
- -webkit-border-radius: 8px;
- background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#bbbbbb), to(#555555));
- background: -moz-linear-gradient(0% 100% 90deg, #555555, #bbbbbb);
- background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#bbbbbb), to(#555555));
- background: -moz-linear-gradient(0% 100% 90deg, #555555, #bbbbbb);
- background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#bbbbbb), to(#555555));
- background: -moz-linear-gradient(0% 100% 90deg, #555555, #bbbbbb);
- background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#bbbbbb), to(#555555));
- background: -moz-linear-gradient(0% 100% 90deg, #555555, #bbbbbb);
- background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#bbbbbb), to(#555555));
- background: -moz-linear-gradient(0% 100% 90deg, #555555, #bbbbbb);
- background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#bbbbbb), to(#555555));
- background: -moz-linear-gradient(0% 100% 90deg, #555555, #bbbbbb);
- -webkit-box-shadow: 4px 4px 10px #333333;
- -moz-box-shadow: 4px 4px 10px #333333;
- box-shadow: 4px 4px 10px #333333;
- -webkit-box-shadow: 4px 4px 10px #333333;
- -moz-box-shadow: 4px 4px 10px #333333;
- box-shadow: 4px 4px 10px #333333;
- -webkit-box-shadow: 4px 4px 10px #333333;
- -moz-box-shadow: 4px 4px 10px #333333;
- box-shadow: 4px 4px 10px #333333;
- -webkit-box-shadow: 4px 4px 10px #333333;
- -moz-box-shadow: 4px 4px 10px #333333;
- box-shadow: 4px 4px 10px #333333;
- -webkit-box-shadow: 4px 4px 10px #333333;
- -moz-box-shadow: 4px 4px 10px #333333;
- box-shadow: 4px 4px 10px #333333;
- -webkit-box-shadow: 4px 4px 10px #333333;
- -moz-box-shadow: 4px 4px 10px #333333;
- box-shadow: 4px 4px 10px #333333;
- border-top: 1px solid #d4d4d4;
- border-left: 1px solid #a2a2a2;
- border-right: 1px solid #6f6f6f;
- border-bottom: 1px solid #3c3c3c;
- border-radius: 8px;
- -moz-border-radius: 8px;
- -webkit-border-radius: 8px;
- border-radius: 8px;
- -moz-border-radius: 8px;
- -webkit-border-radius: 8px;
- border-radius: 8px;
- -moz-border-radius: 8px;
- -webkit-border-radius: 8px;
- border-radius: 8px;
- -moz-border-radius: 8px;
- -webkit-border-radius: 8px;
- border-radius: 8px;
- -moz-border-radius: 8px;
- -webkit-border-radius: 8px;
- border-radius: 8px;
- -moz-border-radius: 8px;
- -webkit-border-radius: 8px;
- background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#bbbbbb), to(#555555));
- background: -moz-linear-gradient(0% 100% 90deg, #555555, #bbbbbb);
- background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#bbbbbb), to(#555555));
- background: -moz-linear-gradient(0% 100% 90deg, #555555, #bbbbbb);
- background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#bbbbbb), to(#555555));
- background: -moz-linear-gradient(0% 100% 90deg, #555555, #bbbbbb);
- background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#bbbbbb), to(#555555));
- background: -moz-linear-gradient(0% 100% 90deg, #555555, #bbbbbb);
- background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#bbbbbb), to(#555555));
- background: -moz-linear-gradient(0% 100% 90deg, #555555, #bbbbbb);
- background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#bbbbbb), to(#555555));
- background: -moz-linear-gradient(0% 100% 90deg, #555555, #bbbbbb);
- -webkit-box-shadow: 4px 4px 10px #333333;
- -moz-box-shadow: 4px 4px 10px #333333;
- box-shadow: 4px 4px 10px #333333;
- -webkit-box-shadow: 4px 4px 10px #333333;
- -moz-box-shadow: 4px 4px 10px #333333;
- box-shadow: 4px 4px 10px #333333;
- -webkit-box-shadow: 4px 4px 10px #333333;
- -moz-box-shadow: 4px 4px 10px #333333;
- box-shadow: 4px 4px 10px #333333;
- -webkit-box-shadow: 4px 4px 10px #333333;
- -moz-box-shadow: 4px 4px 10px #333333;
- box-shadow: 4px 4px 10px #333333;
- -webkit-box-shadow: 4px 4px 10px #333333;
- -moz-box-shadow: 4px 4px 10px #333333;
- box-shadow: 4px 4px 10px #333333;
- -webkit-box-shadow: 4px 4px 10px #333333;
- -moz-box-shadow: 4px 4px 10px #333333;
- box-shadow: 4px 4px 10px #333333;
- border-top: 1px solid #d4d4d4;
- border-left: 1px solid #a2a2a2;
- border-right: 1px solid #6f6f6f;
- border-bottom: 1px solid #3c3c3c;
- border-radius: 8px;
- -moz-border-radius: 8px;
- -webkit-border-radius: 8px;
- border-radius: 8px;
- -moz-border-radius: 8px;
- -webkit-border-radius: 8px;
- border-radius: 8px;
- -moz-border-radius: 8px;
- -webkit-border-radius: 8px;
- border-radius: 8px;
- -moz-border-radius: 8px;
- -webkit-border-radius: 8px;
- border-radius: 8px;
- -moz-border-radius: 8px;
- -webkit-border-radius: 8px;
- border-radius: 8px;
- -moz-border-radius: 8px;
- -webkit-border-radius: 8px;
- background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#bbbbbb), to(#555555));
- background: -moz-linear-gradient(0% 100% 90deg, #555555, #bbbbbb);
- background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#bbbbbb), to(#555555));
- background: -moz-linear-gradient(0% 100% 90deg, #555555, #bbbbbb);
- background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#bbbbbb), to(#555555));
- background: -moz-linear-gradient(0% 100% 90deg, #555555, #bbbbbb);
- background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#bbbbbb), to(#555555));
- background: -moz-linear-gradient(0% 100% 90deg, #555555, #bbbbbb);
- background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#bbbbbb), to(#555555));
- background: -moz-linear-gradient(0% 100% 90deg, #555555, #bbbbbb);
- background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#bbbbbb), to(#555555));
- background: -moz-linear-gradient(0% 100% 90deg, #555555, #bbbbbb);
- -webkit-box-shadow: 4px 4px 10px #333333;
- -moz-box-shadow: 4px 4px 10px #333333;
- box-shadow: 4px 4px 10px #333333;
- -webkit-box-shadow: 4px 4px 10px #333333;
- -moz-box-shadow: 4px 4px 10px #333333;
- box-shadow: 4px 4px 10px #333333;
- -webkit-box-shadow: 4px 4px 10px #333333;
- -moz-box-shadow: 4px 4px 10px #333333;
- box-shadow: 4px 4px 10px #333333;
- -webkit-box-shadow: 4px 4px 10px #333333;
- -moz-box-shadow: 4px 4px 10px #333333;
- box-shadow: 4px 4px 10px #333333;
- -webkit-box-shadow: 4px 4px 10px #333333;
- -moz-box-shadow: 4px 4px 10px #333333;
- box-shadow: 4px 4px 10px #333333;
- -webkit-box-shadow: 4px 4px 10px #333333;
- -moz-box-shadow: 4px 4px 10px #333333;
- box-shadow: 4px 4px 10px #333333;
- border-top: 1px solid #d4d4d4;
- border-left: 1px solid #a2a2a2;
- border-right: 1px solid #6f6f6f;
- border-bottom: 1px solid #3c3c3c;
- border-radius: 8px;
- -moz-border-radius: 8px;
- -webkit-border-radius: 8px;
- border-radius: 8px;
- -moz-border-radius: 8px;
- -webkit-border-radius: 8px;
- border-radius: 8px;
- -moz-border-radius: 8px;
- -webkit-border-radius: 8px;
- border-radius: 8px;
- -moz-border-radius: 8px;
- -webkit-border-radius: 8px;
- border-radius: 8px;
- -moz-border-radius: 8px;
- -webkit-border-radius: 8px;
- border-radius: 8px;
- -moz-border-radius: 8px;
- -webkit-border-radius: 8px;
- background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#bbbbbb), to(#555555));
- background: -moz-linear-gradient(0% 100% 90deg, #555555, #bbbbbb);
- background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#bbbbbb), to(#555555));
- background: -moz-linear-gradient(0% 100% 90deg, #555555, #bbbbbb);
- background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#bbbbbb), to(#555555));
- background: -moz-linear-gradient(0% 100% 90deg, #555555, #bbbbbb);
background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#bbbbbb), to(#555555));
background: -moz-linear-gradient(0% 100% 90deg, #555555, #bbbbbb);
- background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#bbbbbb), to(#555555));
- background: -moz-linear-gradient(0% 100% 90deg, #555555, #bbbbbb);
- background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#bbbbbb), to(#555555));
- background: -moz-linear-gradient(0% 100% 90deg, #555555, #bbbbbb);
- -webkit-box-shadow: 4px 4px 10px #333333;
- -moz-box-shadow: 4px 4px 10px #333333;
- box-shadow: 4px 4px 10px #333333;
- -webkit-box-shadow: 4px 4px 10px #333333;
- -moz-box-shadow: 4px 4px 10px #333333;
- box-shadow: 4px 4px 10px #333333;
- -webkit-box-shadow: 4px 4px 10px #333333;
- -moz-box-shadow: 4px 4px 10px #333333;
- box-shadow: 4px 4px 10px #333333;
- -webkit-box-shadow: 4px 4px 10px #333333;
- -moz-box-shadow: 4px 4px 10px #333333;
- box-shadow: 4px 4px 10px #333333;
- -webkit-box-shadow: 4px 4px 10px #333333;
- -moz-box-shadow: 4px 4px 10px #333333;
- box-shadow: 4px 4px 10px #333333;
-webkit-box-shadow: 4px 4px 10px #333333;
-moz-box-shadow: 4px 4px 10px #333333;
box-shadow: 4px 4px 10px #333333;
@@ -563,6 +263,53 @@ div.tooltip.RIGHT div.tooltip_arrow {
div.tooltip.RIGHT div.tooltip_body div.tooltip_text {
min-height: 45px;
}
+.button.default {
+ display: inline-block;
+ height: 20px;
+ cursor: pointer;
+ background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#ffa76f), to(#ff6622));
+ background: -moz-linear-gradient(0% 100% 90deg, #ff6622, #ffa76f);
+ border-radius: 5;
+ -moz-border-radius: 5;
+ -webkit-border-radius: 5;
+ border: 1px solid #ff7f46;
+ padding-top: 4px;
+ padding-left: 15px;
+ padding-right: 15px;
+ padding-bottom: 2px;
+ color: white;
+ font-weight: lighter;
+ text-shadow: -1px -1px 1px #ff6622, 1px 1px 1px #ffa76f;
+ text-decoration: none;
+ font-weight: normal;
+}
+.button.default:hover {
+ background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#ff8e46), to(#ff6622));
+ background: -moz-linear-gradient(0% 100% 90deg, #ff6622, #ff8e46);
+}
+.button {
+ display: inline-block;
+ height: 20px;
+ cursor: pointer;
+ background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#bfbfbf), to(#999999));
+ background: -moz-linear-gradient(0% 100% 90deg, #999999, #bfbfbf);
+ border-radius: 5;
+ -moz-border-radius: 5;
+ -webkit-border-radius: 5;
+ border: 1px solid #ababab;
+ padding-top: 4px;
+ padding-left: 15px;
+ padding-right: 15px;
+ padding-bottom: 2px;
+ color: white;
+ font-weight: lighter;
+ text-shadow: -1px -1px 1px #999999, 1px 1px 1px #bfbfbf;
+ text-decoration: none;
+}
+.button:hover {
+ background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#ababab), to(#999999));
+ background: -moz-linear-gradient(0% 100% 90deg, #999999, #ababab);
+}
/*
Color list:
@@ -614,47 +361,32 @@ div.modalDialogMask.userInfoBoxMask {
div.pageHeaderAndBody {
height: 100%;
}
-body > div.pageHeaderAndBody {
- height: auto;
- min-height: 100%;
+div.pageHeaderAndBody div#pageBody {
+ min-width: 1013px;
+ padding-bottom: 90px;
}
-div.pageHeader {
+div.pageHeaderAndBody div.pageHeader {
background-color: #1f2148;
min-width: 1013px;
}
-div.pageHeader div#miscLinks {
+div.pageHeaderAndBody div.pageHeader div#miscLinks {
float: right;
}
-div.pageHeader div#miscLinks ul {
+div.pageHeaderAndBody div.pageHeader div#miscLinks ul {
margin: 12px 0px 0px;
padding: 15px;
}
-div.pageHeader div#miscLinks ul li {
+div.pageHeaderAndBody div.pageHeader div#miscLinks ul li {
display: inline;
margin: 0px;
padding: 0px;
border: 0px;
}
-div.pageHeader div#miscLinks ul li a {
+div.pageHeaderAndBody div.pageHeader div#miscLinks ul li a {
color: #ffffff;
margin: 0px;
padding: 0px;
border: 0px;
- margin: 0px;
- padding: 0px;
- border: 0px;
- margin: 0px;
- padding: 0px;
- border: 0px;
- margin: 0px;
- padding: 0px;
- border: 0px;
- margin: 0px;
- padding: 0px;
- border: 0px;
- margin: 0px;
- padding: 0px;
- border: 0px;
padding: 15px;
border-left: 1px solid #3e428f;
font-weight: normal;
@@ -662,106 +394,66 @@ div.pageHeader div#miscLinks ul li a {
font-size: 12pt;
min-width: 70px;
}
-div.pageHeader div#miscLinks ul li a:hover {
+div.pageHeaderAndBody div.pageHeader div#miscLinks ul li a:hover {
color: #b8bae1;
}
-div.pageHeader div#miscLinks ul li a#donateHeaderLink {
+div.pageHeaderAndBody div.pageHeader div#miscLinks ul li a#donateHeaderLink {
border-left: 0px;
}
-div.pageHeader div#logoFrame {
+div.pageHeaderAndBody div.pageHeader div#logoFrame {
padding: 16px 16px 60px 16px;
min-height: 44px;
}
-div.pageHeader div#logoFrame a {
+div.pageHeaderAndBody div.pageHeader div#logoFrame a {
color: white;
text-decoration: none;
}
-div.pageHeader div#logoFrame a canvas {
- margin: 0px;
- padding: 0px;
- border: 0px;
- margin: 0px;
- padding: 0px;
- border: 0px;
- margin: 0px;
- padding: 0px;
- border: 0px;
- margin: 0px;
- padding: 0px;
- border: 0px;
- margin: 0px;
- padding: 0px;
- border: 0px;
+div.pageHeaderAndBody div.pageHeader div#logoFrame a canvas {
margin: 0px;
padding: 0px;
border: 0px;
width: 150px;
height: 39px;
}
-div.pageHeader div#logoFrame a h5.clipperzPayoff {
+div.pageHeaderAndBody div.pageHeader div#logoFrame a h5.clipperzPayoff {
font-size: 13pt;
font-weight: normal;
white-space: nowrap;
margin: 0px;
padding-left: 4px;
}
-div.pageHeader div#featureTabs table {
+div.pageHeaderAndBody div.pageHeader div#featureTabs table {
width: 100%;
padding: 6px;
padding-left: 15px;
padding-right: 15px;
padding-bottom: 46px;
}
-div.pageHeader div#featureTabs table tr td {
+div.pageHeaderAndBody div.pageHeader div#featureTabs table tr td {
width: 25%;
vertical-align: top;
font-size: 11pt;
color: white;
}
-div.pageHeader div#featureTabs table tr td img {
+div.pageHeaderAndBody div.pageHeader div#featureTabs table tr td img {
float: left;
}
-div.pageHeader div#featureTabs table tr td span {
+div.pageHeaderAndBody div.pageHeader div#featureTabs table tr td span {
display: block;
padding: 5 10 5 85;
}
-div.pageHeader div#featureTabs canvas.featureIcon {
+div.pageHeaderAndBody div.pageHeader div#featureTabs canvas.featureIcon {
width: 76px;
height: 76px;
display: block;
float: left;
background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#ffad79), to(#ff6622));
background: -moz-linear-gradient(0% 100% 90deg, #ff6622, #ffad79);
- background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#ffad79), to(#ff6622));
- background: -moz-linear-gradient(0% 100% 90deg, #ff6622, #ffad79);
- background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#ffad79), to(#ff6622));
- background: -moz-linear-gradient(0% 100% 90deg, #ff6622, #ffad79);
- background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#ffad79), to(#ff6622));
- background: -moz-linear-gradient(0% 100% 90deg, #ff6622, #ffad79);
- background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#ffad79), to(#ff6622));
- background: -moz-linear-gradient(0% 100% 90deg, #ff6622, #ffad79);
- background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#ffad79), to(#ff6622));
- background: -moz-linear-gradient(0% 100% 90deg, #ff6622, #ffad79);
- border-radius: 38px;
- -moz-border-radius: 38px;
- -webkit-border-radius: 38px;
- border-radius: 38px;
- -moz-border-radius: 38px;
- -webkit-border-radius: 38px;
- border-radius: 38px;
- -moz-border-radius: 38px;
- -webkit-border-radius: 38px;
- border-radius: 38px;
- -moz-border-radius: 38px;
- -webkit-border-radius: 38px;
- border-radius: 38px;
- -moz-border-radius: 38px;
- -webkit-border-radius: 38px;
border-radius: 38px;
-moz-border-radius: 38px;
-webkit-border-radius: 38px;
}
-div.pageHeader div#news {
+div.pageHeaderAndBody div.pageHeader div#news {
top: -82px;
left: 240px;
width: 310px;
@@ -771,257 +463,32 @@ div.pageHeader div#news {
-webkit-border-bottom-left-radius: 8px;
-moz-border-radius-bottomleft: 8px;
border-bottom-left-radius: 8px;
- -webkit-border-bottom-left-radius: 8px;
- -moz-border-radius-bottomleft: 8px;
- border-bottom-left-radius: 8px;
- -webkit-border-bottom-left-radius: 8px;
- -moz-border-radius-bottomleft: 8px;
- border-bottom-left-radius: 8px;
- -webkit-border-bottom-left-radius: 8px;
- -moz-border-radius-bottomleft: 8px;
- border-bottom-left-radius: 8px;
- -webkit-border-bottom-left-radius: 8px;
- -moz-border-radius-bottomleft: 8px;
- border-bottom-left-radius: 8px;
- -webkit-border-bottom-left-radius: 8px;
- -moz-border-radius-bottomleft: 8px;
- border-bottom-left-radius: 8px;
- -webkit-border-bottom-right-radius: 8px;
- -moz-border-radius-bottomright: 8px;
- border-bottom-right-radius: 8px;
- -webkit-border-bottom-right-radius: 8px;
- -moz-border-radius-bottomright: 8px;
- border-bottom-right-radius: 8px;
- -webkit-border-bottom-right-radius: 8px;
- -moz-border-radius-bottomright: 8px;
- border-bottom-right-radius: 8px;
- -webkit-border-bottom-right-radius: 8px;
- -moz-border-radius-bottomright: 8px;
- border-bottom-right-radius: 8px;
-webkit-border-bottom-right-radius: 8px;
-moz-border-radius-bottomright: 8px;
border-bottom-right-radius: 8px;
- -webkit-border-bottom-right-radius: 8px;
- -moz-border-radius-bottomright: 8px;
- border-bottom-right-radius: 8px;
- -webkit-border-bottom-left-radius: 8px;
- -moz-border-radius-bottomleft: 8px;
- border-bottom-left-radius: 8px;
- -webkit-border-bottom-left-radius: 8px;
- -moz-border-radius-bottomleft: 8px;
- border-bottom-left-radius: 8px;
- -webkit-border-bottom-left-radius: 8px;
- -moz-border-radius-bottomleft: 8px;
- border-bottom-left-radius: 8px;
- -webkit-border-bottom-left-radius: 8px;
- -moz-border-radius-bottomleft: 8px;
- border-bottom-left-radius: 8px;
- -webkit-border-bottom-left-radius: 8px;
- -moz-border-radius-bottomleft: 8px;
- border-bottom-left-radius: 8px;
- -webkit-border-bottom-left-radius: 8px;
- -moz-border-radius-bottomleft: 8px;
- border-bottom-left-radius: 8px;
- -webkit-border-bottom-right-radius: 8px;
- -moz-border-radius-bottomright: 8px;
- border-bottom-right-radius: 8px;
- -webkit-border-bottom-right-radius: 8px;
- -moz-border-radius-bottomright: 8px;
- border-bottom-right-radius: 8px;
- -webkit-border-bottom-right-radius: 8px;
- -moz-border-radius-bottomright: 8px;
- border-bottom-right-radius: 8px;
- -webkit-border-bottom-right-radius: 8px;
- -moz-border-radius-bottomright: 8px;
- border-bottom-right-radius: 8px;
- -webkit-border-bottom-right-radius: 8px;
- -moz-border-radius-bottomright: 8px;
- border-bottom-right-radius: 8px;
- -webkit-border-bottom-right-radius: 8px;
- -moz-border-radius-bottomright: 8px;
- border-bottom-right-radius: 8px;
- -webkit-border-bottom-left-radius: 8px;
- -moz-border-radius-bottomleft: 8px;
- border-bottom-left-radius: 8px;
- -webkit-border-bottom-left-radius: 8px;
- -moz-border-radius-bottomleft: 8px;
- border-bottom-left-radius: 8px;
- -webkit-border-bottom-left-radius: 8px;
- -moz-border-radius-bottomleft: 8px;
- border-bottom-left-radius: 8px;
- -webkit-border-bottom-left-radius: 8px;
- -moz-border-radius-bottomleft: 8px;
- border-bottom-left-radius: 8px;
- -webkit-border-bottom-left-radius: 8px;
- -moz-border-radius-bottomleft: 8px;
- border-bottom-left-radius: 8px;
- -webkit-border-bottom-left-radius: 8px;
- -moz-border-radius-bottomleft: 8px;
- border-bottom-left-radius: 8px;
- -webkit-border-bottom-right-radius: 8px;
- -moz-border-radius-bottomright: 8px;
- border-bottom-right-radius: 8px;
- -webkit-border-bottom-right-radius: 8px;
- -moz-border-radius-bottomright: 8px;
- border-bottom-right-radius: 8px;
- -webkit-border-bottom-right-radius: 8px;
- -moz-border-radius-bottomright: 8px;
- border-bottom-right-radius: 8px;
- -webkit-border-bottom-right-radius: 8px;
- -moz-border-radius-bottomright: 8px;
- border-bottom-right-radius: 8px;
- -webkit-border-bottom-right-radius: 8px;
- -moz-border-radius-bottomright: 8px;
- border-bottom-right-radius: 8px;
- -webkit-border-bottom-right-radius: 8px;
- -moz-border-radius-bottomright: 8px;
- border-bottom-right-radius: 8px;
- -webkit-border-bottom-left-radius: 8px;
- -moz-border-radius-bottomleft: 8px;
- border-bottom-left-radius: 8px;
- -webkit-border-bottom-left-radius: 8px;
- -moz-border-radius-bottomleft: 8px;
- border-bottom-left-radius: 8px;
- -webkit-border-bottom-left-radius: 8px;
- -moz-border-radius-bottomleft: 8px;
- border-bottom-left-radius: 8px;
- -webkit-border-bottom-left-radius: 8px;
- -moz-border-radius-bottomleft: 8px;
- border-bottom-left-radius: 8px;
- -webkit-border-bottom-left-radius: 8px;
- -moz-border-radius-bottomleft: 8px;
- border-bottom-left-radius: 8px;
- -webkit-border-bottom-left-radius: 8px;
- -moz-border-radius-bottomleft: 8px;
- border-bottom-left-radius: 8px;
- -webkit-border-bottom-right-radius: 8px;
- -moz-border-radius-bottomright: 8px;
- border-bottom-right-radius: 8px;
- -webkit-border-bottom-right-radius: 8px;
- -moz-border-radius-bottomright: 8px;
- border-bottom-right-radius: 8px;
- -webkit-border-bottom-right-radius: 8px;
- -moz-border-radius-bottomright: 8px;
- border-bottom-right-radius: 8px;
- -webkit-border-bottom-right-radius: 8px;
- -moz-border-radius-bottomright: 8px;
- border-bottom-right-radius: 8px;
- -webkit-border-bottom-right-radius: 8px;
- -moz-border-radius-bottomright: 8px;
- border-bottom-right-radius: 8px;
- -webkit-border-bottom-right-radius: 8px;
- -moz-border-radius-bottomright: 8px;
- border-bottom-right-radius: 8px;
- -webkit-border-bottom-left-radius: 8px;
- -moz-border-radius-bottomleft: 8px;
- border-bottom-left-radius: 8px;
- -webkit-border-bottom-left-radius: 8px;
- -moz-border-radius-bottomleft: 8px;
- border-bottom-left-radius: 8px;
- -webkit-border-bottom-left-radius: 8px;
- -moz-border-radius-bottomleft: 8px;
- border-bottom-left-radius: 8px;
- -webkit-border-bottom-left-radius: 8px;
- -moz-border-radius-bottomleft: 8px;
- border-bottom-left-radius: 8px;
- -webkit-border-bottom-left-radius: 8px;
- -moz-border-radius-bottomleft: 8px;
- border-bottom-left-radius: 8px;
- -webkit-border-bottom-left-radius: 8px;
- -moz-border-radius-bottomleft: 8px;
- border-bottom-left-radius: 8px;
- -webkit-border-bottom-right-radius: 8px;
- -moz-border-radius-bottomright: 8px;
- border-bottom-right-radius: 8px;
- -webkit-border-bottom-right-radius: 8px;
- -moz-border-radius-bottomright: 8px;
- border-bottom-right-radius: 8px;
- -webkit-border-bottom-right-radius: 8px;
- -moz-border-radius-bottomright: 8px;
- border-bottom-right-radius: 8px;
- -webkit-border-bottom-right-radius: 8px;
- -moz-border-radius-bottomright: 8px;
- border-bottom-right-radius: 8px;
- -webkit-border-bottom-right-radius: 8px;
- -moz-border-radius-bottomright: 8px;
- border-bottom-right-radius: 8px;
- -webkit-border-bottom-right-radius: 8px;
- -moz-border-radius-bottomright: 8px;
- border-bottom-right-radius: 8px;
- -webkit-border-bottom-left-radius: 8px;
- -moz-border-radius-bottomleft: 8px;
- border-bottom-left-radius: 8px;
- -webkit-border-bottom-left-radius: 8px;
- -moz-border-radius-bottomleft: 8px;
- border-bottom-left-radius: 8px;
- -webkit-border-bottom-left-radius: 8px;
- -moz-border-radius-bottomleft: 8px;
- border-bottom-left-radius: 8px;
- -webkit-border-bottom-left-radius: 8px;
- -moz-border-radius-bottomleft: 8px;
- border-bottom-left-radius: 8px;
- -webkit-border-bottom-left-radius: 8px;
- -moz-border-radius-bottomleft: 8px;
- border-bottom-left-radius: 8px;
- -webkit-border-bottom-left-radius: 8px;
- -moz-border-radius-bottomleft: 8px;
- border-bottom-left-radius: 8px;
- -webkit-border-bottom-right-radius: 8px;
- -moz-border-radius-bottomright: 8px;
- border-bottom-right-radius: 8px;
- -webkit-border-bottom-right-radius: 8px;
- -moz-border-radius-bottomright: 8px;
- border-bottom-right-radius: 8px;
- -webkit-border-bottom-right-radius: 8px;
- -moz-border-radius-bottomright: 8px;
- border-bottom-right-radius: 8px;
- -webkit-border-bottom-right-radius: 8px;
- -moz-border-radius-bottomright: 8px;
- border-bottom-right-radius: 8px;
- -webkit-border-bottom-right-radius: 8px;
- -moz-border-radius-bottomright: 8px;
- border-bottom-right-radius: 8px;
- -webkit-border-bottom-right-radius: 8px;
- -moz-border-radius-bottomright: 8px;
- border-bottom-right-radius: 8px;
- -webkit-box-shadow: 2px 2px 9px #333333;
- -moz-box-shadow: 2px 2px 9px #333333;
- box-shadow: 2px 2px 9px #333333;
- -webkit-box-shadow: 2px 2px 9px #333333;
- -moz-box-shadow: 2px 2px 9px #333333;
- box-shadow: 2px 2px 9px #333333;
- -webkit-box-shadow: 2px 2px 9px #333333;
- -moz-box-shadow: 2px 2px 9px #333333;
- box-shadow: 2px 2px 9px #333333;
- -webkit-box-shadow: 2px 2px 9px #333333;
- -moz-box-shadow: 2px 2px 9px #333333;
- box-shadow: 2px 2px 9px #333333;
- -webkit-box-shadow: 2px 2px 9px #333333;
- -moz-box-shadow: 2px 2px 9px #333333;
- box-shadow: 2px 2px 9px #333333;
-webkit-box-shadow: 2px 2px 9px #333333;
-moz-box-shadow: 2px 2px 9px #333333;
box-shadow: 2px 2px 9px #333333;
}
-div.pageHeader div#news div#newsframe {
+div.pageHeaderAndBody div.pageHeader div#news div#newsframe {
margin-left: 10px;
margin-right: 10px;
height: 75px;
overflow: hidden;
}
-div.pageHeader div#news div#newsframe iframe {
+div.pageHeaderAndBody div.pageHeader div#news div#newsframe iframe {
width: 290px;
border: 0px;
color: #616475;
background-color: #616475;
}
-div.pageHeader div#news div.grip {
+div.pageHeaderAndBody div.pageHeader div#news div.grip {
width: 310px;
- height: 12px;
+ height: 6px;
margin-top: 2px;
cursor: pointer;
}
-div.pageHeader div#news div.grip div.gripHandler {
+div.pageHeaderAndBody div.pageHeader div#news div.grip div.gripHandler {
margin-left: auto;
margin-right: auto;
margin-top: 8px;
@@ -1030,10 +497,10 @@ div.pageHeader div#news div.grip div.gripHandler {
border-left: 5px solid transparent;
border-right: 5px solid transparent;
}
-div.pageHeader div#news.open div.grip div.gripHandler {
+div.pageHeaderAndBody div.pageHeader div#news.open div.grip div.gripHandler {
border-bottom: 5px solid #e9e9ec;
}
-div.pageHeader div#news.hidden div.grip div.gripHandler {
+div.pageHeaderAndBody div.pageHeader div#news.hidden div.grip div.gripHandler {
border-top: 5px solid #e9e9ec;
}
div.pageFooter {
@@ -1066,7 +533,7 @@ div.pageFooter div.footerWrapper div.footerContent a {
font-weight: bold;
text-decoration: none;
}
-div.pageFooter div.footerWrapper div.footerContent span.applicationVersion {
+div.pageFooter div.footerWrapper div.footerContent div.applicationVersion {
padding: 8px;
color: #888888;
background-color: #d2d2d2;
@@ -1074,6 +541,10 @@ div.pageFooter div.footerWrapper div.footerContent span.applicationVersion {
top: -40px;
float: right;
}
+div.pageFooter div.footerWrapper div.footerContent div.applicationVersion a {
+ padding-left: 0px;
+ display: inline;
+}
/*
Color list:
@@ -1137,216 +608,6 @@ div#loginBox div.header {
-webkit-border-top-left-radius: 20px;
-moz-border-radius-topleft: 20px;
border-top-left-radius: 20px;
- -webkit-border-top-left-radius: 20px;
- -moz-border-radius-topleft: 20px;
- border-top-left-radius: 20px;
- -webkit-border-top-left-radius: 20px;
- -moz-border-radius-topleft: 20px;
- border-top-left-radius: 20px;
- -webkit-border-top-left-radius: 20px;
- -moz-border-radius-topleft: 20px;
- border-top-left-radius: 20px;
- -webkit-border-top-left-radius: 20px;
- -moz-border-radius-topleft: 20px;
- border-top-left-radius: 20px;
- -webkit-border-top-left-radius: 20px;
- -moz-border-radius-topleft: 20px;
- border-top-left-radius: 20px;
- -webkit-border-top-right-radius: 20px;
- -moz-border-radius-topright: 20px;
- border-top-right-radius: 20px;
- -webkit-border-top-right-radius: 20px;
- -moz-border-radius-topright: 20px;
- border-top-right-radius: 20px;
- -webkit-border-top-right-radius: 20px;
- -moz-border-radius-topright: 20px;
- border-top-right-radius: 20px;
- -webkit-border-top-right-radius: 20px;
- -moz-border-radius-topright: 20px;
- border-top-right-radius: 20px;
- -webkit-border-top-right-radius: 20px;
- -moz-border-radius-topright: 20px;
- border-top-right-radius: 20px;
- -webkit-border-top-right-radius: 20px;
- -moz-border-radius-topright: 20px;
- border-top-right-radius: 20px;
- -webkit-border-top-left-radius: 20px;
- -moz-border-radius-topleft: 20px;
- border-top-left-radius: 20px;
- -webkit-border-top-left-radius: 20px;
- -moz-border-radius-topleft: 20px;
- border-top-left-radius: 20px;
- -webkit-border-top-left-radius: 20px;
- -moz-border-radius-topleft: 20px;
- border-top-left-radius: 20px;
- -webkit-border-top-left-radius: 20px;
- -moz-border-radius-topleft: 20px;
- border-top-left-radius: 20px;
- -webkit-border-top-left-radius: 20px;
- -moz-border-radius-topleft: 20px;
- border-top-left-radius: 20px;
- -webkit-border-top-left-radius: 20px;
- -moz-border-radius-topleft: 20px;
- border-top-left-radius: 20px;
- -webkit-border-top-right-radius: 20px;
- -moz-border-radius-topright: 20px;
- border-top-right-radius: 20px;
- -webkit-border-top-right-radius: 20px;
- -moz-border-radius-topright: 20px;
- border-top-right-radius: 20px;
- -webkit-border-top-right-radius: 20px;
- -moz-border-radius-topright: 20px;
- border-top-right-radius: 20px;
- -webkit-border-top-right-radius: 20px;
- -moz-border-radius-topright: 20px;
- border-top-right-radius: 20px;
- -webkit-border-top-right-radius: 20px;
- -moz-border-radius-topright: 20px;
- border-top-right-radius: 20px;
- -webkit-border-top-right-radius: 20px;
- -moz-border-radius-topright: 20px;
- border-top-right-radius: 20px;
- -webkit-border-top-left-radius: 20px;
- -moz-border-radius-topleft: 20px;
- border-top-left-radius: 20px;
- -webkit-border-top-left-radius: 20px;
- -moz-border-radius-topleft: 20px;
- border-top-left-radius: 20px;
- -webkit-border-top-left-radius: 20px;
- -moz-border-radius-topleft: 20px;
- border-top-left-radius: 20px;
- -webkit-border-top-left-radius: 20px;
- -moz-border-radius-topleft: 20px;
- border-top-left-radius: 20px;
- -webkit-border-top-left-radius: 20px;
- -moz-border-radius-topleft: 20px;
- border-top-left-radius: 20px;
- -webkit-border-top-left-radius: 20px;
- -moz-border-radius-topleft: 20px;
- border-top-left-radius: 20px;
- -webkit-border-top-right-radius: 20px;
- -moz-border-radius-topright: 20px;
- border-top-right-radius: 20px;
- -webkit-border-top-right-radius: 20px;
- -moz-border-radius-topright: 20px;
- border-top-right-radius: 20px;
- -webkit-border-top-right-radius: 20px;
- -moz-border-radius-topright: 20px;
- border-top-right-radius: 20px;
- -webkit-border-top-right-radius: 20px;
- -moz-border-radius-topright: 20px;
- border-top-right-radius: 20px;
- -webkit-border-top-right-radius: 20px;
- -moz-border-radius-topright: 20px;
- border-top-right-radius: 20px;
- -webkit-border-top-right-radius: 20px;
- -moz-border-radius-topright: 20px;
- border-top-right-radius: 20px;
- -webkit-border-top-left-radius: 20px;
- -moz-border-radius-topleft: 20px;
- border-top-left-radius: 20px;
- -webkit-border-top-left-radius: 20px;
- -moz-border-radius-topleft: 20px;
- border-top-left-radius: 20px;
- -webkit-border-top-left-radius: 20px;
- -moz-border-radius-topleft: 20px;
- border-top-left-radius: 20px;
- -webkit-border-top-left-radius: 20px;
- -moz-border-radius-topleft: 20px;
- border-top-left-radius: 20px;
- -webkit-border-top-left-radius: 20px;
- -moz-border-radius-topleft: 20px;
- border-top-left-radius: 20px;
- -webkit-border-top-left-radius: 20px;
- -moz-border-radius-topleft: 20px;
- border-top-left-radius: 20px;
- -webkit-border-top-right-radius: 20px;
- -moz-border-radius-topright: 20px;
- border-top-right-radius: 20px;
- -webkit-border-top-right-radius: 20px;
- -moz-border-radius-topright: 20px;
- border-top-right-radius: 20px;
- -webkit-border-top-right-radius: 20px;
- -moz-border-radius-topright: 20px;
- border-top-right-radius: 20px;
- -webkit-border-top-right-radius: 20px;
- -moz-border-radius-topright: 20px;
- border-top-right-radius: 20px;
- -webkit-border-top-right-radius: 20px;
- -moz-border-radius-topright: 20px;
- border-top-right-radius: 20px;
- -webkit-border-top-right-radius: 20px;
- -moz-border-radius-topright: 20px;
- border-top-right-radius: 20px;
- -webkit-border-top-left-radius: 20px;
- -moz-border-radius-topleft: 20px;
- border-top-left-radius: 20px;
- -webkit-border-top-left-radius: 20px;
- -moz-border-radius-topleft: 20px;
- border-top-left-radius: 20px;
- -webkit-border-top-left-radius: 20px;
- -moz-border-radius-topleft: 20px;
- border-top-left-radius: 20px;
- -webkit-border-top-left-radius: 20px;
- -moz-border-radius-topleft: 20px;
- border-top-left-radius: 20px;
- -webkit-border-top-left-radius: 20px;
- -moz-border-radius-topleft: 20px;
- border-top-left-radius: 20px;
- -webkit-border-top-left-radius: 20px;
- -moz-border-radius-topleft: 20px;
- border-top-left-radius: 20px;
- -webkit-border-top-right-radius: 20px;
- -moz-border-radius-topright: 20px;
- border-top-right-radius: 20px;
- -webkit-border-top-right-radius: 20px;
- -moz-border-radius-topright: 20px;
- border-top-right-radius: 20px;
- -webkit-border-top-right-radius: 20px;
- -moz-border-radius-topright: 20px;
- border-top-right-radius: 20px;
- -webkit-border-top-right-radius: 20px;
- -moz-border-radius-topright: 20px;
- border-top-right-radius: 20px;
- -webkit-border-top-right-radius: 20px;
- -moz-border-radius-topright: 20px;
- border-top-right-radius: 20px;
- -webkit-border-top-right-radius: 20px;
- -moz-border-radius-topright: 20px;
- border-top-right-radius: 20px;
- -webkit-border-top-left-radius: 20px;
- -moz-border-radius-topleft: 20px;
- border-top-left-radius: 20px;
- -webkit-border-top-left-radius: 20px;
- -moz-border-radius-topleft: 20px;
- border-top-left-radius: 20px;
- -webkit-border-top-left-radius: 20px;
- -moz-border-radius-topleft: 20px;
- border-top-left-radius: 20px;
- -webkit-border-top-left-radius: 20px;
- -moz-border-radius-topleft: 20px;
- border-top-left-radius: 20px;
- -webkit-border-top-left-radius: 20px;
- -moz-border-radius-topleft: 20px;
- border-top-left-radius: 20px;
- -webkit-border-top-left-radius: 20px;
- -moz-border-radius-topleft: 20px;
- border-top-left-radius: 20px;
- -webkit-border-top-right-radius: 20px;
- -moz-border-radius-topright: 20px;
- border-top-right-radius: 20px;
- -webkit-border-top-right-radius: 20px;
- -moz-border-radius-topright: 20px;
- border-top-right-radius: 20px;
- -webkit-border-top-right-radius: 20px;
- -moz-border-radius-topright: 20px;
- border-top-right-radius: 20px;
- -webkit-border-top-right-radius: 20px;
- -moz-border-radius-topright: 20px;
- border-top-right-radius: 20px;
- -webkit-border-top-right-radius: 20px;
- -moz-border-radius-topright: 20px;
- border-top-right-radius: 20px;
-webkit-border-top-right-radius: 20px;
-moz-border-radius-topright: 20px;
border-top-right-radius: 20px;
@@ -1354,16 +615,6 @@ div#loginBox div.header {
div#loginBox div.body {
background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#ff9b5a), to(#ff6622));
background: -moz-linear-gradient(0% 100% 90deg, #ff6622, #ff9b5a);
- background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#ff9b5a), to(#ff6622));
- background: -moz-linear-gradient(0% 100% 90deg, #ff6622, #ff9b5a);
- background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#ff9b5a), to(#ff6622));
- background: -moz-linear-gradient(0% 100% 90deg, #ff6622, #ff9b5a);
- background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#ff9b5a), to(#ff6622));
- background: -moz-linear-gradient(0% 100% 90deg, #ff6622, #ff9b5a);
- background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#ff9b5a), to(#ff6622));
- background: -moz-linear-gradient(0% 100% 90deg, #ff6622, #ff9b5a);
- background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#ff9b5a), to(#ff6622));
- background: -moz-linear-gradient(0% 100% 90deg, #ff6622, #ff9b5a);
}
div#loginBox div.body h4 {
color: #ffffff;
@@ -1473,216 +724,6 @@ div#loginBox div.footer {
-webkit-border-bottom-left-radius: 20px;
-moz-border-radius-bottomleft: 20px;
border-bottom-left-radius: 20px;
- -webkit-border-bottom-left-radius: 20px;
- -moz-border-radius-bottomleft: 20px;
- border-bottom-left-radius: 20px;
- -webkit-border-bottom-left-radius: 20px;
- -moz-border-radius-bottomleft: 20px;
- border-bottom-left-radius: 20px;
- -webkit-border-bottom-left-radius: 20px;
- -moz-border-radius-bottomleft: 20px;
- border-bottom-left-radius: 20px;
- -webkit-border-bottom-left-radius: 20px;
- -moz-border-radius-bottomleft: 20px;
- border-bottom-left-radius: 20px;
- -webkit-border-bottom-left-radius: 20px;
- -moz-border-radius-bottomleft: 20px;
- border-bottom-left-radius: 20px;
- -webkit-border-bottom-right-radius: 20px;
- -moz-border-radius-bottomright: 20px;
- border-bottom-right-radius: 20px;
- -webkit-border-bottom-right-radius: 20px;
- -moz-border-radius-bottomright: 20px;
- border-bottom-right-radius: 20px;
- -webkit-border-bottom-right-radius: 20px;
- -moz-border-radius-bottomright: 20px;
- border-bottom-right-radius: 20px;
- -webkit-border-bottom-right-radius: 20px;
- -moz-border-radius-bottomright: 20px;
- border-bottom-right-radius: 20px;
- -webkit-border-bottom-right-radius: 20px;
- -moz-border-radius-bottomright: 20px;
- border-bottom-right-radius: 20px;
- -webkit-border-bottom-right-radius: 20px;
- -moz-border-radius-bottomright: 20px;
- border-bottom-right-radius: 20px;
- -webkit-border-bottom-left-radius: 20px;
- -moz-border-radius-bottomleft: 20px;
- border-bottom-left-radius: 20px;
- -webkit-border-bottom-left-radius: 20px;
- -moz-border-radius-bottomleft: 20px;
- border-bottom-left-radius: 20px;
- -webkit-border-bottom-left-radius: 20px;
- -moz-border-radius-bottomleft: 20px;
- border-bottom-left-radius: 20px;
- -webkit-border-bottom-left-radius: 20px;
- -moz-border-radius-bottomleft: 20px;
- border-bottom-left-radius: 20px;
- -webkit-border-bottom-left-radius: 20px;
- -moz-border-radius-bottomleft: 20px;
- border-bottom-left-radius: 20px;
- -webkit-border-bottom-left-radius: 20px;
- -moz-border-radius-bottomleft: 20px;
- border-bottom-left-radius: 20px;
- -webkit-border-bottom-right-radius: 20px;
- -moz-border-radius-bottomright: 20px;
- border-bottom-right-radius: 20px;
- -webkit-border-bottom-right-radius: 20px;
- -moz-border-radius-bottomright: 20px;
- border-bottom-right-radius: 20px;
- -webkit-border-bottom-right-radius: 20px;
- -moz-border-radius-bottomright: 20px;
- border-bottom-right-radius: 20px;
- -webkit-border-bottom-right-radius: 20px;
- -moz-border-radius-bottomright: 20px;
- border-bottom-right-radius: 20px;
- -webkit-border-bottom-right-radius: 20px;
- -moz-border-radius-bottomright: 20px;
- border-bottom-right-radius: 20px;
- -webkit-border-bottom-right-radius: 20px;
- -moz-border-radius-bottomright: 20px;
- border-bottom-right-radius: 20px;
- -webkit-border-bottom-left-radius: 20px;
- -moz-border-radius-bottomleft: 20px;
- border-bottom-left-radius: 20px;
- -webkit-border-bottom-left-radius: 20px;
- -moz-border-radius-bottomleft: 20px;
- border-bottom-left-radius: 20px;
- -webkit-border-bottom-left-radius: 20px;
- -moz-border-radius-bottomleft: 20px;
- border-bottom-left-radius: 20px;
- -webkit-border-bottom-left-radius: 20px;
- -moz-border-radius-bottomleft: 20px;
- border-bottom-left-radius: 20px;
- -webkit-border-bottom-left-radius: 20px;
- -moz-border-radius-bottomleft: 20px;
- border-bottom-left-radius: 20px;
- -webkit-border-bottom-left-radius: 20px;
- -moz-border-radius-bottomleft: 20px;
- border-bottom-left-radius: 20px;
- -webkit-border-bottom-right-radius: 20px;
- -moz-border-radius-bottomright: 20px;
- border-bottom-right-radius: 20px;
- -webkit-border-bottom-right-radius: 20px;
- -moz-border-radius-bottomright: 20px;
- border-bottom-right-radius: 20px;
- -webkit-border-bottom-right-radius: 20px;
- -moz-border-radius-bottomright: 20px;
- border-bottom-right-radius: 20px;
- -webkit-border-bottom-right-radius: 20px;
- -moz-border-radius-bottomright: 20px;
- border-bottom-right-radius: 20px;
- -webkit-border-bottom-right-radius: 20px;
- -moz-border-radius-bottomright: 20px;
- border-bottom-right-radius: 20px;
- -webkit-border-bottom-right-radius: 20px;
- -moz-border-radius-bottomright: 20px;
- border-bottom-right-radius: 20px;
- -webkit-border-bottom-left-radius: 20px;
- -moz-border-radius-bottomleft: 20px;
- border-bottom-left-radius: 20px;
- -webkit-border-bottom-left-radius: 20px;
- -moz-border-radius-bottomleft: 20px;
- border-bottom-left-radius: 20px;
- -webkit-border-bottom-left-radius: 20px;
- -moz-border-radius-bottomleft: 20px;
- border-bottom-left-radius: 20px;
- -webkit-border-bottom-left-radius: 20px;
- -moz-border-radius-bottomleft: 20px;
- border-bottom-left-radius: 20px;
- -webkit-border-bottom-left-radius: 20px;
- -moz-border-radius-bottomleft: 20px;
- border-bottom-left-radius: 20px;
- -webkit-border-bottom-left-radius: 20px;
- -moz-border-radius-bottomleft: 20px;
- border-bottom-left-radius: 20px;
- -webkit-border-bottom-right-radius: 20px;
- -moz-border-radius-bottomright: 20px;
- border-bottom-right-radius: 20px;
- -webkit-border-bottom-right-radius: 20px;
- -moz-border-radius-bottomright: 20px;
- border-bottom-right-radius: 20px;
- -webkit-border-bottom-right-radius: 20px;
- -moz-border-radius-bottomright: 20px;
- border-bottom-right-radius: 20px;
- -webkit-border-bottom-right-radius: 20px;
- -moz-border-radius-bottomright: 20px;
- border-bottom-right-radius: 20px;
- -webkit-border-bottom-right-radius: 20px;
- -moz-border-radius-bottomright: 20px;
- border-bottom-right-radius: 20px;
- -webkit-border-bottom-right-radius: 20px;
- -moz-border-radius-bottomright: 20px;
- border-bottom-right-radius: 20px;
- -webkit-border-bottom-left-radius: 20px;
- -moz-border-radius-bottomleft: 20px;
- border-bottom-left-radius: 20px;
- -webkit-border-bottom-left-radius: 20px;
- -moz-border-radius-bottomleft: 20px;
- border-bottom-left-radius: 20px;
- -webkit-border-bottom-left-radius: 20px;
- -moz-border-radius-bottomleft: 20px;
- border-bottom-left-radius: 20px;
- -webkit-border-bottom-left-radius: 20px;
- -moz-border-radius-bottomleft: 20px;
- border-bottom-left-radius: 20px;
- -webkit-border-bottom-left-radius: 20px;
- -moz-border-radius-bottomleft: 20px;
- border-bottom-left-radius: 20px;
- -webkit-border-bottom-left-radius: 20px;
- -moz-border-radius-bottomleft: 20px;
- border-bottom-left-radius: 20px;
- -webkit-border-bottom-right-radius: 20px;
- -moz-border-radius-bottomright: 20px;
- border-bottom-right-radius: 20px;
- -webkit-border-bottom-right-radius: 20px;
- -moz-border-radius-bottomright: 20px;
- border-bottom-right-radius: 20px;
- -webkit-border-bottom-right-radius: 20px;
- -moz-border-radius-bottomright: 20px;
- border-bottom-right-radius: 20px;
- -webkit-border-bottom-right-radius: 20px;
- -moz-border-radius-bottomright: 20px;
- border-bottom-right-radius: 20px;
- -webkit-border-bottom-right-radius: 20px;
- -moz-border-radius-bottomright: 20px;
- border-bottom-right-radius: 20px;
- -webkit-border-bottom-right-radius: 20px;
- -moz-border-radius-bottomright: 20px;
- border-bottom-right-radius: 20px;
- -webkit-border-bottom-left-radius: 20px;
- -moz-border-radius-bottomleft: 20px;
- border-bottom-left-radius: 20px;
- -webkit-border-bottom-left-radius: 20px;
- -moz-border-radius-bottomleft: 20px;
- border-bottom-left-radius: 20px;
- -webkit-border-bottom-left-radius: 20px;
- -moz-border-radius-bottomleft: 20px;
- border-bottom-left-radius: 20px;
- -webkit-border-bottom-left-radius: 20px;
- -moz-border-radius-bottomleft: 20px;
- border-bottom-left-radius: 20px;
- -webkit-border-bottom-left-radius: 20px;
- -moz-border-radius-bottomleft: 20px;
- border-bottom-left-radius: 20px;
- -webkit-border-bottom-left-radius: 20px;
- -moz-border-radius-bottomleft: 20px;
- border-bottom-left-radius: 20px;
- -webkit-border-bottom-right-radius: 20px;
- -moz-border-radius-bottomright: 20px;
- border-bottom-right-radius: 20px;
- -webkit-border-bottom-right-radius: 20px;
- -moz-border-radius-bottomright: 20px;
- border-bottom-right-radius: 20px;
- -webkit-border-bottom-right-radius: 20px;
- -moz-border-radius-bottomright: 20px;
- border-bottom-right-radius: 20px;
- -webkit-border-bottom-right-radius: 20px;
- -moz-border-radius-bottomright: 20px;
- border-bottom-right-radius: 20px;
- -webkit-border-bottom-right-radius: 20px;
- -moz-border-radius-bottomright: 20px;
- border-bottom-right-radius: 20px;
-webkit-border-bottom-right-radius: 20px;
-moz-border-radius-bottomright: 20px;
border-bottom-right-radius: 20px;
@@ -1760,6 +801,7 @@ div.activeFeatures div.createAccountLink {
display: inline-block;
width: 282;
height: 65px;
+ background-image: url(./images/old/home/register.png);
margin-right: 20px;
}
div.activeFeatures div.createAccountLink a.createAccountLink {
@@ -1779,6 +821,9 @@ div.activeFeatures div.createAccountLink a.createAccountLink span.link {
padding-bottom: 10px;
font-size: 12pt;
}
+div.activeFeatures div.createAccountLink:hover {
+ background-image: url(./images/old/home/register_selected.png);
+}
div.activeFeatures div.createAccountLink:hover a.createAccountLink span.payoff {
color: #54535a;
}
@@ -1847,61 +892,21 @@ div.userInfoBox {
background-color: #ff9955;
background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#ff9a56), to(#ff6723));
background: -moz-linear-gradient(0% 100% 90deg, #ff6723, #ff9a56);
- background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#ff9a56), to(#ff6723));
- background: -moz-linear-gradient(0% 100% 90deg, #ff6723, #ff9a56);
- background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#ff9a56), to(#ff6723));
- background: -moz-linear-gradient(0% 100% 90deg, #ff6723, #ff9a56);
- background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#ff9a56), to(#ff6723));
- background: -moz-linear-gradient(0% 100% 90deg, #ff6723, #ff9a56);
- background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#ff9a56), to(#ff6723));
- background: -moz-linear-gradient(0% 100% 90deg, #ff6723, #ff9a56);
- background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#ff9a56), to(#ff6723));
- background: -moz-linear-gradient(0% 100% 90deg, #ff6723, #ff9a56);
- border-radius: 10px;
- -moz-border-radius: 10px;
- -webkit-border-radius: 10px;
- border-radius: 10px;
- -moz-border-radius: 10px;
- -webkit-border-radius: 10px;
- border-radius: 10px;
- -moz-border-radius: 10px;
- -webkit-border-radius: 10px;
- border-radius: 10px;
- -moz-border-radius: 10px;
- -webkit-border-radius: 10px;
- border-radius: 10px;
- -moz-border-radius: 10px;
- -webkit-border-radius: 10px;
border-radius: 10px;
-moz-border-radius: 10px;
-webkit-border-radius: 10px;
-webkit-box-shadow: 2px 2px 9px #333333;
-moz-box-shadow: 2px 2px 9px #333333;
box-shadow: 2px 2px 9px #333333;
- -webkit-box-shadow: 2px 2px 9px #333333;
- -moz-box-shadow: 2px 2px 9px #333333;
- box-shadow: 2px 2px 9px #333333;
- -webkit-box-shadow: 2px 2px 9px #333333;
- -moz-box-shadow: 2px 2px 9px #333333;
- box-shadow: 2px 2px 9px #333333;
- -webkit-box-shadow: 2px 2px 9px #333333;
- -moz-box-shadow: 2px 2px 9px #333333;
- box-shadow: 2px 2px 9px #333333;
- -webkit-box-shadow: 2px 2px 9px #333333;
- -moz-box-shadow: 2px 2px 9px #333333;
- box-shadow: 2px 2px 9px #333333;
- -webkit-box-shadow: 2px 2px 9px #333333;
- -moz-box-shadow: 2px 2px 9px #333333;
- box-shadow: 2px 2px 9px #333333;
}
div.userInfoBox.locked {
z-index: 19001;
}
div.userInfoBox.locked div.header a.lockButton {
- background: url(../images/old/lock/locked.png) no-repeat -5px -2px;
+ background: url(./images/old/lock/locked.png) no-repeat -5px -2px;
}
div.userInfoBox.locked div.header a.lockButton:hover {
- background: url(../images/old/lock/locked_hover.png) no-repeat -5px -2px;
+ background: url(./images/old/lock/locked_hover.png) no-repeat -5px -2px;
}
div.userInfoBox.locked div.body a {
display: none;
@@ -1924,10 +929,10 @@ div.userInfoBox div.header a.lockButton {
width: 15px;
height: 20px;
text-decoration: none;
- background: url(../images/old/lock/unlocked.png) no-repeat -5px -2px;
+ background: url(./images/old/lock/unlocked.png) no-repeat -5px -2px;
}
div.userInfoBox div.header a.lockButton:hover {
- background: url(../images/old/lock/unlocked_hover.png) no-repeat -5px -2px;
+ background: url(./images/old/lock/unlocked_hover.png) no-repeat -5px -2px;
}
div.userInfoBox div.body {
padding: 0px 12px;
@@ -1942,7 +947,6 @@ div.userInfoBox div.body ul {
padding: 0px;
margin: 4px 0px;
list-style-position: inside;
- text-shadow: #000000 0 0 0;
}
div.userInfoBox div.body ul li span.number {
font-weight: bold;
@@ -2022,35 +1026,24 @@ div.sidePanels div.tabSidePanel ul.mainTabs li.selected div.selectionHighlighter
margin-top: -43px;
}
div.sidePanels div.tabSidePanel ul.mainTabs li.cards a {
- background: url(../images/old/main/tabs/cardsBackground.png) -19px -63px;
+ background: url(./images/old/main/tabs/cardsBackground.png) -19px -63px;
}
div.sidePanels div.tabSidePanel ul.mainTabs li.cards a:hover {
- background: url(../images/old/main/tabs/cardsBackground.png) -19px -110px;
+ background: url(./images/old/main/tabs/cardsBackground.png) -19px -110px;
}
div.sidePanels div.tabSidePanel ul.mainTabs li.cards.selected a {
margin-left: -10px;
padding-left: 50px;
color: white;
- background: url(../images/old/main/tabs/cardsBackground.png) -9px -14px;
-}
-div.sidePanels div.tabSidePanel ul.mainTabs li.cards.selected a:hover {
- background: url(../images/old/main/tabs/cardsBackground.png) -9px -14px;
-}
-div.sidePanels div.tabSidePanel ul.mainTabs li.directLogins a {
- background: url(../images/old/main/tabs/directLoginBackground.png) -19px -63px;
-}
-div.sidePanels div.tabSidePanel ul.mainTabs li.directLogins a:hover {
- background: url(../images/old/main/tabs/directLoginBackground.png) -19px -110px;
+ background: url(./images/old/main/tabs/cardsBackground.png) -9px -14px;
}
div.sidePanels div.tabSidePanel ul.mainTabs li.directLogins.selected a {
margin-left: -10px;
padding-left: 50px;
color: white;
- background: url(../images/old/main/tabs/directLoginBackground.png) -9px -14px;
}
div.sidePanels div.tabSidePanel ul.mainTabs li.directLogins.selected a:hover {
color: white;
- background: url(../images/old/main/tabs/directLoginBackground.png) -9px -14px;
}
div.sidePanels div.tabSidePanel ul.otherTabs {
margin: 10px 0px;
@@ -2070,12 +1063,12 @@ div.sidePanels div.tabSidePanel ul.otherTabs li a {
text-decoration: none;
}
div.sidePanels div.tabSidePanel ul.otherTabs li a:hover {
- background: url(../images/old/main/tabs/itemsBackground.png) -10px -49px;
+ background: url(./images/old/main/tabs/itemsBackground.png) -10px -49px;
}
div.sidePanels div.tabSidePanel ul.otherTabs li.selected a {
margin-left: -10px;
padding-left: 50px;
- background: url(../images/old/main/tabs/itemsBackground.png) 1px -96px;
+ background: url(./images/old/main/tabs/itemsBackground.png) 1px -96px;
color: white;
}
div.sidePanels div.tabSidePanel ul.otherTabs li.selected div.selectionHighlighter {
@@ -2090,7 +1083,7 @@ div.tagSidePanel {
div.tagSidePanel div.header {
height: 50px;
- background-image: url(../images/old/main/tabs/tagsBackground.png);
+ background-image: url(./images/old/main/tabs/tagsBackground.png);
}
div.tagSidePanel div.header h1 {
padding-left: 52px;
@@ -2100,11 +1093,11 @@ div.tagSidePanel {
color: #888888;
}
div.tagSidePanel div.body {
- background: url(../images/old/main/tabs/tagsBackground.png) -255px;
+ background: url(./images/old/main/tabs/tagsBackground.png) -255px;
}
div.tagSidePanel div.footer {
height: 10px;
- background: url(../images/old/main/tabs/tagsBackground.png) -510px -40px;
+ background: url(./images/old/main/tabs/tagsBackground.png) -510px -40px;
}
div.tagSidePanel ul.tags {
margin: 0px;
@@ -2146,7 +1139,7 @@ div.groupSidePanel {
div.groupSidePanel div.header {
height: 50px;
- background-image: url(../images/old/main/tabs/groupsBackground.png);
+ background-image: url(./images/old/main/tabs/groupsBackground.png);
}
div.groupSidePanel div.header h1 {
padding-left: 52px;
@@ -2168,11 +1161,11 @@ div.groupSidePanel {
color: #444444;
}
div.groupSidePanel div.body {
- background: url(../images/old/main/tabs/groupsBackground.png) -255px;
+ background: url(./images/old/main/tabs/groupsBackground.png) -255px;
}
div.groupSidePanel div.footer {
height: 10px;
- background: url(../images/old/main/tabs/groupsBackground.png) -510px -39px;
+ background: url(./images/old/main/tabs/groupsBackground.png) -510px -39px;
}
div.groupSidePanel ul.groups {
margin: 0px;
@@ -2208,3 +1201,2899 @@ div.groupSidePanel {
}
*/
}
+div.subPanelTabs ul {
+ margin: 0px;
+ margin-right: 7px;
+ padding: 0px;
+}
+div.subPanelTabs ul li {
+ display: inline-block;
+ vertical-align: middle;
+ height: 50px;
+ border-right: 1px solid #eef0e3;
+ border-bottom: 1px solid #d5d5bc;
+}
+div.subPanelTabs ul li.first {
+ -webkit-border-top-left-radius: 20px;
+ -moz-border-radius-topleft: 20px;
+ border-top-left-radius: 20px;
+}
+div.subPanelTabs ul li.selected {
+ background-color: #eef0e3;
+ border-bottom: 1px solid #eef0e3;
+ border-right: 1px solid #d5d5bc;
+}
+div.subPanelTabs ul li.selected:hover {
+ border-right: 1px solid #d5d5bc;
+}
+div.subPanelTabs ul li.selected a {
+ color: #444440;
+}
+div.subPanelTabs ul li:hover {
+ border-right: 1px solid #d5d5bc;
+ background-color: #eef0e3;
+}
+div.subPanelTabs ul li a {
+ color: #787872;
+ text-decoration: none;
+ display: block;
+ text-align: center;
+ padding-top: 15px;
+ padding-left: 20px;
+ padding-right: 20px;
+ font-size: 13pt;
+}
+div.subPanelContent {
+ padding-top: 20px;
+ padding-left: 30px;
+ padding-right: 30px;
+ min-height: 280px;
+ color: #787872;
+ margin: 0px 6px 0 9px;
+}
+div.subPanelContent h3 {
+ margin: 0px;
+ border: 0px;
+ padding: 0px;
+}
+div.subPanelContent ul {
+ margin: 0px;
+ padding: 0px;
+ list-style-type: none;
+}
+div.subPanelContent ul li {
+ display: none;
+}
+div.subPanelContent ul li.selected {
+ display: block;
+}
+.downloadOfflineCopy {
+ display: inline-block;
+ height: 20px;
+ cursor: pointer;
+ background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#59bc4c), to(#448833));
+ background: -moz-linear-gradient(0% 100% 90deg, #448833, #59bc4c);
+ border-radius: 5;
+ -moz-border-radius: 5;
+ -webkit-border-radius: 5;
+ border: 1px solid #51a23d;
+ padding-top: 4px;
+ padding-left: 15px;
+ padding-right: 15px;
+ padding-bottom: 2px;
+ color: white;
+ font-weight: lighter;
+ text-shadow: -1px -1px 1px #448833, 1px 1px 1px #59bc4c;
+ text-decoration: none;
+}
+.downloadOfflineCopy:hover {
+ background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#49a23d), to(#448833));
+ background: -moz-linear-gradient(0% 100% 90deg, #448833, #49a23d);
+}
+div.SimpleMessagePanel {
+ position: relative;
+ left: -225px;
+ top: -70px;
+ width: 450px;
+ height: 140px;
+}
+div.SimpleMessagePanel div.body {
+ padding: 20px;
+ padding-bottom: 15px;
+ background-color: #f1f1ef;
+ -webkit-box-shadow: 2px 2px 9px #333333;
+ -moz-box-shadow: 2px 2px 9px #333333;
+ box-shadow: 2px 2px 9px #333333;
+ border-radius: 10;
+ -moz-border-radius: 10;
+ -webkit-border-radius: 10;
+}
+div.SimpleMessagePanel div.body h3 {
+ font-size: 14pt;
+ font-weight: normal;
+ margin: 0px;
+ padding-top: 4px;
+ color: #787872;
+}
+div.SimpleMessagePanel div.body div.img {
+ width: 50px;
+ height: 50px;
+ float: left;
+ margin-right: 15px;
+ background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#ff9b5a), to(#ff6622));
+ background: -moz-linear-gradient(0% 100% 90deg, #ff6622, #ff9b5a);
+ border-radius: 25px;
+ -moz-border-radius: 25px;
+ -webkit-border-radius: 25px;
+}
+div.SimpleMessagePanel div.body div.img canvas {
+ width: 50px;
+ height: 50px;
+}
+div.SimpleMessagePanel div.body p {
+ margin: 0;
+ font-size: 10pt;
+ font-weight: normal;
+ color: #787872;
+ padding-top: 10px;
+ padding-bottom: 5px;
+ line-height: 1.3;
+}
+div.SimpleMessagePanel div.body div.buttonArea {
+ height: 40px;
+ clear: both;
+}
+div.SimpleMessagePanel div.body div.buttonArea > div {
+ float: right;
+ margin-left: 15px;
+ margin-top: 10px;
+}
+div.SimpleMessagePanel div.passphrase {
+ padding-left: 65px;
+}
+div.SimpleMessagePanel div.passphrase input {
+ width: 250px;
+ font-size: 14pt;
+ border: 1px solid #bb4924;
+ color: #333366;
+ background-color: white;
+ padding: 2px 5px;
+ height: 28px;
+}
+div.SimpleMessagePanel div.progressBarWrapper {
+ margin-left: 80px;
+}
+/* @end */
+/* @group Javascript Alert */
+div#javaScriptAlert div.mask {
+ position: fixed;
+ top: 0px;
+ left: 0px;
+ right: 0px;
+ bottom: 0px;
+ background-color: black;
+ z-index: 1001;
+ -moz-opacity: 0.7;
+ opacity: .70;
+ filter: alpha(opacity=70);
+}
+div#javaScriptAlert div.header {
+ height: 34px;
+ width: 468;
+ background-image: url(./images/old/alert/header.png);
+}
+div#javaScriptAlert div.body {
+ background-image: url(./images/old/alert/body.png);
+ padding: 0px 20px 10px 20px;
+}
+/*
+div#javaScriptAlert div.body div.alert {
+ padding-left: 100px;
+ background: url(./images/old/alert/alert.png) no-repeat;
+}
+*/
+/*div#javaScriptAlert div.body img.alert {*/
+div#javaScriptAlert div.body div.alertLogo {
+ float: left;
+ background-image: url(./images/old/alert/alert.png);
+ width: 88px;
+ height: 88px;
+}
+div#javaScriptAlert div.body div.alert {
+ padding-left: 100px;
+}
+div#javaScriptAlert div.footer {
+ height: 34px;
+ width: 468;
+ background-image: url(./images/old/alert/footer.png);
+}
+div#javaScriptAlert div.message {
+ position: relative;
+ top: -150px;
+ z-index: 1002;
+ /*
+ left: 100px;
+ right: 100px;
+*/
+
+ margin-left: auto;
+ margin-right: auto;
+ max-width: 468px;
+}
+div#javaScriptAlert div.message h1 {
+ font-size: 16pt;
+ margin: 0px;
+ color: #ff5930;
+}
+div#javaScriptAlert div.message p {
+ margin-top: 0px;
+ color: #999999;
+}
+div#javaScriptAlert div.message h3 {
+ font-size: 12pt;
+ margin-bottom: 0px;
+ color: #ff5930;
+}
+div#javaScriptAlert div.message h5 {
+ margin: 0px;
+ color: #999999;
+}
+/* @end */
+/* @group Components
+ */
+/* @group LoginProgress */
+div.LoginProgress {
+ position: relative;
+ left: -190px;
+ top: -100px;
+ width: 380px;
+ height: 200px;
+ /* background: url(./images/old/loginProgress/background.png); */
+
+ background-color: #d7d7c0;
+ -webkit-border-radius: 20px;
+ -moz-border-radius: 20px;
+ border-radius: 20px;
+ -webkit-box-shadow: 5px 5px 7px rgba(0, 0, 0, 0.6);
+ -moz-box-shadow: 5px 5px 7px rgba(0, 0, 0, 0.6);
+ box-shadow: 5px 5px 7px rgba(0, 0, 0, 0.6);
+}
+div.LoginProgress div.header {
+ height: 40px;
+}
+div.LoginProgress div.header h3 {
+ font-size: 12pt;
+ font-weight: normal;
+ margin: 0px;
+ color: #777777;
+ padding-top: 13px;
+ padding-left: 18px;
+}
+div.LoginProgress div.body {
+ height: 120px;
+ overflow: auto;
+ padding-left: 20px;
+ padding-right: 20px;
+ background-color: #f1f1e9;
+ /*
+ margin-left: 19px;
+ margin-right: 18px;
+*/
+
+}
+div.LoginProgress div.body div.img {
+ margin: 10px;
+ width: 50px;
+ height: 50px;
+ float: left;
+}
+div.LoginProgress div.body div.img.ALERT {
+ /* background-image: url(./images/old/simpleMessageBox/Alert.png); */
+
+ background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#ff9955), to(#ff6622), color-stop(1, #333333));
+ background: -moz-linear-gradient(0% 100% 90deg, #ff6622, #ff9955);
+ -webkit-border-radius: 25px;
+ -moz-border-radius: 25px;
+ border-radius: 25px;
+}
+div.LoginProgress div.body div.img.ALERT canvas {
+ width: 50px;
+ height: 50px;
+ /* background-image: url(./images/old/simpleMessageBox/excalmationPoint.png); */
+
+}
+div.LoginProgress div.body div.loadingBar {
+ position: relative;
+ top: 51px;
+ left: 60px;
+}
+div.LoginProgress div.body div.errorBox p {
+ color: #787872;
+ padding-top: 20px;
+ padding-left: 80px;
+}
+div.LoginProgress div.footer {
+ margin-left: 19px;
+ margin-right: 18px;
+}
+/*
+div.LoginProgress div.footer a {
+ text-decoration: none;
+ text-align: center;
+ color: #787872;
+ display: block;
+ font-weight: bold;
+ font-size: 11pt;
+ width: 100px;
+ margin-top: 11px;
+ margin-left: auto;
+ margin-right: auto;
+}
+*/
+div.LoginProgress div.buttonArea {
+ padding-top: 6px;
+ text-align: center;
+}
+div.LoginProgress div.button {
+ display: inline-block;
+}
+div.LoginProgress div.footer a:hover {
+ color: #515247;
+}
+/* @end */
+/* @group SimpleMessagePanel */
+/* -> SimpleMessagePanel.less
+div.SimpleMessagePanel {
+ position: relative;
+ left: -225px;
+ top: -70px;
+ width: 450px;
+ height: 140px;
+//background: url(./images/old/loginProgress/background.png);
+ background-color: #f1f1ef;
+ .border-radius(10);
+}
+//div.SimpleMessagePanel div.header {
+// height: 17px;
+// background: url(./images/old/simpleMessageBox/background_header.png) no-repeat;
+}
+div.SimpleMessagePanel div.body {
+/ *
+ height: 120px;
+ overflow: auto;
+ margin-left: 19px;
+ margin-right: 18px;
+* /
+
+// background: url(./images/old/simpleMessageBox/background_body.png) repeat-y;
+// padding-left: 25px;
+// padding-right: 25px;
+// padding-top: 10px;
+ padding: 20px;
+ .box-shadow (2px, 2px, 9px, @Global_shadow-color);
+}
+div.SimpleMessagePanel div.body h3 {
+ font-size: 14pt;
+ font-weight: normal;
+ margin: 0px;
+ padding-top: 4px;
+ color: #787872;
+}
+div.SimpleMessagePanel div.body div.img {
+ width: 60px;
+ height: 60px;
+ float: left;
+ margin-right: 10px;
+
+ .graduated-background (#ff6622, #ffad79);
+ .border-radius(30);
+}
+div.SimpleMessagePanel div.body div.img canvas {
+ width: 60px;
+ height: 60px;
+}
+div.SimpleMessagePanel div.body p {
+ margin: 0;
+ font-size: 10pt;
+ font-weight: normal;
+ color: #787872;
+ padding-top: 10px;
+ padding-bottom: 5px;
+ line-height: 1.3;
+}
+div.SimpleMessagePanel div.body div.img.ALERT {
+// background: url(./images/old/simpleMessageBox/Alert.png) no-repeat;
+}
+div.SimpleMessagePanel div.body div.img.INFO {
+// background: url(./images/old/simpleMessageBox/Info.png) no-repeat;
+}
+div.SimpleMessagePanel div.body div.buttonArea {
+ height: 40px;
+ clear: both;
+}
+div.SimpleMessagePanel div.body div.buttonArea > div {
+ float: right;
+ margin-left: 15px;
+ margin-top: 10px;
+}
+div.SimpleMessagePanel div.footer {
+ height: 25px;
+// background: url(./images/old/simpleMessageBox/background_footer.png) no-repeat;
+}
+div.SimpleMessagePanel div.passphrase {
+ padding-left: 65px;
+}
+div.SimpleMessagePanel div.passphrase input {
+ width: 250px;
+ font-size: 14pt;
+ border: 1px solid #bb4924;
+ color: #333366;
+ background-color: white;
+ padding: 2px 5px;
+ height: 28px;
+}
+div.SimpleMessagePanel div.progressBarWrapper {
+ margin-left: 80px;
+}
+*/
+/* @end */
+/* @group Button */
+/* -> Button.less
+div.button_wrapper {
+ height: 32px;
+ background: url(./images/old/button/default_left.png) no-repeat;
+ cursor: pointer;
+}
+div.button_wrapper.hover {
+ background: url(./images/old/button/hover_left.png) no-repeat;
+}
+div.button_wrapper.clicked {
+ background: url(./images/old/button/clicked_left.png) no-repeat;
+}
+div.button_bodyWrapper {
+ height: 32px;
+ margin-left: 6px;
+ padding-right: 6px;
+ background: url(./images/old/button/default_main.png) repeat-x right 0;
+}
+div.button_wrapper.hover div.button_bodyWrapper {
+ background: url(./images/old/button/hover_main.png) repeat-x right 0;
+}
+div.button_wrapper.clicked div.button_bodyWrapper {
+ background: url(./images/old/button/clicked_main.png) repeat-x right 0;
+}
+div.button_body {
+ text-align: center;
+ min-width: 60px;
+ padding: 0px 7px;
+ padding-top: 8px;
+}
+div.button_body span {
+ font-size: 11pt;
+ color: white;
+}
+div.button_wrapper.default div.button_body span {
+ font-weight: bold;
+}
+/ *
+div.button_footer {
+ margin: 0px;
+ height: 31px;
+ width: 6px;
+ background: green url(./images/old/button/default_right.png) no-repeat;
+}
+* /
+*/
+/* @end */
+/* @group Password enthropy */
+input.entropyLevelIndicator {
+ background: url(./images/old/passwordField/background.png) no-repeat 0 26px;
+}
+div.passwordEntropyWrapper {
+ padding: 0px;
+ border: 1px solid #bb4924;
+ border-top: 0px;
+ margin-bottom: 4px;
+ background-color: white;
+ margin-right: 3px;
+ margin-top: -2;
+}
+div.passwordEntropy {
+ height: 4px;
+ font-size: 1pt;
+ background: url(./images/old/entropyBackground.gif) repeat-x 0 0;
+ line-height: 3px;
+}
+div.messageBox {
+ position: absolute;
+ width: 409px;
+ height: 29px;
+ top: 23px;
+ left: 204px;
+ background: url(./images/old/main/messageBoxBackground.png);
+}
+div.messageBox h3 {
+ display: inline-block;
+ color: #342f6b;
+ font-weight: bold;
+ margin: 7px 2px 0px 12px;
+ font-size: 10pt;
+}
+body.ext-gecko div.messageBox h3 {
+ display: -moz-inline-box;
+}
+div.messageBox h1 {
+ color: #342f6b;
+ display: inline;
+ font-weight: normal;
+ margin: 0px 1px;
+ font-size: 9pt;
+}
+div.messageBox a {
+ display: block;
+ width: 20px;
+ height: 20px;
+ float: right;
+ position: absolute;
+ right: 5px;
+ top: 4px;
+ background-image: url(./images/old/main/messageBoxCloseButton.png);
+}
+div.messageBox a:hover {
+ background-image: url(./images/old/main/messageBoxCloseButtonActive.png);
+}
+/* @end */
+/* @group Side panels */
+/* @end */
+/* @end */
+/* @group MainPanels */
+div.mainPanels {
+ float: left;
+ width: 833px;
+ margin-top: -38px;
+ /*
+ position: relative;
+ width: 100%;
+ min-height: 600px;
+ top: -40px;
+ left: 250px;
+*/
+
+}
+div.mainFooter {
+ clear: both;
+}
+/* @end */
+/* @group Grids */
+/* @group grid Component */
+/* @group delete */
+/*div.body div.rows table.rows tbody tr td.delete */
+div.delete,
+div.new {
+ padding-left: 5px;
+ height: 19px;
+}
+div.new span,
+div.delete span {
+ margin: 0px;
+ padding: 0px;
+ border: 0px;
+ display: inline-block;
+ height: 19px;
+ padding-right: 6px;
+}
+div.new span a,
+div.delete span a {
+ white-space: nowrap;
+}
+div.delete:hover {
+ background: url(./images/old/delete_background_left.png) no-repeat 0;
+}
+div.delete:hover span {
+ background: url(./images/old/delete_background.png) no-repeat right 0;
+}
+div.new:hover {
+ background: url(./images/old/new_background_left.png) no-repeat 0;
+}
+div.new:hover span {
+ background: url(./images/old/new_background.png) no-repeat right 0;
+}
+/*
+tr.selected div.delete {
+ background: url(./images/old/delete_background_left.png) no-repeat 0;
+}
+tr.selected div.delete span {
+ background: url(./images/old/delete_background.png) no-repeat right 0;
+}
+*/
+div.body div.rows table.rows tbody tr td.delete div.delete span a {
+ visibility: hidden;
+ font-size: 8pt;
+ vertical-align: -13px;
+ color: black;
+}
+div.body div.rows table.rows tbody tr.selected td.delete div.delete span a {
+ visibility: visible;
+}
+div.body div.rows table.rows tbody tr:hover td.delete div.delete span a {
+ visibility: visible;
+}
+div.body div.rows table.rows tbody tr:hover td.delete div.delete:hover span a {
+ color: white;
+}
+/*
+div.body div.rows table.rows tbody tr.selected td.delete div.delete span a {
+ color: white;
+}
+*/
+/* @end */
+/* @group header */
+div.gridComponent table.rows thead tr th {
+ text-align: left;
+ height: 30px;
+ vertical-align: bottom;
+}
+div.gridComponent table.rows thead tr th.sortable span {
+ cursor: pointer;
+}
+div.gridComponent table.rows thead tr th.sortable span a {
+ margin-left: 5px;
+ padding-left: 10px;
+}
+div.gridComponent table.rows thead tr th.directLoginTH {
+ width: 420px;
+}
+div.gridComponent table.rows thead tr th.latestUpdateTH {
+ width: 100px;
+}
+div.gridComponent table.rows thead tr th.commandsTH {
+ width: 150px;
+}
+div.gridComponent table.rows thead a {
+ text-decoration: none;
+}
+div.gridComponent table.rows thead span {
+ font-weight: normal;
+ font-size: 9pt;
+ line-height: 20px;
+}
+div.gridComponent div.header div.headerSlot {
+ float: right;
+}
+/* @end */
+div.mainPanels div.gridComponent div.body table.rows td.favicon {
+ padding-left: 25px;
+}
+div.mainPanels div.gridComponent div.body table.rows td.favicon img {
+ width: 16px;
+ height: 16px;
+ border: 0px;
+}
+/* @end */
+/* @group Card Grid */
+/* @group DirectLogin links */
+div.gridComponent th.directLoginTH span {
+ margin-left: 7px;
+}
+td.card_directLogins div {
+ display: inline-table;
+}
+td.card_directLogins span {
+ display: inline-block;
+}
+/*
+td.card_directLogins a {
+ display: inline-table;
+ height: 19px;
+
+ padding-right: 7px;
+}
+
+td.card_directLogins a:hover {
+ background: url(./images/old/directLink_background.png) right 0;
+}
+*/
+div.card_directLogin {
+ display: inline-block;
+ height: 19px;
+ padding-left: 7px;
+}
+div.card_directLogin_ellipses span {
+ padding-bottom: 2px;
+}
+div.card_directLogin div.card_directLogin_body {
+ display: inline-block;
+ height: 19px;
+ padding-right: 8px;
+ background-position: left;
+}
+div.card_directLogin div.card_directLogin_body a {
+ vertical-align: -14px;
+}
+/*div.card_directLogin:hover {*/
+div.card_directLogin:hover {
+ background: url(./images/old/directLink_background_left.png) no-repeat 0 0;
+}
+/*div.card_directLogin:hover div {*/
+div.card_directLogin:hover div.card_directLogin_body {
+ background: url(./images/old/directLink_background.png) right 0;
+}
+/* @group DirectLogin Popup */
+div.DirectLoginListPopup {
+ position: absolute;
+ width: 184px;
+}
+div.DirectLoginListPopup div.DirectLoginListPopup_body {
+ background-image: url(./images/old/directLogins_background.png);
+ padding-top: 8px;
+}
+div.DirectLoginListPopup div.DirectLoginListPopup_footer {
+ height: 8px;
+ background-image: url(./images/old/directLogins_background_bottom.png);
+}
+div.DirectLoginListPopup div.DirectLoginListPopup_body ul {
+ margin: 0px;
+ padding-left: 13px;
+ list-style: none;
+}
+div.DirectLoginListPopup div.DirectLoginListPopup_body ul li {
+ padding-top: 4px;
+ height: 20px;
+ padding-right: 10px;
+ white-space: nowrap;
+}
+div.DirectLoginListPopup div.DirectLoginListPopup_body ul li div {
+ padding-right: 10px;
+ overflow: hidden;
+}
+div.DirectLoginListPopup div.DirectLoginListPopup_body ul li img.favicon {
+ padding-left: 9px;
+ padding-right: 5px;
+}
+div.DirectLoginListPopup div.DirectLoginListPopup_body ul li a {
+ text-decoration: none;
+ color: white;
+ font-weight: normal;
+ font-size: 10pt;
+ vertical-align: 3px;
+ white-space: nowrap;
+ padding-right: 8px;
+}
+div.DirectLoginListPopup div.DirectLoginListPopup_body ul li:hover {
+ /* background-color: #a5a696; */
+
+ /* background-color: #7b7d70; */
+
+ background-color: rgba(123, 125, 112, 0.5);
+}
+div.DirectLoginListPopup div.DirectLoginListPopup_body ul li:hover a {
+ background: url(./images/old/directLink_no_background.png) right;
+}
+/* @end */
+/* @end */
+div.mainPanels div.gridComponent div.header {
+ /*
+ height: 90px;
+ background: url(./images/old/main/blocks/cardGridBackground.png) no-repeat;
+*/
+
+ background: url(./images/old/main/blocks/cardGridBackground.png) no-repeat;
+ padding-left: 40px;
+ padding-right: 40px;
+ padding-top: 20px;
+ padding-bottom: 10px;
+}
+div.mainPanels div.gridComponent div.header form.search {
+ height: 32px;
+ margin: 0px;
+}
+div.mainPanels div.gridComponent div.header form.search div.clearSearchButton {
+ position: absolute;
+ margin-left: 192px;
+ width: 22px;
+ height: 22px;
+ margin-top: 6px;
+ background: url(./images/old/filter/clearFilter_notSelected.png) no-repeat;
+}
+div.mainPanels div.gridComponent div.header form.search div.clearSearchButton:hover {
+ background: url(./images/old/filter/clearFilter_selected.png) no-repeat;
+ cursor: pointer;
+}
+div.mainPanels div.gridComponent div.header form.search div.search {
+ display: block;
+ float: left;
+ width: 217px;
+}
+div.mainPanels div.gridComponent div.header form.search input.search {
+ border: 1px solid #76786a;
+ color: #666666;
+ font-size: 12pt;
+ width: 100%;
+ padding: 4px;
+ padding-left: 24px;
+ padding-right: 26px;
+ background: #e8ecde url(./images/old/main/grid/search.png) no-repeat 2px 4px;
+}
+div.mainPanels div.gridComponent div.header form.search input.search.disabled {
+ disabled: disabled;
+}
+div.mainPanels div.gridComponent div.header form.search input.search.running {
+ background: #e8ecde url(./images/old/main/grid/running_search.gif) no-repeat 4px 5px;
+}
+div.mainPanels div.gridComponent div.body {
+ clear: both;
+ background: url(./images/old/main/blocks/cardGridBackground.png) repeat-y -836px;
+}
+div.mainPanels div.gridComponent div.footer {
+ background: url(./images/old/main/blocks/cardGridBackground.png) 834px -28px;
+ height: 35px;
+}
+div.mainPanels div.gridComponent div.body h1 {
+ margin: 0px;
+}
+div.mainPanels div.gridComponent div.body div.rows {
+ margin-left: 9px;
+ margin-right: 6px;
+ min-height: 582px;
+ background: url(./images/old/main/blocks/cardGridStripes.png) 0 7px;
+}
+div.mainPanels div.gridComponent.noRows div.body table.rows thead,
+div.mainPanels div.gridComponent.empty div.body table.rows thead {
+ visibility: hidden;
+}
+div.mainPanels div.gridComponent.empty div.body div.rows {
+ background: #eaebe6 url(./images/old/lock/background_star.png) no-repeat center center;
+}
+div.mainPanels div.gridComponent.noRows div.body div.rows {
+ background: #eaebe6;
+}
+div.mainPanels div.gridComponent div.body table.rows {
+ display: block;
+ width: 100%;
+}
+div.mainPanels div.gridComponent div.body table.rows tbody tr.odd.selected {
+ background-color: #a5a696;
+}
+div.mainPanels div.gridComponent div.body table.rows tbody tr.even.selected {
+ background-color: #a5a696;
+}
+div.mainPanels div.gridComponent div.body table.rows tbody tr.selected td a {
+ color: #f3f4eb;
+}
+div.mainPanels div.gridComponent div.body table.rows tbody tr.odd {
+ background-color: #d4d5cf;
+}
+div.mainPanels div.gridComponent div.body table.rows tbody tr.even {
+ background-color: #eaebe6;
+}
+div.mainPanels div.gridComponent div.body table.rows tbody tr.odd:hover {
+ background-color: #a5a696;
+}
+div.mainPanels div.gridComponent div.body table.rows tbody tr.even:hover {
+ background-color: #a5a696;
+}
+div.mainPanels div.gridComponent div.body table.rows tbody tr td {
+ height: 23px;
+ max-height: 23px;
+ /*
+ white-space: nowrap;
+ overflow: hidden;
+*/
+
+}
+div.mainPanels div.gridComponent div.body table.rows tbody tr td span {
+ color: #828479;
+ font-size: 10pt;
+}
+div.mainPanels div.gridComponent div.body table.rows tbody tr td a {
+ color: #828479;
+ font-size: 10pt;
+ text-decoration: none;
+}
+div.mainPanels div.gridComponent div.body table.rows tbody tr:hover td span {
+ color: #f3f4eb;
+}
+div.mainPanels div.gridComponent div.body table.rows tbody tr.selected td span {
+ color: #f3f4eb;
+}
+div.mainPanels div.gridComponent div.body table.rows tbody tr:hover td a {
+ color: #f3f4eb;
+}
+div.mainPanels div.gridComponent div.body table.rows tbody tr td.title a {
+ font-weight: bold;
+}
+div.mainPanels div.gridComponent div.body table.rows tbody tr td img.favicon {
+ float: right;
+ padding-right: 6px;
+}
+/* @group header */
+div.gridComponent table.rows thead img {
+ padding-left: 10px;
+ vertical-align: middle;
+}
+div.gridComponent table.rows thead tr th {
+ background-color: #eaebe6;
+ border-bottom: 1px solid #b3b4af;
+}
+div.gridComponent table.rows thead span {
+ color: #8c8f7e;
+}
+div.gridComponent table.rows thead tr th.unsorted span.sortable a {
+ background-image: url(./images/old/main/grid/unsorted.png);
+}
+div.gridComponent table.rows thead tr th.descending span.sortable a {
+ background-image: url(./images/old/main/grid/descending.png);
+}
+div.gridComponent table.rows thead tr th.ascending span.sortable a {
+ background-image: url(./images/old/main/grid/ascending.png);
+}
+div.gridComponent table.rows thead tr th.faviconTH {
+ width: 53px;
+}
+div.gridComponent table.rows thead tr th.titleTH {
+ width: 200px;
+ max-width: 200px;
+}
+div.gridComponent table.rows thead tr th.deleteTH {
+ width: 50px;
+}
+/* @end */
+/* @end */
+/* @group Direct login Grid */
+/*
+div.mainPanels div.directLoginGrid div.header {
+/*
+ height: 90px;
+ background: url(./images/old/main/blocks/cardGridBackground.png) no-repeat;
+* /
+}
+
+div.mainPanels div.directLoginGrid div.header form.search {
+ background: url(./images/old/main/blocks/directLoginGridBackground.png) no-repeat;
+ padding-left: 40px;
+ padding-top: 20px;
+ padding-bottom: 10px;
+ margin: 0px;
+}
+
+div.mainPanels div.directLoginGrid div.header form.search input.search {
+ border: 1px solid #76786a;
+ color: #666666;
+ font-size: 12pt;
+ padding: 4px;
+ background-color: #e8ecde;
+}
+
+div.mainPanels div.directLoginGrid div.header form.search input.searchButton {
+ background-color: #858877;
+ border: 0px;
+ color: white;
+ font-size: 10pt;
+}
+
+div.mainPanels div.directLoginGrid div.body {
+ background: url(./images/old/main/blocks/directLoginGridBackground.png) repeat-y -836px;
+}
+
+div.mainPanels div.directLoginGrid div.footer {
+ background: url(./images/old/main/blocks/directLoginGridBackground.png) 834px -28px;
+ height: 35px;
+}
+
+div.mainPanels div.directLoginGrid div.body h1 {
+ margin: 0px;
+}
+
+div.mainPanels div.directLoginGrid div.body div.rows {
+ margin-left: 9px;
+ margin-right: 6px;
+ min-height: 582px;
+ background: url(./images/old/main/blocks/directLoginGridStripes.png) 0 7px;
+}
+
+div.mainPanels div.directLoginGrid div.body table.rows {
+ display: block;
+ width: 100%;
+}
+
+div.mainPanels div.directLoginGrid div.body table.rows img {
+ border: 0px;
+}
+
+div.mainPanels div.directLoginGrid div.body table.rows tbody tr.even {
+ background-color: #787666;
+}
+
+div.mainPanels div.directLoginGrid div.body table.rows tbody tr.odd {
+ background-color: #646351;
+}
+
+div.mainPanels div.directLoginGrid div.body table.rows tbody tr.odd:hover {
+ background-color: #d1d4c6;
+}
+
+div.mainPanels div.directLoginGrid div.body table.rows tbody tr.even:hover {
+ background-color: #d1d4c6;
+}
+
+div.mainPanels div.directLoginGrid div.body table.rows tbody tr td {
+ height: 23px;
+ color: #e1e0d6;
+ font-size: 10pt;
+}
+
+div.mainPanels div.directLoginGrid div.body table.rows tbody tr:hover td {
+ color: #777867;
+}
+
+div.mainPanels div.directLoginGrid div.body table.rows tbody tr td.title {
+ font-weight: bold;
+}
+
+div.directLoginGrid div.body table.rows tbody tr a {
+ color: #e1e0d6;
+ text-decoration: none;
+}
+
+div.directLoginGrid div.body table.rows tbody tr:hover a {
+ color: #777867;
+}
+*/
+/* @group DirectLogin links */
+/*
+td.card_directLogins div {
+ display: inline-table;
+}
+
+td.card_directLogins span {
+ display: inline-table;
+}
+*/
+div.directLogin_directLogin {
+ display: inline-block;
+ height: 19px;
+ padding-left: 7px;
+}
+div.directLogin_directLogin div.directLogin_directLogin_body {
+ display: inline-block;
+ height: 19px;
+ padding-right: 8px;
+ background-position: left;
+}
+div.directLogin_directLogin div.directLogin_directLogin_body a {
+ vertical-align: -14px;
+}
+div.directLogin_directLogin:hover {
+ background: url(./images/old/directLink_background_left.png) no-repeat 0 0;
+}
+div.directLogin_directLogin:hover div.directLogin_directLogin_body {
+ background: url(./images/old/directLink_background.png) right 0;
+}
+table.rows tbody tr td div.directLogin_directLogin:hover div.directLogin_directLogin_body a {
+ color: #f3f4eb;
+}
+/* @end */
+/* @group header */
+div.directLoginGrid table.rows thead span {
+ color: #e1e0d6;
+}
+div.directLoginGrid table.rows thead tr th {
+ background-color: #787762;
+ border-bottom: 1px solid #999883;
+}
+div.directLoginGrid table.rows thead tr th.faviconTH {
+ min-width: 53px;
+ width: 53px;
+}
+div.directLoginGrid table.rows thead tr th.titleTH {
+ min-width: 250px;
+ width: 250px;
+}
+div.directLoginGrid table.rows thead tr th.titleTH span {
+ margin-left: 7px;
+}
+div.directLoginGrid table.rows thead tr th.strengthTH {
+ width: 100px;
+}
+div.directLoginGrid table.rows thead tr th.cardTitleTH {
+ width: 400px;
+}
+div.directLoginGrid table.rows thead tr th.bookmarkableLinkTH {
+ width: 64px;
+}
+div.directLoginGrid table.rows thead tr th.deleteTH {
+ width: 50px;
+}
+div.directLoginGrid table.rows thead tr th.latestAccessTH {
+ width: 100px;
+}
+div.directLoginGrid table.rows thead tr th.commandsTH {
+ width: 100px;
+}
+/*
+div.directLoginGrid table.rows thead a {
+ font-weight: normal;
+ text-decoration: none;
+ color: #e9e9df;
+ font-size: 9pt;
+ line-height: 20px;
+}
+*/
+div.directLoginGrid table.rows thead img {
+ padding-left: 10px;
+ vertical-align: middle;
+}
+div.directLoginGrid table.rows thead tr th.unsorted span.sortable a {
+ background: url(./images/old/main/grid/directLogins/unsorted.png) no-repeat;
+}
+div.directLoginGrid table.rows thead tr th.descending span.sortable a {
+ background: url(./images/old/main/grid/directLogins/descending.png) no-repeat;
+}
+div.directLoginGrid table.rows thead tr th.ascending span.sortable a {
+ background: url(./images/old/main/grid/directLogins/ascending.png) no-repeat;
+}
+/* @end */
+/* @end */
+/* @end */
+/* @end */
+/* @group other Panels */
+/* @group common styles */
+/*
+div.subPanelTabs ul {
+ margin: 0px;
+ margin-right: 7px;
+ padding: 0px;
+}
+div.subPanelTabs ul li {
+ display: inline-block;
+ vertical-align: middle;
+ /* width: 130px; * /
+
+ height: 50px;
+ /* border-right: 1px solid #a5a79c;
+ border-bottom: 1px solid #a5a79c;* /
+
+ border-right: 1px solid #eef0e3;
+ border-bottom: 1px solid #d5d5bc;
+}
+div.subPanelTabs ul li.first:hover {
+ /* background: url(./images/old/main/blocks/otherPanelBackground_selected.png) no-repeat -9px -5px; * /
+
+}
+div.subPanelTabs ul li:hover {
+ /* background: url(./images/old/main/blocks/otherPanelBackground_selected.png) no-repeat -45px -5px; * /
+
+ border-right: 1px solid #d5d5bc;
+ background-color: #eef0e3;
+}
+div.subPanelTabs ul li a {
+ color: #787872;
+ text-decoration: none;
+ display: block;
+ text-align: center;
+ padding-top: 15px;
+ padding-left: 20px;
+ padding-right: 20px;
+ font-size: 13pt;
+}
+div.subPanelTabs ul li.first {
+ /* background: url(./images/old/main/blocks/otherPanelBackground_selected.png) no-repeat -9px -5px; * /
+
+ -webkit-border-top-left-radius: 20px;
+ -moz-border-radius-topleft: 20px;
+ border-top-left-radius: 20px;
+}
+div.subPanelTabs ul li.selected {
+ /* background: url(./images/old/main/blocks/otherPanelBackground_selected.png) no-repeat -45px -5px; * /
+
+ background-color: #eef0e3;
+ border-bottom: 1px solid #eef0e3;
+ border-right: 1px solid #d5d5bc;
+}
+div.subPanelTabs ul li.selected:hover {
+ border-right: 1px solid #d5d5bc;
+}
+div.subPanelTabs ul li.selected a {
+ color: #444440;
+}
+div.subPanelContent {
+ padding-top: 20px;
+ padding-left: 30px;
+ padding-right: 30px;
+ min-height: 280px;
+ color: #787872;
+ margin: 0px 6px 0 9px;
+}
+div.subPanelContent ul {
+ margin: 0px;
+ padding: 0px;
+ list-style-type: none;
+}
+div.subPanelContent ul li.selected {
+ display: block;
+}
+div.subPanelContent ul li {
+ display: none;
+}
+div.subPanelContent h3 {
+ margin: 0px;
+ border: 0px;
+ padding: 0px;
+}
+*/
+/* @end */
+/* @group mainPanels otherPanel */
+div.mainPanels div.otherPanel {
+ margin: 5px 10px;
+ background-color: #eef0e3;
+ -webkit-border-radius: 20px;
+ -moz-border-radius: 20px;
+ border-radius: 20px;
+ -webkit-box-shadow: 2px 2px 9px rgba(0, 0, 0, 0.6);
+ -moz-box-shadow: 2px 2px 9px rgba(0, 0, 0, 0.6);
+ box-shadow: 2px 2px 9px rgba(0, 0, 0, 0.6);
+}
+div.mainPanels div.otherPanel div.header {
+ /* background: url(./images/old/main/blocks/otherPanelBackground.png) no-repeat; */
+
+ /*
+ height: 90px;
+*/
+
+ background-color: #d5d5bc;
+ /* padding-left: 9px;
+ padding-top: 5px; */
+
+ margin: 0px;
+ margin-bottom: 0px;
+ -webkit-border-top-left-radius: 20px;
+ -webkit-border-top-right-radius: 20px;
+ -moz-border-radius-topleft: 20px;
+ -moz-border-radius-topright: 20px;
+ border-top-left-radius: 20px;
+ border-top-right-radius: 20px;
+}
+div.mainPanels div.otherPanel div.body {
+ /* background: url(./images/old/main/blocks/otherPanelBackground.png) repeat-y -836px; */
+
+ margin: 0px;
+ border: 0px;
+ padding: 0px;
+}
+div.mainPanels div.otherPanel div.footer {
+ /* background: url(./images/old/main/blocks/otherPanelBackground.png) 834px -18px; */
+
+ height: 45px;
+}
+div.mainPanels div.otherPanel div.body h1 {
+ margin: 0px;
+}
+/* @end */
+/* @group Account */
+form.changePassphrase div.currentCredentials,
+form.changePassphrase div.newPassphrase {
+ float: left;
+ padding: 10px 20px;
+}
+form.changePassphrase label {
+ display: inline-block;
+ width: 150px;
+}
+form.changePassphrase div.confirm {
+ clear: both;
+ padding: 10px 20px;
+}
+form.changePassphrase div.confirm label {
+ width: 500px;
+}
+div.accountPanel h3.manageOTP {
+ margin-top: 20px;
+ margin-left: -20px;
+ padding-top: 10px;
+ padding-left: 20px;
+ border-top: 1px solid #aaaaaa;
+}
+/* @end */
+/* @end */
+/* @group Message Panel (?) */
+/*
+div.messagePanelWrapper div.mask {
+ position: fixed;
+ top: 0px;
+ left: 0px;
+ right: 0px;
+ bottom: 0px;
+
+ background-color: black;
+ z-index:50001;
+
+ -moz-opacity: 0.0;
+ opacity:.0;
+ filter: alpha(opacity=0);
+/ *
+ -moz-opacity: 0.7;
+ opacity:.70;
+ filter: alpha(opacity=70);
+* /
+}
+
+div.messagePanelFrame {
+ border: 1px solid white;
+ z-index:50002;
+/ *
+ width: 443px;
+ height: 155px;
+ position: fixed;
+ top: 205px;
+ left: 260px;
+ margin-left: auto;
+ margin-right: auto;
+ max-width: 468px;
+* /
+}
+
+
+div.messagePanel {
+ position: fixed;
+ z-index:50003;
+ top: 0px;
+ left: 0px;
+/ *
+ margin-left: auto;
+ margin-right: auto;
+ max-width: 468px;
+ top: 200px;
+ left: 250px;
+ left: 100px;
+ right: 100px;
+* /
+}
+
+div.messagePanel div.header {
+ height: 34px;
+ width: 468;
+ background-image: url(./images/old/alert/header.png);
+}
+
+div.messagePanel div.body {
+ background-image: url(./images/old/alert/body.png);
+ padding: 0px 20px 10px 20px;
+ min-height: 100px;
+}
+/ *
+div#javaScriptAlert div.body div.alert {
+ padding-left: 100px;
+ background: url(./images/old/alert/alert.png) no-repeat;
+}
+* /
+
+div.messagePanel div.body img.alert {
+ float: left;
+}
+
+div.messagePanel div.body div.alert {
+ padding-left: 100px;
+}
+
+div.messagePanel div.footer {
+ height: 34px;
+ width: 468;
+ background-image: url(./images/old/alert/footer.png);
+}
+
+div.messagePanel div.message h1 {
+ font-size: 16pt;
+ margin: 0px;
+ color: #ff5930;
+}
+
+div.messagePanel div.message p {
+ margin-top: 0px;
+ color: #999999;
+}
+
+div.messagePanel div.message h3 {
+ font-size: 12pt;
+ margin-bottom: 0px;
+ color: #ff5930;
+}
+
+div.messagePanel div.message h5 {
+ margin: 0px;
+ color: #999999;
+}
+
+
+*/
+/* @end */
+/* @group LoginProgress (?) */
+/*
+div#loginProgress {
+ position: relative;
+ left: -198px;
+ top: -118px;
+ width: 397px;
+ height: 236px;
+ background: url(./images/old/loginProgress/background.png);
+}
+
+div#loginProgress div.header {
+ height: 52px;
+}
+
+div#loginProgress div.header h3 {
+ font-size: 12pt;
+ font-weight: normal;
+ margin: 0px;
+ color: #787872;
+ padding-top: 25px;
+ padding-left: 35px;
+}
+
+div#loginProgress div.body {
+ height: 120px;
+ overflow: auto;
+ margin-left: 19px;
+ margin-right: 18px;
+}
+
+div#loginProgress div.footer {
+ margin-left: 19px;
+ margin-right: 18px;
+}
+
+div#loginProgress div.footer a {
+ font-weight: bold;
+ text-decoration: none;
+ text-align: center;
+ color: #787872;
+ display: block;
+ font-size: 11pt;
+ width: 100px;
+ margin-top: 13px;
+ margin-left: auto;
+ margin-right: auto;
+}
+
+div#loginProgress div.footer a:hover {
+ color: #515247;
+}
+
+*/
+/* @end */
+div#modalDialogMask,
+div.modalDialogMask {
+ z-index: 20000;
+ /* position: absolute; */
+
+ position: fixed;
+ top: 0;
+ left: 0;
+ -moz-opacity: 0.5;
+ opacity: .50;
+ filter: alpha(opacity=50);
+ /* background-color: #cccccc; */
+
+ background-color: #000000;
+ width: 100%;
+ height: 100%;
+ zoom: 1;
+}
+div#modalDialogFrame,
+div.modalDialogFrame {
+ position: absolute;
+ /* border: 1px solid white; */
+
+ -moz-opacity: 0.5;
+ opacity: .50;
+ filter: alpha(opacity=50);
+ background-color: #333333;
+ z-index: 20001;
+ -webkit-border-radius: 20px;
+ -moz-border-radius: 20px;
+ border-radius: 20px;
+}
+div#modalDialog,
+div.modalDialog {
+ z-index: 20001;
+}
+/*div#modalDialog.scrollable,*/
+div.modalDialog.scrollable {
+ position: absolute;
+ top: 0;
+ left: 50%;
+}
+/*div#modalDialog.fixed,*/
+div.modalDialog.fixed {
+ position: fixed;
+ top: 40%;
+ left: 50%;
+}
+div#modalDialog div,
+div.modalDialog div {
+ z-index: 20002;
+ list-style-type: circle;
+}
+div.modalDialogMask.simpleMessagePanelMask {
+ z-index: 20010;
+}
+div.modalDialogFrame.simpleMessagePanelMask {
+ z-index: 20011;
+}
+div.modalDialog.simpleMessagePanelMask {
+ z-index: 20011;
+}
+div.modalDialog.simpleMessagePanelMask div {
+ z-index: 20012;
+}
+/* @group Bookmarklet */
+div.bookmarklet div.bookmarklet_link {
+ /*
+ padding-top: 5px;
+ padding-left: 4px;
+ padding-right: 3px;
+
+ float: right;
+ margin-top: 12px;
+ margin-right: 13px;
+*/
+
+ height: 34px;
+}
+div.bookmarklet div.bookmarklet_link a {
+ color: #838975;
+ text-decoration: none;
+ font-weight: bold;
+ font-size: 10pt;
+ /*
+ display: block;
+ text-align: right;
+ padding-top: 7px;
+ padding-right: 11px;
+ padding-bottom: 6px;
+*/
+
+}
+div.bookmarklet div.bookmarklet_link a div.icon {
+ background: url(./images/old/bookmarklet/placeholder_icon.png) no-repeat 0 0;
+ float: left;
+ width: 34px;
+ height: 34px;
+}
+div.bookmarklet div.bookmarklet_link a:hover div.icon {
+ background: url(./images/old/bookmarklet/placeholder_selected_icon.png) no-repeat 0 0;
+}
+div.bookmarklet div.bookmarklet_link a div.text {
+ display: block;
+ float: right;
+ background: url(./images/old/bookmarklet/placeholder.png) no-repeat right 0;
+ white-space: nowrap;
+ height: 34px;
+}
+div.bookmarklet div.bookmarklet_link a:hover div.text {
+ background: url(./images/old/bookmarklet/placeholder_selected.png) no-repeat right 0;
+}
+div.bookmarklet div.bookmarklet_link a div.text span {
+ display: block;
+ padding-top: 10px;
+ padding-right: 10px;
+ padding-left: 6px;
+ clear: both;
+}
+/* @end */
+/* @group Tooltip */
+/*
+div#Clipperz_PM_UI_Common_Components_Tooltip_wrapperNode {
+ position: absolute;
+ top: 0px;
+ left: 0px;
+}
+*/
+/* @end */
+/* @group News */
+/*
+div#news {
+ top: 11px;
+ left: 240px;
+ width: 353px;
+ height: 85px;
+ padding-top: 4px;
+ position: absolute;
+ overflow: hidden;
+ background: url(./images/old/note.png) 1px 3px;
+}
+
+div#news.hidden {
+ display: none;
+}
+
+div#news div.close {
+ display: inline;
+ margin-top: 6px;
+ margin-left: 17px;
+ float: left;
+ width: 15px;
+}
+
+div#news div.close a {
+ text-decoration: none;
+ color: #929c1b;
+}
+
+div#news div.close a:hover {
+ text-decoration: none;
+ color: #3d420b;
+}
+
+div#news div#newsframe {
+ display: block;
+ overflow: hidden;
+ width: 305px;
+ height: 70px;
+}
+
+div#news div#newsframe iframe {
+ border: 0px;
+}
+*/
+/* --------------------------------------- */
+div#news {
+ top: -82px;
+ left: 240px;
+ width: 310px;
+ height: 90px;
+ position: absolute;
+ /* background: url(./images/old/tips/Tips_background.png) 0 -5px; */
+
+ background-color: #616474;
+ -webkit-border-bottom-right-radius: 8px;
+ -webkit-border-bottom-left-radius: 8px;
+ -moz-border-radius-bottomright: 8px;
+ -moz-border-radius-bottomleft: 8px;
+ border-bottom-right-radius: 8px;
+ border-bottom-left-radius: 8px;
+ -webkit-box-shadow: 2px 2px 9px rgba(0, 0, 0, 0.6);
+ -moz-box-shadow: 2px 2px 9px rgba(0, 0, 0, 0.6);
+ box-shadow: 2px 2px 9px rgba(0, 0, 0, 0.6);
+}
+/*
+div#news.open {
+ background: url(./images/old/tips/Tips_open.png) 0 -5px;
+}
+
+div#news.hidden {
+ background: url(./images/old/tips/Tips_close.png) 0 -5px;
+}
+*/
+/*
+div#news div#newsframe {
+ margin-left: 10px;
+ margin-right: 10px;
+ height: 75px;
+ overflow: hidden;
+}
+div#news div#newsframe.loading {
+ background: url(./images/old/loading/news.gif) no-repeat center center;
+}
+div#news div#newsframe iframe {
+ width: 290px;
+ border: 0px;
+ color: #616474;
+ background-color: #616474;
+}
+div#news div.grip {
+ width: 310px;
+ height: 12px;
+ margin-top: 2px;
+ cursor: pointer;
+}
+div#news.open div.grip {
+ background: url(./images/old/tips/close.png) no-repeat center 6px;
+}
+div#news.hidden div.grip {
+ background: url(./images/old/tips/open.png) no-repeat center 6px;
+}
+*/
+/* @end */
+/* @group mainDialog */
+div.mainDialog {
+ position: relative;
+ left: -263px;
+ width: 525px;
+ height: 325px;
+}
+div.scrollable div.mainDialog {
+ top: 0px;
+}
+div.fixed div.mainDialog {
+ top: -118px;
+}
+div.mainDialog div.header {
+ height: 55px;
+ background: url(./images/old/cardDialog/background_header.png) no-repeat;
+}
+div.mainDialog div.header div.title {
+ padding-top: 16px;
+ padding-left: 20px;
+ padding-right: 20px;
+}
+div.mainDialog div.header div.title input {
+ width: 100%;
+ display: block;
+ font-size: 16pt;
+ margin: 0px;
+ border: 0px;
+ padding: 3px 10px;
+ color: #787872;
+ border: 1px solid #cccec0;
+ background-color: #cccec0;
+}
+div.mainDialog div.header div.title h3 {
+ display: block;
+ font-size: 16pt;
+ color: #787872;
+ margin: 0px;
+ border: 0px;
+ padding: 3px 10px;
+}
+div.mainDialog div.header div.title.selectedField input,
+div.mainDialog div.header div.title:hover input {
+ border: 1px solid #515247;
+ background-color: #b5b7ab;
+}
+div.mainDialog div.header div.title.disabled:hover input {
+ border: 1px solid #cccec0;
+ background-color: #cccec0;
+}
+div.mainDialog div.body {
+ padding-top: 0px;
+ padding-left: 10px;
+ padding-right: 9px;
+ min-height: 200px;
+ background: url(./images/old/cardDialog/background_body.png) repeat-y;
+}
+div.mainDialog div.body div.mask {
+ display: none;
+}
+div.mainDialog.loading div.body div.mask {
+ display: block;
+ position: absolute;
+ top: 55px;
+ left: 10px;
+ right: 9px;
+ bottom: 70px;
+ z-index: 1001;
+ background-color: white;
+ padding-left: 146px;
+ padding-right: 146px;
+ padding-top: 70px;
+}
+div.mainDialog.loading div.body .tabPanels {
+ display: none;
+}
+div.mainDialog.loading div.body div.mask h3.progressDescription {
+ margin: 0px;
+ text-align: center;
+ padding-bottom: 10px;
+ color: #cccec0;
+ font-size: 14pt;
+ font-weight: normal;
+}
+div.loadingBar {
+ height: 22px;
+ width: 214px;
+ background: url(./images/old/loading/loadingBar.gif) no-repeat center top;
+}
+div.loadingBar div.loadingBarProgressBox {
+ padding: 2px;
+}
+div.loadingBar div.loadingBarProgress {
+ height: 18px;
+ width: 0%;
+ /* background-repeat: no-repeat; */
+
+ background-color: rgba(248, 79, 0, 0.6);
+ -webkit-border-radius: 9px;
+ -moz-border-radius: 9px;
+ border-radius: 9px;
+}
+/*
+div.loadingBar div.loadingBarProgress div.loadingBarProgress_left {
+ height: 100%;
+ max-width: 8px;
+ background: url(./images/old/loading/loadingBarProgress.png) no-repeat 0;
+}
+
+div.loadingBar div.loadingBarProgress div.loadingBarProgress_right {
+ position: relative;
+ height: 100%;
+ margin-left: 8px;
+ background: url(./images/old/loading/loadingBarProgress.png) no-repeat right;
+ top: -22px;
+}
+*/
+div.mainDialog div.body div ul {
+ padding: 0px;
+ clear: both;
+ margin: 0px;
+ list-style-type: none;
+}
+div.mainDialog div.body div.tabs {
+ height: 20px;
+}
+div.mainDialog div.body div.tabs ul.tabs {
+ height: 33px;
+ /* border-bottom: 1px solid #515247;*/
+
+ /* background: #cccec0 url(./images/old/cardDialog/tabs_shadow.png) repeat-x 0 -5px;*/
+
+ background: url(./images/old/cardDialog/tabs_background.png) repeat-x;
+}
+div.mainDialog div.body div.tabs ul.tabs li {
+ /* width: 150px; */
+
+ height: 32px;
+ font-size: 11pt;
+ text-align: center;
+ border-right: 1px solid #515247;
+ float: left;
+ color: #787872;
+ border-bottom: 1px solid #515247;
+ background: #cccec0 url(./images/old/cardDialog/tabs_shadow.png) repeat-x 0 -5px;
+ cursor: pointer;
+}
+div.mainDialog div.body div.tabs ul.tabs li div {
+ display: none;
+}
+div.mainDialog div.body div.tabs ul.tabs li span {
+ display: block;
+ padding-top: 9px;
+ padding-bottom: 6px;
+ padding-left: 40px;
+ padding-right: 40px;
+}
+div.mainDialog div.body div.tabs ul.tabs li:hover {
+ color: #515247;
+}
+div.mainDialog div.body div.tabs ul.tabs li.disabled:hover {
+ color: #787872;
+ cursor: default;
+}
+div.mainDialog div.body div.tabs ul.tabs li.selected {
+ color: #515247;
+ background-color: #f1f2e9;
+ border-bottom: 1px solid #f1f2e9;
+ cursor: default;
+}
+div.mainDialog div.body div.tabs ul.tabs li.selected.disabled:hover {
+ color: #515247;
+}
+div.mainDialog div.body div.tabs ul.tabs li.selected div.backToDirectLoginList {
+ position: absolute;
+ display: block;
+ top: 63px;
+ left: 140;
+ width: 20px;
+}
+div.mainDialog div.body div.tabs ul.tabs li.selected div.addDirectLoginButton {
+ position: absolute;
+ display: block;
+ top: 63px;
+ left: 265px;
+ width: 20px;
+}
+div.mainDialog div.body div.tabs ul.tabs li.selected div span {
+ padding: 0px;
+ margin: 0px;
+}
+div.mainDialog div.body div.tabs ul.tabs li.selected div:hover {
+ cursor: pointer;
+}
+div.mainDialog div.body .tabPanels {
+ clear: both;
+}
+div.mainDialog div.body ul.tabPanels li.tabPanel {
+ display: none;
+}
+div.mainDialog div.body ul.tabPanels li.tabPanel.selected {
+ display: block;
+}
+div.mainDialog div.body ul.tabPanels li.tabPanel.selected h2 {
+ margin: 0px;
+ text-align: center;
+ padding-top: 50px;
+ color: #787872;
+}
+div.mainDialog div.body ul.tabPanels li.tabPanel.selected div.wizardStepDescription {
+ margin: 0px 20px 10px;
+ font-size: 10pt;
+ color: b0b0b0;
+ font-style: italic;
+ text-align: center;
+}
+div.mainDialog div.footer {
+ height: 70px;
+ background: url(./images/old/cardDialog/background_footer.png) no-repeat 0 -14px;
+}
+div.mainDialog div.footer div.buttonArea {
+ padding-left: 40px;
+ padding-right: 40px;
+ padding-top: 15px;
+}
+div.mainDialog div.footer div.buttonArea div {
+ padding-left: 20px;
+ padding-right: 20px;
+ float: left;
+ font-weight: bold;
+ color: #787872;
+}
+div.mainDialog div.footer div.buttonArea div.disabled {
+ color: #b1b1a8;
+}
+div.mainDialog div.footer div.buttonArea div.disabled:hover {
+ color: #b1b1a8;
+ cursor: default;
+}
+div.mainDialog div.footer div.buttonArea div:hover {
+ color: #515247;
+ cursor: pointer;
+}
+div.mainDialog div.footer div.buttonArea div.save {
+ float: right;
+}
+/* @end */
+/* @group Card Dialog */
+div.addDirectLoginButton {
+ height: 20px;
+ width: 20px ;
+ background: url(./images/old/cardDialog/addDirectLogin_disabled_background.png) no-repeat -9px -9px;
+ color: white;
+ font-weight: bold;
+}
+div.addDirectLoginButton span {
+ display: block;
+ height: 20px;
+ width: 20px ;
+}
+div.addDirectLoginButton:hover {
+ background: url(./images/old/cardDialog/addDirectLogin_background.png) no-repeat -9px -9px;
+}
+/* @group Card Dialog - Direct Login */
+div.directLoginsComponentContainer {
+ overflow: hidden;
+ /* background-color: green; */
+
+}
+div.CardDialog div.directLogins {
+ /* background-color: yellow; */
+
+ padding-top: 2px;
+}
+div.CardDialog div.addNewDirectLoginSplash {
+ margin: 0px 80px;
+}
+div.CardDialog div.addNewDirectLoginSplash h3 {
+ color: #aaaaaa;
+ text-align: center;
+ font-weight: normal;
+ font-size: 11pt;
+}
+div.CardDialog div.addNewDirectLoginSplash a {
+ display: block;
+ text-decoration: none;
+ margin-left: auto;
+ margin-right: auto;
+ width: 190px;
+ /* color: #787878; */
+
+ color: rgba(255, 98, 6, 0.75);
+ text-transform: uppercase;
+ background: url(./images/old/cardDialog/addDirectLogin_disabled_background.png) no-repeat right;
+}
+div.CardDialog div.addNewDirectLoginSplash a span {
+ text-align: center;
+}
+div.CardDialog div.addNewDirectLoginSplash a:hover {
+ color: #ff6206;
+ background: url(./images/old/cardDialog/addDirectLogin_background.png) no-repeat right;
+}
+div.CardDialog div.directLoginItem {
+ clear: both;
+ min-height: 32px;
+ padding-left: 10px;
+ padding-top: 4px;
+ padding-bottom: 2px;
+ /* width: 100px; */
+
+ max-height: 32px;
+ overflow: hidden;
+}
+div.CardDialog div.directLoginItem:hover {
+ background-color: #cccec0;
+}
+div.CardDialog div.addDirectLoginListItem {
+ min-height: 32px;
+ padding-left: 10px;
+ padding-top: 4px;
+ padding-bottom: 2px;
+ max-height: 32px;
+ overflow: hidden;
+ background: url(./images/old/cardDialog/addDirectLogin_disabled_background.png) no-repeat 22px 0;
+}
+div.CardDialog div.addDirectLoginListItem a {
+ display: block;
+ font-size: 11pt;
+ padding-top: 6px;
+ padding-left: 50px;
+ color: rgba(255, 98, 6, 0.75);
+ text-decoration: none;
+ text-transform: uppercase;
+}
+div.CardDialog div.addDirectLoginListItem:hover {
+ background: url(./images/old/cardDialog/addDirectLogin_background.png) no-repeat 22px 0;
+ color: #ff6206;
+ background-color: #cccec0;
+}
+div.CardDialog div.directLoginItem div.cardDialogRecordDirectLoginComponent_favicon img.favicon {
+ width: 32px;
+ height: 32px;
+ float: left;
+}
+div.CardDialog div.directLoginItem div.cardDialogRecordDirectLoginComponent_label input {
+ float: left;
+ font-size: 11pt;
+ border: 0px;
+ padding: 5px;
+ color: #787872;
+ border: 1px solid #ededeb;
+ background-color: #ededeb;
+ height: 30px;
+ margin-left: 10px;
+ width: 68%;
+ margin-right: 5px;
+}
+div.CardDialog div.directLoginItem:hover div.cardDialogRecordDirectLoginComponent_label input {
+ border: 1px solid #515247;
+ background-color: #b5b7ab;
+}
+div.CardDialog div.directLoginItem > div.open {
+ float: left;
+ margin-top: 5px;
+ margin-right: 2px;
+ padding-left: 5px;
+ visibility: hidden;
+}
+div.CardDialog div.directLoginItem > div.edit,
+div.CardDialog div.directLoginItem > div.delete {
+ float: left;
+ margin-top: 5px;
+ margin-left: 3px;
+ padding-left: 5px;
+ visibility: hidden;
+}
+div.CardDialog div.directLoginItem > div.open a {
+ display: block;
+ width: 22px;
+ height: 22px;
+ background: url(./images/old/cardDialog/openDirectLogin.png) no-repeat 0 -2px;
+}
+div.CardDialog div.directLoginItem > div.open a:hover {
+ background: url(./images/old/cardDialog/openDirectLogin_selected.png) no-repeat 0 -2px;
+}
+div.CardDialog div.directLoginItem:hover > div.open,
+div.CardDialog div.directLoginItem:hover > div.edit,
+div.CardDialog div.directLoginItem:hover > div.delete {
+ visibility: visible;
+}
+div.CardDialog div.directLoginItem div.edit span {
+ padding-right: 6px;
+ display: block;
+}
+div.CardDialog div.directLoginItem div.open span a,
+div.CardDialog div.directLoginItem div.edit span a,
+div.CardDialog div.directLoginItem div.delete span a {
+ font-size: 8pt;
+ color: #666666;
+ text-decoration: none;
+ line-height: 19px;
+}
+div.CardDialog div.directLoginItem div.edit:hover {
+ background: url(./images/old/new_background_left.png) no-repeat;
+}
+div.CardDialog div.directLoginItem div:hover span a {
+ color: white;
+}
+div.CardDialog div.directLoginItem div.edit:hover span {
+ background: url(./images/old/new_background.png) no-repeat right center;
+}
+div.CardDialog div.directLoginItem div.delete:hover {
+ background: url(./images/old/delete_background_left.png) no-repeat;
+}
+div.CardDialog div.directLoginItem div.delete:hover span {
+ background: url(./images/old/delete_background.png) right;
+}
+/* @group Direct Login Editing */
+div.CardDialog div.directLoginEditDetail {
+ position: relative;
+ /* background-color: red; */
+
+}
+/*
+div.CardDialog div.directLoginEditDetail div.back {
+ float: left;
+ width: 30px;
+}
+
+div.CardDialog div.directLoginEditDetail div.back a {
+ display: block;
+ padding: 5px;
+ text-decoration: none;
+ font-weight: bold;
+ font-size: 14pt;
+ color: #cccec0;
+
+ background: url(./images/old/cardDialog/back.png) no-repeat 5px 14px;
+ width: 20px;
+ height: 200px;
+}
+
+div.CardDialog div.directLoginEditDetail div.back a:hover {
+ color: #7f7872;
+ background: url(./images/old/cardDialog/back_selected.png) no-repeat 5px 14px;
+}
+*/
+form.directLoginEditingForm div.title,
+form.directLoginEditingForm div.favicon {
+ padding: 5px 10px;
+}
+form.directLoginEditingForm div.title.disabled:hover {
+ background-color: #f1f2e9;
+}
+form.directLoginEditingForm div.title:hover,
+form.directLoginEditingForm div.favicon:hover {
+ background-color: #cccec0;
+}
+form.directLoginEditingForm div.title input {
+ /* width: 100%; */
+
+ margin: 0px;
+ margin-left: 10px;
+ width: 440px;
+}
+form.directLoginEditingForm div.favicon {
+ padding-left: 10px;
+}
+/*form.directLoginEditingForm div.favicon img.favicon {*/
+form.directLoginEditingForm img.favicon {
+ float: left;
+ width: 32px;
+ height: 32px;
+}
+form.directLoginEditingForm div.favicon input {
+ margin-top: 1px;
+ width: 465px;
+}
+form.directLoginEditingForm div.disabled:hover input,
+form.directLoginEditingForm div input {
+ font-size: 11pt;
+ border: 0px;
+ padding: 5px;
+ color: #787872;
+ border: 1px solid #ededeb;
+ background-color: #ededeb;
+ height: 30px;
+}
+form.directLoginEditingForm div:hover input {
+ border: 1px solid #515247;
+ background-color: #b5b7ab;
+}
+/* @group Bindings */
+div.bindings div.binding > span.formFieldName {
+ display: inline-block;
+ width: 140px;
+ overflow: hidden;
+ margin-right: 10px;
+ color: #6b5147;
+ text-overflow: ellipsis;
+}
+div.bindings div.binding {
+ padding-bottom: 3px;
+}
+div.bindings div.binding > input {
+ margin-right: 10px;
+ background: #cccec0;
+ width: 150px;
+ border: 1px solid #cccec0;
+}
+div.bindings div.binding:hover > input {
+ border: 1px solid #cccec0;
+}
+div.bindings div.binding > select {
+ font-size: 13pt;
+}
+div.bindings div.binding span.fieldLock {
+ display: inline-block;
+ width: 20px;
+ height: 20px;
+ margin-right: 3px;
+}
+div.bindings div.binding.showLocked input {
+ background: url(./images/old/cardDialog/password_background.png) no-repeat 2px 3px;
+ /* color: black; */
+
+ overflow: hidden;
+ background: #cccec0 url(./images/old/cardDialog/password_background.png) no-repeat 2px 3px;
+ color: rgba(237, 237, 235, 0.1);
+}
+div.bindings div.binding span.fieldLock a {
+ display: none;
+}
+div.bindings div.binding.locked span.fieldLock a {
+ display: block;
+ width: 20px;
+ height: 20px;
+ text-decoration: none;
+ background-image: url(./images/old/cardDialog/lock_open.png);
+}
+div.bindings div.binding.locked.showLocked span.fieldLock a {
+ background-image: url(./images/old/cardDialog/lock_closed.png);
+ text-decoration: none;
+}
+/* @end */
+/* @group FormValues */
+div.formValues {
+ padding-top: 15px;
+}
+div.formValues div.formValue div {
+ margin: 0px;
+ display: inline-block;
+}
+div.formValues div.formValue > span.formFieldName {
+ display: inline-table;
+ width: 160px;
+ overflow: hidden;
+ margin-right: 10px;
+ color: #6b5147;
+}
+/* @end */
+/* @group FormValues */
+/*
+div.formValues {
+ padding-top: 15px;
+}
+
+div.formValues div.formValue > span.formFieldName {
+ display: inline-table;
+ width: 150px;
+ overflow: hidden;
+ margin-right: 35px;
+ color: #6b5147;
+}
+
+div.formValues div.formValue > select {
+ padding-left: 20px;
+}
+*/
+/* @end */
+/* @group Panels */
+div.directLoginEditing {
+ padding-top: 2px;
+}
+div.directLoginEditing div.tabContainer {
+ min-height: 150px;
+ height: 200px;
+}
+div.directLoginEditing div.tabContainer > ul.tabs {
+ display: none;
+}
+/*
+div.directLoginEditing li.configuration,
+div.directLoginEditing li.bindings,
+div.directLoginEditing li.favicon {
+ padding: 10px;
+}
+*/
+div.directLoginEditing li {
+ padding: 10px;
+}
+div.directLoginEditing li.configuration > .bookmarkletConfigurationWrapper > textarea {
+ float: left;
+ width: 320px;
+ height: 125px;
+ font-family: monospace;
+ font-weight: normal;
+ font-size: 8pt;
+ border: 1px solid #ccc;
+}
+div.directLoginEditing li.configuration > .bookmarkletConfigurationWrapper .bookmarkletComponent {
+ float: right;
+}
+div.directLoginEditing li.configuration > textarea.error {
+ border: 1px solid red;
+ background-color: rgba(255, 0, 0, 0.1);
+}
+/*
+div.directLoginEditing > form.directLoginEditingForm > div.tabContainer {
+ padding-top: 10px;
+}
+
+div.directLoginEditing > form.directLoginEditingForm > div.tabContainer > ul.tabs > li {
+ float: left;
+ padding-left: 10px;
+ padding-right: 10px;
+ display: block;
+ font-size: 10pt;
+ color: #787872;
+ cursor: pointer;
+
+ height: 22px;
+ text-align: center;
+ border-right: 1px solid #aaa;
+ border-bottom: 1px solid #aaa;
+ border-top: 1px solid #aaa;
+
+ background-color: #cccec0;
+}
+
+div.directLoginEditing > form.directLoginEditingForm > div.tabContainer > ul.tabs > li:first-child {
+ border-left: 1px solid #aaa;
+}
+
+div.directLoginEditing > form.directLoginEditingForm > div.tabContainer > ul.tabs {
+ height: 23px;
+ padding-left: 10px;
+ border-bottom: 1px solid #aaa;
+ margin-left: 10px;
+ margin-right: 10px;
+}
+
+div.directLoginEditing > form.directLoginEditingForm > div.tabContainer > ul.tabs > li > span {
+ line-height: 23px;
+}
+
+div.directLoginEditing > form.directLoginEditingForm > div.tabContainer > ul.tabs > li.selected {
+ color: #6a5147;
+ cursor: default;
+ border-bottom: 1px solid #f1f2e9;
+ background-color: #f1f2e9;
+}
+
+div.directLoginEditing > form.directLoginEditingForm > div.tabContainer > ul.tabs > li:hover {
+ color: #6a5147;
+}
+
+div.directLoginEditing > form.directLoginEditingForm > div.tabContainer > ul.tabPanels {
+ padding-bottom: 5px;
+ margin-left: 10px;
+ margin-right: 10px;
+}
+
+div.directLoginEditing > form.directLoginEditingForm > div.tabContainer > ul.tabPanels > li.selected {
+ border-bottom: 1px solid #aaa;
+ border-left: 1px solid #aaa;
+ border-right: 1px solid #aaa;
+}
+
+div.directLoginEditing li.configuration {
+ padding: 5px;
+}
+
+div.directLoginEditing li.configuration > textarea {
+ width: 100%;
+ height: 100px;
+ font-family: monospace;
+ font-weight: normal;
+ font-size: 8pt;
+}
+*/
+/* @end */
+/* @end */
+/* @end */
+/* @group Card Dialog FIELDS */
+div.CardDialog div.body {
+ padding-bottom: 1px;
+}
+div.CardDialog div.body table.fields {
+ width: 100%;
+ padding-top: 8px;
+ padding-bottom: 1px;
+}
+div.CardDialog div.body table.fields thead {
+ background: url(./images/old/cardDialog/dottedLine_background.png) repeat-x 0 15px;
+}
+div.CardDialog div.body table.fields tfoot {
+ background: url(./images/old/cardDialog/dottedLine_background.png) repeat-x 0 bottom;
+}
+div.CardDialog div.body table.fields thead th {
+ text-align: left;
+ font-weight: normal;
+ font-size: 9pt;
+ color: #787872;
+ padding-left: 10px;
+ padding-bottom: 3px;
+ /*
+ border-bottom: 1px dotted;
+*/
+
+}
+div.CardDialog div.body table.fields thead th.fieldStateTH {
+ width: 10px;
+}
+div.CardDialog div.body table.fields tbody td.fieldLabel input {
+ width: 130px;
+}
+div.CardDialog div.body table.fields thead th.fieldLockTH {
+ width: 10px;
+}
+div.CardDialog div.body table.fields tbody td.fieldValue input {
+ width: 280px;
+}
+div.CardDialog div.body table.fields thead th.fieldActionTH {
+ width: 30px;
+}
+div.CardDialog div.body table.fields thead th.fieldDeleteTH {
+ width: 40px;
+}
+div.CardDialog div.body table.fields tbody tr:hover,
+div.CardDialog div.body table.fields tbody tr.selectedField {
+ background-color: #cccec0;
+}
+div.CardDialog div.body table.fields tbody tr td {
+ font-size: 11pt;
+ color: #787872;
+ height: 35px;
+}
+div.CardDialog div.body table.fields tbody tr td input {
+ font-size: 11pt;
+ border: 0px;
+ padding: 5px;
+ color: #787872;
+ border: 1px solid #ededeb;
+ background-color: #ededeb;
+ height: 30px;
+}
+/*
+div.CardDialog div.body table.fields tbody tr td.fieldValue div {
+ margin-right: 10px;
+}
+
+div.CardDialog div.body table.fields tbody tr td.fieldValue div input {
+ width: 100%;
+}
+*/
+div.CardDialog div.body table.fields tbody tr td.fieldValue div.locked input {
+ background: #ededeb url(./images/old/cardDialog/password_background.png) no-repeat 2px 3px;
+ color: #ededeb;
+ color: rgba(237, 237, 235, 0.1);
+ /* color: black; */
+
+ /* line-height: 100px; */
+
+ overflow: hidden;
+}
+div.locked input.value::-moz-selection {
+ background: #ff0000;
+}
+div.locked input.value::selection {
+ background: #ff0000;
+}
+div.CardDialog div.body table.fields tbody tr.new.selectedField td input,
+div.CardDialog div.body table.fields tbody tr.new:hover td input,
+div.CardDialog div.body table.fields tbody tr:hover td input,
+div.CardDialog div.body table.fields tbody tr.selectedField td input {
+ border: 1px solid #515247;
+ background-color: #b5b7ab;
+}
+div.CardDialog div.body table.fields tbody tr:hover td.fieldValue div.locked input,
+div.CardDialog div.body table.fields tbody tr.selectedField td.fieldValue div.locked input {
+ background: #b5b7ab url(./images/old/cardDialog/password_background.png) no-repeat 2px 3px;
+ color: #b5b7ab;
+ color: rgba(237, 237, 235, 0.1);
+}
+div.CardDialog div.body table.fields tbody td.fieldLock div {
+ width: 20px;
+ height: 19px;
+ cursor: pointer;
+}
+div.CardDialog div.body table.fields tbody tr:hover td.fieldLock div.locked {
+ background-image: url(./images/old/cardDialog/lock_closed.png);
+}
+div.CardDialog div.body table.fields tbody tr:hover td.fieldLock div.unlocked {
+ background-image: url(./images/old/cardDialog/lock_open.png);
+}
+div.CardDialog div.body table.fields tbody tr td.fieldAddDelete div span a {
+ text-decoration: none;
+ visibility: hidden;
+ font-size: 8pt;
+ vertical-align: -13px;
+ color: black;
+}
+div.CardDialog div.body table.fields tbody tr.selectedField td.fieldAddDelete div span a {
+ visibility: visible;
+}
+div.CardDialog div.body table.fields tbody tr:hover td.fieldAddDelete div span a {
+ visibility: visible;
+}
+div.CardDialog div.body table.fields tbody tr:hover td.fieldAddDelete div:hover span a {
+ color: white;
+}
+div.CardDialog div.body div.notes {
+ background: url(./images/old/cardDialog/dottedLine_background.png) repeat-x 0 0;
+ padding-top: 2px;
+}
+div.CardDialog div.body div.notes div {
+ padding-left: 20px;
+ padding-right: 20px;
+ padding-top: 4px;
+ padding-bottom: 4px;
+}
+div.CardDialog div.body div.notes div:hover,
+div.CardDialog div.body div.notes.selectedField div {
+ background-color: #cccec0;
+}
+div.CardDialog.loading div.body div.notes div textarea {
+ display: none;
+}
+div.CardDialog div.body div.notes div textarea {
+ border: 0;
+ width: 470px;
+ /*
+ width: 100%;
+ height: 100px;
+ min-height: 400px;
+ overflow: hidden;
+*/
+
+ color: #787872;
+ border: 1px solid #ededeb;
+ background-color: #ededeb;
+ display: block;
+ line-height: 12pt;
+ min-height: 50px;
+}
+div.CardDialog div.body div.notes div:hover textarea,
+div.CardDialog div.body div.notes.selectedField div textarea {
+ border: 1px solid #515247;
+ background-color: #b5b7ab;
+}
+div.CardDialog div.body table.fields tbody tr td.fieldAction {
+ /* background-color: red; */
+
+ padding-left: 4px;
+}
+div.CardDialog div.body table.fields tbody tr td.fieldAction a {
+ display: inline-block;
+ text-decoration: none;
+ text-align: center;
+ width: 16px;
+ height: 16px;
+}
+div.CardDialog div.body table.fields tbody tr td.fieldAction a.email {
+ background: url(./images/old/cardDialog/fieldTypes/email.png) no-repeat 0 0;
+}
+div.CardDialog div.body table.fields tbody tr td.fieldAction a.email:hover {
+ background: url(./images/old/cardDialog/fieldTypes/email_selected.png) no-repeat 0 0;
+}
+div.CardDialog div.body table.fields tbody tr td.fieldAction a.url {
+ background: url(./images/old/cardDialog/fieldTypes/url.png) no-repeat 0 0;
+}
+div.CardDialog div.body table.fields tbody tr td.fieldAction a.url:hover {
+ background: url(./images/old/cardDialog/fieldTypes/url_selected.png) no-repeat 0 0;
+}
+div.CardDialog div.body table.fields tbody tr td.fieldAction a.password {
+ background: url(./images/old/cardDialog/fieldTypes/password.png) no-repeat 0 0;
+}
+div.CardDialog div.body table.fields tbody tr td.fieldAction a.password:hover {
+ background: url(./images/old/cardDialog/fieldTypes/password_selected.png) no-repeat 0 0;
+}
+/*
+/ *div.CardDialog div.body table.fields tbody* / tr.new {
+ background: yellow;
+}
+
+div.CardDialog div.body table.fields tbody tr.new td input {
+ border: 1px solid red;
+ background-color: green;
+}
+*/
+/* @end */
+/* @end */
+div#disabledZone {
+ display: block;
+ visibility: visible;
+}
+div#messageZone {
+ display: block;
+ visibility: visible;
+}
+div.CardDialog div.error div.img {
+ margin: 10px;
+ width: 50px;
+ height: 50px;
+ float: left;
+ background-image: url(./images/old/simpleMessageBox/Alert.png);
+}
+/* @group Ruler */
+/*
+div.rulerExtraWrapper {
+ position: absolute;
+ top: 0px;
+ left: 0px;
+ width: 100%;
+ height: 100%;
+ overflow: hidden;
+ background-color: rgba(255, 0, 0, 0.2);
+ z-index: 24999;
+}
+*/
+div.rulerWrapper {
+ left: -1000px;
+ margin-top: -30px;
+ margin-left: 50%;
+ z-index: 25000;
+}
+div.rulerWrapper.fixed {
+ position: fixed;
+}
+div.rulerWrapper.scrollable {
+ position: absolute;
+}
+div.ruler {
+ /* position: absolute; */
+
+ width: 541px;
+ height: 96px;
+ margin-left: -270px;
+ background: url(./images/old/ruler/ruler.png) no-repeat;
+}
+div.ruler a {
+ position: absolute;
+ display: block;
+ width: 15px;
+ height: 15px;
+ top: 3px;
+ text-decoration: none;
+}
+div.ruler a.exit {
+ margin-left: 2px;
+ background: url(./images/old/ruler/exit.png) no-repeat;
+}
+div.ruler a.exit:hover {
+ background: url(./images/old/ruler/exit_selected.png) no-repeat;
+}
+div.ruler a.smallButton.previous {
+ right: 16px;
+ background: url(./images/old/ruler/small_previous.png) no-repeat;
+}
+div.ruler a.smallButton.previous:hover {
+ cursor: pointer;
+ background: url(./images/old/ruler/small_previous_selected.png) no-repeat;
+}
+div.ruler a.smallButton.previous.disabled,
+div.ruler a.smallButton.previous.disabled:hover {
+ cursor: default;
+ background: url(./images/old/ruler/small_previous_disabled.png) no-repeat;
+}
+div.ruler a.smallButton.next {
+ right: 3px;
+ background: url(./images/old/ruler/small_next.png) no-repeat;
+}
+div.ruler a.smallButton.next:hover {
+ cursor: pointer;
+ background: url(./images/old/ruler/small_next_selected.png) no-repeat;
+}
+div.ruler a.smallButton.next.disabled,
+div.ruler a.smallButton.next.disabled:hover {
+ cursor: default;
+ background: url(./images/old/ruler/small_next_disabled.png) no-repeat;
+}
+div.ruler div.steps,
+div.ruler div.dots {
+ position: absolute;
+ background-color: rgba(255, 255, 255, 0);
+ margin-left: 30px;
+ margin-right: 30px;
+}
+div.ruler div.steps {
+ top: 25px;
+ height: 30px;
+}
+div.ruler div.dots {
+ top: 58px;
+ height: 25px;
+}
+div.ruler div ul {
+ list-style-type: none;
+ margin: 0px;
+ padding: 0px;
+}
+div.ruler div ul li {
+ display: inline-block;
+ vertical-align: top;
+}
+div.ruler > div.steps > ul > li:first-child,
+div.ruler > div.dots > ul > li:first-child {
+ margin-left: 0px;
+}
+div.ruler div.steps_3 ul li {
+ margin-left: 135px;
+}
+div.ruler div.steps_4 ul li {
+ margin-left: 67px;
+}
+div.ruler div.steps_5 ul li {
+ margin-left: 32px;
+}
+div.ruler div.steps_6 ul li {
+ margin-left: 12px;
+}
+div.ruler div ul li span {
+ font-weight: bold;
+ text-align: center;
+ width: 70px;
+ display: block;
+ font-size: 8pt;
+ overflow: hidden;
+ color: rgba(0, 0, 0, 0.3);
+}
+div.ruler div ul li.selected span {
+ color: black;
+}
+div.ruler div.dots ul li span {
+ /*
+ text-align: center;
+ width: 26px;
+ margin-left: 22px;
+ margin-right: 22px;
+ height: 25px;
+ background-color: #e57218;
+*/
+
+ font-size: 40pt;
+ line-height: 47px;
+}
+div.ruler div.marker {
+ position: absolute;
+ top: -3px;
+ /* left: -246px; */
+
+}
+div.ruler div.marker div.markerBody {
+ width: 77px;
+ height: 97px;
+ background: url(./images/old/ruler/marker.png) no-repeat;
+}
+div.ruler div.marker div.next {
+ position: absolute;
+ top: 25px;
+ left: 76px;
+ width: 27px;
+ height: 65px;
+ background: url(./images/old/ruler/next.png) no-repeat -13px;
+ z-index: 26000;
+}
+div.ruler div.marker div.next:hover {
+ cursor: pointer;
+ background: url(./images/old/ruler/next.png) no-repeat -2px;
+}
+div.ruler div.marker div.disabled {
+ display: none;
+}
+div.ruler div.marker div.previous {
+ position: absolute;
+ top: 25px;
+ left: -24px;
+ width: 27px;
+ height: 65px;
+ /* background: url(./images/old/ruler/previous.png) no-repeat 13px 1px; */
+
+ background: url(./images/old/ruler/previous.png) no-repeat 18px 1px;
+ z-index: 26000;
+}
+div.ruler div.marker div.previous:hover {
+ cursor: pointer;
+ /* background: url(./images/old/ruler/previous.png) no-repeat 2px 1px; */
+
+ background: url(./images/old/ruler/previous.png) no-repeat 7px 1px;
+}
+/* @end */
+div.createNewCardSplash {
+ margin-top: -450px;
+ margin-left: 250px;
+ width: 354px;
+ float: left;
+ height: 186px;
+ text-align: center;
+ background: url(./images/old/main/grid/createNewCardSplash.png) no-repeat;
+}
+div.createNewCardSplash:hover {
+ cursor: pointer;
+ background: url(./images/old/main/grid/createNewCardSplash_selected.png) no-repeat;
+}
+div.createNewCardSplash span {
+ display: block;
+ padding-top: 130px;
+ font-size: 14pt;
+ color: #9a9586;
+}
+div.createNewCardSplash:hover span {
+ color: #605c4e;
+}
+/*=============================================*/
+div.NewUserCreation div.tabContainer {
+ min-height: 150px;
+ height: 200px;
+}
+div.NewUserCreation div.tabContainer > ul.tabs {
+ display: none;
+}
+ul.createUserStates li.creating {
+ background: url(./images/old/creatingUser.gif) no-repeat center center;
+}
+ul.createUserStates li {
+ height: 100px;
+}
+ul.createUserStates li span {
+ display: block;
+ width: 100%;
+ text-align: center;
+ color: #999;
+ font-style: italic;
+}
+div.NewUserCreation form.newUserCreationForm ul.tabPanels {
+ padding-top: 10px;
+}
+div.NewUserCreation form.newUserCreationForm ul ul {
+ margin-left: auto;
+ margin-right: auto;
+ width: 400px;
+}
+div.NewUserCreation form.newUserCreationForm ul.credentials li {
+ height: 45px;
+}
+div.NewUserCreation form.newUserCreationForm ul.credentials span.label {
+ text-align: right;
+ display: inline-block;
+ font-size: 12pt;
+ color: #787872;
+ width: 110px;
+ vertical-align: baseline;
+}
+div.NewUserCreation form.newUserCreationForm ul.credentials input {
+ font-size: 13pt;
+ color: #787872;
+ height: 35px;
+ margin-left: 15px;
+ padding-left: 5px;
+}
+div.NewUserCreation form.newUserCreationForm ul.termsOfService li {
+ padding: 0 0 15 0;
+}
+div.NewUserCreation form.newUserCreationForm ul.termsOfService input {
+ display: inline-block;
+}
+div.NewUserCreation form.newUserCreationForm ul.termsOfService .label {
+ display: inline-block;
+ text-align: left;
+ font-size: 12pt;
+ color: #787872;
+ width: 350px;
+ vertical-align: top;
+ padding-left: 10px;
+}
+div.NewUserCreation form.newUserCreationForm ul.termsOfService a {
+ font-weight: bold;
+ color: #787872;
+ text-decoration: none;
+}
+div.NewUserCreation form.newUserCreationForm ul.termsOfService a:hover {
+ color: #444;
+}
+div.NewUserCreation form.newUserCreationForm ul.createUserStates li.done span {
+ font-size: 16pt;
+ color: green;
+}
+div.NewUserCreation form.newUserCreationForm ul.createUserStates li.fail span {
+ font-size: 16pt;
+ color: red;
+}
diff --git a/frontend/gamma/html/exitPage_template.html b/frontend/gamma/html/exit_template.html
index e17bee0..e17bee0 100644
--- a/frontend/gamma/html/exitPage_template.html
+++ b/frontend/gamma/html/exit_template.html
diff --git a/frontend/gamma/html/index_template.html b/frontend/gamma/html/index_template.html
index 5f5ed2d..ba7c311 100644
--- a/frontend/gamma/html/index_template.html
+++ b/frontend/gamma/html/index_template.html
@@ -15,7 +15,9 @@
<script>
Clipperz_IEisBroken = false;
Clipperz_normalizedNewLine = '\n';
- Clipperz_dumpUrl = "/dump/";
+ Clipperz_dumpUrl = "/../dump/";
+ Clipperz_version = "@application.version@";
+ "use strict";
</script>
<!--[if IE]><script>
@@ -45,6 +47,13 @@ Clipperz_normalizedNewLine = '\x0d\x0a';
<script>
Clipperz.PM.Proxy.defaultProxy = new Clipperz.PM.Proxy.JSON({'url':'@request.path@', 'shouldPayTolls':@should.pay.toll@});
/*offline_data_placeholder*/
+
+/* * /
+ MochiKit.DOM.addLoadEvent(function () {
+ Clipperz.Crypto.PRNG.defaultRandomGenerator().fastEntropyAccumulationForTestingPurpose();
+ MochiKit.Signal.signal(Clipperz.Signal.NotificationCenter, 'doLogin', {username:'j', passphrase:'j'});
+ });
+/ * */
</script>
<!-- -->
diff --git a/frontend/gamma/html/mobile.appcache b/frontend/gamma/html/mobile.appcache
new file mode 100644
index 0000000..237b5ad
--- a/dev/null
+++ b/frontend/gamma/html/mobile.appcache
@@ -0,0 +1,24 @@
+CACHE MANIFEST
+# 2012-02-23-v0.0.1
+
+# Entry to add into Apache config:
+# AddType text/cache-manifest .appcache
+
+# Explicitly cached entries
+CACHE:
+index.mobile.html
+*.favico
+
+# static.html will be served if the user is offline
+FALLBACK:
+/index.mobile.html /index.mobile.html
+
+# /main.py /static.html
+# images/large/ images/offline.jpg
+# *.html /offline.html
+
+
+# Resources that require the user to be online.
+NETWORK:
+*
+# login.php, http://api.twitter.com, etc.
diff --git a/frontend/gamma/html/mobile_template.html b/frontend/gamma/html/mobile_template.html
index 0a1b54c..184fbd9 100644
--- a/frontend/gamma/html/mobile_template.html
+++ b/frontend/gamma/html/mobile_template.html
@@ -1,33 +1,31 @@
-<!--
+<!doctype html>
+<!-- Conditional comment for mobile ie7 blogs.msdn.com/b/iemobile/ -->
+<!--[if IEMobile 7 ]> <html class="no-js iem7" lang="en"> <![endif]-->
+<!--[if (gt IEMobile 7)|!(IEMobile)]><!--> <html class="no-js" lang="en" manifest="mobile.appcache"> <!--<![endif]-->
+<head>
+ <title>@page.title@</title>
+ <meta charset="utf-8">
-Copyright 2008-2011 Clipperz Srl
+ <meta name="HandheldFriendly" content="True">
+ <meta name="MobileOptimized" content="320">
+ <meta name="viewport" content="width=device-width">
-This file is part of Clipperz Community Edition.
-Clipperz Community Edition is an online password manager.
-For further information about its features and functionalities please
-refer to http://www.clipperz.com.
+<!-- link rel="apple-touch-icon-precomposed" ... -->
+ <link rel="apple-touch-icon" sizes="114x114" href="data:image/png;charset=utf-8;base64,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">
+ <link rel="apple-touch-icon" sizes="72x72" href="data:image/png;charset=utf-8;base64,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">
+ <link rel="apple-touch-icon" href="data:image/png;charset=utf-8;base64,iVBORw0KGgoAAAANSUhEUgAAADkAAAA5CAIAAAADehTSAAAD8GlDQ1BJQ0MgUHJvZmlsZQAAKJGNVd1v21QUP4lvXKQWP6Cxjg4Vi69VU1u5GxqtxgZJk6XpQhq5zdgqpMl1bhpT1za2021Vn/YCbwz4A4CyBx6QeEIaDMT2su0BtElTQRXVJKQ9dNpAaJP2gqpwrq9Tu13GuJGvfznndz7v0TVAx1ea45hJGWDe8l01n5GPn5iWO1YhCc9BJ/RAp6Z7TrpcLgIuxoVH1sNfIcHeNwfa6/9zdVappwMknkJsVz19HvFpgJSpO64PIN5G+fAp30Hc8TziHS4miFhheJbjLMMzHB8POFPqKGKWi6TXtSriJcT9MzH5bAzzHIK1I08t6hq6zHpRdu2aYdJYuk9Q/881bzZa8Xrx6fLmJo/iu4/VXnfH1BB/rmu5ScQvI77m+BkmfxXxvcZcJY14L0DymZp7pML5yTcW61PvIN6JuGr4halQvmjNlCa4bXJ5zj6qhpxrujeKPYMXEd+q00KR5yNAlWZzrF+Ie+uNsdC/MO4tTOZafhbroyXuR3Df08bLiHsQf+ja6gTPWVimZl7l/oUrjl8OcxDWLbNU5D6JRL2gxkDu16fGuC054OMhclsyXTOOFEL+kmMGs4i5kfNuQ62EnBuam8tzP+Q+tSqhz9SuqpZlvR1EfBiOJTSgYMMM7jpYsAEyqJCHDL4dcFFTAwNMlFDUUpQYiadhDmXteeWAw3HEmA2s15k1RmnP4RHuhBybdBOF7MfnICmSQ2SYjIBM3iRvkcMki9IRcnDTthyLz2Ld2fTzPjTQK+Mdg8y5nkZfFO+se9LQr3/09xZr+5GcaSufeAfAww60mAPx+q8u/bAr8rFCLrx7s+vqEkw8qb+p26n11Aruq6m1iJH6PbWGv1VIY25mkNE8PkaQhxfLIF7DZXx80HD/A3l2jLclYs061xNpWCfoB6WHJTjbH0mV35Q/lRXlC+W8cndbl9t2SfhU+Fb4UfhO+F74GWThknBZ+Em4InwjXIyd1ePnY/Psg3pb1TJNu15TMKWMtFt6ScpKL0ivSMXIn9QtDUlj0h7U7N48t3i8eC0GnMC91dX2sTivgloDTgUVeEGHLTizbf5Da9JLhkhh29QOs1luMcScmBXTIIt7xRFxSBxnuJWfuAd1I7jntkyd/pgKaIwVr3MgmDo2q8x6IdB5QH162mcX7ajtnHGN2bov71OU1+U0fqqoXLD0wX5ZM005UHmySz3qLtDqILDvIL+iH6jB9y2x83ok898GOPQX3lk3Itl0A+BrD6D7tUjWh3fis58BXDigN9yF8M5PJH4B8Gr79/F/XRm8m241mw/wvur4BGDj42bzn+Vmc+NL9L8GcMn8F1kAcXjEKMJAAAAACXBIWXMAAAsTAAALEwEAmpwYAAABbmlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iWE1QIENvcmUgNC40LjAiPgogICA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPgogICAgICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iPgogICAgICAgICA8ZGM6c3ViamVjdD4KICAgICAgICAgICAgPHJkZjpCYWcvPgogICAgICAgICA8L2RjOnN1YmplY3Q+CiAgICAgIDwvcmRmOkRlc2NyaXB0aW9uPgogICA8L3JkZjpSREY+CjwveDp4bXBtZXRhPgrlPw1BAAALFElEQVRoge2aeWxcxR3Hv/OOvbKHvWuv7V0fcQK5E+wEm1w1OZ0Ek1BCARUhWpUCalGl0pMeIKBIFBVVolWJkGhpGiBAoCE0FaQBnEKUg6QkzmUbO7bjIz7iY+9950z/2F1718eujd1KVflp9GTtzux83m9+v+/7zRsDX9qX9r9jZJrjTSaT1+vNOEsg4L927do055quVVVVhcPhUDAYCgYmauFwaNeuXdOfS5jmeFEULRYLpH6AgbHxO5mtRqNxmhNh+qyMMYBBk5NYk4kJwAAjm+g2pmLTZQUAMDAdjMYpR2MxMDr9xMAMsQJMA02wgoEBYAABAViMdQZshlipDqYjFg/ASBiwGKueGhhf0GYqBjTQGNCYqGUMVKN0Blw7U37VRvw64t2YMegqo9r0J5kJVqaD6aBaEmhykjFQFVSf/jwzoVm6CqrFWTGcScN5xqCrdCZYuXE/feihh3bsuM1kMk0GFroKpsUbVeNXmrgyFVRlk2N15+Y8+M17fvGjh8f9dhy/ulyup3/1VE6u6+yZs6/tfX3fvrfa2tomRAWjusrRGCtLqGxyhsXiNR0rx3GVK8ru3llza/W6OSUFPX1DL7+y72pPX2bWDRvW5+Q6ER0qW1Ja9uwTP/3B9/5+6IM9e179+JOjiqKMgWUs5leqgTGAxq/xkAVA07AW5Llrtqy/+/ZbKssX2mcZQDWq+l0O48abV+1540Bm1q/t/CqYChCoKqSwy8ru+/q2e+/YdvrspVffeHv/O3/r6OxMYqVUV/kUv9KRDIux0tE6wPP8qoryu3fWbNu4erYnm4cCGoEqgxM4jnBadEd1VWZWT0HBzWtXQY6OZAmliAQ5qlYu81aW/+TR7z9w8NCRV/a+fezESU3TNE1jusqoRtiwX2mKIDAKqlI9zur15G/fsuHO2zZXLJtrM1GoESjXQHgQHoSCUfACdLmibF5psbe1vSsda/WmDXl5LmgqGE1pABQZNFhgZw/cs/G+OzadPNO4e+9fg6GwpspiTLbiPUfhUqYpIs+trlx+713bt66rKMmzcHoQeg+iZIRyuIHxPHLsxuqbK1/csz+ZbXRJcWDfKzt2bIWOlIyOhePwH0wF1SAIIMY+n2YymWx6J2FanJKNZo0y24DssBlVh1mFEgDTQXiAAziQWOMTVx6EBydIkfCho5d2fvvnyQ+8FL+Wzi5ZXVkOHeBEEB5UBQOggepx1xIeHAElIIAqgwbcRqppANTRfk3CFamvwBDkmYoIAALCARSEgHBgMUQ91bvgiF62sGj+nML65vbxWbdVr8/JcUENINAI3wUEGhHpgNwPXQYA3gDBBmMOzB5YimD2QnSAiAKRErVLDFcfFbgCGGjSMhISJyYx1+pJuEIsDESBy57Fb6laMT4rx3E7ampY80ukcRekLgyLzKgwiekmBxjsmFWKrDJk3wBzAQgHqiTUIFHOji1qCQGLsZIEK5catTxACSfwUDevXfaHv7yravpo1gXz5t64uIjVPUrCXeABHhlMCUCuw0AdRAPsi+CugmMxiAAqJ1iTtDZlr5BgTYnX4SYAFIAosEWl7iXzis9cah3Nun1bdRa5SiId8X1HxkKeJPpQBYNnMXQW1jnI34ysJfEqMVkTRlaEgCERtSQBqiclFgUTQJnAw2bCrevKRrMSQsqXLdDMs0nFbtZ7hO//WIg0QddGgNJbrKwItaD5RWQtRcE2mPLBYsKX9BhLvtEUVi6W/oDONFVWqKIyVSNBmbjdbsIRRmP3lzCn07myYnnN1o1VK28sdpvFSBPp+yc/dEyMXAbVJwsNgAKiBflb4FwBpoMl14rDoCS+LnFKwigna1A0XtFFXwT1bYO1pxo/PHauvqlNVeThhRxtTqdz9U0rajavW1t5Q2GOUYw0kf6jou+kKLWC0klBx6icK5C/GYSPJ9xIJJD4VowQRoms87JmUJjZH+Xqr/hqT33+0fFzFxtbNHV07ZFuWpfLteam5bds+srqFUu8Tl6MNHEDxw3B06LckZDbtMQUsM2Bpwa8MYELEAYwSomsCbJuUmD1S2Jju6/29OcfHTt/obFVU+WJfm9S65qbm7OmsnzrhtUry+Z7sogQbuJ8n5ojdQalI8NICszywFMD3gSqM0ajqhDRTDpnD8jGxk7/kVNNHx4/f7GxdXih09jUtu3u3NzVlWV3bFvzleXzs/p2O/zvTyoeLF4UbAHHM13rCrp6Qta9hy/Unrx4oaFlMojDllFFUywciTQ0tawtv26l56pj4E1CJrGTJoAahOaHuZBAt/DhoMS/sLf21Lkmqk9tYzM1VgD337npkbuWZve8yLHoZMcQQB4CITDmcES2isqS+QtqT7f4gtJ/kLVy2dznfrgz37dbVLunFj4EkK7BmA3eJHIRu5n35hceOtGsalN4bzAF1lyn7YXHvrHI+LEl/NkXeT3FGFQ/THkANfIhd3YWL5g/qevMPHCqrDzHPfPIndULAnbfQZIBlFAIBGMcRgBNAsfDYCVMNZJQSYGnqz/a0D40w6z3377mO9tnu3yv8xizPUy1QbKwnyxxoG2c7wighWDMAnSel41cdG6R99OG/j7fpAJ3Uqw3LS155uENXukdA+1P31OB7QpZH0a+yHwWMjhOD6qDA0QDdMUgSiaBFeflfnimV1Iya0JmVrfT+rsf37bY8ukstSF9TwbSx6/5U23kRMPA0uvnWGinSMbIJwF0GQYDoIIpZjFkM5ntFsuRcwMZXydnYBV47unvVlfP92dLn2RMJx+bc6p3zs92HTle17ps0fW5DquDdI2jwUwHr4GLgoYJiZqFQK49Oxhlda3habF+a3v5g1vz3dL7PDK86JOo9YpW8fjuiw2tPZTq51t9VSvmmTjZJo5JHQYQBYISc63AR418qMjlvNQhdQ6kmyUd68rFnqfuX17Mao3wpwdl4K7qS187pv75YF3sE58/NBAVKhZ6zBg0CamREKvlhQQ3g8moCpBLXMLRejXN82FC1mK39TcPr1lkr7eztvSgIOhXPf/qKfzlHz+LSCNYTe39ue682bkGh+DjuVQJYwAHkEQVzmCzqERXPQ52tBHKBM4d/z0hgLmlhXm52QNyTlDPTqf8BBHV3Bkpev6dy/1DwVQg+vu3Lp7pntURsLGxP6EDNMFK0dWDQBAlhZ4cp3WiqSb0a1tX/6nmyLzrrjOYnLqqWIXguMAUXHu4eN9p8vJ7TWMPBWRFaerFqoUGMwI28+ibjDVVRWMbugeMJ7qLHnsj0t49Ybyli9eevsHDp686crwed25YglUMC1yqChL0hBxnel2P72mNRMev7voGgirvWlQg2Q2aUUxl5eHz41IL+iPZr551P7e/x+cPpOHJoAOSJB05feWabJtfmi/JTCSyWVSHJwtKwmW/49l3o+cvjyf7Catvj5QUed1Gv8vGOBIfy4D2bjR3kCsR77OHDQeOdlBdTfMjmVkBAKyhpedEs1Y622vkNUWR7CadcNApWgbJgXPmlw9dS38kxKh+oRMV1zstCDodAIGk4FILuodMx3qLntwfqm/tncyh0mTrgYGhwAdnhgyOAq9TDYQiVhN6/TjXY3/yTSkUyVzbhyNSV9ixvJDYBFlWceEy+mXnnnO5zx/sDgaDGYdPjRWAqionzve3h/PmFWVJIb8vKv72H5a6yxmkd9g6+0Imh6fYEuobRFvU++vDwnsnO6Z0ljTVfQFr7Rw62mwsLSmqv8q/dHhgKueX7GKHtHhe0WW//Yn9gab2/9a/ExiMZqt11hcYaLfbBHEGzue/tP9P+zclUOrCr+J20QAAAABJRU5ErkJgggo=">
+ <link rel="shortcut icon" href="data:image/png;charset=utf-8;base64,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">
-* Clipperz Community Edition is free software: you can redistribute
- it and/or modify it under the terms of the GNU Affero General Public
- License as published by the Free Software Foundation, either version
- 3 of the License, or (at your option) any later version.
+ <meta http-equiv="cleartype" content="on">
+ <meta name="apple-mobile-web-app-capable" content="yes">
-* Clipperz Community Edition is distributed in the hope that it will
- be useful, but WITHOUT ANY WARRANTY; without even the implied
- warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
- See the GNU Affero General Public License for more details.
-* You should have received a copy of the GNU Affero General Public
- License along with Clipperz Community Edition. If not, see
- <http://www.gnu.org/licenses/>.
+ <!-- link rel="apple-touch-startup-image" href="data:image/png;charset=utf-8;base64,iVBORw0K...ggo=" -->
+<!--
+@copyright@
-->
-<html>
-<head>
- <title>@page.title@</title>
- <meta http-equiv="content-type" content="text/html; charset=utf-8" />
-@copyright@
@css@
<link rel="shortcut icon" href="./clipperz.ico" />
@@ -40,45 +38,29 @@ refer to http://www.clipperz.com.
Clipperz_dumpUrl = "/dump/";
</script>
-<!--[if IE]><script>
-Clipperz_IEisBroken = true;
-Clipperz_normalizedNewLine = '\x0d\x0a';
-</script><![endif]-->
-
-@CLIPPERZ_DEBUG_VERSION@
+@js_LINKED@
</head>
<body>
<div id="mainDiv">
<div id="loading">
- <a href="http://www.clipperz.com" target="_blank"><div id="logo"></div></a>
- <h5 class="clipperzPayoff">keep it to yourself!</h5>
- <h2>loading ...</h2>
+ <div>
+ <!-- a href="http://www.clipperz.com" target="_blank"><div id="logo"></div></a -->
+ <h1>clipperz</h1>
+ <h3 class="clipperzPayoff">keep it to yourself!</h3>
+ <!-- h5>loading ...</h5 -->
+ </div>
</div>
-@CLIPPERZ_INSTALLED_VERSION@
-
-</div>
-<div id="applicationVersionType" class="@application.version.type@"></div>
+@js_EMBEDDED@
-<!-- -->
-<div id="javaScriptAlert">
- <div class="mask"></div>
- <div class="message">
- <div class="header"></div>
- <div class="body">
- <div class="alertLogo"></div>
- <div class="alert">
- <h1>Attention!</h1>
- <p>If you can read this message, the chances are that your browser does not properly support JavaScript? or you have disabled this functionality yourself.</p>
- <h3>Javascript is required to access Clipperz.</h3>
- <h5>Please enable scripting or upgrade your browser.</h5>
- </div>
- </div>
- <div class="footer"></div>
- </div>
</div>
-<!-- -->
+<!-- div id="applicationVersionType" class="@application.version.type@"></div -->
+
+<script>
+ Clipperz.PM.Proxy.defaultProxy = new Clipperz.PM.Proxy.JSON({'url':'@request.path@', 'shouldPayTolls':@should.pay.toll@});
+ /*offline_data_placeholder*/
+</script>
</body>
</html>
diff --git a/frontend/gamma/images/old/alert/alert.png b/frontend/gamma/images/old/alert/alert.png
new file mode 100644
index 0000000..ade6040
--- a/dev/null
+++ b/frontend/gamma/images/old/alert/alert.png
Binary files differ
diff --git a/frontend/gamma/images/old/alert/body.png b/frontend/gamma/images/old/alert/body.png
new file mode 100644
index 0000000..3f0ab21
--- a/dev/null
+++ b/frontend/gamma/images/old/alert/body.png
Binary files differ
diff --git a/frontend/gamma/images/old/alert/footer.png b/frontend/gamma/images/old/alert/footer.png
new file mode 100644
index 0000000..a9587c8
--- a/dev/null
+++ b/frontend/gamma/images/old/alert/footer.png
Binary files differ
diff --git a/frontend/gamma/images/old/alert/header.png b/frontend/gamma/images/old/alert/header.png
new file mode 100644
index 0000000..079dd13
--- a/dev/null
+++ b/frontend/gamma/images/old/alert/header.png
Binary files differ
diff --git a/frontend/gamma/images/old/bookmarklet/placeholder.png b/frontend/gamma/images/old/bookmarklet/placeholder.png
new file mode 100644
index 0000000..792dbf5
--- a/dev/null
+++ b/frontend/gamma/images/old/bookmarklet/placeholder.png
Binary files differ
diff --git a/frontend/gamma/images/old/bookmarklet/placeholder_icon.png b/frontend/gamma/images/old/bookmarklet/placeholder_icon.png
new file mode 100644
index 0000000..dc06721
--- a/dev/null
+++ b/frontend/gamma/images/old/bookmarklet/placeholder_icon.png
Binary files differ
diff --git a/frontend/gamma/images/old/bookmarklet/placeholder_selected.png b/frontend/gamma/images/old/bookmarklet/placeholder_selected.png
new file mode 100644
index 0000000..d01ac89
--- a/dev/null
+++ b/frontend/gamma/images/old/bookmarklet/placeholder_selected.png
Binary files differ
diff --git a/frontend/gamma/images/old/bookmarklet/placeholder_selected_icon.png b/frontend/gamma/images/old/bookmarklet/placeholder_selected_icon.png
new file mode 100644
index 0000000..c8c2a86
--- a/dev/null
+++ b/frontend/gamma/images/old/bookmarklet/placeholder_selected_icon.png
Binary files differ
diff --git a/frontend/gamma/images/old/button/clicked_left.png b/frontend/gamma/images/old/button/clicked_left.png
new file mode 100644
index 0000000..332260d
--- a/dev/null
+++ b/frontend/gamma/images/old/button/clicked_left.png
Binary files differ
diff --git a/frontend/gamma/images/old/button/clicked_main.png b/frontend/gamma/images/old/button/clicked_main.png
new file mode 100644
index 0000000..d0fe732
--- a/dev/null
+++ b/frontend/gamma/images/old/button/clicked_main.png
Binary files differ
diff --git a/frontend/gamma/images/old/button/default_left.png b/frontend/gamma/images/old/button/default_left.png
new file mode 100644
index 0000000..94178fc
--- a/dev/null
+++ b/frontend/gamma/images/old/button/default_left.png
Binary files differ
diff --git a/frontend/gamma/images/old/button/default_main.png b/frontend/gamma/images/old/button/default_main.png
new file mode 100644
index 0000000..8b97bea
--- a/dev/null
+++ b/frontend/gamma/images/old/button/default_main.png
Binary files differ
diff --git a/frontend/gamma/images/old/button/hover_left.png b/frontend/gamma/images/old/button/hover_left.png
new file mode 100644
index 0000000..de09c1a
--- a/dev/null
+++ b/frontend/gamma/images/old/button/hover_left.png
Binary files differ
diff --git a/frontend/gamma/images/old/button/hover_main.png b/frontend/gamma/images/old/button/hover_main.png
new file mode 100644
index 0000000..6c07f57
--- a/dev/null
+++ b/frontend/gamma/images/old/button/hover_main.png
Binary files differ
diff --git a/frontend/gamma/images/old/cardDialog/addDirectLogin_background.png b/frontend/gamma/images/old/cardDialog/addDirectLogin_background.png
new file mode 100644
index 0000000..130d060
--- a/dev/null
+++ b/frontend/gamma/images/old/cardDialog/addDirectLogin_background.png
Binary files differ
diff --git a/frontend/gamma/images/old/cardDialog/addDirectLogin_disabled_background.png b/frontend/gamma/images/old/cardDialog/addDirectLogin_disabled_background.png
new file mode 100644
index 0000000..e67f5c4
--- a/dev/null
+++ b/frontend/gamma/images/old/cardDialog/addDirectLogin_disabled_background.png
Binary files differ
diff --git a/frontend/gamma/images/old/cardDialog/back.png b/frontend/gamma/images/old/cardDialog/back.png
new file mode 100644
index 0000000..97ef21e
--- a/dev/null
+++ b/frontend/gamma/images/old/cardDialog/back.png
Binary files differ
diff --git a/frontend/gamma/images/old/cardDialog/back_selected.png b/frontend/gamma/images/old/cardDialog/back_selected.png
new file mode 100644
index 0000000..18d4f0a
--- a/dev/null
+++ b/frontend/gamma/images/old/cardDialog/back_selected.png
Binary files differ
diff --git a/frontend/gamma/images/old/cardDialog/background_body.png b/frontend/gamma/images/old/cardDialog/background_body.png
new file mode 100644
index 0000000..9640d23
--- a/dev/null
+++ b/frontend/gamma/images/old/cardDialog/background_body.png
Binary files differ
diff --git a/frontend/gamma/images/old/cardDialog/background_footer.png b/frontend/gamma/images/old/cardDialog/background_footer.png
new file mode 100644
index 0000000..4d70eb3
--- a/dev/null
+++ b/frontend/gamma/images/old/cardDialog/background_footer.png
Binary files differ
diff --git a/frontend/gamma/images/old/cardDialog/background_header.png b/frontend/gamma/images/old/cardDialog/background_header.png
new file mode 100644
index 0000000..3223a1e
--- a/dev/null
+++ b/frontend/gamma/images/old/cardDialog/background_header.png
Binary files differ
diff --git a/frontend/gamma/images/old/cardDialog/dottedLine_background.png b/frontend/gamma/images/old/cardDialog/dottedLine_background.png
new file mode 100644
index 0000000..c447f02
--- a/dev/null
+++ b/frontend/gamma/images/old/cardDialog/dottedLine_background.png
Binary files differ
diff --git a/frontend/gamma/images/old/cardDialog/fieldTypes/email.png b/frontend/gamma/images/old/cardDialog/fieldTypes/email.png
new file mode 100644
index 0000000..afe4e8a
--- a/dev/null
+++ b/frontend/gamma/images/old/cardDialog/fieldTypes/email.png
Binary files differ
diff --git a/frontend/gamma/images/old/cardDialog/fieldTypes/email_selected.png b/frontend/gamma/images/old/cardDialog/fieldTypes/email_selected.png
new file mode 100644
index 0000000..017904c
--- a/dev/null
+++ b/frontend/gamma/images/old/cardDialog/fieldTypes/email_selected.png
Binary files differ
diff --git a/frontend/gamma/images/old/cardDialog/fieldTypes/password.png b/frontend/gamma/images/old/cardDialog/fieldTypes/password.png
new file mode 100644
index 0000000..fff876d
--- a/dev/null
+++ b/frontend/gamma/images/old/cardDialog/fieldTypes/password.png
Binary files differ
diff --git a/frontend/gamma/images/old/cardDialog/fieldTypes/passwordTooltip.png b/frontend/gamma/images/old/cardDialog/fieldTypes/passwordTooltip.png
new file mode 100644
index 0000000..3eb4d4f
--- a/dev/null
+++ b/frontend/gamma/images/old/cardDialog/fieldTypes/passwordTooltip.png
Binary files differ
diff --git a/frontend/gamma/images/old/cardDialog/fieldTypes/password_selected.png b/frontend/gamma/images/old/cardDialog/fieldTypes/password_selected.png
new file mode 100644
index 0000000..b9dc839
--- a/dev/null
+++ b/frontend/gamma/images/old/cardDialog/fieldTypes/password_selected.png
Binary files differ
diff --git a/frontend/gamma/images/old/cardDialog/fieldTypes/url.png b/frontend/gamma/images/old/cardDialog/fieldTypes/url.png
new file mode 100644
index 0000000..3ac1266
--- a/dev/null
+++ b/frontend/gamma/images/old/cardDialog/fieldTypes/url.png
Binary files differ
diff --git a/frontend/gamma/images/old/cardDialog/fieldTypes/url_selected.png b/frontend/gamma/images/old/cardDialog/fieldTypes/url_selected.png
new file mode 100644
index 0000000..77b1143
--- a/dev/null
+++ b/frontend/gamma/images/old/cardDialog/fieldTypes/url_selected.png
Binary files differ
diff --git a/frontend/gamma/images/old/cardDialog/loading.gif b/frontend/gamma/images/old/cardDialog/loading.gif
new file mode 100644
index 0000000..a846634
--- a/dev/null
+++ b/frontend/gamma/images/old/cardDialog/loading.gif
Binary files differ
diff --git a/frontend/gamma/images/old/cardDialog/lock_closed.png b/frontend/gamma/images/old/cardDialog/lock_closed.png
new file mode 100644
index 0000000..5ea9b9e
--- a/dev/null
+++ b/frontend/gamma/images/old/cardDialog/lock_closed.png
Binary files differ
diff --git a/frontend/gamma/images/old/cardDialog/lock_open.png b/frontend/gamma/images/old/cardDialog/lock_open.png
new file mode 100644
index 0000000..cb94955
--- a/dev/null
+++ b/frontend/gamma/images/old/cardDialog/lock_open.png
Binary files differ
diff --git a/frontend/gamma/images/old/cardDialog/openDirectLogin.png b/frontend/gamma/images/old/cardDialog/openDirectLogin.png
new file mode 100644
index 0000000..e0b6a25
--- a/dev/null
+++ b/frontend/gamma/images/old/cardDialog/openDirectLogin.png
Binary files differ
diff --git a/frontend/gamma/images/old/cardDialog/openDirectLogin_selected.png b/frontend/gamma/images/old/cardDialog/openDirectLogin_selected.png
new file mode 100644
index 0000000..a2a6f47
--- a/dev/null
+++ b/frontend/gamma/images/old/cardDialog/openDirectLogin_selected.png
Binary files differ
diff --git a/frontend/gamma/images/old/cardDialog/password_background.png b/frontend/gamma/images/old/cardDialog/password_background.png
new file mode 100644
index 0000000..9432573
--- a/dev/null
+++ b/frontend/gamma/images/old/cardDialog/password_background.png
Binary files differ
diff --git a/frontend/gamma/images/old/cardDialog/tabs_background.png b/frontend/gamma/images/old/cardDialog/tabs_background.png
new file mode 100644
index 0000000..ebaad24
--- a/dev/null
+++ b/frontend/gamma/images/old/cardDialog/tabs_background.png
Binary files differ
diff --git a/frontend/gamma/images/old/cardDialog/tabs_shadow.png b/frontend/gamma/images/old/cardDialog/tabs_shadow.png
new file mode 100644
index 0000000..04b51e6
--- a/dev/null
+++ b/frontend/gamma/images/old/cardDialog/tabs_shadow.png
Binary files differ
diff --git a/frontend/gamma/images/old/creatingUser.gif b/frontend/gamma/images/old/creatingUser.gif
new file mode 100644
index 0000000..69448f8
--- a/dev/null
+++ b/frontend/gamma/images/old/creatingUser.gif
Binary files differ
diff --git a/frontend/gamma/images/old/delete_background.png b/frontend/gamma/images/old/delete_background.png
new file mode 100644
index 0000000..b9bc088
--- a/dev/null
+++ b/frontend/gamma/images/old/delete_background.png
Binary files differ
diff --git a/frontend/gamma/images/old/delete_background_left.png b/frontend/gamma/images/old/delete_background_left.png
new file mode 100644
index 0000000..af3beac
--- a/dev/null
+++ b/frontend/gamma/images/old/delete_background_left.png
Binary files differ
diff --git a/frontend/gamma/images/old/directLink_background.png b/frontend/gamma/images/old/directLink_background.png
new file mode 100644
index 0000000..b36757a
--- a/dev/null
+++ b/frontend/gamma/images/old/directLink_background.png
Binary files differ
diff --git a/frontend/gamma/images/old/directLink_background_left.png b/frontend/gamma/images/old/directLink_background_left.png
new file mode 100644
index 0000000..11f282d
--- a/dev/null
+++ b/frontend/gamma/images/old/directLink_background_left.png
Binary files differ
diff --git a/frontend/gamma/images/old/directLink_no_background.png b/frontend/gamma/images/old/directLink_no_background.png
new file mode 100644
index 0000000..21a18e2
--- a/dev/null
+++ b/frontend/gamma/images/old/directLink_no_background.png
Binary files differ
diff --git a/frontend/gamma/images/old/directLogins_background.png b/frontend/gamma/images/old/directLogins_background.png
new file mode 100644
index 0000000..959ecaf
--- a/dev/null
+++ b/frontend/gamma/images/old/directLogins_background.png
Binary files differ
diff --git a/frontend/gamma/images/old/directLogins_background_bottom.png b/frontend/gamma/images/old/directLogins_background_bottom.png
new file mode 100644
index 0000000..c3c40d0
--- a/dev/null
+++ b/frontend/gamma/images/old/directLogins_background_bottom.png
Binary files differ
diff --git a/frontend/gamma/images/old/filter/clearFilter_notSelected.png b/frontend/gamma/images/old/filter/clearFilter_notSelected.png
new file mode 100644
index 0000000..ec2e2fe
--- a/dev/null
+++ b/frontend/gamma/images/old/filter/clearFilter_notSelected.png
Binary files differ
diff --git a/frontend/gamma/images/old/filter/clearFilter_selected.png b/frontend/gamma/images/old/filter/clearFilter_selected.png
new file mode 100644
index 0000000..6bfb463
--- a/dev/null
+++ b/frontend/gamma/images/old/filter/clearFilter_selected.png
Binary files differ
diff --git a/frontend/gamma/images/old/flags/br.png b/frontend/gamma/images/old/flags/br.png
new file mode 100644
index 0000000..51ac06e
--- a/dev/null
+++ b/frontend/gamma/images/old/flags/br.png
Binary files differ
diff --git a/frontend/gamma/images/old/flags/cn.png b/frontend/gamma/images/old/flags/cn.png
new file mode 100644
index 0000000..4be2967
--- a/dev/null
+++ b/frontend/gamma/images/old/flags/cn.png
Binary files differ
diff --git a/frontend/gamma/images/old/flags/de.png b/frontend/gamma/images/old/flags/de.png
new file mode 100644
index 0000000..a66d634
--- a/dev/null
+++ b/frontend/gamma/images/old/flags/de.png
Binary files differ
diff --git a/frontend/gamma/images/old/flags/en.png b/frontend/gamma/images/old/flags/en.png
new file mode 100644
index 0000000..6d193aa
--- a/dev/null
+++ b/frontend/gamma/images/old/flags/en.png
Binary files differ
diff --git a/frontend/gamma/images/old/flags/es.png b/frontend/gamma/images/old/flags/es.png
new file mode 100644
index 0000000..503ffca
--- a/dev/null
+++ b/frontend/gamma/images/old/flags/es.png
Binary files differ
diff --git a/frontend/gamma/images/old/flags/it.png b/frontend/gamma/images/old/flags/it.png
new file mode 100644
index 0000000..a271baf
--- a/dev/null
+++ b/frontend/gamma/images/old/flags/it.png
Binary files differ
diff --git a/frontend/gamma/images/old/flags/jp.png b/frontend/gamma/images/old/flags/jp.png
new file mode 100644
index 0000000..19e81e3
--- a/dev/null
+++ b/frontend/gamma/images/old/flags/jp.png
Binary files differ
diff --git a/frontend/gamma/images/old/flags/ru.png b/frontend/gamma/images/old/flags/ru.png
new file mode 100644
index 0000000..7391499
--- a/dev/null
+++ b/frontend/gamma/images/old/flags/ru.png
Binary files differ
diff --git a/frontend/gamma/images/old/footer/star.png b/frontend/gamma/images/old/footer/star.png
new file mode 100644
index 0000000..7c6e53c
--- a/dev/null
+++ b/frontend/gamma/images/old/footer/star.png
Binary files differ
diff --git a/frontend/gamma/images/old/home/box/box_body.png b/frontend/gamma/images/old/home/box/box_body.png
new file mode 100644
index 0000000..168c776
--- a/dev/null
+++ b/frontend/gamma/images/old/home/box/box_body.png
Binary files differ
diff --git a/frontend/gamma/images/old/home/box/box_bottom.png b/frontend/gamma/images/old/home/box/box_bottom.png
new file mode 100644
index 0000000..f8e72be
--- a/dev/null
+++ b/frontend/gamma/images/old/home/box/box_bottom.png
Binary files differ
diff --git a/frontend/gamma/images/old/home/box/box_top.png b/frontend/gamma/images/old/home/box/box_top.png
new file mode 100644
index 0000000..ff7b607
--- a/dev/null
+++ b/frontend/gamma/images/old/home/box/box_top.png
Binary files differ
diff --git a/frontend/gamma/images/old/home/download.png b/frontend/gamma/images/old/home/download.png
new file mode 100644
index 0000000..deffc1b
--- a/dev/null
+++ b/frontend/gamma/images/old/home/download.png
Binary files differ
diff --git a/frontend/gamma/images/old/home/features/bullet.png b/frontend/gamma/images/old/home/features/bullet.png
new file mode 100644
index 0000000..1f51609
--- a/dev/null
+++ b/frontend/gamma/images/old/home/features/bullet.png
Binary files differ
diff --git a/frontend/gamma/images/old/home/look.png b/frontend/gamma/images/old/home/look.png
new file mode 100644
index 0000000..a2a49eb
--- a/dev/null
+++ b/frontend/gamma/images/old/home/look.png
Binary files differ
diff --git a/frontend/gamma/images/old/home/register.png b/frontend/gamma/images/old/home/register.png
new file mode 100644
index 0000000..be7c151
--- a/dev/null
+++ b/frontend/gamma/images/old/home/register.png
Binary files differ
diff --git a/frontend/gamma/images/old/home/register_selected.png b/frontend/gamma/images/old/home/register_selected.png
new file mode 100644
index 0000000..f29aaae
--- a/dev/null
+++ b/frontend/gamma/images/old/home/register_selected.png
Binary files differ
diff --git a/frontend/gamma/images/old/iPhone/backButton.png b/frontend/gamma/images/old/iPhone/backButton.png
new file mode 100644
index 0000000..e27ea8c
--- a/dev/null
+++ b/frontend/gamma/images/old/iPhone/backButton.png
Binary files differ
diff --git a/frontend/gamma/images/old/iPhone/icon.png b/frontend/gamma/images/old/iPhone/icon.png
new file mode 100644
index 0000000..1c97389
--- a/dev/null
+++ b/frontend/gamma/images/old/iPhone/icon.png
Binary files differ
diff --git a/frontend/gamma/images/old/iPhone/listArrow.png b/frontend/gamma/images/old/iPhone/listArrow.png
new file mode 100644
index 0000000..6421a16
--- a/dev/null
+++ b/frontend/gamma/images/old/iPhone/listArrow.png
Binary files differ
diff --git a/frontend/gamma/images/old/iPhone/locked.png b/frontend/gamma/images/old/iPhone/locked.png
new file mode 100644
index 0000000..e00d5f6
--- a/dev/null
+++ b/frontend/gamma/images/old/iPhone/locked.png
Binary files differ
diff --git a/frontend/gamma/images/old/iPhone/logo_and_header.png b/frontend/gamma/images/old/iPhone/logo_and_header.png
new file mode 100644
index 0000000..0fe26a3
--- a/dev/null
+++ b/frontend/gamma/images/old/iPhone/logo_and_header.png
Binary files differ
diff --git a/frontend/gamma/images/old/iPhone/password_background.png b/frontend/gamma/images/old/iPhone/password_background.png
new file mode 100644
index 0000000..9432573
--- a/dev/null
+++ b/frontend/gamma/images/old/iPhone/password_background.png
Binary files differ
diff --git a/frontend/gamma/images/old/iPhone/pinstripes.png b/frontend/gamma/images/old/iPhone/pinstripes.png
new file mode 100644
index 0000000..c997775
--- a/dev/null
+++ b/frontend/gamma/images/old/iPhone/pinstripes.png
Binary files differ
diff --git a/frontend/gamma/images/old/iPhone/thumb.png b/frontend/gamma/images/old/iPhone/thumb.png
new file mode 100644
index 0000000..cefa8fc
--- a/dev/null
+++ b/frontend/gamma/images/old/iPhone/thumb.png
Binary files differ
diff --git a/frontend/gamma/images/old/iPhone/toggle.png b/frontend/gamma/images/old/iPhone/toggle.png
new file mode 100644
index 0000000..3b62ebf
--- a/dev/null
+++ b/frontend/gamma/images/old/iPhone/toggle.png
Binary files differ
diff --git a/frontend/gamma/images/old/iPhone/toggleOn.png b/frontend/gamma/images/old/iPhone/toggleOn.png
new file mode 100644
index 0000000..b016814
--- a/dev/null
+++ b/frontend/gamma/images/old/iPhone/toggleOn.png
Binary files differ
diff --git a/frontend/gamma/images/old/iPhone/toolbar.png b/frontend/gamma/images/old/iPhone/toolbar.png
new file mode 100644
index 0000000..3dde94c
--- a/dev/null
+++ b/frontend/gamma/images/old/iPhone/toolbar.png
Binary files differ
diff --git a/frontend/gamma/images/old/iPhone/whiteButton.png b/frontend/gamma/images/old/iPhone/whiteButton.png
new file mode 100644
index 0000000..5514b27
--- a/dev/null
+++ b/frontend/gamma/images/old/iPhone/whiteButton.png
Binary files differ
diff --git a/frontend/gamma/images/old/loading/loadingBar.gif b/frontend/gamma/images/old/loading/loadingBar.gif
new file mode 100644
index 0000000..b111948
--- a/dev/null
+++ b/frontend/gamma/images/old/loading/loadingBar.gif
Binary files differ
diff --git a/frontend/gamma/images/old/loading/loadingBarProgress.png b/frontend/gamma/images/old/loading/loadingBarProgress.png
new file mode 100644
index 0000000..68436ed
--- a/dev/null
+++ b/frontend/gamma/images/old/loading/loadingBarProgress.png
Binary files differ
diff --git a/frontend/gamma/images/old/loading/news.gif b/frontend/gamma/images/old/loading/news.gif
new file mode 100644
index 0000000..33d70b5
--- a/dev/null
+++ b/frontend/gamma/images/old/loading/news.gif
Binary files differ
diff --git a/frontend/gamma/images/old/lock/background_star.png b/frontend/gamma/images/old/lock/background_star.png
new file mode 100644
index 0000000..4dff077
--- a/dev/null
+++ b/frontend/gamma/images/old/lock/background_star.png
Binary files differ
diff --git a/frontend/gamma/images/old/lock/locked.png b/frontend/gamma/images/old/lock/locked.png
new file mode 100644
index 0000000..e00d5f6
--- a/dev/null
+++ b/frontend/gamma/images/old/lock/locked.png
Binary files differ
diff --git a/frontend/gamma/images/old/lock/locked_hover.png b/frontend/gamma/images/old/lock/locked_hover.png
new file mode 100644
index 0000000..62ad133
--- a/dev/null
+++ b/frontend/gamma/images/old/lock/locked_hover.png
Binary files differ
diff --git a/frontend/gamma/images/old/lock/unlocked.png b/frontend/gamma/images/old/lock/unlocked.png
new file mode 100644
index 0000000..13eadfe
--- a/dev/null
+++ b/frontend/gamma/images/old/lock/unlocked.png
Binary files differ
diff --git a/frontend/gamma/images/old/lock/unlocked_hover.png b/frontend/gamma/images/old/lock/unlocked_hover.png
new file mode 100644
index 0000000..1a45c2f
--- a/dev/null
+++ b/frontend/gamma/images/old/lock/unlocked_hover.png
Binary files differ
diff --git a/frontend/gamma/images/old/logo.png b/frontend/gamma/images/old/logo.png
new file mode 100644
index 0000000..62b58d9
--- a/dev/null
+++ b/frontend/gamma/images/old/logo.png
Binary files differ
diff --git a/frontend/gamma/images/old/logo_blue.png b/frontend/gamma/images/old/logo_blue.png
new file mode 100644
index 0000000..fff4a51
--- a/dev/null
+++ b/frontend/gamma/images/old/logo_blue.png
Binary files differ
diff --git a/frontend/gamma/images/old/main/blocks/cardGridBackground.png b/frontend/gamma/images/old/main/blocks/cardGridBackground.png
new file mode 100644
index 0000000..66dabf8
--- a/dev/null
+++ b/frontend/gamma/images/old/main/blocks/cardGridBackground.png
Binary files differ
diff --git a/frontend/gamma/images/old/main/blocks/cardGridStripes.png b/frontend/gamma/images/old/main/blocks/cardGridStripes.png
new file mode 100644
index 0000000..fdda774
--- a/dev/null
+++ b/frontend/gamma/images/old/main/blocks/cardGridStripes.png
Binary files differ
diff --git a/frontend/gamma/images/old/main/blocks/directLoginGridBackground.png b/frontend/gamma/images/old/main/blocks/directLoginGridBackground.png
new file mode 100644
index 0000000..92dd1b8
--- a/dev/null
+++ b/frontend/gamma/images/old/main/blocks/directLoginGridBackground.png
Binary files differ
diff --git a/frontend/gamma/images/old/main/blocks/directLoginGridStripes.png b/frontend/gamma/images/old/main/blocks/directLoginGridStripes.png
new file mode 100644
index 0000000..a6fc345
--- a/dev/null
+++ b/frontend/gamma/images/old/main/blocks/directLoginGridStripes.png
Binary files differ
diff --git a/frontend/gamma/images/old/main/blocks/otherPanelBackground.png b/frontend/gamma/images/old/main/blocks/otherPanelBackground.png
new file mode 100644
index 0000000..d9f5ec5
--- a/dev/null
+++ b/frontend/gamma/images/old/main/blocks/otherPanelBackground.png
Binary files differ
diff --git a/frontend/gamma/images/old/main/blocks/otherPanelBackground_selected.png b/frontend/gamma/images/old/main/blocks/otherPanelBackground_selected.png
new file mode 100644
index 0000000..0ce1d0c
--- a/dev/null
+++ b/frontend/gamma/images/old/main/blocks/otherPanelBackground_selected.png
Binary files differ
diff --git a/frontend/gamma/images/old/main/grid/ascending.png b/frontend/gamma/images/old/main/grid/ascending.png
new file mode 100644
index 0000000..9a05f48
--- a/dev/null
+++ b/frontend/gamma/images/old/main/grid/ascending.png
Binary files differ
diff --git a/frontend/gamma/images/old/main/grid/createNewCardSplash.png b/frontend/gamma/images/old/main/grid/createNewCardSplash.png
new file mode 100644
index 0000000..f7289a5
--- a/dev/null
+++ b/frontend/gamma/images/old/main/grid/createNewCardSplash.png
Binary files differ
diff --git a/frontend/gamma/images/old/main/grid/createNewCardSplash_selected.png b/frontend/gamma/images/old/main/grid/createNewCardSplash_selected.png
new file mode 100644
index 0000000..13d536f
--- a/dev/null
+++ b/frontend/gamma/images/old/main/grid/createNewCardSplash_selected.png
Binary files differ
diff --git a/frontend/gamma/images/old/main/grid/descending.png b/frontend/gamma/images/old/main/grid/descending.png
new file mode 100644
index 0000000..868857b
--- a/dev/null
+++ b/frontend/gamma/images/old/main/grid/descending.png
Binary files differ
diff --git a/frontend/gamma/images/old/main/grid/directLogins/ascending.png b/frontend/gamma/images/old/main/grid/directLogins/ascending.png
new file mode 100644
index 0000000..e1ace30
--- a/dev/null
+++ b/frontend/gamma/images/old/main/grid/directLogins/ascending.png
Binary files differ
diff --git a/frontend/gamma/images/old/main/grid/directLogins/descending.png b/frontend/gamma/images/old/main/grid/directLogins/descending.png
new file mode 100644
index 0000000..47b0685
--- a/dev/null
+++ b/frontend/gamma/images/old/main/grid/directLogins/descending.png
Binary files differ
diff --git a/frontend/gamma/images/old/main/grid/directLogins/unsorted.png b/frontend/gamma/images/old/main/grid/directLogins/unsorted.png
new file mode 100644
index 0000000..ecf674e
--- a/dev/null
+++ b/frontend/gamma/images/old/main/grid/directLogins/unsorted.png
Binary files differ
diff --git a/frontend/gamma/images/old/main/grid/favicon.png b/frontend/gamma/images/old/main/grid/favicon.png
new file mode 100644
index 0000000..00d208d
--- a/dev/null
+++ b/frontend/gamma/images/old/main/grid/favicon.png
Binary files differ
diff --git a/frontend/gamma/images/old/main/grid/running_search.gif b/frontend/gamma/images/old/main/grid/running_search.gif
new file mode 100644
index 0000000..d02d3b7
--- a/dev/null
+++ b/frontend/gamma/images/old/main/grid/running_search.gif
Binary files differ
diff --git a/frontend/gamma/images/old/main/grid/search.png b/frontend/gamma/images/old/main/grid/search.png
new file mode 100644
index 0000000..5bc8d62
--- a/dev/null
+++ b/frontend/gamma/images/old/main/grid/search.png
Binary files differ
diff --git a/frontend/gamma/images/old/main/grid/unsorted.png b/frontend/gamma/images/old/main/grid/unsorted.png
new file mode 100644
index 0000000..4bbcee3
--- a/dev/null
+++ b/frontend/gamma/images/old/main/grid/unsorted.png
Binary files differ
diff --git a/frontend/gamma/images/old/main/messageBoxBackground.png b/frontend/gamma/images/old/main/messageBoxBackground.png
new file mode 100644
index 0000000..de598b2
--- a/dev/null
+++ b/frontend/gamma/images/old/main/messageBoxBackground.png
Binary files differ
diff --git a/frontend/gamma/images/old/main/messageBoxCloseButton.png b/frontend/gamma/images/old/main/messageBoxCloseButton.png
new file mode 100644
index 0000000..061a7bb
--- a/dev/null
+++ b/frontend/gamma/images/old/main/messageBoxCloseButton.png
Binary files differ
diff --git a/frontend/gamma/images/old/main/messageBoxCloseButtonActive.png b/frontend/gamma/images/old/main/messageBoxCloseButtonActive.png
new file mode 100644
index 0000000..dbc6871
--- a/dev/null
+++ b/frontend/gamma/images/old/main/messageBoxCloseButtonActive.png
Binary files differ
diff --git a/frontend/gamma/images/old/main/tabs/cardsBackground.png b/frontend/gamma/images/old/main/tabs/cardsBackground.png
new file mode 100644
index 0000000..dd3643e
--- a/dev/null
+++ b/frontend/gamma/images/old/main/tabs/cardsBackground.png
Binary files differ
diff --git a/frontend/gamma/images/old/main/tabs/directLoginBackground.png b/frontend/gamma/images/old/main/tabs/directLoginBackground.png
new file mode 100644
index 0000000..23a9b22
--- a/dev/null
+++ b/frontend/gamma/images/old/main/tabs/directLoginBackground.png
Binary files differ
diff --git a/frontend/gamma/images/old/main/tabs/groupsBackground.png b/frontend/gamma/images/old/main/tabs/groupsBackground.png
new file mode 100644
index 0000000..9cbc9ba
--- a/dev/null
+++ b/frontend/gamma/images/old/main/tabs/groupsBackground.png
Binary files differ
diff --git a/frontend/gamma/images/old/main/tabs/itemsBackground.png b/frontend/gamma/images/old/main/tabs/itemsBackground.png
new file mode 100644
index 0000000..1a276a5
--- a/dev/null
+++ b/frontend/gamma/images/old/main/tabs/itemsBackground.png
Binary files differ
diff --git a/frontend/gamma/images/old/main/tabs/selectionHighligher.png b/frontend/gamma/images/old/main/tabs/selectionHighligher.png
new file mode 100644
index 0000000..f93fb02
--- a/dev/null
+++ b/frontend/gamma/images/old/main/tabs/selectionHighligher.png
Binary files differ
diff --git a/frontend/gamma/images/old/main/tabs/selectionHighligherGray copy.png b/frontend/gamma/images/old/main/tabs/selectionHighligherGray copy.png
new file mode 100644
index 0000000..7741a7a
--- a/dev/null
+++ b/frontend/gamma/images/old/main/tabs/selectionHighligherGray copy.png
Binary files differ
diff --git a/frontend/gamma/images/old/main/tabs/selectionHighligherGray.png b/frontend/gamma/images/old/main/tabs/selectionHighligherGray.png
new file mode 100644
index 0000000..8f6a690
--- a/dev/null
+++ b/frontend/gamma/images/old/main/tabs/selectionHighligherGray.png
Binary files differ
diff --git a/frontend/gamma/images/old/main/tabs/tagsBackground.png b/frontend/gamma/images/old/main/tabs/tagsBackground.png
new file mode 100644
index 0000000..4a8091d
--- a/dev/null
+++ b/frontend/gamma/images/old/main/tabs/tagsBackground.png
Binary files differ
diff --git a/frontend/gamma/images/old/main/userInfoBackground.png b/frontend/gamma/images/old/main/userInfoBackground.png
new file mode 100644
index 0000000..6756c83
--- a/dev/null
+++ b/frontend/gamma/images/old/main/userInfoBackground.png
Binary files differ
diff --git a/frontend/gamma/images/old/main/userInfoBullet.png b/frontend/gamma/images/old/main/userInfoBullet.png
new file mode 100644
index 0000000..3817764
--- a/dev/null
+++ b/frontend/gamma/images/old/main/userInfoBullet.png
Binary files differ
diff --git a/frontend/gamma/images/old/new_background.png b/frontend/gamma/images/old/new_background.png
new file mode 100644
index 0000000..f946a47
--- a/dev/null
+++ b/frontend/gamma/images/old/new_background.png
Binary files differ
diff --git a/frontend/gamma/images/old/new_background_left.png b/frontend/gamma/images/old/new_background_left.png
new file mode 100644
index 0000000..e9bd958
--- a/dev/null
+++ b/frontend/gamma/images/old/new_background_left.png
Binary files differ
diff --git a/frontend/gamma/images/old/note.png b/frontend/gamma/images/old/note.png
new file mode 100644
index 0000000..4e43691
--- a/dev/null
+++ b/frontend/gamma/images/old/note.png
Binary files differ
diff --git a/frontend/gamma/images/old/passwordField/background copy.png b/frontend/gamma/images/old/passwordField/background copy.png
new file mode 100644
index 0000000..05050bb
--- a/dev/null
+++ b/frontend/gamma/images/old/passwordField/background copy.png
Binary files differ
diff --git a/frontend/gamma/images/old/passwordField/background.png b/frontend/gamma/images/old/passwordField/background.png
new file mode 100644
index 0000000..3835a86
--- a/dev/null
+++ b/frontend/gamma/images/old/passwordField/background.png
Binary files differ
diff --git a/frontend/gamma/images/old/ruler/exit.png b/frontend/gamma/images/old/ruler/exit.png
new file mode 100644
index 0000000..30ab430
--- a/dev/null
+++ b/frontend/gamma/images/old/ruler/exit.png
Binary files differ
diff --git a/frontend/gamma/images/old/ruler/exit_selected.png b/frontend/gamma/images/old/ruler/exit_selected.png
new file mode 100644
index 0000000..07dfca6
--- a/dev/null
+++ b/frontend/gamma/images/old/ruler/exit_selected.png
Binary files differ
diff --git a/frontend/gamma/images/old/ruler/marker.png b/frontend/gamma/images/old/ruler/marker.png
new file mode 100644
index 0000000..8d12a88
--- a/dev/null
+++ b/frontend/gamma/images/old/ruler/marker.png
Binary files differ
diff --git a/frontend/gamma/images/old/ruler/next.png b/frontend/gamma/images/old/ruler/next.png
new file mode 100644
index 0000000..9d9662c
--- a/dev/null
+++ b/frontend/gamma/images/old/ruler/next.png
Binary files differ
diff --git a/frontend/gamma/images/old/ruler/previous.png b/frontend/gamma/images/old/ruler/previous.png
new file mode 100644
index 0000000..39f5da3
--- a/dev/null
+++ b/frontend/gamma/images/old/ruler/previous.png
Binary files differ
diff --git a/frontend/gamma/images/old/ruler/ruler.png b/frontend/gamma/images/old/ruler/ruler.png
new file mode 100644
index 0000000..546fa7b
--- a/dev/null
+++ b/frontend/gamma/images/old/ruler/ruler.png
Binary files differ
diff --git a/frontend/gamma/images/old/ruler/small_next.png b/frontend/gamma/images/old/ruler/small_next.png
new file mode 100644
index 0000000..a35c66b
--- a/dev/null
+++ b/frontend/gamma/images/old/ruler/small_next.png
Binary files differ
diff --git a/frontend/gamma/images/old/ruler/small_next_disabled.png b/frontend/gamma/images/old/ruler/small_next_disabled.png
new file mode 100644
index 0000000..69e7f31
--- a/dev/null
+++ b/frontend/gamma/images/old/ruler/small_next_disabled.png
Binary files differ
diff --git a/frontend/gamma/images/old/ruler/small_next_selected.png b/frontend/gamma/images/old/ruler/small_next_selected.png
new file mode 100644
index 0000000..b8aa0c8
--- a/dev/null
+++ b/frontend/gamma/images/old/ruler/small_next_selected.png
Binary files differ
diff --git a/frontend/gamma/images/old/ruler/small_previous.png b/frontend/gamma/images/old/ruler/small_previous.png
new file mode 100644
index 0000000..03f90f7
--- a/dev/null
+++ b/frontend/gamma/images/old/ruler/small_previous.png
Binary files differ
diff --git a/frontend/gamma/images/old/ruler/small_previous_disabled.png b/frontend/gamma/images/old/ruler/small_previous_disabled.png
new file mode 100644
index 0000000..86a7565
--- a/dev/null
+++ b/frontend/gamma/images/old/ruler/small_previous_disabled.png
Binary files differ
diff --git a/frontend/gamma/images/old/ruler/small_previous_selected.png b/frontend/gamma/images/old/ruler/small_previous_selected.png
new file mode 100644
index 0000000..5c61b45
--- a/dev/null
+++ b/frontend/gamma/images/old/ruler/small_previous_selected.png
Binary files differ
diff --git a/frontend/gamma/images/old/tabPanels/background.png b/frontend/gamma/images/old/tabPanels/background.png
new file mode 100644
index 0000000..17350c9
--- a/dev/null
+++ b/frontend/gamma/images/old/tabPanels/background.png
Binary files differ
diff --git a/frontend/gamma/images/old/tips/Tips_background.png b/frontend/gamma/images/old/tips/Tips_background.png
new file mode 100644
index 0000000..34170b9
--- a/dev/null
+++ b/frontend/gamma/images/old/tips/Tips_background.png
Binary files differ
diff --git a/frontend/gamma/images/old/tips/close.png b/frontend/gamma/images/old/tips/close.png
new file mode 100644
index 0000000..554fc8e
--- a/dev/null
+++ b/frontend/gamma/images/old/tips/close.png
Binary files differ
diff --git a/frontend/gamma/images/old/tips/open.png b/frontend/gamma/images/old/tips/open.png
new file mode 100644
index 0000000..66861d8
--- a/dev/null
+++ b/frontend/gamma/images/old/tips/open.png
Binary files differ
diff --git a/frontend/gamma/images/old/tooltips/body.png b/frontend/gamma/images/old/tooltips/body.png
new file mode 100644
index 0000000..ae5b5a3
--- a/dev/null
+++ b/frontend/gamma/images/old/tooltips/body.png
Binary files differ
diff --git a/frontend/gamma/images/old/tooltips/body_bottom.png b/frontend/gamma/images/old/tooltips/body_bottom.png
new file mode 100644
index 0000000..4567b5f
--- a/dev/null
+++ b/frontend/gamma/images/old/tooltips/body_bottom.png
Binary files differ
diff --git a/frontend/gamma/images/old/tooltips/bottom_arrow.png b/frontend/gamma/images/old/tooltips/bottom_arrow.png
new file mode 100644
index 0000000..5884c94
--- a/dev/null
+++ b/frontend/gamma/images/old/tooltips/bottom_arrow.png
Binary files differ
diff --git a/frontend/gamma/images/old/tooltips/left_arrow.png b/frontend/gamma/images/old/tooltips/left_arrow.png
new file mode 100644
index 0000000..290d062
--- a/dev/null
+++ b/frontend/gamma/images/old/tooltips/left_arrow.png
Binary files differ
diff --git a/frontend/gamma/images/old/tooltips/right_arrow.png b/frontend/gamma/images/old/tooltips/right_arrow.png
new file mode 100644
index 0000000..d0bb64f
--- a/dev/null
+++ b/frontend/gamma/images/old/tooltips/right_arrow.png
Binary files differ
diff --git a/frontend/gamma/images/old/tooltips/top_arrow.png b/frontend/gamma/images/old/tooltips/top_arrow.png
new file mode 100644
index 0000000..a5e8845
--- a/dev/null
+++ b/frontend/gamma/images/old/tooltips/top_arrow.png
Binary files differ
diff --git a/frontend/gamma/js/Clipperz/Async.js b/frontend/gamma/js/Clipperz/Async.js
index 97d8ecf..f7a9517 100644
--- a/frontend/gamma/js/Clipperz/Async.js
+++ b/frontend/gamma/js/Clipperz/Async.js
@@ -513,9 +513,9 @@ MochiKit.Base.update(Clipperz.Async, {
return MochiKit.Base.map(function (aResult) {
if (aResult[0]) {
return aResult[1];
- } else {
+ } else {
throw aResult[1];
- }
+ }
}, aResultList);
});
diff --git a/frontend/gamma/js/Clipperz/Base.js b/frontend/gamma/js/Clipperz/Base.js
index 76b2c3f..9d399d9 100644
--- a/frontend/gamma/js/Clipperz/Base.js
+++ b/frontend/gamma/js/Clipperz/Base.js
@@ -77,6 +77,11 @@ MochiKit.Base.update(Clipperz.Base, {
return MochiKit.Base.compose(function(aResult) { return -aResult; }, aComparator);
},
+ 'caseInsensitiveKeyComparator': function (aKey) {
+ return function (a, b) {
+ return MochiKit.Base.compare(a[aKey].toLowerCase(), b[aKey].toLowerCase());
+ }
+ },
//-------------------------------------------------------------------------
/*
'dependsOn': function(module, deps) {
diff --git a/frontend/gamma/js/Clipperz/PM/Connection.js b/frontend/gamma/js/Clipperz/PM/Connection.js
index b4e8aaa..a05a310 100644
--- a/frontend/gamma/js/Clipperz/PM/Connection.js
+++ b/frontend/gamma/js/Clipperz/PM/Connection.js
@@ -41,6 +41,7 @@ Clipperz.PM.Connection = function (args) {
this._clipperz_pm_crypto_version = null;
this._connectionId = null;
this._sharedSecret = null;
+ this._serverLockValue = null;
return this;
}
@@ -146,6 +147,16 @@ MochiKit.Logging.logError("### Connection.defaultErrorHandler: " + anErrorString
this._connectionId = aValue;
},
+ //-------------------------------------------------------------------------
+
+ 'serverLockValue': function () {
+ return this._serverLockValue;
+ },
+
+ 'setServerLockValue': function (aValue) {
+ this._serverLockValue = aValue;
+ },
+
//=========================================================================
/*
// TODO: ?????
@@ -320,13 +331,12 @@ Clipperz.PM.Connection.SRP['1.0'].prototype = MochiKit.Base.update(new Clipperz.
], {trace:false})
},
- 'login': function(/*anUsername, aPassphrase*/) {
+ 'login': function(isReconnecting) {
var deferredResult;
var cryptoVersion;
var srpConnection;
cryptoVersion = this.clipperz_pm_crypto_version();
-
deferredResult = new Clipperz.Async.Deferred("Connection.login", {trace:false});
deferredResult.addCallback(this.getCredentialsFunction());
deferredResult.addMethod(this, 'normalizedCredentials');
@@ -399,6 +409,13 @@ Clipperz.PM.Connection.SRP['1.0'].prototype = MochiKit.Base.update(new Clipperz.
// if (this.oneTimePassword() != null) {
/// ?? result = this.user().oneTimePasswordManager().archiveOneTimePassword(this.oneTimePassword()));
// }
+
+ if ((isReconnecting == true) && (this.serverLockValue() != someParameters['lock'])) {
+ throw Clipperz.PM.Connection.exception.StaleData;
+ } else {
+ this.setServerLockValue(someParameters['lock']);
+ }
+
return someParameters;
}, this));
// deferredResult.addCallbackPass(MochiKit.Signal.signal, this, 'updatedProgressState', 'connection_loggedIn');
@@ -429,12 +446,19 @@ Clipperz.PM.Connection.SRP['1.0'].prototype = MochiKit.Base.update(new Clipperz.
'message': function(aMessageName, someParameters) {
var args;
+ var parameters;
+
+ parameters = someParameters || {};
+ if (typeof(parameters['user']) != 'undefined') {
+ parameters['user']['lock'] = this.serverLockValue();
+ }
//console.log(">>> Connection.message", aMessageName, someParameters);
args = {
message: aMessageName,
srpSharedSecret: this.sharedSecret(),
- parameters: (someParameters || {})
+// parameters: (someParameters || {})
+ parameters: parameters
}
return this.sendMessage(args);
@@ -449,8 +473,7 @@ Clipperz.PM.Connection.SRP['1.0'].prototype = MochiKit.Base.update(new Clipperz.
deferredResult.addMethod(this.proxy(), 'message', someArguments);
deferredResult.addCallback(MochiKit.Base.bind(function(res) {
if (typeof(res['lock']) != 'undefined') {
-// TODO: ?????
-// ?? this.user().setLock(res['lock']);
+ this.setServerLockValue(res['lock']);
}
return res;
}, this));
@@ -587,6 +610,7 @@ Clipperz.PM.Connection.SRP['1.1'].prototype = MochiKit.Base.update(new Clipperz.
Clipperz.PM.Connection.exception = {
WrongChecksum: new MochiKit.Base.NamedError("Clipperz.ByteArray.exception.InvalidValue"),
+ StaleData: new MochiKit.Base.NamedError("Stale data"),
UnexpectedRequest: new MochiKit.Base.NamedError("Clipperz.ByteArray.exception.UnexpectedRequest")
};
diff --git a/frontend/gamma/js/Clipperz/PM/DataModel/User.js b/frontend/gamma/js/Clipperz/PM/DataModel/User.js
index 72d4006..646ce21 100644
--- a/frontend/gamma/js/Clipperz/PM/DataModel/User.js
+++ b/frontend/gamma/js/Clipperz/PM/DataModel/User.js
@@ -44,7 +44,7 @@ Clipperz.PM.DataModel.User = function (args) {
this._connectionVersion = 'current';
this._serverData = null;
- this._serverLockValue = null;
+// this._serverLockValue = null;
this._transientState = null;
this._deferredLocks = {
@@ -93,7 +93,7 @@ Clipperz.Base.extend(Clipperz.PM.DataModel.User, Object, {
},
//-------------------------------------------------------------------------
-
+/*
'serverLockValue': function () {
return this._serverLockValue;
},
@@ -101,7 +101,7 @@ Clipperz.Base.extend(Clipperz.PM.DataModel.User, Object, {
'setServerLockValue': function (aValue) {
this._serverLockValue = aValue;
},
-
+*/
//-------------------------------------------------------------------------
'transientState': function () {
@@ -220,8 +220,8 @@ Clipperz.Base.extend(Clipperz.PM.DataModel.User, Object, {
deferredResult.addMethod(this, 'prepareRemoteDataWithKey');
deferredResult.addCallbackPass(MochiKit.Signal.signal, Clipperz.Signal.NotificationCenter, 'advanceProgress');
deferredResult.addMethod(this.connection(), 'register');
- deferredResult.addCallback(MochiKit.Base.itemgetter('lock'));
- deferredResult.addMethod(this, 'setServerLockValue');
+// deferredResult.addCallback(MochiKit.Base.itemgetter('lock'));
+// deferredResult.addMethod(this, 'setServerLockValue');
deferredResult.addCallbackPass(MochiKit.Signal.signal, Clipperz.Signal.NotificationCenter, 'userSuccessfullyRegistered');
// deferredResult.addErrback (MochiKit.Base.method(this, 'handleRegistrationFailure'));
@@ -247,7 +247,7 @@ Clipperz.Base.extend(Clipperz.PM.DataModel.User, Object, {
MochiKit.Base.method(this.data(), 'setValue', 'passphrase')
], []));
deferredResult.addErrback(MochiKit.Base.method(this, 'getPassphrase'));
- deferredResult.addMethod(this.connection(), 'login');
+ deferredResult.addMethod(this.connection(), 'login', false);
deferredResult.addCallbackPass(MochiKit.Signal.signal, Clipperz.Signal.NotificationCenter, 'userSuccessfullyLoggedIn');
deferredResult.addErrback (MochiKit.Base.method(this, 'handleConnectionFallback'));
@@ -329,7 +329,7 @@ Clipperz.Base.extend(Clipperz.PM.DataModel.User, Object, {
var oneTimePasswords;
//console.log(">>> ***************** user.unpackServerData", someServerData);
- this.setServerLockValue(someServerData['lock']);
+// this.setServerLockValue(someServerData['lock']);
headerVersion = this.headerFormatVersion(someServerData['header']);
@@ -662,8 +662,8 @@ Clipperz.Base.extend(Clipperz.PM.DataModel.User, Object, {
MochiKit.Base.method(this, 'invokeMethodNamedOnRecords', 'commitTransientState'),
MochiKit.Base.method(this, 'transientState'),
- MochiKit.Base.itemgetter('lock'),
- MochiKit.Base.method(this, 'setServerLockValue'),
+// MochiKit.Base.itemgetter('lock'),
+// MochiKit.Base.method(this, 'setServerLockValue'),
MochiKit.Base.method(this, 'resetTransientState', true)
], {trace:false});
},
@@ -740,7 +740,7 @@ Clipperz.Base.extend(Clipperz.PM.DataModel.User, Object, {
return aResult;
}, this), result);
deferredResult.addCallback(Clipperz.Async.setItem, result, 'version', Clipperz.PM.Crypto.encryptingFunctions.currentVersion);
- deferredResult.addCallback(Clipperz.Async.setItem, result, 'lock', this.serverLockValue());
+// deferredResult.addCallback(Clipperz.Async.setItem, result, 'lock', this.serverLockValue());
deferredResult.callback();
return deferredResult;
diff --git a/frontend/gamma/js/Clipperz/PM/PIN.js b/frontend/gamma/js/Clipperz/PM/PIN.js
new file mode 100644
index 0000000..bc932b2
--- a/dev/null
+++ b/frontend/gamma/js/Clipperz/PM/PIN.js
@@ -0,0 +1,134 @@
+/*
+
+Copyright 2008-2011 Clipperz Srl
+
+This file is part of Clipperz Community Edition.
+Clipperz Community Edition is an online password manager.
+For further information about its features and functionalities please
+refer to http://www.clipperz.com.
+
+* Clipperz Community Edition is free software: you can redistribute
+ it and/or modify it under the terms of the GNU Affero General Public
+ License as published by the Free Software Foundation, either version
+ 3 of the License, or (at your option) any later version.
+
+* Clipperz Community Edition is distributed in the hope that it will
+ be useful, but WITHOUT ANY WARRANTY; without even the implied
+ warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ See the GNU Affero General Public License for more details.
+
+* You should have received a copy of the GNU Affero General Public
+ License along with Clipperz Community Edition. If not, see
+ <http://www.gnu.org/licenses/>.
+
+*/
+
+if (typeof(Clipperz) == 'undefined') { Clipperz = {}; }
+if (typeof(Clipperz.PM) == 'undefined') { Clipperz.PM = {}; }
+if (typeof(Clipperz.PM.PIN) == 'undefined') { Clipperz.PM.PIN = {}; }
+
+MochiKit.Base.update(Clipperz.PM.PIN, {
+
+ //-------------------------------------------------------------------------
+
+ '__repr__': function () {
+ return "[" + this.NAME + " " + this.VERSION + "]";
+ },
+
+ //-------------------------------------------------------------------------
+
+ 'toString': function () {
+ return this.__repr__();
+ },
+
+ 'CREDENTIALS': 'CLIPPERZ.CREDENTIALS',
+ 'FAILURE_COUNT': 'CLIPPERZ.FAILED_LOGIN_COUNT',
+ 'ALLOWED_RETRY': 3,
+
+ //-------------------------------------------------------------------------
+
+ 'isSet': function () {
+ return (this.storedCredentials() != null);
+ },
+
+ 'storedCredentials': function () {
+ return localStorage[this.CREDENTIALS];
+ },
+
+ //-------------------------------------------------------------------------
+
+ 'recordFailedAttempt': function () {
+ var failureCount;
+ var result;
+
+ failureCount = localStorage[this.FAILURE_COUNT];
+
+ if (failureCount == null) {
+ failureCount = 0
+ }
+
+ failureCount ++;
+
+ if (failureCount < this.ALLOWED_RETRY) {
+ localStorage[this.FAILURE_COUNT] = failureCount;
+ result = failureCount;
+ } else {
+ this.removeLocalCredentials();
+ result = -1;
+ }
+
+ return result;
+ },
+
+ 'resetFailedAttemptCount': function () {
+ localStorage.removeItem(this.FAILURE_COUNT);
+ },
+
+ 'failureCount': function () {
+ return localStorage[this.FAILURE_COUNT];
+ },
+
+ //-------------------------------------------------------------------------
+
+ 'deriveKeyFromPin': function (aPIN) {
+ return Clipperz.Crypto.SHA.sha256(new Clipperz.ByteArray(aPIN));
+ },
+
+ 'credentialsWithPIN': function (aPIN) {
+ var byteArrayValue;
+ var decryptedValue;
+ var result;
+
+ byteArrayValue = (new Clipperz.ByteArray()).appendBase64String(localStorage[this.CREDENTIALS]);
+ decryptedValue = Clipperz.Crypto.AES.decrypt(this.deriveKeyFromPin(aPIN), byteArrayValue).asString();
+ try {
+ result = Clipperz.Base.evalJSON(decryptedValue);
+ } catch (error) {
+ result = {'username':'fakeusername', 'passphrase':'fakepassphrase'};
+ }
+
+ return result;
+ },
+
+ 'setCredentialsWithPIN': function (aPIN, someCredentials) {
+ var encodedValue;
+ var byteArrayValue;
+ var encryptedValue;
+
+ encodedValue = Clipperz.Base.serializeJSON(someCredentials);
+ byteArrayValue = new Clipperz.ByteArray(encodedValue);
+ encryptedValue = Clipperz.Crypto.AES.encrypt(this.deriveKeyFromPin(aPIN), byteArrayValue).toBase64String();
+
+ localStorage[this.CREDENTIALS] = encryptedValue;
+ },
+
+ 'removeLocalCredentials': function () {
+ localStorage.removeItem(this.CREDENTIALS);
+ localStorage.removeItem(this.FAILURE_COUNT);
+ },
+
+ //-------------------------------------------------------------------------
+ __syntaxFix__: "syntax fix"
+
+});
+
diff --git a/frontend/gamma/js/Clipperz/PM/Proxy/Proxy.OfflineCache.js b/frontend/gamma/js/Clipperz/PM/Proxy/Proxy.OfflineCache.js
new file mode 100644
index 0000000..803c590
--- a/dev/null
+++ b/frontend/gamma/js/Clipperz/PM/Proxy/Proxy.OfflineCache.js
@@ -0,0 +1,65 @@
+/*
+
+Copyright 2008-2011 Clipperz Srl
+
+This file is part of Clipperz Community Edition.
+Clipperz Community Edition is an online password manager.
+For further information about its features and functionalities please
+refer to http://www.clipperz.com.
+
+* Clipperz Community Edition is free software: you can redistribute
+ it and/or modify it under the terms of the GNU Affero General Public
+ License as published by the Free Software Foundation, either version
+ 3 of the License, or (at your option) any later version.
+
+* Clipperz Community Edition is distributed in the hope that it will
+ be useful, but WITHOUT ANY WARRANTY; without even the implied
+ warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ See the GNU Affero General Public License for more details.
+
+* You should have received a copy of the GNU Affero General Public
+ License along with Clipperz Community Edition. If not, see
+ <http://www.gnu.org/licenses/>.
+
+*/
+
+if (typeof(Clipperz) == 'undefined') { Clipperz = {}; }
+if (typeof(Clipperz.PM) == 'undefined') { Clipperz.PM = {}; }
+
+//=============================================================================
+
+Clipperz.PM.Proxy.OfflineCache = function(args) {
+ args = args || {};
+
+ Clipperz.PM.Proxy.Offline.superclass.constructor.call(this, args);
+
+// this._dataStore = args.dataStore || new Clipperz.PM.Proxy.Offline.DataStore(args);
+
+ return this;
+}
+
+Clipperz.Base.extend(Clipperz.PM.Proxy.OfflineCache, Clipperz.PM.Proxy, {
+
+ 'toString': function () {
+ return "Clipperz.PM.Proxy.OfflineCache";
+ },
+
+ //-------------------------------------------------------------------------
+
+// 'dataStore': function () {
+// return this._dataStore;
+// },
+
+ //-------------------------------------------------------------------------
+
+ 'sendMessage': function(aFunctionName, someParameters) {
+ throw Clipperz.Base.exception.MethodNotImplementedYet;
+// return this.dataStore().processMessage(aFunctionName, someParameters);
+ },
+
+ //-------------------------------------------------------------------------
+
+ __syntaxFix__: "syntax fix"
+
+});
+
diff --git a/frontend/gamma/js/Clipperz/PM/UI/Common/Components/BaseComponent.js b/frontend/gamma/js/Clipperz/PM/UI/Common/Components/BaseComponent.js
index 2a03fdf..b9d7adf 100644
--- a/frontend/gamma/js/Clipperz/PM/UI/Common/Components/BaseComponent.js
+++ b/frontend/gamma/js/Clipperz/PM/UI/Common/Components/BaseComponent.js
@@ -406,6 +406,10 @@ Clipperz.Base.extend(Clipperz.PM.UI.Common.Components.BaseComponent, /*Ext.Compo
return result;
},
+ 'getAnchor': function (aValue) {
+ return '#' + this.getId(aValue);
+ },
+
//-------------------------------------------------------------------------
'getElement': function(aValue) {
diff --git a/frontend/gamma/js/Clipperz/PM/UI/Common/Components/Button.js b/frontend/gamma/js/Clipperz/PM/UI/Common/Components/Button.js
index 716d851..1010c9d 100644
--- a/frontend/gamma/js/Clipperz/PM/UI/Common/Components/Button.js
+++ b/frontend/gamma/js/Clipperz/PM/UI/Common/Components/Button.js
@@ -62,7 +62,8 @@ Clipperz.Base.extend(Clipperz.PM.UI.Common.Components.Button, Clipperz.PM.UI.Com
//-------------------------------------------------------------------------
'renderSelf': function () {
- this.append(this.element(), {tag:'div', id:this.getId('wrapper'), cls:'button_wrapper', children:[
+/*
+ this.append(this.element(), {tag:'div', id:this.getId('button'), cls:'button_wrapper', children:[
{tag:'div', id:this.getId('bodyWrapper'), cls:'button_bodyWrapper', children:[
{tag:'div', id:this.getId('body'), cls:'button_body', children:[
{tag:'span', html:this.text()}
@@ -70,36 +71,43 @@ Clipperz.Base.extend(Clipperz.PM.UI.Common.Components.Button, Clipperz.PM.UI.Com
{tag:'div', id:this.getId('footer'), cls:'button_footer'}
]}
]});
+*/
+/*
+ this.append(this.element(), {tag:'div', id:this.getId('button'), cls:'button', children:[
+ {tag:'span', html:this.text()}
+ ]});
+*/
+ this.append(this.element(), {tag:'a', id:this.getId('button'), cls:'button', html:this.text()});
if (this.isDefault()) {
- MochiKit.DOM.addElementClass(this.getId('wrapper'), 'default');
+ MochiKit.DOM.addElementClass(this.getId('button'), 'default');
}
- MochiKit.Signal.connect(this.getId('wrapper'), 'onmouseenter', this, 'handleOnMouseEnter');
- MochiKit.Signal.connect(this.getId('wrapper'), 'onmouseleave', this, 'handleOnMouseLeave');
- MochiKit.Signal.connect(this.getId('wrapper'), 'onmousedown', this, 'handleOnMouseDown');
- MochiKit.Signal.connect(this.getId('wrapper'), 'onclick', this, 'handleOnClick');
+// MochiKit.Signal.connect(this.getId('button'), 'onmouseenter', this, 'handleOnMouseEnter');
+// MochiKit.Signal.connect(this.getId('button'), 'onmouseleave', this, 'handleOnMouseLeave');
+// MochiKit.Signal.connect(this.getId('button'), 'onmousedown', this, 'handleOnMouseDown');
+ MochiKit.Signal.connect(this.getId('button'), 'onclick', this, 'handleOnClick');
},
//-------------------------------------------------------------------------
-
+/*
'handleOnMouseEnter': function (anEvent) {
- MochiKit.DOM.addElementClass(this.getId('wrapper'), 'hover');
+ MochiKit.DOM.addElementClass(this.getId('button'), 'hover');
},
'handleOnMouseLeave': function (anEvent) {
- MochiKit.DOM.removeElementClass(this.getId('wrapper'), 'hover');
- MochiKit.DOM.removeElementClass(this.getId('wrapper'), 'clicked');
+ MochiKit.DOM.removeElementClass(this.getId('button'), 'hover');
+ MochiKit.DOM.removeElementClass(this.getId('button'), 'clicked');
},
'handleOnMouseDown': function (anEvent) {
- MochiKit.DOM.addElementClass(this.getId('wrapper'), 'clicked');
+ MochiKit.DOM.addElementClass(this.getId('button'), 'clicked');
},
-
+*/
'handleOnClick': function (anEvent) {
MochiKit.Signal.signal(this, 'onclick', anEvent);
},
-
+
//-------------------------------------------------------------------------
__syntaxFix__: "syntax fix"
});
diff --git a/frontend/gamma/js/Clipperz/PM/UI/Common/Components/SimpleMessagePanel.js b/frontend/gamma/js/Clipperz/PM/UI/Common/Components/SimpleMessagePanel.js
index 1992154..1d816a9 100644
--- a/frontend/gamma/js/Clipperz/PM/UI/Common/Components/SimpleMessagePanel.js
+++ b/frontend/gamma/js/Clipperz/PM/UI/Common/Components/SimpleMessagePanel.js
@@ -98,14 +98,29 @@ Clipperz.Base.extend(Clipperz.PM.UI.Common.Components.SimpleMessagePanel, Clippe
},
'setType': function (aValue) {
- if (this.getElement('icon') != null) {
- MochiKit.DOM.removeElementClass(this.getId('icon'), this._type);
- MochiKit.DOM.addElementClass(this.getId('icon'), aValue);
- }
+// if (this.getElement('icon') != null) {
+// MochiKit.DOM.removeElementClass(this.getId('icon'), this._type);
+// MochiKit.DOM.addElementClass(this.getId('icon'), aValue);
+// }
this._type = aValue;
},
+ 'icon': function () {
+ var type = this.type();
+ var result;
+
+ if (type == 'ALERT') {
+ result = '!';
+ } else if (type == 'INFO') {
+ result = 'i';
+ } else if (type == 'ERROR') {
+ result = '!';
+ }
+
+ return result;
+ },
+
//-------------------------------------------------------------------------
'buttons': function () {
@@ -132,17 +147,20 @@ Clipperz.Base.extend(Clipperz.PM.UI.Common.Components.SimpleMessagePanel, Clippe
'renderSelf': function() {
this.append(this.element(), {tag:'div', cls:'SimpleMessagePanel', id:this.getId('panel'), children: [
- {tag:'div', cls:'header', children:[]},
+// {tag:'div', cls:'header', children:[]},
{tag:'div', cls:'body', children:[
- {tag:'div', id:this.getId('icon'), cls:'img ' + this.type(), children:[{tag:'div'}]},
+// {tag:'div', id:this.getId('icon'), cls:'img ' + this.type(), children:[{tag:'div'}]},
+ {tag:'div', /*id:this.getId('icon'),*/ cls:'img ' + this.type(), children:[{tag:'canvas', id:this.getId('icon')}]},
{tag:'h3', id:this.getId('title'), html:this.title()},
{tag:'p', id:this.getId('text'), html:this.text()},
{tag:'div', id:this.getId('container')},
{tag:'div', id:this.getId('buttonArea'), cls:'buttonArea', children:[]}
- ]},
- {tag:'div', cls:'footer', children:[]}
+ ]}
+// {tag:'div', cls:'footer', children:[]}
]});
+ Clipperz.PM.UI.Canvas.marks[this.icon()](this.getElement('icon'), "#ffffff");
+
MochiKit.Signal.connect(this.getId('panel'), 'onkeydown', this, 'keyDownHandler');
this.renderButtons();
diff --git a/frontend/gamma/js/Clipperz/PM/UI/Mobile/Components/CardDetail.js b/frontend/gamma/js/Clipperz/PM/UI/Mobile/Components/CardDetail.js
new file mode 100644
index 0000000..32dfa63
--- a/dev/null
+++ b/frontend/gamma/js/Clipperz/PM/UI/Mobile/Components/CardDetail.js
@@ -0,0 +1,299 @@
+/*
+
+Copyright 2008-2011 Clipperz Srl
+
+This file is part of Clipperz Community Edition.
+Clipperz Community Edition is an online password manager.
+For further information about its features and functionalities please
+refer to http://www.clipperz.com.
+
+* Clipperz Community Edition is free software: you can redistribute
+ it and/or modify it under the terms of the GNU Affero General Public
+ License as published by the Free Software Foundation, either version
+ 3 of the License, or (at your option) any later version.
+
+* Clipperz Community Edition is distributed in the hope that it will
+ be useful, but WITHOUT ANY WARRANTY; without even the implied
+ warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ See the GNU Affero General Public License for more details.
+
+* You should have received a copy of the GNU Affero General Public
+ License along with Clipperz Community Edition. If not, see
+ <http://www.gnu.org/licenses/>.
+
+*/
+
+Clipperz.Base.module('Clipperz.PM.UI.Mobile.Components');
+
+Clipperz.PM.UI.Mobile.Components.CardDetail = function(args) {
+ args = args || {};
+
+ Clipperz.PM.UI.Mobile.Components.CardDetail.superclass.constructor.apply(this, arguments);
+
+// this._cardReference = null;
+
+ return this;
+}
+
+//=============================================================================
+
+Clipperz.Base.extend(Clipperz.PM.UI.Mobile.Components.CardDetail, Clipperz.PM.UI.Common.Components.BaseComponent, {
+
+ //-------------------------------------------------------------------------
+
+ 'toString': function () {
+ return "Clipperz.PM.UI.Mobile.Components.CardDetail component";
+ },
+
+ //-------------------------------------------------------------------------
+/*
+ 'cardReference': function () {
+ return this._cardReference;
+ },
+
+ 'setCardReference': function (aValue) {
+ this._cardReference = aValue;
+ },
+*/
+ //-------------------------------------------------------------------------
+
+ 'renderSelf': function () {
+console.log("CardDetail.renderSelf");
+ this.append(this.element(), {tag:'div', cls:'cardDetail', children:[
+ {tag:'div', cls:'toolbar', children:[
+ {tag:'a', href:'#', cls:'back', html:"List"},
+ {tag:'h1', id:this.getId('cardTitle'), html:"…"}
+ ]},
+ {tag:'div', cls:'scroll', id:this.getId('cardDetails'), children:[
+ ]}
+ ]});
+ },
+/*
+ 'renderSelf': function() {
+ this.append(this.element(), [
+ {tag:'div', cls:'cardDetail', id:this.getId('cardDetail'), children:[
+ {tag:'div', id:this.getId('progressBar')} //,
+ ]}
+ ]);
+
+ this.addComponent(new Clipperz.PM.UI.Common.Components.ProgressBar({'element':this.getElement('progressBar')}));
+ MochiKit.Signal.signal(Clipperz.PM.UI.Common.Controllers.ProgressBarController.defaultController, 'updateProgress', 0);
+ },
+*/
+
+ 'setTitle': function (aValue) {
+ this.getElement('cardTitle').innerHTML = aValue;
+ },
+
+ 'fieldListElement': function () {
+ var result;
+
+ result = this.getElement('fieldList');
+ if (result == null) {
+ result = this.append(this.getElement('cardDetails'), {tag:'ul', cls:'rounded', id:this.getId('fieldList')});
+ }
+
+ return result;
+ },
+
+ 'renderFieldValues': function (someFieldValues) {
+ var fieldClass;
+
+ if ((someFieldValues['actionType'] != 'NONE') || (someFieldValues['label'] != '') && (someFieldValues['value'] != '')) {
+ if (someFieldValues['isHidden'] == true) {
+ fieldClass = 'password';
+ } else {
+ fieldClass = '';
+ }
+
+ this.append(this.fieldListElement(), {tag:'li', cls:'cardField', children:[
+ {tag:'a', href:'#', cls:fieldClass, html:someFieldValues['value'], children:[
+ {tag:'small', cls:'label', html:someFieldValues['label']}
+ ]}
+ ]})
+ }
+ },
+
+ 'addField': function (aField) {
+ var deferredResult;
+ var fieldValues;
+
+ fieldValues = {};
+ deferredResult = new Clipperz.Async.Deferred("CardDetail.addField", {trace:false});
+ deferredResult.addMethod(aField, 'label');
+ deferredResult.addCallback(function (aValue) { fieldValues['label'] = aValue; });
+ deferredResult.addMethod(aField, 'value');
+ deferredResult.addCallback(function (aValue) { fieldValues['value'] = aValue; });
+ deferredResult.addMethod(aField, 'actionType');
+ deferredResult.addCallback(function (aValue) { fieldValues['actionType'] = aValue; });
+ deferredResult.addMethod(aField, 'isHidden');
+ deferredResult.addCallback(function (aValue) { fieldValues['isHidden'] = aValue; });
+ deferredResult.addMethod(this, 'renderFieldValues', fieldValues);
+ deferredResult.callback();
+
+ return deferredResult;
+ },
+
+ //-------------------------------------------------------------------------
+
+ 'directLoginElement': function () {
+ var result;
+
+ result = this.getElement('directLoginList');
+ if (result == null) {
+ this.append(this.getElement('cardDetails'), {tag:'h2', html:"Direct login"});
+ result = this.append(this.getElement('cardDetails'), {tag:'ul', cls:'rounded', id:this.getId('directLoginList')});
+ }
+
+ return result;
+ },
+
+ 'addDirectLogin': function (aDirectLogin) {
+ this.append(this.directLoginElement(), {tag:'li', cls:'directLogin forward', children:[
+ {tag:'a', href:'#', html:"direct login", children:[
+ {tag:'small', cls:'favicon', children:[{tag:'img', cls:'favicon', src:'http://www.clipperz.com/favicon.ico'}]}
+ ]}
+ ]})
+
+console.log("ADD DIRECT LOGIN", aDirectLogin);
+ },
+
+ //=========================================================================
+
+ 'showCard': function (aCard) {
+ var deferredResult;
+
+// this.render();
+
+console.log("CardDetail.showCard", aCard);
+ deferredResult = new Clipperz.Async.Deferred("CardDetail.showCard", {trace:false});
+ deferredResult.addMethod(aCard, 'label');
+ deferredResult.addMethod(this, 'setTitle');
+
+ deferredResult.addMethod(aCard, 'fields');
+ deferredResult.addCallback(MochiKit.Base.values);
+ deferredResult.addCallback(MochiKit.Base.map, MochiKit.Base.method(this, 'addField'));
+
+ deferredResult.addMethod(aCard, 'directLogins');
+ deferredResult.addCallback(MochiKit.Base.values);
+ deferredResult.addCallback(MochiKit.Base.map, MochiKit.Base.method(this, 'addDirectLogin'));
+
+
+ deferredResult.callback();
+
+ return deferredResult;
+// return Clipperz.Async.callbacks("CardDialogController.updateComponentState", [
+// MochiKit.Base.method(this.record(), 'hasPendingChanges'),
+// MochiKit.Base.method(this.cardDialogComponent(), 'setShouldEnableSaving'),
+//
+// MochiKit.Base.method(this.record(), 'label'),
+// MochiKit.Base.method(this.cardDialogComponent(), 'setTitle'),
+// MochiKit.Base.method(this.record(), 'notes'),
+// MochiKit.Base.method(this.cardDialogComponent(), 'setNotes'),
+//
+// MochiKit.Base.method(this.record(), 'fields'),
+// MochiKit.Base.values,
+// MochiKit.Base.partial(MochiKit.Base.map, MochiKit.Base.method(this, 'addCardDialogComponentWithField')),
+//
+// MochiKit.Base.method(this.record(), 'directLogins'),
+// MochiKit.Base.values,
+// MochiKit.Base.partial(MochiKit.Base.map, MochiKit.Base.method(this, 'addCardDialogComponentWithDirectLogin')),
+//
+// MochiKit.Base.method(this.cardDialogComponent(), 'resetNewFieldInputs'),
+// MochiKit.Base.noop
+// ], {trace:false});
+
+ },
+
+ //=========================================================================
+
+ 'showCardDetails': function (someData) {
+ this.element().innerHTML = '';
+ this.append(this.element(), [
+ {tag:'fieldset', id:this.getId('fields'), children:MochiKit.Base.map(function (aFieldData) {
+ return {tag:'div', cls:'row', children:[
+ {tag:'label', html:aFieldData['label']},
+// {tag:'span', cls:('fieldValue ' + (aFieldData['isHidden'] ? 'password' : 'text')), html:aFieldData['value']}
+ {tag:'div', cls:('fieldValue ' + (aFieldData['isHidden'] ? 'password' : 'text')), children:[
+ {tag:'div', children:[{tag:'p', html:aFieldData['value']}]}
+ ]}
+// {tag:'input', type:'text', cls:('fieldValue ' + (aFieldData['isHidden'] ? 'password' : 'text')), value:aFieldData['value'], disabled:true}
+
+ ]}
+ }, someData['fields'])}
+ ]);
+
+ MochiKit.Iter.forEach(MochiKit.Selector.findChildElements(this.element(), ['span.password']), MochiKit.Base.bind(function (aPasswordElement) {
+ MochiKit.Signal.connect(aPasswordElement, 'onclick', function (anEvent) { alert(MochiKit.DOM.scrapeText(anEvent.src())); })
+ }, this));
+
+ if (someData['directLogins'].length > 0) {
+ this.append(this.element(), [
+ {tag:'h2', html:"Direct logins"},
+ {tag:'fieldset', id:this.getId('directLogins'), children:MochiKit.Base.map(function (aDirectLoginData) {
+ return {tag:'div', cls:'row', id:('directLogin_' + aDirectLoginData['_reference']), children:[
+ {tag:'img', cls:'favicon', src:aDirectLoginData['favicon']},
+// {tag:'input', cls:'directLogin', disabled:'disabled', type:'text', name:aDirectLoginData['label'], value:aDirectLoginData['label']}
+ {tag:'span', cls:'directLogin', html:aDirectLoginData['label']}
+ ]}
+ }, someData['directLogins'])}
+ ]);
+
+ MochiKit.Base.map(MochiKit.Base.bind(function (aRowNode) {
+ MochiKit.Signal.connect(aRowNode, 'onclick', this, 'directLoginClickHandler');
+ }, this),
+ MochiKit.Selector.findChildElements(this.getElement('directLogins'), ['div.row'])
+ )
+ };
+
+ if (someData['notes'] != '') {
+ this.append(this.element(), [
+ {tag:'h2', html:"Notes"},
+ {tag:'fieldset', id:this.getId('fieldset'), children:[
+ {tag:'div', cls:'row notes', children:[
+ {tag:'span', html:someData['notes']}
+ ]}
+ ]}
+ ]);
+ };
+
+ return true;
+ },
+
+ //-------------------------------------------------------------------------
+/*
+ 'toggleClickHandler': function (anEvent) {
+ var nextState;
+ var fieldValue;
+
+//console.log("TOGGLE");
+ anEvent.preventDefault;
+ fieldValue = MochiKit.Selector.findChildElements(anEvent.src().parentNode.parentNode, ['span.password'])[0];
+
+ nextState = (MochiKit.DOM.getNodeAttribute(anEvent.src(), 'toggled') != 'true');
+ if (nextState) {
+ MochiKit.DOM.removeElementClass(fieldValue, 'clear');
+ } else {
+ MochiKit.DOM.addElementClass(fieldValue, 'clear');
+ }
+
+ MochiKit.DOM.setNodeAttribute(anEvent.src(), 'toggled', nextState);
+ },
+* /
+ //=========================================================================
+/*
+ 'directLoginClickHandler': function (anEvent) {
+ anEvent.preventDefault();
+
+ if (/(directLogin_)/.test(anEvent.src().id)) {
+ var directLoginReference;
+
+ directLoginReference = anEvent.src().id.match(/(directLogin_)(.*)/)[2];
+ MochiKit.Signal.signal(Clipperz.Signal.NotificationCenter, 'selectedDirectLogin', {cardReference:this.cardReference(), directLoginReference:directLoginReference});
+ }
+ },
+*/
+ //=========================================================================
+
+ __syntaxFix__: "syntax fix"
+});
diff --git a/frontend/gamma/js/Clipperz/PM/UI/iPhone/Components/CardList.js b/frontend/gamma/js/Clipperz/PM/UI/Mobile/Components/CardList.js
index c3f2701..a4aa212 100644
--- a/frontend/gamma/js/Clipperz/PM/UI/iPhone/Components/CardList.js
+++ b/frontend/gamma/js/Clipperz/PM/UI/Mobile/Components/CardList.js
@@ -23,12 +23,12 @@ refer to http://www.clipperz.com.
*/
-Clipperz.Base.module('Clipperz.PM.UI.iPhone.Components');
+Clipperz.Base.module('Clipperz.PM.UI.Mobile.Components');
-Clipperz.PM.UI.iPhone.Components.CardList = function(args) {
+Clipperz.PM.UI.Mobile.Components.CardList = function(args) {
args = args || {};
- Clipperz.PM.UI.iPhone.Components.CardList.superclass.constructor.apply(this, arguments);
+ Clipperz.PM.UI.Mobile.Components.CardList.superclass.constructor.apply(this, arguments);
this._cardDetail = null;
@@ -37,44 +37,97 @@ Clipperz.PM.UI.iPhone.Components.CardList = function(args) {
//=============================================================================
-Clipperz.Base.extend(Clipperz.PM.UI.iPhone.Components.CardList, Clipperz.PM.UI.Common.Components.BaseComponent, {
+Clipperz.Base.extend(Clipperz.PM.UI.Mobile.Components.CardList, Clipperz.PM.UI.Common.Components.BaseComponent, {
//-------------------------------------------------------------------------
'toString': function () {
- return "Clipperz.PM.UI.iPhone.Components.CardList component";
+ return "Clipperz.PM.UI.Mobile.Components.CardList component";
},
//-------------------------------------------------------------------------
- 'renderSelf': function(/*aContainer, aPosition*/) {
- this.append(this.element(), [
- {tag:'div', cls:'toolbar', id:'toolbar', children:[
- {tag:'h1', id:'pageTitle', html:"cards"},
- {tag:'a', id:'backButton', cls:'button', href:'#', html:"cards"}
+ 'renderSelf': function () {
+ this.append(this.element(), {tag:'div', cls:'cardList', children:[
+ {tag:'div', cls:'toolbar', children:[
+ {tag:'h1', html:"clipperz"},
+// {tag:'input', name:'search', type:'search', autocomplete:'off', placeholder:"search", id:this.getId('search')},
+ {tag:'a', href:'#', id:'settings', cls:'button', html:"*"}
]},
- {tag:'div', cls:'cardList', id:this.getId('cardList'), children:[
- {tag:'form', title:'search', cls:'panel cardListSearchForm', id:this.getId('cardListSearchForm'), children:[
- {tag:'input', type:'search', name:'search', value:"", placeholder:"search", id:this.getId('searchField')}
- ]},
- {tag:'ul', cls:'panel cardListPanel', id:this.getId('cardListPanel'), children:[]}
- ]},
- {tag:'div', cls:'panel cardDetailPanel', id:this.getId('cardDetail')}
- ]);
-
- MochiKit.Signal.connect(this.getElement('cardListSearchForm'), 'onsubmit', this, 'searchHandler');
- MochiKit.Signal.connect(this.getElement('cardListSearchForm'), 'onkeydown', this, 'searchHandler');
- MochiKit.Signal.connect(this.getElement('cardListSearchForm'), 'onkeyup', this, 'searchHandler');
+ {tag:'div', cls:'scroll', id:this.getId('listBox'), children:[
+ {tag:'ul', cls:'rounded', id:this.getId('list'), children:[
+ {tag:'li', html:'loading'}
+ ]}
+ ]}
+ ]});
+
+ MochiKit.Signal.connect(this.getElement('list'), 'onclick', this, 'cardSelectionHandler');
+ MochiKit.Signal.connect(this.getElement('list'), 'ontouchstart', this, 'cardSelectionHandler');
+// MochiKit.Signal.connect(this.getElement('cardListSearchForm'), 'onsubmit', this, 'searchHandler');
+// MochiKit.Signal.connect(this.getElement('cardListSearchForm'), 'onkeydown', this, 'searchHandler');
+// MochiKit.Signal.connect(this.getElement('cardListSearchForm'), 'onkeyup', this, 'searchHandler');
- MochiKit.Signal.connect(this.getElement('cardListPanel'), 'onclick', this, 'cardListClickHandler');
- MochiKit.Signal.connect('backButton', 'onclick', this, 'backButtonClickHandler');
+// MochiKit.Signal.connect(this.getElement('cardListPanel'), 'onclick', this, 'cardListClickHandler');
+// MochiKit.Signal.connect('backButton', 'onclick', this, 'backButtonClickHandler');
- MochiKit.Style.hideElement('backButton');
- MochiKit.Style.hideElement(this.getElement('cardDetail'));
+// MochiKit.Style.hideElement('backButton');
+// MochiKit.Style.hideElement(this.getElement('cardDetail'));
},
- //-------------------------------------------------------------------------
+ 'showCards': function (someCards) {
+ var cardListElement;
+ if (this.isFullyRendered() == false) {
+ this.render();
+ };
+
+ cardListElement = this.getElement('list')
+
+ cardInfo = {
+ '_rowObject': MochiKit.Async.succeed,
+ '_reference': MochiKit.Base.methodcaller('reference'),
+ '_searchableContent': MochiKit.Base.methodcaller('searchableContent'),
+ 'label': MochiKit.Base.methodcaller('label'),
+ 'favicon': MochiKit.Base.methodcaller('favicon')
+ };
+
+//console.log("someCards", someCards);
+ deferredResult = new Clipperz.Async.Deferred("CardList.showCards", {trace:false});
+ deferredResult.addCallback(MochiKit.Base.map, Clipperz.Async.collectResults("CardList.value - collectResults", cardInfo, {trace:false}));
+ deferredResult.addCallback(Clipperz.Async.collectAll);
+ deferredResult.addCallback(MochiKit.Base.methodcaller('sort', Clipperz.Base.caseInsensitiveKeyComparator('label')));
+ deferredResult.addCallbackPass(MochiKit.DOM.replaceChildNodes, cardListElement);
+// deferredResult.addCallbackPass(MochiKit.DOM.removeElementClass, cardListElement, 'loading');
+ deferredResult.addCallback(MochiKit.Base.map, MochiKit.Base.method(this, 'appendCardToList', cardListElement));
+ deferredResult.callback(someCards);
+ },
+
+ 'appendCardToList': function (aCardListElement, aCardInfo) {
+//console.log("appendCardToList", aCardInfo);
+ this.append(aCardListElement, {tag:'li', cls:'cardListItem arrow', cardreference:aCardInfo['_reference'], children:[
+ {tag:'a', href:'#', html:aCardInfo['label'], children:[
+ {tag:'small', cls:'favicon', children:[{tag:'img', cls:'favicon', src:aCardInfo['favicon']}]}
+ ]}
+ ]});
+ },
+
+ 'cardSelectionHandler': function (anEvent) {
+ var listElement;
+ var cardReference;
+
+ anEvent.preventDefault();
+
+ listElement = anEvent.target();
+ if (MochiKit.DOM.getNodeAttribute(listElement, 'cardreference') == null) {
+ listElement = MochiKit.DOM.getFirstParentByTagAndClassName(anEvent.target(), tagName='li', className='cardListItem');
+ }
+ cardReference = MochiKit.DOM.getNodeAttribute(listElement, 'cardreference');
+console.log("###", listElement, cardReference);
+ // TODO: Notify card with reference MochiKit.DOM.getNodeAttribute(listElement, 'cardreference') has been selected
+ MochiKit.Signal.signal(this, 'selectedCard', cardReference);
+ },
+ //-------------------------------------------------------------------------
+/*
'searchHandler': function (anEvent) {
if ((typeof(anEvent.key()) != 'undefined') && (anEvent.key().string == 'KEY_ENTER')) { // RETURN
anEvent.preventDefault();
@@ -127,7 +180,7 @@ Clipperz.Base.extend(Clipperz.PM.UI.iPhone.Components.CardList, Clipperz.PM.UI.C
'cardDetail': function (someData) {
if (this._cardDetail == null) {
- this._cardDetail = new Clipperz.PM.UI.iPhone.Components.CardDetail({element:this.getElement('cardDetail')});
+ this._cardDetail = new Clipperz.PM.UI.Mobile.Components.CardDetail({element:this.getElement('cardDetail')});
}
return this._cardDetail;
@@ -195,7 +248,7 @@ Clipperz.Base.extend(Clipperz.PM.UI.iPhone.Components.CardList, Clipperz.PM.UI.C
], {duration:1, afterFinish:MochiKit.Base.method(this, 'removeCardDetail')})
},
-
+*/
//=========================================================================
__syntaxFix__: "syntax fix"
});
diff --git a/frontend/gamma/js/Clipperz/PM/UI/Mobile/Components/LoginForm.js b/frontend/gamma/js/Clipperz/PM/UI/Mobile/Components/LoginForm.js
new file mode 100644
index 0000000..eafcdbc
--- a/dev/null
+++ b/frontend/gamma/js/Clipperz/PM/UI/Mobile/Components/LoginForm.js
@@ -0,0 +1,356 @@
+/*
+
+Copyright 2008-2011 Clipperz Srl
+
+This file is part of Clipperz Community Edition.
+Clipperz Community Edition is an online password manager.
+For further information about its features and functionalities please
+refer to http://www.clipperz.com.
+
+* Clipperz Community Edition is free software: you can redistribute
+ it and/or modify it under the terms of the GNU Affero General Public
+ License as published by the Free Software Foundation, either version
+ 3 of the License, or (at your option) any later version.
+
+* Clipperz Community Edition is distributed in the hope that it will
+ be useful, but WITHOUT ANY WARRANTY; without even the implied
+ warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ See the GNU Affero General Public License for more details.
+
+* You should have received a copy of the GNU Affero General Public
+ License along with Clipperz Community Edition. If not, see
+ <http://www.gnu.org/licenses/>.
+
+*/
+
+Clipperz.Base.module('Clipperz.PM.UI.Mobile.Components');
+
+Clipperz.PM.UI.Mobile.Components.LoginForm = function(args) {
+ args = args || {};
+
+ this._pin = '';
+
+ this._message = null;
+ this._steps = 0;
+ this._actualSteps = 0;
+
+ this._callback = null;
+ this._errorCallback = null;
+
+ this._mode = 'CREDENTIALS';
+
+ Clipperz.PM.UI.Mobile.Components.LoginForm.superclass.constructor.apply(this, arguments);
+
+ return this;
+}
+
+//=============================================================================
+
+Clipperz.Base.extend(Clipperz.PM.UI.Mobile.Components.LoginForm, Clipperz.PM.UI.Common.Components.BaseComponent, {
+
+ //-------------------------------------------------------------------------
+
+ 'toString': function () {
+ return "Clipperz.PM.UI.Mobile.Components.LoginForm component";
+ },
+
+ //-------------------------------------------------------------------------
+
+ 'callback': function () {
+ return this._callback;
+ },
+
+ 'errorCallback': function () {
+ return this._errorCallback;
+ },
+
+ //-------------------------------------------------------------------------
+
+ 'mode': function () {
+ return this._mode;
+ },
+
+ 'setMode': function (aValue) {
+ this._mode = aValue;
+ },
+
+ //..........................................................................
+
+ 'pin': function () {
+ return this._pin;
+ },
+
+ 'setPin': function (aValue) {
+ this._pin = aValue;
+ },
+
+ //..........................................................................
+
+ 'username': function () {
+ return this._username;
+ },
+
+ 'setUsername': function (aValue) {
+ this._username = aValue;
+ },
+
+ //..........................................................................
+
+ 'passphrase': function () {
+ return this._passphrase;
+ },
+
+ 'setPassphrase': function (aValue) {
+ this._passphrase = aValue;
+ },
+
+ //-------------------------------------------------------------------------
+
+ 'message': function () {
+ return this._message;
+ },
+
+ '_setMessage': function (aValue) {
+ this._message = aValue;
+
+ if (aValue == null) {
+ MochiKit.Style.hideElement(this.getElement('credentialsMessage'));
+ } else {
+ this.getElement('message').innerHTML = aValue;
+ MochiKit.Style.showElement(this.getElement('credentialsMessage'));
+ }
+ },
+
+ 'setMessage': function (aValue) {
+ this._setMessage(aValue);
+ MochiKit.DOM.removeElementClass(this.getElement('credentialsMessage'), 'error');
+ },
+
+ 'setErrorMessage': function (aValue) {
+ this._setMessage(aValue);
+ MochiKit.DOM.addElementClass(this.getElement('credentialsMessage'), 'error');
+ },
+
+ //-------------------------------------------------------------------------
+
+ 'setCallbacks': function (args) {
+ this._callback = args['callback'];
+ this._errorCallback = args['errorCallback'];
+ },
+
+ 'showErrors': function (args) {
+//console.log("LoginForm.showErrors", args);
+ if (args['previousFailedAttempt'] == 'LOGIN') {
+ this.setErrorMessage("Wrong credentials");
+ } else if (args['previousFailedAttempt'] == 'PIN') {
+ if (args['failedAttempts'] == -1) {
+ this.setErrorMessage("Wrong PIN - Resetted");
+ } else {
+ this.setErrorMessage("Wrong PIN");
+ }
+ } else {
+ this.setMessage(null);
+ }
+ },
+
+ 'updateWithArgs': function (args) {
+ this.renderIfNeeded();
+ this.setCallbacks(args);
+ this.showErrors(args);
+ this.updateRendering();
+ },
+
+ 'showPinLogin': function (args) {
+ this.setPin('');
+ this.setMode('PIN');
+ this.updateWithArgs(args);
+
+// $(this.getAnchor('PIN')).focus();
+ this.getElement('PIN').focus();
+ },
+
+ 'showCredentialsLogin': function (args) {
+ this.setMode('CREDENTIALS');
+ this.updateWithArgs(args);
+
+ if (this.getElement('usernameField').value.length == 0) {
+// $(this.getAnchor('usernameField')).focus();
+ this.getElement('usernameField').focus();
+ } else {
+// $(this.getAnchor('passphraseField')).focus();
+ this.getElement('passphraseField').focus();
+ this.getElement('passphraseField').select();
+ }
+ },
+
+ //-------------------------------------------------------------------------
+
+ 'renderIfNeeded': function () {
+ if (this.isFullyRendered() == false) {
+ this.render();
+ };
+ this.updateRendering();
+ },
+
+ 'updateRendering': function () {
+ MochiKit.Style.showElement(this.getElement('credentialsBody'));
+ MochiKit.Style.hideElement(this.getElement('validating'));
+
+// this.hideAllPanes();
+ MochiKit.Base.map(function (aNode) { MochiKit.Style.hideElement(aNode); }, MochiKit.Selector.findDocElements('div.credentialsBody > div'));
+ if (this.mode() == 'CREDENTIALS') {
+ selectedPanel = this.getElement('credentials')
+ } else if (this.mode() == 'PIN') {
+ selectedPanel = this.getElement('pin')
+// this.updatePinDisplay();
+ } else {
+ throw 'Unhandled login form mode';
+ }
+ MochiKit.Style.showElement(selectedPanel);
+
+ MochiKit.Style.hideElement(this.getElement('validating'));
+ },
+
+ 'renderSelf': function() {
+ var selectedPanel;
+ this.append(this.element(), {tag:'div', id:'login', children:[
+ {tag:'div', cls:'toolbar', children:[
+ {tag:'h1', html:"clipperz"}
+ ]},
+ {tag:'div', cls:'scroll', children:[
+ //==================================================================
+ {tag:'div', cls:'credentialsMessage', id:this.getId('credentialsMessage'), children:[
+ {tag:'h1', cls:'message', id:this.getId('message'), html:"Message"}
+ ]},
+ //==================================================================
+ {tag:'div', cls:'credentialsBody', id:this.getId('credentialsBody'), children:[
+ //--------------------------------------------------------------
+ {tag:'div', cls:'pin', id:this.getId('pin'), children:[
+ {tag:'form', cls:'scroll', id:this.getId('pinForm'), children:[
+ {tag:'ul', cls:'edit rounded', children:[
+ {tag:'li', children:[{tag:'input', type:'number', name:'PIN', placeholder:"PIN", id:this.getId('PIN') }]},
+ ]},
+ {tag:'a', href:'#', cls:'greenButton', id:this.getId('pinSubmitButton'), html:"Login"}
+ ]}
+ ]},
+ //--------------------------------------------------------------
+ {tag:'div', cls:'credentials', id:this.getId('credentials'), children:[
+ {tag:'form', cls:'scroll', id:this.getId('credentialsForm'), children:[
+ {tag:'ul', cls:'edit rounded', children:[
+ {tag:'li', children:[{tag:'input', type:'email', name:'name', /*value:'joe',*/ placeholder:"username", id:this.getId('usernameField') }]},
+ {tag:'li', children:[{tag:'input', type:'password', name:'passphrase', /*value:'clipperz',*/ placeholder:"passphrase", id:this.getId('passphraseField') }]}
+ ]},
+ {tag:'a', href:'#', cls:'greenButton', id:this.getId('credentialsSubmitButton'), html:"Login"}
+// {tag:'input', type:'submit', cls:'greenButton', id:this.getId('credentialsSubmitButton'), value:"Login"}
+
+ ]}
+ ]},
+ //--------------------------------------------------------------
+ ]},
+ //==================================================================
+ {tag:'div', cls:'validating', id:this.getId('validating'), children:[
+ {tag:'div', cls:'loading', children:[
+ {tag:'div', cls:'spinner', children:[
+ {tag:'div', cls:'bar01'},
+ {tag:'div', cls:'bar02'},
+ {tag:'div', cls:'bar03'},
+ {tag:'div', cls:'bar04'},
+ {tag:'div', cls:'bar05'},
+ {tag:'div', cls:'bar06'},
+ {tag:'div', cls:'bar07'},
+ {tag:'div', cls:'bar08'},
+ {tag:'div', cls:'bar09'},
+ {tag:'div', cls:'bar10'},
+ {tag:'div', cls:'bar11'},
+ {tag:'div', cls:'bar12'}
+ ]}
+ ]},
+ {tag:'div', id:this.getId('loadingMessage')},
+ {tag:'a', href:'#', cls:'grayButton', id:this.getId('loginCancelButton'), html:"Cancel"}
+ ]}
+ //==================================================================
+ ]}
+ ]});
+
+ MochiKit.Signal.connect(this.getElement('credentialsForm'), 'onsubmit', this, 'submitCredentialsHandler');
+ MochiKit.Signal.connect(this.getElement('credentialsSubmitButton'), 'onclick', this, 'submitCredentialsHandler');
+
+ MochiKit.Signal.connect(this.getElement('pinForm'), 'onsubmit', this, 'submitPinHandler');
+ MochiKit.Signal.connect(this.getElement('pinSubmitButton'), 'onclick', this, 'submitPinHandler');
+
+ MochiKit.Signal.connect(Clipperz.Signal.NotificationCenter, 'initProgress', this, 'initProgressHandle');
+ MochiKit.Signal.connect(Clipperz.Signal.NotificationCenter, 'updateProgress', this, 'updateProgressHandle');
+ MochiKit.Signal.connect(Clipperz.Signal.NotificationCenter, 'advanceProgress', this, 'advanceProgressHandle');
+ MochiKit.Signal.connect(Clipperz.Signal.NotificationCenter, 'progressDone', this, 'progressDoneHandle');
+ },
+
+ //-------------------------------------------------------------------------
+
+ 'submitPinHandler': function (anEvent) {
+ var pin;
+
+ this.setMessage(null);
+ pin = this.getElement('PIN').value;
+// $(this.getAnchor('PIN')).blur();
+ this.getElement('PIN').blur();
+
+ credentials = Clipperz.PM.PIN.credentialsWithPIN(pin);
+ this.loginWithCredentials(credentials);
+ },
+
+ 'submitCredentialsHandler': function (anEvent) {
+//console.log("submitCredentialsHandler");
+ var credentials;
+
+ this.setMessage(null);
+
+ credentials = {};
+ credentials['username'] = this.getElement('usernameField').value;
+ credentials['passphrase'] = this.getElement('passphraseField').value;
+// $(this.getAnchor('passphraseField')).blur();
+ this.getElement('passphraseField').blur();
+
+ this.loginWithCredentials(credentials);
+ },
+
+ //-------------------------------------------------------------------------
+
+ 'loginWithCredentials': function (someCredentials) {
+ var args;
+
+ args = {};
+ args['credentials'] = someCredentials;
+ args['errorCallback'] = this.errorCallback();
+
+ MochiKit.Style.hideElement(this.getElement('credentialsBody'));
+ MochiKit.Style.showElement(this.getElement('validating'));
+
+ MochiKit.Async.callLater(0.1, this.callback(), args);
+ },
+
+ //-------------------------------------------------------------------------
+
+ 'initProgressHandle': function (anEvent) {
+//console.log("** initProgressHandle", anEvent);
+ this._steps = anEvent['steps'];
+ this._actualSteps = 0;
+ },
+
+ 'updateProgressHandle': function (anEvent) {
+//console.log("** updateProgressHandle", anEvent);
+ this._steps += anEvent['extraSteps'];
+ },
+
+ 'advanceProgressHandle': function (anEvent) {
+//console.log("** advanceProgressHandle", anEvent);
+ this._actualSteps ++;
+//console.log("STEPS: " + this._actualSteps + "/" + this._steps);
+ },
+
+ 'progressDoneHandle': function (anEvent) {
+//console.log("** progressDoneHandle", anEvent);
+ },
+
+ //-------------------------------------------------------------------------
+ __syntaxFix__: "syntax fix"
+});
diff --git a/frontend/gamma/js/Clipperz/PM/UI/Mobile/Controllers/MainController.js b/frontend/gamma/js/Clipperz/PM/UI/Mobile/Controllers/MainController.js
new file mode 100644
index 0000000..12a61f7
--- a/dev/null
+++ b/frontend/gamma/js/Clipperz/PM/UI/Mobile/Controllers/MainController.js
@@ -0,0 +1,393 @@
+/*
+
+Copyright 2008-2011 Clipperz Srl
+
+This file is part of Clipperz Community Edition.
+Clipperz Community Edition is an online password manager.
+For further information about its features and functionalities please
+refer to http://www.clipperz.com.
+
+* Clipperz Community Edition is free software: you can redistribute
+ it and/or modify it under the terms of the GNU Affero General Public
+ License as published by the Free Software Foundation, either version
+ 3 of the License, or (at your option) any later version.
+
+* Clipperz Community Edition is distributed in the hope that it will
+ be useful, but WITHOUT ANY WARRANTY; without even the implied
+ warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ See the GNU Affero General Public License for more details.
+
+* You should have received a copy of the GNU Affero General Public
+ License along with Clipperz Community Edition. If not, see
+ <http://www.gnu.org/licenses/>.
+
+*/
+
+Clipperz.Base.module('Clipperz.PM.UI.Mobile.Controllers');
+
+Clipperz.PM.UI.Mobile.Controllers.MainController = function() {
+ this._jQTouch = null;
+ this._user = null;
+ this._proxy = null;
+ this._loginForm = null;
+ this._cardList = null;
+ this._cardDetail = null;
+
+ return this;
+}
+
+MochiKit.Base.update(Clipperz.PM.UI.Mobile.Controllers.MainController.prototype, {
+
+ 'toString': function () {
+ return "Clipperz.PM.UI.Mobile.Controllers.MainController";
+ },
+
+ //-------------------------------------------------------------------------
+
+ 'user': function () {
+ return this._user;
+ },
+
+ 'setUser': function (aValue) {
+ this._user = aValue;
+ },
+
+ //-------------------------------------------------------------------------
+
+ 'jQTouch': function () {
+ return this._jQTouch;
+ },
+
+ 'setJQTouch': function (aValue) {
+ this._jQTouch = aValue;
+ },
+
+ //=========================================================================
+
+ 'run': function () {
+ console.log("MainController.run");
+
+ MochiKit.Signal.connect(Clipperz.Signal.NotificationCenter, 'doLogin', MochiKit.Base.method(this, 'doLogin'));
+ Clipperz.DOM.Helper.overwrite(MochiKit.DOM.currentDocument().body, {tag:'div', id:'jqt', children:[
+ {tag:'div', id:'loginForm'},
+ {tag:'div', id:'cardList'},
+ {tag:'div', id:'cardDetail'},
+ {tag:'div', id:'preferences'}
+ ]});
+
+ this.showLoginForm();
+
+ this.initjQTouch();
+
+
+// this.showAddToHomeScreenBaloon();
+// this.selectInitialProxy();
+ },
+
+ 'initjQTouch': function () {
+ var jqt;
+
+ jqt = new $.jQTouch({
+ icon: 'data:image/png;charset=utf-8;base64,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',
+// icon4: 'jqtouch4.png',
+// startupScreen: null, // Pass a string path to a 320px x 460px startup screen for full screen apps.
+ statusBar: 'black-translucent', // Styles the status bar when running as a fullscreen app. Other options are `default`, `black`, and `black-translucent`.
+// addGlossToIcon: true, // Set to 'false' to prevent automatic glossy button effect on icon.
+ preloadImages: false, // Pass an array of image paths to load them before page loads. Ex: `['images/link_over.png', 'images/link_select.png']`
+ fixedViewport: true, // Removes the user's ability to scale the page. Ensures the site behaves more like an application.
+// fullScreen: true, // The website will become a fullscreen application when saved to a user's home screen. Set to `false` to disable.
+// fullScreenClass: 'fullscreen' // Adds a class to the `<body>` when running in full-screen mode, to allow for easy detection and styling. Set to `false` to disable.
+// themeSelectionSelector: '#jqt #themes ul', // ???
+
+// useAnimations: true, // Set to `false` to disable all animations.
+// useFastTouch: true, // Removes ~350ms onClick delay when tapping a link (use in conjunction with the .tap() event) **Experimental**
+// useTouchScroll: true, // Adds support for iOS5 scrolling. Set to false to disable. **Experimental**
+
+ cacheGetRequests: false, // Automatically caches GET requests, so subsequent taps reference the pre-loaded views. (default: true)
+
+// backSelector: '.back, .cancel, .goback', // A CSS selector for back links/buttons. When clicked, the page history goes back one, automatically reversing whichever entrance animation was used.
+
+// cubeSelector: '.cube', // Link selector for a cube animation.
+// dissolveSelector: '.dissolve', // Link selector for a dissolve animation.
+// fadeSelector: '.fade', // Link selector for a fade animation.
+// flipSelector: '.flip', // Link selector for a 3d flip animation.
+ formSelector: null, // Sets which forms are automatically submitted via Ajax. (default: 'form')
+// popSelector: '.pop', // Link selector for a pop animation. (default: '.pop')
+// slideSelector: 'body > * > ul li a', // Link selector for the default slide-left transition. By default applies to all links within an unordered list. Accepts any jQuery-capable selector `'li &gt; a, a:not(.dontslide)'`, etc. (default: 'body > * > ul li a')
+// slideupSelector: '.slideup', // Link selector for a slide up animation. (default: '.slideup')
+// submitSelector: '.submit', // Selector which, when clicked, will submit its parent form (and close keyboard if open). (default: '.submit')
+// swapSelector: '.swap', // Link selector for 3d swap animation. (default: '.swap')
+// touchSelector: 'a, .touch', // Selector for items which are automatically given expanded touch events. This makes ordinary links more responsive and provides trigger events like `swipe` (default: 'a, .touch')
+
+ debug: false
+ });
+
+ this.setJQTouch(jqt);
+ },
+
+ //=========================================================================
+
+ 'showAddToHomeScreenBaloon': function () {
+console.log(">>> showAddToHomeScreenBaloon");
+ },
+
+ //-------------------------------------------------------------------------
+
+ 'selectInitialProxy': function () {
+//console.log(">>> selectInitialProxy");
+ if (this.isOnline()) {
+//console.log("--- selectInitialProxy: using default proxy");
+ this._proxy = Clipperz.PM.Proxy.defaultProxy;
+ } else {
+ if (this.hasLocalData()) {
+//console.log("--- selectInitialProxy: using local cache proxy");
+ this._proxy = new Clipperz.PM.Proxy.OfflineCache({'shouldPayTolls':false});
+ } else {
+ this.showOfflineError();
+ }
+ }
+ },
+
+ //-------------------------------------------------------------------------
+
+ 'showLoginForm': function (args) {
+ args = args || {};
+
+ args['callback'] = MochiKit.Base.method(this, 'doLogin');
+
+ if (Clipperz.PM.PIN.isSet()) {
+ args['errorCallback'] = MochiKit.Base.method(this, 'handleFailedPinLogin');
+ this.loginForm().showPinLogin(args);
+ } else {
+ args['errorCallback'] = MochiKit.Base.method(this, 'handleFailedCredentialsLogin');
+ this.loginForm().showCredentialsLogin(args);
+ }
+ },
+
+ //.........................................................................
+
+ 'handleFailedCredentialsLogin': function () {
+console.log("LOGIN FAILED");
+ this.showLoginForm({'previousFailedAttempt':'LOGIN'});
+ },
+
+ //.........................................................................
+
+ 'handleFailedPinLogin': function () {
+ var failedAttempts;
+ var status;
+
+ failedAttempts = Clipperz.PM.PIN.recordFailedAttempt();
+ this.showLoginForm({'previousFailedAttempt':'PIN', 'failedAttempts': failedAttempts});
+ },
+
+ //-------------------------------------------------------------------------
+
+ 'doLogin': function (someArgs) {
+ var deferredResult;
+ var credentials;
+ var errorCallback;
+ var user;
+ var getPassphraseDelegate;
+
+//console.log(">>> MainController.doLogin", someArgs);
+ credentials = someArgs['credentials'];
+ errorCallback = someArgs['errorCallback'] || MochiKit.Base.noop;
+
+ getPassphraseDelegate = MochiKit.Base.partial(MochiKit.Async.succeed, credentials.passphrase);
+ user = new Clipperz.PM.DataModel.User({'username':credentials.username, 'getPassphraseFunction':getPassphraseDelegate});
+
+ deferredResult = new Clipperz.Async.Deferred('MainController.doLogin', {trace:false});
+ deferredResult.addCallbackPass(MochiKit.Signal.signal, Clipperz.Signal.NotificationCenter, 'initProgress', {'steps':4});
+ deferredResult.addCallback(MochiKit.Async.wait, 0.1);
+ deferredResult.addMethod(Clipperz.Crypto.PRNG.defaultRandomGenerator(), 'deferredEntropyCollection');
+ deferredResult.addMethod(user, 'login');
+ deferredResult.addCallbacks(
+ MochiKit.Base.method(this, 'processSuccessfulLogin', user),
+ errorCallback
+ );
+ deferredResult.callback();
+
+ return deferredResult;
+ },
+
+ //..........................................................................
+
+ 'processSuccessfulLogin': function (aUser) {
+ var deferredResult;
+
+ deferredResult = new Clipperz.Async.Deferred('MainController.processSuccessfulLogin', {trace:false});
+ deferredResult.addMethod(Clipperz.PM.PIN, 'resetFailedAttemptCount');
+// deferredResult.addMethod(this, 'removeLoginForm');
+ deferredResult.addMethod(this, 'setUser', aUser);
+ deferredResult.addMethod(this, 'setupApplication');
+ deferredResult.addMethod(this, 'runApplication');
+ deferredResult.callback();
+
+ return deferredResult;
+ },
+
+ //-------------------------------------------------------------------------
+
+ 'setupApplication': function () {
+ var deferredResult;
+
+console.log(">>> setupApplication");
+ deferredResult = new Clipperz.Async.Deferred("MainController.setupApplication", {trace:false});
+ deferredResult.addMethod(this, 'welcomeFirstTimeUser');
+ deferredResult.addMethod(this, 'showPaymentReminder');
+ deferredResult.addMethod(this, 'copyDataLocally');
+ deferredResult.callback(arguments);
+
+ return deferredResult;
+ },
+
+
+ //..........................................................................
+
+ 'isFirstTimeUser': function () {
+ return false;
+ },
+
+ 'welcomeFirstTimeUser': function () {
+ var deferredResult;
+
+ deferredResult = new Clipperz.Async.Deferred('MainController.welcomeFirstTimeUser', {trace:false});
+
+ if (this.isFirstTimeUser()) {
+ deferredResult.addCallback(function () { console.log("--> welcome"); });
+ }
+ deferredResult.callback();
+
+ return deferredResult;
+ },
+
+ //..........................................................................
+
+ 'shouldShowPaymentReminder': function () {
+ return true;
+ },
+
+ 'showPaymentReminder': function () {
+ var deferredResult;
+
+ deferredResult = new Clipperz.Async.Deferred('MainController.showPaymentReminder', {trace:false});
+
+ if (this.shouldShowPaymentReminder()) {
+ deferredResult.addCallback(function () { console.log("--> payment reminder"); });
+ }
+ deferredResult.callback();
+
+ return deferredResult;
+ },
+
+ //..........................................................................
+
+ 'canCopyDataLocally': function () {
+ return false;
+ },
+
+ 'copyDataLocally': function () {
+ var deferredResult;
+
+ deferredResult = new Clipperz.Async.Deferred('MainController.copyDataLocally', {trace:false});
+
+ if (this.canCopyDataLocally()) {
+ deferredResult.addCallback(function () { console.log("--> copy data locally"); });
+ }
+ deferredResult.callback();
+
+ return deferredResult;
+
+ },
+
+ //-------------------------------------------------------------------------
+
+ 'runApplication': function () {
+ var deferredResult;
+
+//console.log(">>> runApplication");
+ deferredResult = new Clipperz.Async.Deferred('MainController.runApplication', {trace:true});
+ deferredResult.addMethod(this.user(), 'getRecords');
+ deferredResult.addMethod(this, 'showCards');
+ deferredResult.callback();
+
+ return deferredResult;
+ },
+
+ //=========================================================================
+
+ 'showOfflineError': function (anException) {
+ alert("Error: " + anException);
+ throw anException;
+ },
+
+ //=========================================================================
+
+ 'isOnline': function() {
+ return navigator.onLine;
+ },
+
+ 'hasLocalData': function() {
+ return false;
+ },
+
+ //=========================================================================
+
+ 'loginForm': function() {
+ if (this._loginForm == null) {
+ this._loginForm = new Clipperz.PM.UI.Mobile.Components.LoginForm({element:MochiKit.DOM.getElement('loginForm')});
+ }
+
+ return this._loginForm;
+ },
+
+ 'removeLoginForm': function () {
+ if (this._loginForm != null) {
+ this._loginForm.remove();
+ this._loginForm = null;
+ }
+ },
+
+ //-------------------------------------------------------------------------
+
+ 'cardList': function () {
+ if (this._cardList == null) {
+ this._cardList = new Clipperz.PM.UI.Mobile.Components.CardList({element:MochiKit.DOM.getElement('cardList')});
+ MochiKit.Signal.connect(this._cardList, 'selectedCard', this, 'selectCardHandler');
+ }
+
+ return this._cardList;
+ },
+
+ 'showCards': function (someCards) {
+ this.cardList().showCards(someCards);
+ this.jQTouch().goTo('#cardList', 'slideleft');
+ },
+
+ //-------------------------------------------------------------------------
+
+ 'cardDetail': function () {
+ if (this._cardDetail == null) {
+ this._cardDetail = new Clipperz.PM.UI.Mobile.Components.CardDetail({element:MochiKit.DOM.getElement('cardDetail')});
+ }
+
+ return this._cardDetail;
+ },
+
+ 'selectCardHandler': function (aCardReference) {
+ var deferredResult;
+
+ deferredResult = new Clipperz.Async.Deferred("MainController.selectCardHandler", {trace:true});
+ deferredResult.addMethod(this.cardDetail(), 'render');
+ deferredResult.addMethod(this.jQTouch(), 'goTo', '#cardDetail', 'slideleft');
+ deferredResult.addMethod(this.user(), 'getRecord', aCardReference);
+ deferredResult.addMethod(this.cardDetail(), 'showCard');
+ deferredResult.callback();
+
+ return deferredResult;
+ },
+
+ //=========================================================================
+ __syntaxFix__: "syntax fix"
+});
diff --git a/frontend/gamma/js/Clipperz/PM/UI/Web/Components/AccountPanel.js b/frontend/gamma/js/Clipperz/PM/UI/Web/Components/AccountPanel.js
index ee6d7a3..d6b0574 100644
--- a/frontend/gamma/js/Clipperz/PM/UI/Web/Components/AccountPanel.js
+++ b/frontend/gamma/js/Clipperz/PM/UI/Web/Components/AccountPanel.js
@@ -41,6 +41,10 @@ Clipperz.PM.UI.Web.Components.AccountPanel = function(args) {
tab: 'passphraseTab',
panel: 'passphrasePanel'
},
+ 'OTP': {
+ tab: 'OTPTab',
+ panel: 'OTPPanel'
+ },
'PREFERENCES': {
tab: 'preferencesTab',
panel: 'preferencesPanel'
@@ -74,6 +78,7 @@ Clipperz.Base.extend(Clipperz.PM.UI.Web.Components.AccountPanel, Clipperz.PM.UI.
{tag:'ul', children:[
// {tag:'li', id:this.getId('accountTab'), children:[{tag:'a', href:'#', html:'Account'}], cls:'first'},
{tag:'li', id:this.getId('passphraseTab'), children:[{tag:'a', href:'#', html:'Passphrase'}], cls:'first'},
+ {tag:'li', id:this.getId('OTPTab'), children:[{tag:'a', href:'#', html:'One Time Passwords'}]},
{tag:'li', id:this.getId('preferencesTab'), children:[{tag:'a', href:'#', html:'Preferences'}]},
{tag:'li', id:this.getId('loginHistoryTab'), children:[{tag:'a', href:'#', html:'Login history'}]}
]}
@@ -117,16 +122,16 @@ Clipperz.Base.extend(Clipperz.PM.UI.Web.Components.AccountPanel, Clipperz.PM.UI.
{tag:'div', cls:'clear'},
{tag:'div', cls:'confirmButton', id:this.getId('confirmationButton'), children:[
{tag:'span', html:"change passphrase"}
- ]},
-
- {tag:'h3', cls:'manageOTP', html:"Manage One-Time Passphrases"},
- {}
+ ]}
+ ]},
+ {tag:'li', id:this.getId('OTPPanel'), children:[
+// {tag:'h3', html:"Manage One-Time Passphrases"}
]},
{tag:'li', id:this.getId('preferencesPanel'), children:[
- {tag:'h3', html:"-- Preferences --"}
+// {tag:'h3', html:"-- Preferences --"}
]},
{tag:'li', id:this.getId('loginHistoryPanel'), children:[
- {tag:'h3', html:"-- Login History --"}
+// {tag:'h3', html:"-- Login History --"}
]}
]}
]}
diff --git a/frontend/gamma/js/Clipperz/PM/UI/Web/Components/DataPanel.js b/frontend/gamma/js/Clipperz/PM/UI/Web/Components/DataPanel.js
index d2f1045..462d864 100644
--- a/frontend/gamma/js/Clipperz/PM/UI/Web/Components/DataPanel.js
+++ b/frontend/gamma/js/Clipperz/PM/UI/Web/Components/DataPanel.js
@@ -82,16 +82,18 @@ Clipperz.Base.extend(Clipperz.PM.UI.Web.Components.DataPanel, Clipperz.PM.UI.Com
{tag:'div', cls:'subPanelContent', children:[
{tag:'ul', children:[
{tag:'li', id:this.getId('offlineCopyPanel'), children:[
- {tag:'h3', html:"Offline copy"}
+// {tag:'h3', html:"Offline copy"},
+ {tag:'p', html:"With just one click you can dump all your encrypted data from Clipperz servers to your hard disk and create a read-only offline version of Clipperz to be used when you are not connected to the Internet."},
+ {tag:'a', id:this.getId('offlineCopyDownloadLink'), href:'#', html:"Download", cls:'downloadOfflineCopy'}
]},
{tag:'li', id:this.getId('sharingPanel'), children:[
- {tag:'h3', html:"Sharing"}
+// {tag:'h3', html:"Sharing"}
]},
{tag:'li', id:this.getId('importPanel'), children:[
- {tag:'h3', html:"Import"}
+// {tag:'h3', html:"Import"}
]},
{tag:'li', id:this.getId('exportPanel'), children:[
- {tag:'h3', html:"Export"}
+// {tag:'h3', html:"Export"}
]}
]}
]}
@@ -101,8 +103,14 @@ Clipperz.Base.extend(Clipperz.PM.UI.Web.Components.DataPanel, Clipperz.PM.UI.Com
]);
this.tabPanelController().setup({selected:this.initiallySelectedTab()});
+ MochiKit.Signal.connect(this.getId('offlineCopyDownloadLink'), 'onclick', this, 'downloadOfflineCopy');
},
-
+
+ 'downloadOfflineCopy': function (anEvent) {
+ anEvent.preventDefault();
+ MochiKit.Signal.signal(Clipperz.Signal.NotificationCenter, 'downloadOfflineCopy', anEvent.src());
+ },
+
//-------------------------------------------------------------------------
__syntaxFix__: "syntax fix"
});
diff --git a/frontend/gamma/js/Clipperz/PM/UI/Web/Components/LoginProgress.js b/frontend/gamma/js/Clipperz/PM/UI/Web/Components/LoginProgress.js
index 5d082b5..26506e7 100644
--- a/frontend/gamma/js/Clipperz/PM/UI/Web/Components/LoginProgress.js
+++ b/frontend/gamma/js/Clipperz/PM/UI/Web/Components/LoginProgress.js
@@ -82,9 +82,10 @@ Clipperz.Base.extend(Clipperz.PM.UI.Web.Components.LoginProgress, Clipperz.PM.UI
]},
{tag:'div', cls:'footer', children:[
{tag:'div', cls:'buttonArea', id:this.getId('buttonArea'), children:[
- {tag:'div', cls:'button', id:this.getId('button'), children:[
- {tag:'a', href:'#', id:this.getId('buttonLink'), html:"cancel"}
- ]}
+// {tag:'div', cls:'button', id:this.getId('button'), children:[
+// {tag:'a', href:'#', id:this.getId('buttonLink'), html:"cancel"}
+// ]}
+ {tag:'a', cls:'button', id:this.getId('button'), html:"cancel"}
]}
]}
]});
@@ -95,7 +96,8 @@ Clipperz.Base.extend(Clipperz.PM.UI.Web.Components.LoginProgress, Clipperz.PM.UI
this.addComponent(new Clipperz.PM.UI.Common.Components.ProgressBar({'element':this.getElement('progressBar')}));
MochiKit.Style.hideElement(this.getElement('errorBox'));
- MochiKit.Signal.connect(this.getId('buttonLink'), 'onclick', this, 'cancelEventHandler');
+// MochiKit.Signal.connect(this.getId('buttonLink'), 'onclick', this, 'cancelEventHandler');
+ MochiKit.Signal.connect(this.getId('button'), 'onclick', this, 'cancelEventHandler');
},
//-------------------------------------------------------------------------
@@ -121,7 +123,9 @@ Clipperz.Base.extend(Clipperz.PM.UI.Web.Components.LoginProgress, Clipperz.PM.UI
//-------------------------------------------------------------------------
'showErrorMessage': function() {
- this.getElement('buttonLink').innerHTML = "close";
+// this.getElement('buttonLink').innerHTML = "close";
+ this.getElement('button').innerHTML = "close";
+ MochiKit.DOM.addElementClass(this.getElement('button'), 'default');
MochiKit.Style.hideElement(this.getElement('progressBar'));
diff --git a/frontend/gamma/js/Clipperz/PM/UI/Web/Components/PageFooter.js b/frontend/gamma/js/Clipperz/PM/UI/Web/Components/PageFooter.js
index a25c8f5..dcf506f 100644
--- a/frontend/gamma/js/Clipperz/PM/UI/Web/Components/PageFooter.js
+++ b/frontend/gamma/js/Clipperz/PM/UI/Web/Components/PageFooter.js
@@ -49,12 +49,11 @@ Clipperz.Base.extend(Clipperz.PM.UI.Web.Components.PageFooter, Clipperz.PM.UI.Co
this.append(this.element(), [
{tag:'div', cls:'footerWrapper', children:[
{tag:'div', cls:'footerContent', children:[
-// {tag:'div', cls:'footerStarIcon'},
{tag:'canvas', id:this.getId('footerStarIcon'), cls:'footerStarIcon'},
- {tag:'span', cls:'copyright', html:'Copyright &copy; 2009-2012 Clipperz Srl'},
+ {tag:'span', cls:'copyright', html:'Copyright &copy; 2009-2013 Clipperz Srl'},
{tag:'a', href:'http://www.clipperz.com/terms_of_service', target:'_blank', html:'terms of service'},
{tag:'a', href:'http://www.clipperz.com/privacy_policy', target:'_blank', html:'privacy policy'},
- {tag:'span', cls:'applicationVersion', html:'application version: [1992]'}
+ {tag:'div', cls:'applicationVersion', htmlString:'application version: <a href="https://github.com/clipperz/password-manager/tree/' + Clipperz_version + '" target="github">' + Clipperz_version + '</a>'}
]}
]}
]);
diff --git a/frontend/gamma/js/Clipperz/PM/UI/Web/Components/ToolsPanel.js b/frontend/gamma/js/Clipperz/PM/UI/Web/Components/ToolsPanel.js
index 3ee6189..0fa369f 100644
--- a/frontend/gamma/js/Clipperz/PM/UI/Web/Components/ToolsPanel.js
+++ b/frontend/gamma/js/Clipperz/PM/UI/Web/Components/ToolsPanel.js
@@ -82,16 +82,16 @@ Clipperz.Base.extend(Clipperz.PM.UI.Web.Components.ToolsPanel, Clipperz.PM.UI.Co
{tag:'div', cls:'subPanelContent', children:[
{tag:'ul', children:[
{tag:'li', id:this.getId('passwordGeneratorPanel'), children:[
- {tag:'h3', html:"Password generator"}
+// {tag:'h3', html:"Password generator"}
]},
{tag:'li', id:this.getId('bookmarkletPanel'), children:[
- {tag:'h3', html:"Bookmarklet"}
+// {tag:'h3', html:"Bookmarklet"}
]},
{tag:'li', id:this.getId('compactEditionPanel'), children:[
- {tag:'h3', html:"Compact edition"}
+// {tag:'h3', html:"Compact edition"}
]},
{tag:'li', id:this.getId('httpAuthPanel'), children:[
- {tag:'h3', html:"HTTP Auth"}
+// {tag:'h3', html:"HTTP Auth"}
]}
]}
]}
diff --git a/frontend/gamma/js/Clipperz/PM/UI/Web/Controllers/AppController.js b/frontend/gamma/js/Clipperz/PM/UI/Web/Controllers/AppController.js
index 9a0e744..1ab2e69 100644
--- a/frontend/gamma/js/Clipperz/PM/UI/Web/Controllers/AppController.js
+++ b/frontend/gamma/js/Clipperz/PM/UI/Web/Controllers/AppController.js
@@ -231,9 +231,11 @@ MochiKit.Base.update(Clipperz.PM.UI.Web.Controllers.AppController.prototype, {
this.hideAllAppPageTabSlots();
this.appPage().showSlot(this.slotNameForTab('cards'));
- MochiKit.Signal.connect(this.tabSidePanel(), 'tabSelected', this, 'handleTabSelected');
- MochiKit.Signal.connect(this.tabSidePanel(), 'addCard', this, 'handleAddCard');
- MochiKit.Signal.connect(Clipperz.Signal.NotificationCenter, 'addCard', this, 'handleAddCard');
+ MochiKit.Signal.connect(this.tabSidePanel(), 'tabSelected', this, 'handleTabSelected');
+ MochiKit.Signal.connect(this.tabSidePanel(), 'addCard', this, 'handleAddCard');
+ MochiKit.Signal.connect(Clipperz.Signal.NotificationCenter, 'addCard', this, 'handleAddCard');
+
+ MochiKit.Signal.connect(Clipperz.Signal.NotificationCenter, 'downloadOfflineCopy', this, 'handleDownloadOfflineCopy');
deferredResult = new Clipperz.Async.Deferred("AppController.run", {trace:false});
@@ -321,6 +323,29 @@ MochiKit.Base.update(Clipperz.PM.UI.Web.Controllers.AppController.prototype, {
], {trace:false});
},
+ 'handleDownloadOfflineCopy': function (anEvent) {
+console.log("AppController.handleDownloadOfflineCopy");
+ var downloadHref;
+
+ downloadHref = window.location.href.replace(/\/[^\/]*$/,'') + Clipperz_dumpUrl;
+
+ if (Clipperz_IEisBroken == true) {
+ window.open(downloadHref, "");
+ } else {
+ var deferredResult;
+ var newWindow;
+
+ newWindow = window.open("", "");
+
+ deferredResult = new Clipperz.Async.Deferred("AppController.handleDownloadOfflineCopy", {trace:true});
+ deferredResult.addCallback(MochiKit.Base.method(this.user().connection(), 'message'), 'echo', {'echo':"echo"});
+ deferredResult.addCallback(function(aWindow) {
+ aWindow.location.href = downloadHref;
+ }, newWindow);
+ deferredResult.callback();
+ }
+ },
+
//=============================================================================
__syntaxFix__: "syntax fix"
});
diff --git a/frontend/gamma/js/Clipperz/PM/UI/iPhone/Components/CardDetail.js b/frontend/gamma/js/Clipperz/PM/UI/iPhone/Components/CardDetail.js
deleted file mode 100644
index 5380aa1..0000000
--- a/frontend/gamma/js/Clipperz/PM/UI/iPhone/Components/CardDetail.js
+++ b/dev/null
@@ -1,163 +0,0 @@
-/*
-
-Copyright 2008-2011 Clipperz Srl
-
-This file is part of Clipperz Community Edition.
-Clipperz Community Edition is an online password manager.
-For further information about its features and functionalities please
-refer to http://www.clipperz.com.
-
-* Clipperz Community Edition is free software: you can redistribute
- it and/or modify it under the terms of the GNU Affero General Public
- License as published by the Free Software Foundation, either version
- 3 of the License, or (at your option) any later version.
-
-* Clipperz Community Edition is distributed in the hope that it will
- be useful, but WITHOUT ANY WARRANTY; without even the implied
- warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
- See the GNU Affero General Public License for more details.
-
-* You should have received a copy of the GNU Affero General Public
- License along with Clipperz Community Edition. If not, see
- <http://www.gnu.org/licenses/>.
-
-*/
-
-Clipperz.Base.module('Clipperz.PM.UI.iPhone.Components');
-
-Clipperz.PM.UI.iPhone.Components.CardDetail = function(args) {
- args = args || {};
-
- Clipperz.PM.UI.iPhone.Components.CardDetail.superclass.constructor.apply(this, arguments);
-
- this._cardReference = null;
-
- return this;
-}
-
-//=============================================================================
-
-Clipperz.Base.extend(Clipperz.PM.UI.iPhone.Components.CardDetail, Clipperz.PM.UI.Common.Components.BaseComponent, {
-
- //-------------------------------------------------------------------------
-
- 'toString': function () {
- return "Clipperz.PM.UI.iPhone.Components.CardDetail component";
- },
-
- //-------------------------------------------------------------------------
-
- 'cardReference': function () {
- return this._cardReference;
- },
-
- 'setCardReference': function (aValue) {
- this._cardReference = aValue;
- },
-
- //-------------------------------------------------------------------------
-
- 'renderSelf': function(/*aContainer, aPosition*/) {
- this.append(this.element(), [
- {tag:'div', cls:'cardDetail', id:this.getId('cardDetail'), children:[
- {tag:'div', id:this.getId('progressBar')} //,
-// {tag:'h1', cls:'loading', html:"loading"}
- ]}
- ]);
-
- this.addComponent(new Clipperz.PM.UI.Common.Components.ProgressBar({'element':this.getElement('progressBar')}));
- MochiKit.Signal.signal(Clipperz.PM.UI.Common.Controllers.ProgressBarController.defaultController, 'updateProgress', 0);
- },
-
- //=========================================================================
-
- 'showCardDetails': function (someData) {
- this.element().innerHTML = '';
- this.append(this.element(), [
- {tag:'fieldset', id:this.getId('fields'), children:MochiKit.Base.map(function (aFieldData) {
- return {tag:'div', cls:'row', children:[
- {tag:'label', html:aFieldData['label']},
-// {tag:'span', cls:('fieldValue ' + (aFieldData['isHidden'] ? 'password' : 'text')), html:aFieldData['value']}
- {tag:'div', cls:('fieldValue ' + (aFieldData['isHidden'] ? 'password' : 'text')), children:[
- {tag:'div', children:[{tag:'p', html:aFieldData['value']}]}
- ]}
-// {tag:'input', type:'text', cls:('fieldValue ' + (aFieldData['isHidden'] ? 'password' : 'text')), value:aFieldData['value'], disabled:true}
-
- ]}
- }, someData['fields'])}
- ]);
-
- MochiKit.Iter.forEach(MochiKit.Selector.findChildElements(this.element(), ['span.password']), MochiKit.Base.bind(function (aPasswordElement) {
- MochiKit.Signal.connect(aPasswordElement, 'onclick', function (anEvent) { alert(MochiKit.DOM.scrapeText(anEvent.src())); })
- }, this));
-
- if (someData['directLogins'].length > 0) {
- this.append(this.element(), [
- {tag:'h2', html:"Direct logins"},
- {tag:'fieldset', id:this.getId('directLogins'), children:MochiKit.Base.map(function (aDirectLoginData) {
- return {tag:'div', cls:'row', id:('directLogin_' + aDirectLoginData['_reference']), children:[
- {tag:'img', cls:'favicon', src:aDirectLoginData['favicon']},
-// {tag:'input', cls:'directLogin', disabled:'disabled', type:'text', name:aDirectLoginData['label'], value:aDirectLoginData['label']}
- {tag:'span', cls:'directLogin', html:aDirectLoginData['label']}
- ]}
- }, someData['directLogins'])}
- ]);
-
- MochiKit.Base.map(MochiKit.Base.bind(function (aRowNode) {
- MochiKit.Signal.connect(aRowNode, 'onclick', this, 'directLoginClickHandler');
- }, this),
- MochiKit.Selector.findChildElements(this.getElement('directLogins'), ['div.row'])
- )
- };
-
- if (someData['notes'] != '') {
- this.append(this.element(), [
- {tag:'h2', html:"Notes"},
- {tag:'fieldset', id:this.getId('fieldset'), children:[
- {tag:'div', cls:'row notes', children:[
- {tag:'span', html:someData['notes']}
- ]}
- ]}
- ]);
- };
-
- return true;
- },
-
- //-------------------------------------------------------------------------
-/*
- 'toggleClickHandler': function (anEvent) {
- var nextState;
- var fieldValue;
-
-//console.log("TOGGLE");
- anEvent.preventDefault;
- fieldValue = MochiKit.Selector.findChildElements(anEvent.src().parentNode.parentNode, ['span.password'])[0];
-
- nextState = (MochiKit.DOM.getNodeAttribute(anEvent.src(), 'toggled') != 'true');
- if (nextState) {
- MochiKit.DOM.removeElementClass(fieldValue, 'clear');
- } else {
- MochiKit.DOM.addElementClass(fieldValue, 'clear');
- }
-
- MochiKit.DOM.setNodeAttribute(anEvent.src(), 'toggled', nextState);
- },
-*/
- //=========================================================================
-
- 'directLoginClickHandler': function (anEvent) {
- anEvent.preventDefault();
-
- if (/(directLogin_)/.test(anEvent.src().id)) {
- var directLoginReference;
-
- directLoginReference = anEvent.src().id.match(/(directLogin_)(.*)/)[2];
- MochiKit.Signal.signal(Clipperz.Signal.NotificationCenter, 'selectedDirectLogin', {cardReference:this.cardReference(), directLoginReference:directLoginReference});
- }
- },
-
- //=========================================================================
-
- __syntaxFix__: "syntax fix"
-});
diff --git a/frontend/gamma/js/Clipperz/PM/UI/iPhone/Components/LoginForm.js b/frontend/gamma/js/Clipperz/PM/UI/iPhone/Components/LoginForm.js
deleted file mode 100644
index 5341878..0000000
--- a/frontend/gamma/js/Clipperz/PM/UI/iPhone/Components/LoginForm.js
+++ b/dev/null
@@ -1,178 +0,0 @@
-/*
-
-Copyright 2008-2011 Clipperz Srl
-
-This file is part of Clipperz Community Edition.
-Clipperz Community Edition is an online password manager.
-For further information about its features and functionalities please
-refer to http://www.clipperz.com.
-
-* Clipperz Community Edition is free software: you can redistribute
- it and/or modify it under the terms of the GNU Affero General Public
- License as published by the Free Software Foundation, either version
- 3 of the License, or (at your option) any later version.
-
-* Clipperz Community Edition is distributed in the hope that it will
- be useful, but WITHOUT ANY WARRANTY; without even the implied
- warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
- See the GNU Affero General Public License for more details.
-
-* You should have received a copy of the GNU Affero General Public
- License along with Clipperz Community Edition. If not, see
- <http://www.gnu.org/licenses/>.
-
-*/
-
-Clipperz.Base.module('Clipperz.PM.UI.iPhone.Components');
-
-Clipperz.PM.UI.iPhone.Components.LoginForm = function(args) {
- args = args || {};
-
- Clipperz.PM.UI.iPhone.Components.LoginForm.superclass.constructor.apply(this, arguments);
-
- return this;
-}
-
-//=============================================================================
-
-Clipperz.Base.extend(Clipperz.PM.UI.iPhone.Components.LoginForm, Clipperz.PM.UI.Common.Components.BaseComponent, {
-
- //-------------------------------------------------------------------------
-
- 'toString': function () {
- return "Clipperz.PM.UI.iPhone.Components.LoginForm component";
- },
-
- //-------------------------------------------------------------------------
-
- 'focusOnUsername': function () {
- this.getElement('username').focus();
- },
-
- //-------------------------------------------------------------------------
-
- 'username': function () {
- return this.getElement('username').value;
- },
-
- 'passphrase': function () {
- return this.getElement('passphrase').value;
- },
-
- //-------------------------------------------------------------------------
-
- 'renderSelf': function(/*aContainer, aPosition*/) {
- this.append(this.element(), [
- {tag:'div', cls:'toolbar iPhoneClipperzToolbar', children:[
- {tag:'h1', id:'pageTitle', html:'Clipperz'},
- {tag:'a', id:'backButton', cls:'button', href:'#', html:"back"}
- ]},
- {tag:'form', title:'Theaters', cls:'panel toolbarlessPanel loginForm', id:this.getId('loginFormPanel'), children:[
- {tag:'fieldset', id:this.getId('fieldset'), children:[
- {tag:'div', cls:'row', children:[
- {tag:'label', html:"username"},
- {tag:'input', type:'text', name:'username', value:"", autocorrect:'off', autocapitalize:'off', id:this.getId('username')}
- ]},
- {tag:'div', cls:'row', children:[
- {tag:'label', html:"passphrase"},
- {tag:'input', type:'password', name:'passphrase', value:"", id:this.getId('passphrase')}
- ]}
- ]},
- {tag:'a', cls:'whiteButton', type:'submit', href:'#', html:"Login", id:this.getId('submit')}
- ]},
- {tag:'div', cls:'panel toolbarlessPanel loginProgressPanel', id:this.getId('loginProgressPanel'), children:[
- {tag:'div', id:this.getId('progressBar')} //,
-// {tag:'a', cls:'whiteButton', type:'submit', href:'#', html:"Cancel", id:this.getId('cancel')}
- ]},
- {tag:'div', cls:'panel loginErrorPanel', id:this.getId('loginErrorPanel'), children:[
- {tag:'div', cls:'errorMessage', id:this.getId('errorMessageBox'), children:[
- {tag:'h2', id:this.getId('errorMessage'), html:"Login failed"}
- ]}
- ]}
- ]);
-
- MochiKit.Signal.connect(this.getElement('submit'), 'onclick', this, 'submitHandler');
- MochiKit.Signal.connect(this.getElement('loginFormPanel'), 'onsubmit', this, 'submitHandler');
-
-// MochiKit.Signal.connect(this.getElement('cancel'), 'onclick', this, 'cancelHandler');
- MochiKit.Signal.connect('backButton', 'onclick', this, 'backHandler');
-
- this.addComponent(new Clipperz.PM.UI.Common.Components.ProgressBar({'element':this.getElement('progressBar')}));
-
-// MochiKit.Style.hideElement(this.getElement('errorMessage'));
-
- this.showLoginForm();
-// MochiKit.Async.callLater(0.2, MochiKit.Base.method(this, 'focusOnUsername'));
- },
-
- //-------------------------------------------------------------------------
-
- 'showLoginForm': function () {
- MochiKit.Style.showElement(this.getElement('loginFormPanel'));
- MochiKit.Style.hideElement(this.getElement('loginProgressPanel'));
- MochiKit.Style.hideElement(this.getElement('loginErrorPanel'));
- MochiKit.Style.hideElement('backButton');
- },
-
- 'slideInLoginForm': function () {
- var offset;
-
- offset = ((MochiKit.DOM.getNodeAttribute(MochiKit.DOM.currentDocument().body, 'orientation') == 'portrait') ? 320 : 480);
-
- MochiKit.Style.showElement(this.getElement('loginFormPanel'));
- MochiKit.Style.setElementPosition(this.getElement('loginFormPanel'), {x:-offset, y:0});
-
- new MochiKit.Visual.Sequence([
- new MochiKit.Visual.Parallel([
- new MochiKit.Visual.Move(this.getElement('loginErrorPanel'), {x:offset, y:0, mode:'relative', transition:MochiKit.Visual.Transitions.linear, sync:true}),
- new MochiKit.Visual.Move(this.getElement('loginFormPanel'), {x:0, y:0, mode:'absolute', transition:MochiKit.Visual.Transitions.linear, sync:true}),
- MochiKit.Visual.fade ('backButton', { transition:MochiKit.Visual.Transitions.linear, sync:true})
- ], {duration:0.5, sync:true}),
- MochiKit.Visual.fade(this.getElement('loginErrorPanel'), {duration:0, sync:true})
- ], {})
- },
-
- 'showLoginProgress': function () {
- MochiKit.Style.hideElement(this.getElement('loginFormPanel'));
- MochiKit.Style.showElement(this.getElement('loginProgressPanel'));
- },
-
- 'showLoginError': function (anError) {
- this.getElement('errorMessage').innerHTML = "Login error";
-
- MochiKit.Style.showElement('backButton');
- MochiKit.Style.hideElement(this.getElement('loginProgressPanel'));
- MochiKit.Style.showElement(this.getElement('loginErrorPanel'));
- MochiKit.Style.setElementPosition(this.getElement('loginErrorPanel'), {x:0, y:45});
- },
-
- //-------------------------------------------------------------------------
-/*
- 'disableCancelButton': function () {
- MochiKit.DOM.hideElement(this.getElement('cancel'));
- },
-*/
- //-------------------------------------------------------------------------
-
- 'submitHandler': function (anEvent) {
- anEvent.preventDefault();
-
- MochiKit.Signal.signal(this, 'doLogin', {'username':this.username(), 'passphrase':this.passphrase()});
- },
-
- 'cancelHandler': function (anEvent) {
- anEvent.preventDefault();
-
-//console.log("CANCEL");
- },
-
- 'backHandler': function (anEvent) {
- anEvent.preventDefault();
-
- this.slideInLoginForm();
- },
-
- //-------------------------------------------------------------------------
-
- __syntaxFix__: "syntax fix"
-});
diff --git a/frontend/gamma/js/Clipperz/PM/UI/iPhone/Controllers/MainController.js b/frontend/gamma/js/Clipperz/PM/UI/iPhone/Controllers/MainController.js
deleted file mode 100644
index 3fcaae1..0000000
--- a/frontend/gamma/js/Clipperz/PM/UI/iPhone/Controllers/MainController.js
+++ b/dev/null
@@ -1,369 +0,0 @@
-/*
-
-Copyright 2008-2011 Clipperz Srl
-
-This file is part of Clipperz Community Edition.
-Clipperz Community Edition is an online password manager.
-For further information about its features and functionalities please
-refer to http://www.clipperz.com.
-
-* Clipperz Community Edition is free software: you can redistribute
- it and/or modify it under the terms of the GNU Affero General Public
- License as published by the Free Software Foundation, either version
- 3 of the License, or (at your option) any later version.
-
-* Clipperz Community Edition is distributed in the hope that it will
- be useful, but WITHOUT ANY WARRANTY; without even the implied
- warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
- See the GNU Affero General Public License for more details.
-
-* You should have received a copy of the GNU Affero General Public
- License along with Clipperz Community Edition. If not, see
- <http://www.gnu.org/licenses/>.
-
-*/
-
-Clipperz.Base.module('Clipperz.PM.UI.iPhone.Controllers');
-
-// Some parts of this controller have been derived from the iUI library.
-
-Clipperz.PM.UI.iPhone.Controllers.MainController = function() {
- this._loginForm = null;
- this._cardList = null;
- this._cachedValues = null;
- this._user = null;
-
- if (typeof window.onorientationchange == 'object') {
- MochiKit.Signal.connect(window, 'onorientationchange', this, 'orientationChangeHandler');
- MochiKit.Async.callLater(0, MochiKit.Base.method(this, 'orientationChangeHandler'));
- } else {
- this.setOrientation('portrait');
-// this.setOrientation('landscape');
- }
-
- this.addMetaTag('viewport', 'width=devicewidth; initial-scale=1.0; maximum-scale=1.0; user-scalable=0;');
- this.addMetaTag('apple-mobile-web-app-capable', 'yes');
- this.addMetaTag('apple-mobile-web-app-status-bar-style', 'black');
-
- this.addLinkTag('apple-touch-icon', 'data:image/png;charset=utf-8;base64,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');
-// this.addLinkTag('apple-touch-startup-image', 'default.png');
-
-// if (!window.navigator.standalone) // not running as an installed app
-
- MochiKit.Signal.connect(Clipperz.Signal.NotificationCenter, 'selectedDirectLogin', this, 'selectedDirectLoginHandler');
-
- MochiKit.DOM.addElementClass(document.body, 'iPhone');
- return this;
-}
-
-MochiKit.Base.update(Clipperz.PM.UI.iPhone.Controllers.MainController.prototype, {
-
- 'toString': function () {
- return "Clipperz.PM.UI.iPhone.Controllers.MainController";
- },
-
- //=========================================================================
-
- 'user': function () {
- return this._user;
- },
-
- 'setUser': function (aValue) {
- this._user = aValue;
- },
-
- //=========================================================================
-
- 'loginForm': function() {
- if (this._loginForm == null) {
- MochiKit.DOM.removeElement('mainDiv');
- this._loginForm = new Clipperz.PM.UI.iPhone.Components.LoginForm({element:MochiKit.DOM.currentDocument().body});
- MochiKit.Signal.connect(this._loginForm, 'doLogin', this, 'doLoginHandler')
- }
-
- return this._loginForm;
- },
-
- 'removeLoginForm': function () {
- if (this._loginForm != null) {
- this._loginForm.remove();
- this._loginForm = null;
- }
- },
-
- //-----------------------------------------------------------------------------
-
- 'cardList': function () {
- if (this._cardList == null) {
- this._cardList = new Clipperz.PM.UI.iPhone.Components.CardList({element:MochiKit.DOM.currentDocument().body});
- MochiKit.Signal.connect(this._cardList, 'searchEvent', this, 'searchEventHandler')
- MochiKit.Signal.connect(this._cardList, 'selectedCard', this, 'selecetedCardHandler')
- }
-
- return this._cardList;
- },
-
- //=========================================================================
-
- 'currentWidth': function () {
- return this._currentWidth;
- },
-
- 'setCurrentWidth': function (aValue) {
- this._currentWidth = aValue;
- },
-
- //=========================================================================
-
- 'orientationChangeHandler': function () {
- switch(window.orientation) {
- case 0:
- this.setOrientation('portrait');
- break;
- case 90:
- case -90:
- this.setOrientation('landscape');
- break;
- }
- },
-
- //-------------------------------------------------------------------------
-
- 'setOrientation': function (anOrientation) {
- document.body.setAttribute('orientation', anOrientation);
- setTimeout(scrollTo, 100, 0, 1);
- },
-
- //-------------------------------------------------------------------------
-
- 'slidePages': function (fromPage, toPage, backwards) {
- var axis;
- var slideDone;
-
- slideDone = function () {
- // console.log("slideDone");
- if (!hasClass(toPage, "dialog")) {
- fromPage.removeAttribute("selected");
- }
- checkTimer = setInterval(checkOrientAndLocation, 300);
- setTimeout(updatePage, 0, toPage, fromPage);
- fromPage.removeEventListener('webkitTransitionEnd', slideDone, false);
- }
-
- axis = (backwards ? fromPage : toPage).getAttribute("axis");
-
- clearInterval(checkTimer);
-
- if (canDoSlideAnim() && axis != 'y') {
- slide2(fromPage, toPage, backwards, slideDone);
- } else {
- slide1(fromPage, toPage, backwards, axis, slideDone);
- }
- },
-
- //-------------------------------------------------------------------------
-
- 'getCachedValues': function () {
- var deferredResult;
-
- if (this._cachedObjects != null) {
- deferredResult = MochiKit.Async.succeed(this._cachedObjects);
- } else {
- deferredResult = new Clipperz.Async.Deferred("MainController.getCachedValues", {trace:false});
- deferredResult.addMethod(this.user(), 'getRecords');
- deferredResult.addCallback(MochiKit.Base.map, Clipperz.Async.collectResults("MainController.getCachedValues - collectResults", {
- '_rowObject': MochiKit.Async.succeed,
- '_reference': MochiKit.Base.methodcaller('reference'),
- 'label': MochiKit.Base.methodcaller('label'),
- 'favicon': MochiKit.Base.methodcaller('favicon'),
- '_searchableContent': MochiKit.Base.methodcaller('searchableContent')
- }, {trace:false}));
- deferredResult.addCallback(Clipperz.Async.collectAll);
- deferredResult.addCallback(MochiKit.Base.bind(function (someRows) {
- this._cachedObjects = someRows;
- return this._cachedObjects;
- }, this));
- deferredResult.callback();
- }
-
- return deferredResult;
- },
- //=========================================================================
-
- 'run': function(shouldShowRegistrationForm) {
- this.loginForm().render();
- MochiKit.Async.callLater(1, MochiKit.Base.method(this.loginForm(), 'focusOnUsername'));
- },
-
- //=========================================================================
-
- 'doLoginHandler': function (someArgs) {
- var deferredResult;
- var parameters;
- var shouldUseOTP;
-// var loginProgress;
- var user;
- var getPassphraseDelegate;
-
- parameters = someArgs;
- shouldUseOTP = (typeof(parameters.passphrase) == 'undefined');
-
- getPassphraseDelegate = MochiKit.Base.partial(MochiKit.Async.succeed, parameters.passphrase);
- user = new Clipperz.PM.DataModel.User({'username':parameters.username, 'getPassphraseFunction':getPassphraseDelegate});
-
- deferredResult = new Clipperz.Async.Deferred("MainController.doLogin", {trace:false});
- deferredResult.addCallbackPass(MochiKit.Signal.signal, Clipperz.Signal.NotificationCenter, 'initProgress', {'steps':4});
- deferredResult.addMethod(this.loginForm(), 'showLoginProgress');
- deferredResult.addCallback(MochiKit.Async.wait, 0.1);
- deferredResult.addMethod(Clipperz.Crypto.PRNG.defaultRandomGenerator(), 'deferredEntropyCollection');
- deferredResult.addMethod(user, 'login');
- deferredResult.addMethod(this, 'setUser', user);
- deferredResult.addMethod(user, 'getRecords');
- deferredResult.addMethod(this, 'removeLoginForm');
- deferredResult.addMethod(this.cardList(), 'render');
- deferredResult.addMethod(this, 'displaySelectedRecords', '');
- deferredResult.addErrback(MochiKit.Base.method(this.loginForm(), 'showLoginError'));
- deferredResult.callback();
-
- return deferredResult;
- },
-
- //=========================================================================
-
- 'searchEventHandler': function (aValue) {
-//console.log("searching for ... " + aValue);
- return this.displaySelectedRecords(aValue);
- },
-
- //=========================================================================
-
- '_displaySelectedRows': function (aFilter, someRows) {
- var result;
-
- result = someRows;
-
- if (aFilter != null) {
- var filter;
- var filterRegExp;
-
- filter = aFilter.replace(/[^A-Za-z0-9]/g, "\\$&");
- filterRegExp = new RegExp(filter, "i");
- result = MochiKit.Base.filter(function (aCachedResult) { return filterRegExp.test(aCachedResult['_searchableContent'])}, result);
- }
-
-
- result.sort(MochiKit.Base.partial(function (aKey, aComparator, aObject, bObject) {
- return aComparator(aObject[aKey], bObject[aKey]);
- }, 'label', Clipperz.Base.caseInsensitiveCompare));
-
- this.cardList().update(result);
- },
-
- //-------------------------------------------------------------------------
-
- 'displaySelectedRecords': function (aFilter) {
- return Clipperz.Async.callbacks("MainController.displaySelectedrows", [
- MochiKit.Base.method(this, 'getCachedValues'),
- MochiKit.Base.method(this, '_displaySelectedRows', aFilter)
- ], {trace:false});
- },
-
- //=========================================================================
-
- 'selecetedCardHandler': function (aRecordReference) {
- var deferredResult;
- var recordData;
-
- recordData = {};
-//console.log("Showing detail for card with reference", aRecordReference);
- deferredResult = new Clipperz.Async.Deferred("MainController.selectedCardHandler", {trace:false});
- deferredResult.addMethod(this.user(), 'getRecord', aRecordReference);
- deferredResult.collectResults({
- '_reference': MochiKit.Base.methodcaller('reference'),
- 'title': MochiKit.Base.methodcaller('label'),
- 'favicon': MochiKit.Base.methodcaller('favicon')
- });
- deferredResult.addCallback(function (someData) {
- MochiKit.Base.update(recordData, someData);
- })
- deferredResult.addMethod(this.cardList(), 'showCard', recordData);
-
- deferredResult.addMethod(this.user(), 'getRecord', aRecordReference);
- deferredResult.addMethodcaller('notes');
- deferredResult.addCallback(function (someNotes) {
- recordData['notes'] = someNotes;
- })
-
- deferredResult.addMethod(this.user(), 'getRecord', aRecordReference);
- deferredResult.addMethodcaller('getCurrentRecordVersion');
- deferredResult.addMethodcaller('fields');
- deferredResult.addCallback(MochiKit.Base.values);
- deferredResult.addCallback(MochiKit.Base.map, Clipperz.Async.collectResults("MainController.selectedCardHandler - fields", {
- 'label': MochiKit.Base.methodcaller('label'),
- 'value': MochiKit.Base.methodcaller('value'),
- 'isHidden': MochiKit.Base.methodcaller('isHidden')
- }, {trace:false}));
- deferredResult.addCallback(Clipperz.Async.collectAll);
- deferredResult.addCallback(function (someData) {
- recordData['fields'] = someData;
- });
-
- deferredResult.addMethod(this.user(), 'getRecord', aRecordReference);
- deferredResult.addMethodcaller('directLogins');
- deferredResult.addCallback(MochiKit.Base.values);
- deferredResult.addCallback(MochiKit.Base.map, Clipperz.Async.collectResults("MainController.selectedCardHandler - directLogins", {
- 'label': MochiKit.Base.methodcaller('label'),
- 'favicon': MochiKit.Base.methodcaller('favicon'),
- '_reference': MochiKit.Base.methodcaller('reference')
- }, {trace:false}));
- deferredResult.addCallback(Clipperz.Async.collectAll);
- deferredResult.addCallback(function (someData) {
- recordData['directLogins'] = someData;
- });
-
- deferredResult.addMethod(this.cardList(), 'showCardDetails', recordData);
- deferredResult.callback();
-
- return deferredResult;
- },
-
- //=========================================================================
-
- 'selectedDirectLoginHandler': function (someData) {
- var deferredResult;
-
-//console.log("<<< signal - directLogin");
- deferredResult = new Clipperz.Async.Deferred("MainController.selectedDirectLoginHandler", {trace:false});
- deferredResult.addMethod(this.user(), 'getRecord', someData['cardReference']);
- deferredResult.addMethodcaller('directLogins');
- deferredResult.addCallback(MochiKit.Base.itemgetter(someData['directLoginReference']));
-// deferredResult.addMethodcaller('runDirectLogin');
- deferredResult.addCallback(Clipperz.PM.UI.Common.Controllers.DirectLoginRunner.openDirectLogin);
- deferredResult.callback();
-
- return deferredResult;
- },
-
- //=========================================================================
-
- 'addMetaTag': function (aName, aContent) {
- var metaTag;
-
- metaTag = document.createElement('meta');
- metaTag.name = aName;
- metaTag.content = aContent;
- document.getElementsByTagName('head')[0].appendChild(metaTag);
- },
-
- 'addLinkTag': function (aRel, anHref) {
- var linkTag;
-
- linkTag = document.createElement('link');
- linkTag.rel = aRel;
- linkTag.href = anHref;
- document.getElementsByTagName('head')[0].appendChild(linkTag);
- },
-
- //=========================================================================
- __syntaxFix__: "syntax fix"
-}); \ No newline at end of file
diff --git a/frontend/gamma/js/JQTouch/extensions/jqt.actionsheet.js b/frontend/gamma/js/JQTouch/extensions/jqt.actionsheet.js
new file mode 100644
index 0000000..2a5f8d1
--- a/dev/null
+++ b/frontend/gamma/js/JQTouch/extensions/jqt.actionsheet.js
@@ -0,0 +1,159 @@
+/*
+
+ _/ _/_/ _/_/_/_/_/ _/
+ _/ _/ _/ _/_/ _/ _/ _/_/_/ _/_/_/
+ _/ _/ _/_/ _/ _/ _/ _/ _/ _/ _/ _/
+ _/ _/ _/ _/ _/ _/ _/ _/ _/ _/ _/
+ _/ _/_/ _/ _/ _/_/ _/_/_/ _/_/_/ _/ _/
+ _/
+ _/
+
+ Documentation and issue tracking on Google Code <http://code.google.com/p/jqtouch/>
+
+ (c) 2012 by jQTouch project members.
+ See LICENSE.txt for license.
+
+ Author: Thomas Yip
+*/
+
+/*
+
+ _/ _/_/ _/_/_/_/_/ _/
+ _/ _/ _/ _/_/ _/ _/ _/_/_/ _/_/_/
+ _/ _/ _/_/ _/ _/ _/ _/ _/ _/ _/ _/
+ _/ _/ _/ _/ _/ _/ _/ _/ _/ _/ _/
+ _/ _/_/ _/ _/ _/_/ _/_/_/ _/_/_/ _/ _/
+ _/
+ _/
+
+ Documentation and issue tracking on Google Code <http://code.google.com/p/jqtouch/>
+
+ (c) 2012 by jQTouch project members.
+ See LICENSE.txt for license.
+
+ Author: Thomas Yip
+*/
+
+(function($) {
+ var src = $("head script").last().attr("src") || '';
+ var scriptpath = src.split('?')[0].split('/').slice(0, -1).join('/')+'/';
+ var csspath = scriptpath + 'jqt.actionsheet.css';
+ var link = $('<link href="' + csspath + '" rel="stylesheet">');
+ $('head').append($(link));
+
+ function hide(callback) {
+ var $target = $(this);
+ var data = $(this).data('actionsheet');
+ var $source = data.source;
+
+ var timeout;
+
+ function cleanup() {
+ clearTimeout(timeout);
+
+ $source.removeClass('transition');
+ $target.removeClass('inmotion transition');
+ !callback || callback.apply(this, arguments);
+ };
+ timeout = setTimeout(cleanup, 500);
+
+ if (data.shown) {
+ $(this).data('actionsheet', {});
+ $target.one('webkitTransitionEnd', cleanup);
+
+ $source.addClass('transition');
+ $target.removeClass('current').addClass('inmotion transition');
+ $('#jqt').removeClass('actionopened');
+ }
+ return $target;
+ }
+
+ function show(callback) {
+ var $target = $(this);
+ var data = $(this).data('actionsheet') || {};
+ if (!data.shown) {
+ var $source = $('#jqt .current:not(.actionsheet)');
+
+ $target.one('webkitTransitionEnd', function() {
+ $source.removeClass('transition');
+ $target.removeClass('inmotion transition');
+ !callback || callback.apply(this, arguments);
+ });
+
+ data.shown = true;
+ data.source = $source;
+ $(this).data('actionsheet', data);
+
+ $source.addClass('transition');
+ $target.addClass('inmotion transition');
+ $('#jqt').addClass('actionopened');
+ setTimeout(function() {
+ $target.addClass('current');
+ }, 50);
+ }
+ return $target;
+ }
+
+ var methods = {
+ init: function(options) {
+ $(this).addClass('actionsheet');
+ $(this).data({shown: false});
+ },
+ show: show,
+ hide: hide
+ };
+
+ $.fn.actionsheet = function(method) {
+ if (methods[method]) {
+ if ($(this).is('.actionsheet')) {
+ return methods[method].apply(this, Array.prototype.slice.call(arguments, 1));
+ } else {
+ var msg = 'Target is not a `actionsheet`. Action `' + method + '` is ignored.';
+ console.warn(msg);
+ }
+ } else if ( typeof method === 'object' || ! method ) {
+ return methods.init.apply(this, arguments);
+ } else {
+ $.error( 'Method ' + method + ' does not exist on jQuery.tooltip' );
+ }
+ };
+
+ if ($.jQTouch) {
+ $.jQTouch.addTapHandler({
+ name: 'open-actionsheet',
+ isSupported: function(e, params) {
+ return params.$el.is('.action');
+ },
+ fn: function(e, params) {
+ params.$el.removeClass('active');
+
+ var $target = $(params.hash);
+ $target.actionsheet('show');
+
+ return false;
+ }
+ });
+ $.jQTouch.addTapHandler({
+ name: 'follow-actionlink',
+ isSupported: function(e, params) {
+ if ($('#jqt').hasClass('actionopened')) {
+ return params.$el.is('.actionsheet a');
+ }
+ return false;
+ },
+ fn: function(e, params) {
+ params.$el.removeClass('active');
+
+ var $target = params.$el.closest('.actionsheet');
+ $target.actionsheet('hide', function() {
+ if (!params.$el.is('.dismiss')) {
+ params.$el.trigger('tap');
+ }
+ });
+ return false;
+ }
+ });
+ } else {
+ console.error('Extension `jqt.actionsheet` failed to load. jQT not found');
+ }
+})($);
diff --git a/frontend/gamma/js/JQTouch/extensions/jqt.autotitles.js b/frontend/gamma/js/JQTouch/extensions/jqt.autotitles.js
new file mode 100644
index 0000000..94f3d9b
--- a/dev/null
+++ b/frontend/gamma/js/JQTouch/extensions/jqt.autotitles.js
@@ -0,0 +1,52 @@
+/*
+
+ _/ _/_/ _/_/_/_/_/ _/
+ _/ _/ _/ _/_/ _/ _/ _/_/_/ _/_/_/
+ _/ _/ _/_/ _/ _/ _/ _/ _/ _/ _/ _/
+ _/ _/ _/ _/ _/ _/ _/ _/ _/ _/ _/
+ _/ _/_/ _/ _/ _/_/ _/_/_/ _/_/_/ _/ _/
+ _/
+ _/
+
+ Created by David Kaneda <http://www.davidkaneda.com>
+ Maintained by Thomas Yip <http://beedesk.com/>
+ Sponsored by Sencha Labs <http://www.sencha.com/>
+ Special thanks to Jonathan Stark <http://www.jonathanstark.com/>
+
+ Documentation and issue tracking on GitHub <http://github.com/senchalabs/jQTouch/>
+
+ (c) 2009-2011 Sencha Labs
+ jQTouch may be freely distributed under the MIT license.
+
+*/
+
+(function($) {
+ if ($.jQTouch)
+ {
+ $.jQTouch.addExtension(function AutoTitles(jQT){
+
+ var titleSelector='.toolbar h1';
+
+ $(function(){
+ $('#jqt').bind('pageAnimationStart', function(e, data){
+ if (data.direction === 'in'){
+ var $title = $(titleSelector, $(e.target));
+ var $ref = $(e.target).data('referrer');
+ if ($title.length && $ref && $title.text() === ''){
+ $title.html($ref.text());
+ }
+ }
+ });
+ });
+
+ function setTitleSelector(ts){
+ titleSelector=ts;
+ }
+
+ return {
+ setTitleSelector: setTitleSelector
+ };
+
+ });
+ }
+})($);
diff --git a/frontend/gamma/js/JQTouch/extensions/jqt.floaty.js b/frontend/gamma/js/JQTouch/extensions/jqt.floaty.js
new file mode 100644
index 0000000..c7e4485
--- a/dev/null
+++ b/frontend/gamma/js/JQTouch/extensions/jqt.floaty.js
@@ -0,0 +1,96 @@
+/*
+
+ _/ _/_/ _/_/_/_/_/ _/
+ _/ _/ _/ _/_/ _/ _/ _/_/_/ _/_/_/
+ _/ _/ _/_/ _/ _/ _/ _/ _/ _/ _/ _/
+ _/ _/ _/ _/ _/ _/ _/ _/ _/ _/ _/
+ _/ _/_/ _/ _/ _/_/ _/_/_/ _/_/_/ _/ _/
+ _/
+ _/
+
+ Created by David Kaneda <http://www.davidkaneda.com>
+ Documentation and issue tracking on Google Code <http://code.google.com/p/jqtouch/>
+
+ Special thanks to Jonathan Stark <http://jonathanstark.com/>
+ and pinch/zoom <http://www.pinchzoom.com/>
+
+ (c) 2009 by jQTouch project members.
+ See LICENSE.txt for license.
+
+*/
+
+(function($) {
+ if ($.jQTouch)
+ {
+ $.jQTouch.addExtension(function Floaty(jQT){
+
+ $.fn.makeFloaty = function(options){
+ var defaults = {
+ align: 'top',
+ spacing: 20,
+ time: '.3s'
+ };
+
+ var settings = $.extend({}, defaults, options);
+
+ settings.align = (settings.align == 'top') ? 'top' : 'bottom';
+
+ return this.each(function(){
+ var $el = $(this);
+
+ $el.css({
+ '-webkit-transition': 'top ' + settings.time + ' ease-in-out',
+ 'display': 'block',
+ 'min-height': '0 !important'
+ }).data('settings', settings);
+
+ $(document).scroll(function(){
+ if ($el.data('floatyVisible') === 'true')
+ {
+ $el.scrollFloaty();
+ }
+ });
+ $el.scrollFloaty();
+ });
+ };
+
+ $.fn.scrollFloaty = function(){
+
+
+ return this.each(function(){
+ var $el = $(this);
+ var settings = $el.data('settings'); // Settings not being set as object w/Zepto
+ var wHeight = $('html').attr('clientHeight'); // WRONG
+
+ var newY = window.pageYOffset +
+ ((settings.align == 'top') ?
+ settings.spacing : wHeight - settings.spacing - $el.get(0).offsetHeight);
+
+ $el.css('top', newY).data('floatyVisible', true);
+ });
+ };
+
+ $.fn.hideFloaty = function(){
+ return this.each(function(){
+ var $el = $(this);
+ var oh = $el.get(0).offsetHeight;
+
+ $el.css('top', -oh-10).data('floatyVisible', false);
+ });
+ };
+
+ $.fn.toggleFloaty = function(){
+ return this.each(function(){
+ var $el = $(this);
+ if ($el.data('floatyVisible') === 'true'){
+ $el.hideFloaty();
+ }
+ else
+ {
+ $el.scrollFloaty();
+ }
+ });
+ };
+ });
+ }
+})($); \ No newline at end of file
diff --git a/frontend/gamma/js/JQTouch/extensions/jqt.location.js b/frontend/gamma/js/JQTouch/extensions/jqt.location.js
new file mode 100644
index 0000000..9d53a1a
--- a/dev/null
+++ b/frontend/gamma/js/JQTouch/extensions/jqt.location.js
@@ -0,0 +1,51 @@
+(function($) {
+ if ($.jQTouch)
+ {
+ $.jQTouch.addExtension(function Location(){
+
+ var latitude, longitude, callback, callback2;
+
+ function updateLocation(fn, fn2) {
+ if (navigator.geolocation)
+ {
+ callback = fn;
+ callback2 = fn2;
+ navigator.geolocation.getCurrentPosition(savePosition, failResponse);
+ return true;
+ } else {
+ console.log('Device not capable of geo-location.');
+ fn(false);
+ return false;
+ }
+ }
+ function failResponse(error){
+ if (callback2) {
+ callback2(error);
+ }
+ }
+ function savePosition(position) {
+ latitude = position.coords.latitude;
+ longitude = position.coords.longitude;
+ if (callback) {
+ callback(getLocation());
+ }
+ }
+ function getLocation() {
+ if (latitude && longitude) {
+ return {
+ latitude: latitude,
+ longitude: longitude
+ };
+
+ } else {
+ console.log('No location available. Try calling updateLocation() first.');
+ return false;
+ }
+ }
+ return {
+ updateLocation: updateLocation,
+ getLocation: getLocation
+ };
+ });
+ }
+})($); \ No newline at end of file
diff --git a/frontend/gamma/js/JQTouch/extensions/jqt.menusheet.js b/frontend/gamma/js/JQTouch/extensions/jqt.menusheet.js
new file mode 100644
index 0000000..8d21aca
--- a/dev/null
+++ b/frontend/gamma/js/JQTouch/extensions/jqt.menusheet.js
@@ -0,0 +1,137 @@
+/*
+
+ _/ _/_/ _/_/_/_/_/ _/
+ _/ _/ _/ _/_/ _/ _/ _/_/_/ _/_/_/
+ _/ _/ _/_/ _/ _/ _/ _/ _/ _/ _/ _/
+ _/ _/ _/ _/ _/ _/ _/ _/ _/ _/ _/
+ _/ _/_/ _/ _/ _/_/ _/_/_/ _/_/_/ _/ _/
+ _/
+ _/
+
+ Documentation and issue tracking on Google Code <http://code.google.com/p/jqtouch/>
+
+ (c) 2012 by jQTouch project members.
+ See LICENSE.txt for license.
+
+ Author: Thomas Yip
+*/
+
+(function($) {
+ var src = $("head script").last().attr("src") || '';
+ var scriptpath = src.split('?')[0].split('/').slice(0, -1).join('/')+'/';
+ var csspath = scriptpath + 'jqt.menusheet.css';
+ var link = $('<link href="' + csspath + '" rel="stylesheet">');
+ $('head').append($(link));
+
+ function hide(callback) {
+ var $target = $(this);
+ var data = $(this).data('menusheet');
+ if (data.shown) {
+ $(this).data('menusheet', {});
+ var $source = data.source;
+ $source.unbind('touchstart mousedown', data.closehandler);
+ $source.one('webkitTransitionEnd', function() {
+ $source.removeClass('inmotion transition in');
+ $target.removeClass('inmotion out');
+ !callback || callback.apply(this, arguments);
+ });
+
+ $source.addClass('inmotion transition in');
+ $target.addClass('inmotion out').removeClass('current');
+ $('#jqt').removeClass('menuopened');
+ }
+ return $target;
+ }
+
+ function show(callback) {
+ var $target = $(this);
+ var data = $(this).data('menusheet') || {};
+ if (!data.shown) {
+ var $source = $('#jqt .current:not(.menusheet)');
+ var closehandler = function() {
+ $target.menusheet('hide');
+ return false;
+ };
+
+ $source.one('webkitTransitionEnd', function() {
+ $source.one('touchstart mousedown', closehandler);
+ $source.removeClass('inmotion transition out');
+ $target.removeClass('inmotion in');
+ !callback || callback.apply(this, arguments);
+ });
+
+ data.shown = true;
+ data.closehandler = closehandler;
+ data.source = $source;
+ $(this).data('menusheet', data);
+
+ $source.addClass('inmotion transition out');
+ $target.addClass('current in');
+ $('#jqt').addClass('menuopened');
+ }
+ return $target;
+ }
+
+ var methods = {
+ init: function(options) {
+ $(this).addClass('menusheet');
+ $(this).data({shown: false});
+ },
+ show: show,
+ hide: hide
+ };
+
+ $.fn.menusheet = function(method) {
+ if (methods[method]) {
+ if ($(this).is('.menusheet')) {
+ return methods[method].apply(this, Array.prototype.slice.call(arguments, 1));
+ } else {
+ var msg = 'Target is not a `menusheet`. Action `' + method + '` is ignored.';
+ console.warn(msg);
+ }
+ } else if ( typeof method === 'object' || ! method ) {
+ return methods.init.apply(this, arguments);
+ } else {
+ $.error( 'Method ' + method + ' does not exist on jQuery.tooltip' );
+ }
+ };
+
+ if ($.jQTouch) {
+ $.jQTouch.addTapHandler({
+ name: 'open-menusheet',
+ isSupported: function(e, params) {
+ return params.$el.is('.menu');
+ },
+ fn: function(e, params) {
+ params.$el.removeClass('active');
+
+ var $target = $(params.hash);
+ $target.menusheet('show');
+
+ return false;
+ }
+ });
+ $.jQTouch.addTapHandler({
+ name: 'follow-menulink',
+ isSupported: function(e, params) {
+ if ($('#jqt').hasClass('menuopened')) {
+ return params.$el.is('.menusheet a');
+ }
+ return false;
+ },
+ fn: function(e, params) {
+ params.$el.removeClass('active');
+
+ var $target = params.$el.closest('.menusheet');
+ $target.menusheet('hide', function() {
+ if (!params.$el.is('.dismiss')) {
+ params.$el.trigger('tap');
+ }
+ });
+ return false;
+ }
+ });
+ } else {
+ console.error('Extension `jqt.menusheet` failed to load. jQT not found');
+ }
+})($);
diff --git a/frontend/gamma/js/JQTouch/extensions/jqt.offline.js b/frontend/gamma/js/JQTouch/extensions/jqt.offline.js
new file mode 100644
index 0000000..b333a16
--- a/dev/null
+++ b/frontend/gamma/js/JQTouch/extensions/jqt.offline.js
@@ -0,0 +1,97 @@
+/*
+
+ _/ _/_/ _/_/_/_/_/ _/
+ _/ _/ _/ _/_/ _/ _/ _/_/_/ _/_/_/
+ _/ _/ _/_/ _/ _/ _/ _/ _/ _/ _/ _/
+ _/ _/ _/ _/ _/ _/ _/ _/ _/ _/ _/
+ _/ _/_/ _/ _/ _/_/ _/_/_/ _/_/_/ _/ _/
+ _/
+ _/
+
+ Created by David Kaneda <http://www.davidkaneda.com>
+ Documentation and issue tracking on Google Code <http://code.google.com/p/jqtouch/>
+
+ Special thanks to Jonathan Stark <http://jonathanstark.com/>
+
+ Lots of this code is specifically derived from Jonathan's book,
+ "Building iPhone Apps with HTML, CSS, and JavaScript"
+
+ (c) 2009 by jQTouch project members.
+ See LICENSE.txt for license.
+
+*/
+
+(function($) {
+ if ($.jQTouch)
+ {
+ $.jQTouch.addExtension(function Offline(){
+
+ // Convenience array of status values
+ var cacheStatusValues = [];
+ cacheStatusValues[0] = 'uncached';
+ cacheStatusValues[1] = 'idle';
+ cacheStatusValues[2] = 'checking';
+ cacheStatusValues[3] = 'downloading';
+ cacheStatusValues[4] = 'updateready';
+ cacheStatusValues[5] = 'obsolete';
+
+ // Listeners for all possible events
+ var cache = window.applicationCache;
+ cache.addEventListener('cached', logEvent, false);
+ cache.addEventListener('checking', logEvent, false);
+ cache.addEventListener('downloading', logEvent, false);
+ cache.addEventListener('error', logEvent, false);
+ cache.addEventListener('noupdate', logEvent, false);
+ cache.addEventListener('obsolete', logEvent, false);
+ cache.addEventListener('progress', logEvent, false);
+ cache.addEventListener('updateready', logEvent, false);
+
+ // Log every event to the console
+ function logEvent(e) {
+ var online, status, type, message;
+ online = (isOnline()) ? 'yes' : 'no';
+ status = cacheStatusValues[cache.status];
+ type = e.type;
+ message = 'online: ' + online;
+ message+= ', event: ' + type;
+ message+= ', status: ' + status;
+ if (type == 'error' && navigator.onLine) {
+ message+= ' There was an unknown error, check your Cache Manifest.';
+ }
+ console.log(message);
+ }
+
+ function isOnline() {
+ return navigator.onLine;
+ }
+
+ if (!$('html').attr('manifest')) {
+ console.log('No Cache Manifest listed on the <html> tag.')
+ }
+
+ // Swap in newly download files when update is ready
+ cache.addEventListener('updateready', function(e){
+ // Don't perform "swap" if this is the first cache
+ if (cacheStatusValues[cache.status] != 'idle') {
+ cache.swapCache();
+ console.log('Swapped/updated the Cache Manifest.');
+ }
+ }
+ , false);
+
+ // These two functions check for updates to the manifest file
+ function checkForUpdates(){
+ cache.update();
+ }
+ function autoCheckForUpdates(){
+ setInterval(function(){cache.update()}, 10000);
+ }
+
+ return {
+ isOnline: isOnline,
+ checkForUpdates: checkForUpdates,
+ autoCheckForUpdates: autoCheckForUpdates
+ }
+ });
+ }
+})(jQuery); \ No newline at end of file
diff --git a/frontend/gamma/js/JQTouch/extensions/jqt.themeswitcher.js b/frontend/gamma/js/JQTouch/extensions/jqt.themeswitcher.js
new file mode 100755
index 0000000..ef3a75d
--- a/dev/null
+++ b/frontend/gamma/js/JQTouch/extensions/jqt.themeswitcher.js
@@ -0,0 +1,123 @@
+/*
+
+ _/ _/_/ _/_/_/_/_/ _/
+ _/ _/ _/ _/_/ _/ _/ _/_/_/ _/_/_/
+ _/ _/ _/_/ _/ _/ _/ _/ _/ _/ _/ _/
+ _/ _/ _/ _/ _/ _/ _/ _/ _/ _/ _/
+ _/ _/_/ _/ _/ _/_/ _/_/_/ _/_/_/ _/ _/
+ _/
+ _/
+
+ Documentation and issue tracking on Google Code <http://code.google.com/p/jqtouch/>
+
+ (c) 2011 by jQTouch project members.
+ See LICENSE.txt for license.
+
+*/
+
+(function($) {
+ if ($.jQTouch) {
+
+ var scriptpath = $("script").last().attr("src").split('?')[0].split('/').slice(0, -1).join('/')+'/';
+
+ $.jQTouch.addExtension(function ThemeSwitcher(jQT) {
+
+ var current,
+ link,
+ titles = {},
+ defaults = {
+ themeStyleSelector: 'link[rel="stylesheet"][title]',
+ themeIncluded: [
+ {title: 'jQTouch', href: scriptpath + '../themes/css/jqtouch.css'},
+ {title: 'Apple', href: scriptpath + '../themes/css/apple.css'},
+ {title: 'Vanilla', href: scriptpath + '../themes/css/vanilla.css'}
+
+ ]
+ },
+ options = $.extend({}, defaults, jQT.settings);
+
+ function setStyleState(item, title) {
+ var $item = $(item);
+
+ if ($item.attr('title') === title) {
+ item.disabled = false; // workaround for Firefox on Zepto
+ $item.removeAttr('disabled');
+ } else {
+ item.disabled = true; // workaround for Firefox on Zepto
+ $item.attr('disabled', true);
+ }
+ }
+
+ function initializeStyleState(item, title) {
+ // and, workaround for WebKit by initializing the 'disabled' attribute
+ if (!current) {
+ current = title;
+ }
+ setStyleState(item, current);
+ }
+
+ // public
+ function switchStyle(title) {
+ current = title;
+ $(options.themeStyleSelector).each(function(i, item) {
+ setStyleState(item, title);
+ });
+ }
+
+ // collect title names, from <head>
+ $(options.themeStyleSelector).each(function(i, item) {
+ var $item = $(item);
+ var title = $item.attr('title');
+
+ titles[title] = true;
+
+ initializeStyleState(item, title);
+ });
+
+ // add included theme
+ for (var i=0; i < options.themeIncluded.length; i++) {
+ var hash = options.themeIncluded[i];
+ if (!(hash.title in titles)) {
+ link = $('<link title="' + hash.title + '" href="' + hash.href + '" rel="stylesheet">');
+ $('head').append($(link));
+
+ titles[hash.title] = true;
+
+ initializeStyleState(link, hash.title);
+ }
+ }
+
+ if (options.themeSelectionSelector) {
+ // create UI items
+ for (var title in titles) {
+ var $item = $('<li><a href="#" data-title="' + title + '">' + title + '</a></li>');
+ $(options.themeSelectionSelector).append($item);
+ }
+
+ // bind to UI items
+ $(options.themeSelectionSelector).delegate('* > a', 'tap', function(e) {
+ e.preventDefault();
+ e.stopPropagation();
+
+ var $a = $(this).closest('a');
+ $a.removeClass('active');
+ switchStyle($a.attr('data-title'));
+
+ // poor-man simulation of radio button behaviour
+ $(options.themeSelectionSelector).find('a').removeClass('selected');
+ $a.addClass('selected');
+ });
+
+ // poor-man simulation of radio button behaviour
+ $(options.themeSelectionSelector).closest('#jqt > *').bind('pageAnimationEnd', function(e, data){
+ if (data.direction === 'in') {
+ $(options.themeSelectionSelector).find('a[data-title="' + current + '"]').addClass('selected');
+ }
+ });
+ }
+
+ return {switchStyle: switchStyle};
+
+ });
+ }
+})($);
diff --git a/frontend/gamma/js/JQTouch/jqtouch.js b/frontend/gamma/js/JQTouch/jqtouch.js
new file mode 100644
index 0000000..bdc6d2e
--- a/dev/null
+++ b/frontend/gamma/js/JQTouch/jqtouch.js
@@ -0,0 +1,889 @@
+/*
+
+ _/ _/_/ _/_/_/_/_/ _/
+ _/ _/ _/ _/_/ _/ _/ _/_/_/ _/_/_/
+ _/ _/ _/_/ _/ _/ _/ _/ _/ _/ _/ _/
+ _/ _/ _/ _/ _/ _/ _/ _/ _/ _/ _/
+ _/ _/_/ _/ _/ _/_/ _/_/_/ _/_/_/ _/ _/
+ _/
+ _/
+
+ Created by David Kaneda <http://www.davidkaneda.com>
+ Maintained by Thomas Yip <http://beedesk.com/>
+ Sponsored by Sencha Labs <http://www.sencha.com/>
+ Special thanks to Jonathan Stark <http://www.jonathanstark.com/>
+
+ Documentation and issue tracking on GitHub <http://github.com/senchalabs/jQTouch/>
+
+ (c) 2009-2011 Sencha Labs
+ jQTouch may be freely distributed under the MIT license.
+
+*/
+(function() {
+
+ var fx;
+ if ('Zepto' in window) {
+ fx = window.Zepto;
+ fx.fn.prop = fx.fn.attr;
+
+ Event.prototype.isDefaultPrevented = function() {
+ return this.defaultPrevented;
+ };
+ } else if ('jQuery' in window) {
+ fx = window.jQuery;
+
+ // trick to get Zepto/touch.js to work for jQuery
+ window.Zepto = $;
+ } else {
+ throw('Either Zepto or jQuery is required but neither can be found.');
+ }
+
+ $.jQTouch = function(options) {
+ // Initialize internal jQT variables
+ var $ = fx,
+ $body,
+ $head=$('head'),
+ history=[],
+ newPageCount=0,
+ jQTSettings={},
+ $currentPage='',
+ orientation='portrait',
+ touchSelectors=[],
+ publicObj={},
+ tapBuffer=100, // High click delay = ~350, quickest animation (slide) = 250
+ extensions=$.jQTouch.prototype.extensions,
+ extTapHandlers=$.jQTouch.prototype.tapHandlers,
+ tapHandlers=[],
+ animations=[],
+ hairExtensions='',
+ defaults = {
+ addGlossToIcon: true,
+ backSelector: '.back, .cancel, .goback',
+ cacheGetRequests: true,
+ debug: true,
+ defaultAnimation: 'slideleft',
+ fixedViewport: true,
+ formSelector: 'form',
+ fullScreen: true,
+ fullScreenClass: 'fullscreen',
+ icon: null,
+ icon4: null, // available in iOS 4.2 and later.
+ preloadImages: false,
+ startupScreen: null,
+ statusBar: 'default', // other options: black-translucent, black
+ submitSelector: '.submit',
+ touchSelector: 'a, .touch',
+ trackScrollPositions: true,
+ useAnimations: true,
+ useFastTouch: true,
+ useTouchScroll: true,
+ animations: [ // highest to lowest priority
+ {name:'cubeleft', selector:'.cubeleft, .cube', is3d: true},
+ {name:'cuberight', selector:'.cuberight', is3d: true},
+ {name:'dissolve', selector:'.dissolve'},
+ {name:'fade', selector:'.fade'},
+ {name:'flipleft', selector:'.flipleft, .flip', is3d: true},
+ {name:'flipright', selector:'.flipright', is3d: true},
+ {name:'pop', selector:'.pop', is3d: true},
+ {name:'swapleft', selector:'.swap', is3d: true},
+ {name:'slidedown', selector:'.slidedown'},
+ {name:'slideright', selector:'.slideright'},
+ {name:'slideup', selector:'.slideup'},
+ {name:'slideleft', selector:'.slideleft, .slide, #jqt > * > ul li a'}
+ ]
+ }; // end defaults
+
+ function warn(message) {
+ if (window.console !== undefined && jQTSettings.debug === true) {
+ console.warn(message);
+ }
+ }
+ function addAnimation(animation) {
+ if (typeof(animation.selector) === 'string' && typeof(animation.name) === 'string') {
+ animations.push(animation);
+ }
+ }
+ function addTapHandler(tapHandler) {
+ if (typeof(tapHandler.name) === 'string'
+ && typeof(tapHandler.isSupported) === 'function'
+ && typeof(tapHandler.fn) === 'function') {
+
+ tapHandlers.push(tapHandler);
+ }
+ }
+ function addPageToHistory(page, animation) {
+ history.unshift({
+ page: page,
+ animation: animation,
+ hash: '#' + page.attr('id'),
+ id: page.attr('id')
+ });
+ }
+
+ // Unfortunately, we can not assume the "tap" event
+ // is being used for links, forms, etc.
+ function clickHandler(e) {
+ // Figure out whether to prevent default
+ var $el = $(e.target);
+
+ // Find the nearest tappable ancestor
+ if (!$el.is(touchSelectors.join(', '))) {
+ $el = $(e.target).closest(touchSelectors.join(', '));
+ }
+
+ // Prevent default if we found an internal link (relative or absolute)
+ if ($el && $el.attr('href') && !$el.isExternalLink()) {
+ warn('Need to prevent default click behavior');
+ e.preventDefault();
+ } else {
+ warn('No need to prevent default click behavior');
+ }
+
+ // Trigger a tap event if touchstart is not on the job
+ if ($.support.touch) {
+ warn('Not converting click to a tap event because touch handler is on the job');
+ } else {
+ warn('Converting click event to a tap event because touch handlers are not present or off');
+ $(e.target).trigger('tap', e);
+ }
+
+ }
+ function doNavigation(fromPage, toPage, animation, goingBack) {
+
+ goingBack = goingBack ? goingBack : false;
+
+ // Error check for target page
+ if (toPage === undefined || toPage.length === 0) {
+ $.fn.unselect();
+ warn('Target element is missing.');
+ return false;
+ }
+
+ // Error check for fromPage===toPage
+ if (toPage.hasClass('current')) {
+ $.fn.unselect();
+ warn('You are already on the page you are trying to navigate to.');
+ return false;
+ }
+
+ // Collapse the keyboard
+ $(':focus').trigger('blur');
+
+ fromPage.trigger('pageAnimationStart', { direction: 'out', back: goingBack });
+ toPage.trigger('pageAnimationStart', { direction: 'in', back: goingBack });
+
+ if ($.support.animationEvents && animation && jQTSettings.useAnimations) {
+ // Fail over to 2d animation if need be
+ if (!$.support.transform3d && animation.is3d) {
+ warn('Did not detect support for 3d animations, falling back to ' + jQTSettings.defaultAnimation);
+ animation.name = jQTSettings.defaultAnimation;
+ }
+
+ // Reverse animation if need be
+ var finalAnimationName = animation.name,
+ is3d = animation.is3d ? 'animating3d' : '';
+
+ if (goingBack) {
+ finalAnimationName = finalAnimationName.replace(/left|right|up|down|in|out/, reverseAnimation );
+ }
+
+ warn('finalAnimationName is ' + finalAnimationName);
+
+ // Bind internal "cleanup" callback
+ fromPage.bind('webkitAnimationEnd', navigationEndHandler);
+
+ // Trigger animations
+ $body.addClass('animating ' + is3d);
+
+ var lastScroll = window.pageYOffset;
+
+ // Position the incoming page so toolbar is at top of viewport regardless of scroll position on from page
+ if (jQTSettings.trackScrollPositions === true) {
+ toPage.css('top', window.pageYOffset - (toPage.data('lastScroll') || 0));
+ }
+
+ toPage.addClass(finalAnimationName + ' in current');
+ fromPage.removeClass('current').addClass(finalAnimationName + ' out inmotion');
+
+ if (jQTSettings.trackScrollPositions === true) {
+ fromPage.data('lastScroll', lastScroll);
+ $('.scroll', fromPage).each(function(){
+ $(this).data('lastScroll', this.scrollTop);
+ });
+ }
+ } else {
+ toPage.addClass('current in');
+ fromPage.removeClass('current');
+ navigationEndHandler();
+ }
+
+ // Housekeeping
+ $currentPage = toPage;
+ if (goingBack) {
+ history.shift();
+ } else {
+ addPageToHistory($currentPage, animation);
+ }
+ setHash($currentPage.attr('id'));
+
+ // Private navigationEnd callback
+ function navigationEndHandler(event) {
+ var bufferTime = tapBuffer;
+
+ if ($.support.animationEvents && animation && jQTSettings.useAnimations) {
+ fromPage.unbind('webkitAnimationEnd', navigationEndHandler);
+ fromPage.removeClass(finalAnimationName + ' out inmotion');
+ if (finalAnimationName) {
+ toPage.removeClass(finalAnimationName);
+ }
+ $body.removeClass('animating animating3d');
+ if (jQTSettings.trackScrollPositions === true) {
+ toPage.css('top', -toPage.data('lastScroll'));
+
+ // Have to make sure the scroll/style resets
+ // are outside the flow of this function.
+ setTimeout(function(){
+ toPage.css('top', 0);
+ window.scroll(0, toPage.data('lastScroll'));
+ $('.scroll', toPage).each(function(){
+ this.scrollTop = - $(this).data('lastScroll');
+ });
+ }, 0);
+ }
+ } else {
+ fromPage.removeClass(finalAnimationName + ' out inmotion');
+ if (finalAnimationName) {
+ toPage.removeClass(finalAnimationName);
+ }
+ bufferTime += 260;
+ }
+
+ // In class is intentionally delayed, as it is our ghost click hack
+ setTimeout(function(){
+ toPage.removeClass('in');
+ window.scroll(0,0);
+ }, bufferTime);
+
+ fromPage.unselect();
+
+ // Trigger custom events
+ toPage.trigger('pageAnimationEnd', {
+ direction:'in', animation: animation, back: goingBack
+ });
+ fromPage.trigger('pageAnimationEnd', {
+ direction:'out', animation: animation, back: goingBack
+ });
+ }
+
+ return true;
+ }
+ function reverseAnimation(animation) {
+ var opposites={
+ 'up' : 'down',
+ 'down' : 'up',
+ 'left' : 'right',
+ 'right' : 'left',
+ 'in' : 'out',
+ 'out' : 'in'
+ };
+
+ return opposites[animation] || animation;
+ }
+ function getOrientation() {
+ return orientation;
+ }
+ function goBack() {
+
+ // Error checking
+ if (history.length < 1 ) {
+ warn('History is empty.');
+ }
+
+ if (history.length === 1 ) {
+ warn('You are on the first panel.');
+ window.history.go(-1);
+ }
+
+ var from = history[0],
+ to = history[1];
+
+ if (doNavigation(from.page, to.page, from.animation, true)) {
+ return publicObj;
+ } else {
+ warn('Could not go back.');
+ return false;
+ }
+
+ }
+ function goTo(toPage, animation) {
+
+ var fromPage = history[0].page;
+
+ if (typeof animation === 'string') {
+ for (var i=0, max=animations.length; i < max; i++) {
+ if (animations[i].name === animation) {
+ animation = animations[i];
+ break;
+ }
+ }
+ }
+
+ if (typeof toPage === 'string') {
+ var nextPage = $(toPage);
+
+ if (nextPage.length < 1) {
+ showPageByHref(toPage, {
+ animation: animation
+ });
+ return;
+ } else {
+ toPage = nextPage;
+ }
+ }
+ if (doNavigation(fromPage, toPage, animation)) {
+ return publicObj;
+ } else {
+ warn('Could not animate pages.');
+ return false;
+ }
+ }
+ function hashChangeHandler(e) {
+ if (location.hash === history[0].hash) {
+ warn('We are on the right panel');
+ return true;
+ } else if (location.hash === '') {
+ goBack();
+ return true;
+ } else {
+ if( (history[1] && location.hash === history[1].hash) ) {
+ goBack();
+ return true;
+ } else {
+ // Lastly, just try going to the ID...
+ warn('Could not find ID in history, just forwarding to DOM element.');
+ goTo($(location.hash), jQTSettings.defaultAnimation);
+ }
+ }
+ }
+ function init(options) {
+ jQTSettings = $.extend({}, defaults, options);
+
+ // Preload images
+ if (jQTSettings.preloadImages) {
+ for (var i = jQTSettings.preloadImages.length - 1; i >= 0; i--) {
+ (new Image()).src = jQTSettings.preloadImages[i];
+ }
+ }
+
+ // Set appropriate icon (retina display available in iOS 4.2 and later.)
+ var precomposed = (jQTSettings.addGlossToIcon) ? '' : '-precomposed';
+ if (jQTSettings.icon) {
+ hairExtensions += '<link rel="apple-touch-icon' + precomposed + '" href="' + jQTSettings.icon + '" />';
+ }
+ if (jQTSettings.icon4) {
+ hairExtensions += '<link rel="apple-touch-icon' + precomposed + '" sizes="114x114" href="' + jQTSettings.icon4 + '" />';
+ }
+ // Set startup screen
+ if (jQTSettings.startupScreen) {
+ hairExtensions += '<link rel="apple-touch-startup-image" href="' + jQTSettings.startupScreen + '" />';
+ }
+
+ // Set viewport
+ if (jQTSettings.fixedViewport) {
+ hairExtensions += '<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0"/>';
+ }
+
+ // Set full-screen
+ if (jQTSettings.fullScreen) {
+ hairExtensions += '<meta name="apple-mobile-web-app-capable" content="yes" />';
+ if (jQTSettings.statusBar) {
+ hairExtensions += '<meta name="apple-mobile-web-app-status-bar-style" content="' + jQTSettings.statusBar + '" />';
+ }
+ }
+
+ // Attach hair extensions
+ if (hairExtensions) {
+ $head.prepend(hairExtensions);
+ }
+ }
+
+ function getAnimation(el) {
+ var animation;
+
+ for (var i=0, max=animations.length; i < max; i++) {
+ if (el.is(animations[i].selector)) {
+ animation = animations[i];
+ break;
+ }
+ }
+
+ if (!animation) {
+ warn('Animation could not be found. Using ' + jQTSettings.defaultAnimation + '.');
+ animation = jQTSettings.defaultAnimation;
+ }
+ return animation;
+ }
+
+ function insertPages(nodes, animation) {
+
+ var targetPage = null;
+
+ // Call dom.createElement element directly instead of relying on $(nodes),
+ // to work around: https://github.com/madrobby/zepto/issues/312
+ var div = document.createElement('div');
+ div.innerHTML = nodes;
+
+ $(div).children().each(function(index, node) {
+ var $node = $(this);
+ if (!$node.attr('id')) {
+ $node.attr('id', 'page-' + (++newPageCount));
+ }
+
+ // Remove any existing instance
+ $('#' + $node.attr('id')).remove();
+
+ $body.append($node);
+ $body.trigger('pageInserted', {page: $node});
+
+ if ($node.hasClass('current') || !targetPage) {
+ targetPage = $node;
+ }
+ });
+ if (targetPage !== null) {
+ goTo(targetPage, animation);
+ return targetPage;
+ } else {
+ return false;
+ }
+ }
+
+ function orientationChangeHandler() {
+ $body.css('minHeight', 1000);
+ scrollTo(0,0);
+ var bodyHeight = window.innerHeight;
+ $body.css('minHeight', bodyHeight);
+
+ orientation = Math.abs(window.orientation) == 90 ? 'landscape' : 'portrait';
+ $body.removeClass('portrait landscape').addClass(orientation).trigger('turn', {orientation: orientation});
+ }
+ function setHash(hash) {
+ // Sanitize
+ location.hash = '#' + hash.replace(/^#/, '');
+ }
+ function showPageByHref(href, options) {
+
+ var defaults = {
+ data: null,
+ method: 'GET',
+ animation: null,
+ callback: null,
+ $referrer: null
+ };
+
+ var settings = $.extend({}, defaults, options);
+
+ if (href != '#') {
+ $.ajax({
+ url: href,
+ data: settings.data,
+ type: settings.method,
+ success: function (data) {
+ var firstPage = insertPages(data, settings.animation);
+ if (firstPage) {
+ if (settings.method == 'GET' && jQTSettings.cacheGetRequests === true && settings.$referrer) {
+ settings.$referrer.attr('href', '#' + firstPage.attr('id'));
+ }
+ if (settings.callback) {
+ settings.callback(true);
+ }
+ }
+ },
+ error: function (data) {
+ if (settings.$referrer) {
+ settings.$referrer.unselect();
+ }
+ if (settings.callback) {
+ settings.callback(false);
+ }
+ }
+ });
+ } else if (settings.$referrer) {
+ settings.$referrer.unselect();
+ }
+ }
+ function submitHandler(e, callback) {
+
+ $(':focus').trigger('blur');
+
+ e.preventDefault();
+
+ var $form = (typeof(e)==='string') ? $(e).eq(0) : (e.target ? $(e.target) : $(e));
+
+ if ($form.length && $form.is(jQTSettings.formSelector) && $form.attr('action')) {
+ showPageByHref($form.attr('action'), {
+ data: $form.serialize(),
+ method: $form.attr('method') || "POST",
+ animation: getAnimation($form),
+ callback: callback
+ });
+ return false;
+ }
+ return true;
+ }
+ function submitParentForm($el) {
+
+ var $form = $el.closest('form');
+ if ($form.length === 0) {
+ warn('No parent form found');
+ } else {
+ warn('About to submit parent form');
+ $form.trigger('submit');
+ return false;
+ }
+ return true;
+ }
+ function supportForTransform3d() {
+
+ var head, body, style, div, result;
+
+ head = document.getElementsByTagName('head')[0];
+ body = document.body;
+
+ style = document.createElement('style');
+ style.textContent = '@media (transform-3d),(-o-transform-3d),(-moz-transform-3d),(-webkit-transform-3d){#jqt-3dtest{height:3px}}';
+
+ div = document.createElement('div');
+ div.id = 'jqt-3dtest';
+
+ // Add to the page
+ head.appendChild(style);
+ body.appendChild(div);
+
+ // Check the result
+ result = div.offsetHeight === 3;
+
+ // Clean up
+ style.parentNode.removeChild(style);
+ div.parentNode.removeChild(div);
+
+ // Pass back result
+ warn('Support for 3d transforms: ' + result);
+ return result;
+ }
+ function supportIOS5() {
+ var support = false;
+ var REGEX_IOS_VERSION = /OS (\d+)(_\d+)* like Mac OS X/i;
+
+ var agentString = window.navigator.userAgent;
+ if (REGEX_IOS_VERSION.test(agentString)) {
+ support = (REGEX_IOS_VERSION.exec(agentString)[1] >= 5);
+ }
+ return support;
+ }
+ function touchStartHandler(e){
+
+ var $el = $(e.target),
+ selectors = touchSelectors.join(', ');
+
+ // Find the nearest tappable ancestor
+ if (!$el.is(selectors)) {
+ $el = $el.closest(selectors);
+ }
+
+ // Make sure we have a tappable element
+ if ($el.length && $el.attr('href')) {
+ $el.addClass('active');
+ }
+
+ // Remove our active class if we move
+ $el.on($.support.touch ? 'touchmove' : 'mousemove', function(){
+ $el.removeClass('active');
+ });
+
+ $el.on('touchend', function(){
+ $el.unbind('touchmove mousemove');
+ });
+
+ }
+ function tapHandler(e){
+
+ if (e.isDefaultPrevented()) {
+ return true;
+ }
+
+ // Grab the target element
+ var $el = $(e.target);
+
+ // Find the nearest tappable ancestor
+ if (!$el.is(touchSelectors.join(', '))) {
+ $el = $el.closest(touchSelectors.join(', '));
+ }
+
+ // Make sure we have a tappable element
+ if (!$el.length || !$el.attr('href')) {
+ warn('Could not find a link related to tapped element');
+ return true;
+ }
+
+ // Init some vars
+ var target = $el.attr('target'),
+ hash = $el.prop('hash'),
+ href = $el.attr('href');
+
+ var params = {
+ e: e,
+ $el: $el,
+ target: target,
+ hash: hash,
+ href: href,
+ jQTSettings: jQTSettings
+ };
+
+ // Loop thru all handlers
+ for (var i=0, len=tapHandlers.length; i<len; i++) {
+ var handler = tapHandlers[i];
+ var supported = handler.isSupported(e, params);
+ if (supported) {
+ var flag = handler.fn(e, params);
+ return flag;
+ }
+ }
+ }
+ function addDefaultTapHandlers() {
+ addTapHandler({
+ name: 'external-link',
+ isSupported: function(e, params) {
+ return params.$el.isExternalLink();
+ },
+ fn: function(e, params) {
+ params.$el.unselect();
+ return true;
+ }
+ });
+ addTapHandler({
+ name: 'back-selector',
+ isSupported: function(e, params) {
+ return params.$el.is(params.jQTSettings.backSelector);
+ },
+ fn: function(e, params) {
+ // User clicked or tapped a back button
+ goBack(params.hash);
+ }
+ });
+ addTapHandler({
+ name: 'submit-selector',
+ isSupported: function(e, params) {
+ return params.$el.is(params.jQTSettings.submitSelector);
+ },
+ fn: function(e, params) {
+ // User clicked or tapped a submit element
+ submitParentForm(params.$el);
+ }
+ });
+ addTapHandler({
+ name: 'webapp',
+ isSupported: function(e, params) {
+ return params.target === '_webapp';
+ },
+ fn: function(e, params) {
+ // User clicked or tapped an internal link, fullscreen mode
+ window.location = params.href;
+ return false;
+ }
+ });
+ addTapHandler({
+ name: 'no-op',
+ isSupported: function(e, params) {
+ return params.href === '#';
+ },
+ fn: function(e, params) {
+ // Allow tap on item with no href
+ params.$el.unselect();
+ return true;
+ }
+ });
+ addTapHandler({
+ name: 'standard',
+ isSupported: function(e, params) {
+ return params.hash && params.hash !== '#';
+ },
+ fn: function(e, params) {
+ var animation = getAnimation(params.$el);
+ // Internal href
+ params.$el.addClass('active');
+ goTo(
+ $(params.hash).data('referrer', params.$el),
+ animation,
+ params.$el.hasClass('reverse')
+ );
+ return false;
+ }
+ });
+ addTapHandler({
+ name: 'external',
+ isSupported: function(e, params) {
+ return true;
+ },
+ fn: function(e, params) {
+ var animation = getAnimation(params.$el);
+
+ // External href
+ params.$el.addClass('loading active');
+ showPageByHref(params.$el.attr('href'), {
+ animation: animation,
+ callback: function() {
+ params.$el.removeClass('loading');
+ setTimeout($.fn.unselect, 250, params.$el);
+ },
+ $referrer: params.$el
+ });
+ return false;
+ }
+ });
+ };
+
+ // Get the party started
+ init(options);
+
+ // Document ready stuff
+ $(document).ready(function RUMBLE() {
+ // Store some properties in a support object
+ if (!$.support) $.support = {};
+ $.support.animationEvents = (typeof window.WebKitAnimationEvent != 'undefined');
+ $.support.touch = (typeof window.TouchEvent != 'undefined') && (window.navigator.userAgent.indexOf('Mobile') > -1) && jQTSettings.useFastTouch;
+ $.support.transform3d = supportForTransform3d();
+ $.support.ios5 = supportIOS5();
+
+ if (!$.support.touch) {
+ warn('This device does not support touch interaction, or it has been deactivated by the developer. Some features might be unavailable.');
+ }
+ if (!$.support.transform3d) {
+ warn('This device does not support 3d animation. 2d animations will be used instead.');
+ }
+
+ // Define public jQuery functions
+ $.fn.isExternalLink = function() {
+ var $el = $(this);
+ return ($el.attr('target') == '_blank' || $el.attr('rel') == 'external' || $el.is('a[href^="http://maps.google.com"], a[href^="mailto:"], a[href^="tel:"], a[href^="javascript:"], a[href*="youtube.com/v"], a[href*="youtube.com/watch"]'));
+ };
+ $.fn.makeActive = function() {
+ return $(this).addClass('active');
+ };
+ $.fn.unselect = function(obj) {
+ if (obj) {
+ obj.removeClass('active');
+ } else {
+ $('.active').removeClass('active');
+ }
+ };
+
+ // Add extensions
+ for (var i=0, max=extensions.length; i < max; i++) {
+ var fn = extensions[i];
+ if ($.isFunction(fn)) {
+ $.extend(publicObj, fn(publicObj));
+ }
+ }
+
+ // Add extensions tapHandlers
+ for (var i=0, max=extTapHandlers.length; i < max; i++) {
+ addTapHandler(extTapHandlers[i]);
+ }
+ // Add default tapHandlers
+ addDefaultTapHandlers();
+
+ // Add animations
+ for (var j=0, max_anims=defaults.animations.length; j < max_anims; j++) {
+ var animation = defaults.animations[j];
+ if(jQTSettings[animation.name + 'Selector'] !== undefined){
+ animation.selector = jQTSettings[animation.name + 'Selector'];
+ }
+ addAnimation(animation);
+ }
+
+ // Create an array of stuff that needs touch event handling
+ touchSelectors.push(jQTSettings.touchSelector);
+ touchSelectors.push(jQTSettings.backSelector);
+ touchSelectors.push(jQTSettings.submitSelector);
+ $(touchSelectors.join(', ')).css('-webkit-touch-callout', 'none');
+
+ // Make sure we have a jqt element
+ $body = $('#jqt');
+ var anatomy_lessons = [];
+
+ if ($body.length === 0) {
+ warn('Could not find an element with the id "jqt", so the body id has been set to "jqt". If you are having any problems, wrapping your panels in a div with the id "jqt" might help.');
+ $body = $(document.body).attr('id', 'jqt');
+ }
+
+ // Add some specific css if need be
+ if ($.support.transform3d) {
+ anatomy_lessons.push('supports3d');
+ }
+ if ($.support.ios5 && jQTSettings.useTouchScroll) {
+ anatomy_lessons.push('touchscroll');
+ }
+
+ if (jQTSettings.fullScreenClass && window.navigator.standalone === true) {
+ anatomy_lessons.push(jQTSettings.fullScreenClass, jQTSettings.statusBar);
+ }
+
+ // Bind events
+
+ $body
+ .addClass(anatomy_lessons.join(' '))
+ .bind('click', clickHandler)
+ .bind('orientationchange', orientationChangeHandler)
+ .bind('submit', submitHandler)
+ .bind('tap', tapHandler)
+ .bind( $.support.touch ? 'touchstart' : 'mousedown', touchStartHandler)
+ .trigger('orientationchange');
+
+ $(window).bind('hashchange', hashChangeHandler);
+
+ var startHash = location.hash;
+
+ // Determine what the initial view should be
+ if ($('#jqt > .current').length === 0) {
+ $currentPage = $('#jqt > *:first-child').addClass('current');
+ } else {
+ $currentPage = $('#jqt > .current');
+ }
+
+ setHash($currentPage.attr('id'));
+ addPageToHistory($currentPage);
+
+ if ($(startHash).length === 1) {
+ goTo(startHash);
+ }
+ });
+
+ // Expose public methods and properties
+ publicObj = {
+ addAnimation: addAnimation,
+ animations: animations,
+ getOrientation: getOrientation,
+ goBack: goBack,
+ insertPages: insertPages,
+ goTo: goTo,
+ history: history,
+ settings: jQTSettings,
+ submitForm: submitHandler
+ };
+ return publicObj;
+ };
+
+ $.jQTouch.prototype.extensions = [];
+ $.jQTouch.prototype.tapHandlers = [];
+
+ // Extensions directly manipulate the jQTouch object, before it's initialized.
+ $.jQTouch.addExtension = function(extension) {
+ $.jQTouch.prototype.extensions.push(extension);
+ };
+
+ // Experimental tap hanlders that can bypass default jQTouch tap handling
+ $.jQTouch.addTapHandler = function(extension) {
+ $.jQTouch.prototype.tapHandlers.push(extension);
+ };
+
+})(); // Double closure, ALL THE WAY ACROSS THE SKY
diff --git a/frontend/gamma/js/Zepto/ajax.js b/frontend/gamma/js/Zepto/ajax.js
new file mode 100644
index 0000000..f4da150
--- a/dev/null
+++ b/frontend/gamma/js/Zepto/ajax.js
@@ -0,0 +1,285 @@
+// Zepto.js
+// (c) 2010-2012 Thomas Fuchs
+// Zepto.js may be freely distributed under the MIT license.
+
+;(function($){
+ var jsonpID = 0,
+ isObject = $.isObject,
+ document = window.document,
+ key,
+ name,
+ rscript = /<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi,
+ scriptTypeRE = /^(?:text|application)\/javascript/i,
+ xmlTypeRE = /^(?:text|application)\/xml/i,
+ jsonType = 'application/json',
+ htmlType = 'text/html',
+ blankRE = /^\s*$/
+
+ // trigger a custom event and return false if it was cancelled
+ function triggerAndReturn(context, eventName, data) {
+ var event = $.Event(eventName)
+ $(context).trigger(event, data)
+ return !event.defaultPrevented
+ }
+
+ // trigger an Ajax "global" event
+ function triggerGlobal(settings, context, eventName, data) {
+ if (settings.global) return triggerAndReturn(context || document, eventName, data)
+ }
+
+ // Number of active Ajax requests
+ $.active = 0
+
+ function ajaxStart(settings) {
+ if (settings.global && $.active++ === 0) triggerGlobal(settings, null, 'ajaxStart')
+ }
+ function ajaxStop(settings) {
+ if (settings.global && !(--$.active)) triggerGlobal(settings, null, 'ajaxStop')
+ }
+
+ // triggers an extra global event "ajaxBeforeSend" that's like "ajaxSend" but cancelable
+ function ajaxBeforeSend(xhr, settings) {
+ var context = settings.context
+ if (settings.beforeSend.call(context, xhr, settings) === false ||
+ triggerGlobal(settings, context, 'ajaxBeforeSend', [xhr, settings]) === false)
+ return false
+
+ triggerGlobal(settings, context, 'ajaxSend', [xhr, settings])
+ }
+ function ajaxSuccess(data, xhr, settings) {
+ var context = settings.context, status = 'success'
+ settings.success.call(context, data, status, xhr)
+ triggerGlobal(settings, context, 'ajaxSuccess', [xhr, settings, data])
+ ajaxComplete(status, xhr, settings)
+ }
+ // type: "timeout", "error", "abort", "parsererror"
+ function ajaxError(error, type, xhr, settings) {
+ var context = settings.context
+ settings.error.call(context, xhr, type, error)
+ triggerGlobal(settings, context, 'ajaxError', [xhr, settings, error])
+ ajaxComplete(type, xhr, settings)
+ }
+ // status: "success", "notmodified", "error", "timeout", "abort", "parsererror"
+ function ajaxComplete(status, xhr, settings) {
+ var context = settings.context
+ settings.complete.call(context, xhr, status)
+ triggerGlobal(settings, context, 'ajaxComplete', [xhr, settings])
+ ajaxStop(settings)
+ }
+
+ // Empty function, used as default callback
+ function empty() {}
+
+ $.ajaxJSONP = function(options){
+ if (!('type' in options)) return $.ajax(options)
+
+ var callbackName = 'jsonp' + (++jsonpID),
+ script = document.createElement('script'),
+ abort = function(){
+ $(script).remove()
+ if (callbackName in window) window[callbackName] = empty
+ ajaxComplete('abort', xhr, options)
+ },
+ xhr = { abort: abort }, abortTimeout
+
+ if (options.error) script.onerror = function() {
+ xhr.abort()
+ options.error()
+ }
+
+ window[callbackName] = function(data){
+ clearTimeout(abortTimeout)
+ $(script).remove()
+ delete window[callbackName]
+ ajaxSuccess(data, xhr, options)
+ }
+
+ serializeData(options)
+ script.src = options.url.replace(/=\?/, '=' + callbackName)
+ $('head').append(script)
+
+ if (options.timeout > 0) abortTimeout = setTimeout(function(){
+ xhr.abort()
+ ajaxComplete('timeout', xhr, options)
+ }, options.timeout)
+
+ return xhr
+ }
+
+ $.ajaxSettings = {
+ // Default type of request
+ type: 'GET',
+ // Callback that is executed before request
+ beforeSend: empty,
+ // Callback that is executed if the request succeeds
+ success: empty,
+ // Callback that is executed the the server drops error
+ error: empty,
+ // Callback that is executed on request complete (both: error and success)
+ complete: empty,
+ // The context for the callbacks
+ context: null,
+ // Whether to trigger "global" Ajax events
+ global: true,
+ // Transport
+ xhr: function () {
+ return new window.XMLHttpRequest()
+ },
+ // MIME types mapping
+ accepts: {
+ script: 'text/javascript, application/javascript',
+ json: jsonType,
+ xml: 'application/xml, text/xml',
+ html: htmlType,
+ text: 'text/plain'
+ },
+ // Whether the request is to another domain
+ crossDomain: false,
+ // Default timeout
+ timeout: 0,
+ // Whether data should be serialized to string
+ processData: true
+ }
+
+ function mimeToDataType(mime) {
+ return mime && ( mime == htmlType ? 'html' :
+ mime == jsonType ? 'json' :
+ scriptTypeRE.test(mime) ? 'script' :
+ xmlTypeRE.test(mime) && 'xml' ) || 'text'
+ }
+
+ function appendQuery(url, query) {
+ return (url + '&' + query).replace(/[&?]{1,2}/, '?')
+ }
+
+ // serialize payload and append it to the URL for GET requests
+ function serializeData(options) {
+ if (options.processData && isObject(options.data))
+ options.data = $.param(options.data, options.traditional)
+ if (options.data && (!options.type || options.type.toUpperCase() == 'GET'))
+ options.url = appendQuery(options.url, options.data)
+ }
+
+ $.ajax = function(options){
+ var settings = $.extend({}, options || {})
+ for (key in $.ajaxSettings) if (settings[key] === undefined) settings[key] = $.ajaxSettings[key]
+
+ ajaxStart(settings)
+
+ if (!settings.crossDomain) settings.crossDomain = /^([\w-]+:)?\/\/([^\/]+)/.test(settings.url) &&
+ RegExp.$2 != window.location.host
+
+ var dataType = settings.dataType, hasPlaceholder = /=\?/.test(settings.url)
+ if (dataType == 'jsonp' || hasPlaceholder) {
+ if (!hasPlaceholder) settings.url = appendQuery(settings.url, 'callback=?')
+ return $.ajaxJSONP(settings)
+ }
+
+ if (!settings.url) settings.url = window.location.toString()
+ serializeData(settings)
+
+ var mime = settings.accepts[dataType],
+ baseHeaders = { },
+ protocol = /^([\w-]+:)\/\//.test(settings.url) ? RegExp.$1 : window.location.protocol,
+ xhr = $.ajaxSettings.xhr(), abortTimeout
+
+ if (!settings.crossDomain) baseHeaders['X-Requested-With'] = 'XMLHttpRequest'
+ if (mime) {
+ baseHeaders['Accept'] = mime
+ if (mime.indexOf(',') > -1) mime = mime.split(',', 2)[0]
+ xhr.overrideMimeType && xhr.overrideMimeType(mime)
+ }
+ if (settings.contentType || (settings.contentType !== false && settings.data && settings.type.toUpperCase() != 'GET'))
+ baseHeaders['Content-Type'] = (settings.contentType || 'application/x-www-form-urlencoded')
+ settings.headers = $.extend(baseHeaders, settings.headers || {})
+
+ xhr.onreadystatechange = function(){
+ if (xhr.readyState == 4) {
+ xhr.onreadystatechange = empty;
+ clearTimeout(abortTimeout)
+ var result, error = false
+ if ((xhr.status >= 200 && xhr.status < 300) || xhr.status == 304 || (xhr.status == 0 && protocol == 'file:')) {
+ dataType = dataType || mimeToDataType(xhr.getResponseHeader('content-type'))
+ result = xhr.responseText
+
+ try {
+ if (dataType == 'script') (1,eval)(result)
+ else if (dataType == 'xml') result = xhr.responseXML
+ else if (dataType == 'json') result = blankRE.test(result) ? null : $.parseJSON(result)
+ } catch (e) { error = e }
+
+ if (error) ajaxError(error, 'parsererror', xhr, settings)
+ else ajaxSuccess(result, xhr, settings)
+ } else {
+ ajaxError(null, xhr.status ? 'error' : 'abort', xhr, settings)
+ }
+ }
+ }
+
+ var async = 'async' in settings ? settings.async : true
+ xhr.open(settings.type, settings.url, async)
+
+ for (name in settings.headers) xhr.setRequestHeader(name, settings.headers[name])
+
+ if (ajaxBeforeSend(xhr, settings) === false) {
+ xhr.abort()
+ return false
+ }
+
+ if (settings.timeout > 0) abortTimeout = setTimeout(function(){
+ xhr.onreadystatechange = empty
+ xhr.abort()
+ ajaxError(null, 'timeout', xhr, settings)
+ }, settings.timeout)
+
+ // avoid sending empty string (#319)
+ xhr.send(settings.data ? settings.data : null)
+ return xhr
+ }
+
+ $.get = function(url, success){ return $.ajax({ url: url, success: success }) }
+
+ $.post = function(url, data, success, dataType){
+ if ($.isFunction(data)) dataType = dataType || success, success = data, data = null
+ return $.ajax({ type: 'POST', url: url, data: data, success: success, dataType: dataType })
+ }
+
+ $.getJSON = function(url, success){
+ return $.ajax({ url: url, success: success, dataType: 'json' })
+ }
+
+ $.fn.load = function(url, success){
+ if (!this.length) return this
+ var self = this, parts = url.split(/\s/), selector
+ if (parts.length > 1) url = parts[0], selector = parts[1]
+ $.get(url, function(response){
+ self.html(selector ?
+ $('<div>').html(response.replace(rscript, "")).find(selector)
+ : response)
+ success && success.apply(self, arguments)
+ })
+ return this
+ }
+
+ var escape = encodeURIComponent
+
+ function serialize(params, obj, traditional, scope){
+ var array = $.isArray(obj)
+ $.each(obj, function(key, value) {
+ if (scope) key = traditional ? scope : scope + '[' + (array ? '' : key) + ']'
+ // handle data in serializeArray() format
+ if (!scope && array) params.add(value.name, value.value)
+ // recurse into nested objects
+ else if (traditional ? $.isArray(value) : isObject(value))
+ serialize(params, value, traditional, key)
+ else params.add(key, value)
+ })
+ }
+
+ $.param = function(obj, traditional){
+ var params = []
+ params.add = function(k, v){ this.push(escape(k) + '=' + escape(v)) }
+ serialize(params, obj, traditional)
+ return params.join('&').replace(/%20/g, '+')
+ }
+})(Zepto)
diff --git a/frontend/gamma/js/Zepto/assets.js b/frontend/gamma/js/Zepto/assets.js
new file mode 100644
index 0000000..b5a5712
--- a/dev/null
+++ b/frontend/gamma/js/Zepto/assets.js
@@ -0,0 +1,21 @@
+// Zepto.js
+// (c) 2010-2012 Thomas Fuchs
+// Zepto.js may be freely distributed under the MIT license.
+
+;(function($){
+ var cache = [], timeout
+
+ $.fn.remove = function(){
+ return this.each(function(){
+ if(this.parentNode){
+ if(this.tagName === 'IMG'){
+ cache.push(this)
+ this.src = 'data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs='
+ if (timeout) clearTimeout(timeout)
+ timeout = setTimeout(function(){ cache = [] }, 60000)
+ }
+ this.parentNode.removeChild(this)
+ }
+ })
+ }
+})(Zepto)
diff --git a/frontend/gamma/js/Zepto/data.js b/frontend/gamma/js/Zepto/data.js
new file mode 100644
index 0000000..b4c289f
--- a/dev/null
+++ b/frontend/gamma/js/Zepto/data.js
@@ -0,0 +1,67 @@
+// Zepto.js
+// (c) 2010-2012 Thomas Fuchs
+// Zepto.js may be freely distributed under the MIT license.
+
+// The following code is heavily inspired by jQuery's $.fn.data()
+
+;(function($) {
+ var data = {}, dataAttr = $.fn.data, camelize = $.camelCase,
+ exp = $.expando = 'Zepto' + (+new Date())
+
+ // Get value from node:
+ // 1. first try key as given,
+ // 2. then try camelized key,
+ // 3. fall back to reading "data-*" attribute.
+ function getData(node, name) {
+ var id = node[exp], store = id && data[id]
+ if (name === undefined) return store || setData(node)
+ else {
+ if (store) {
+ if (name in store) return store[name]
+ var camelName = camelize(name)
+ if (camelName in store) return store[camelName]
+ }
+ return dataAttr.call($(node), name)
+ }
+ }
+
+ // Store value under camelized key on node
+ function setData(node, name, value) {
+ var id = node[exp] || (node[exp] = ++$.uuid),
+ store = data[id] || (data[id] = attributeData(node))
+ if (name !== undefined) store[camelize(name)] = value
+ return store
+ }
+
+ // Read all "data-*" attributes from a node
+ function attributeData(node) {
+ var store = {}
+ $.each(node.attributes, function(i, attr){
+ if (attr.name.indexOf('data-') == 0)
+ store[camelize(attr.name.replace('data-', ''))] =
+ $.zepto.deserializeValue(attr.value)
+ })
+ return store
+ }
+
+ $.fn.data = function(name, value) {
+ return value === undefined ?
+ // set multiple values via object
+ $.isPlainObject(name) ?
+ this.each(function(i, node){
+ $.each(name, function(key, value){ setData(node, key, value) })
+ }) :
+ // get value from first element
+ this.length == 0 ? undefined : getData(this[0], name) :
+ // set value on all elements
+ this.each(function(){ setData(this, name, value) })
+ }
+
+ $.fn.removeData = function(names) {
+ if (typeof names == 'string') names = names.split(/\s+/)
+ return this.each(function(){
+ var id = this[exp], store = id && data[id]
+ if (store) $.each(names, function(){ delete store[camelize(this)] })
+ })
+ }
+})(Zepto)
diff --git a/frontend/gamma/js/Zepto/detect.js b/frontend/gamma/js/Zepto/detect.js
new file mode 100644
index 0000000..22c0386
--- a/dev/null
+++ b/frontend/gamma/js/Zepto/detect.js
@@ -0,0 +1,42 @@
+// Zepto.js
+// (c) 2010-2012 Thomas Fuchs
+// Zepto.js may be freely distributed under the MIT license.
+
+;(function($){
+ function detect(ua){
+ var os = this.os = {}, browser = this.browser = {},
+ webkit = ua.match(/WebKit\/([\d.]+)/),
+ android = ua.match(/(Android)\s+([\d.]+)/),
+ ipad = ua.match(/(iPad).*OS\s([\d_]+)/),
+ iphone = !ipad && ua.match(/(iPhone\sOS)\s([\d_]+)/),
+ webos = ua.match(/(webOS|hpwOS)[\s\/]([\d.]+)/),
+ touchpad = webos && ua.match(/TouchPad/),
+ kindle = ua.match(/Kindle\/([\d.]+)/),
+ silk = ua.match(/Silk\/([\d._]+)/),
+ blackberry = ua.match(/(BlackBerry).*Version\/([\d.]+)/),
+ chrome = ua.match(/Chrome\/([\d.]+)/) || ua.match(/CriOS\/([\d.]+)/)
+
+ // todo clean this up with a better OS/browser
+ // separation. we need to discern between multiple
+ // browsers on android, and decide if kindle fire in
+ // silk mode is android or not
+
+ if (browser.webkit = !!webkit) browser.version = webkit[1]
+
+ if (android) os.android = true, os.version = android[2]
+ if (iphone) os.ios = os.iphone = true, os.version = iphone[2].replace(/_/g, '.')
+ if (ipad) os.ios = os.ipad = true, os.version = ipad[2].replace(/_/g, '.')
+ if (webos) os.webos = true, os.version = webos[2]
+ if (touchpad) os.touchpad = true
+ if (blackberry) os.blackberry = true, os.version = blackberry[2]
+ if (kindle) os.kindle = true, os.version = kindle[1]
+ if (silk) browser.silk = true, browser.version = silk[1]
+ if (!silk && os.android && ua.match(/Kindle Fire/)) browser.silk = true
+ if (chrome) browser.chrome = true, browser.version = chrome[1]
+ }
+
+ detect.call($, navigator.userAgent)
+ // make available to unit tests
+ $.__detect = detect
+
+})(Zepto)
diff --git a/frontend/gamma/js/Zepto/event.js b/frontend/gamma/js/Zepto/event.js
new file mode 100644
index 0000000..b40af22
--- a/dev/null
+++ b/frontend/gamma/js/Zepto/event.js
@@ -0,0 +1,248 @@
+// Zepto.js
+// (c) 2010-2012 Thomas Fuchs
+// Zepto.js may be freely distributed under the MIT license.
+
+;(function($){
+ var $$ = $.zepto.qsa, handlers = {}, _zid = 1, specialEvents={},
+ hover = { mouseenter: 'mouseover', mouseleave: 'mouseout' }
+
+ specialEvents.click = specialEvents.mousedown = specialEvents.mouseup = specialEvents.mousemove = 'MouseEvents'
+
+ function zid(element) {
+ return element._zid || (element._zid = _zid++)
+ }
+ function findHandlers(element, event, fn, selector) {
+ event = parse(event)
+ if (event.ns) var matcher = matcherFor(event.ns)
+ return (handlers[zid(element)] || []).filter(function(handler) {
+ return handler
+ && (!event.e || handler.e == event.e)
+ && (!event.ns || matcher.test(handler.ns))
+ && (!fn || zid(handler.fn) === zid(fn))
+ && (!selector || handler.sel == selector)
+ })
+ }
+ function parse(event) {
+ var parts = ('' + event).split('.')
+ return {e: parts[0], ns: parts.slice(1).sort().join(' ')}
+ }
+ function matcherFor(ns) {
+ return new RegExp('(?:^| )' + ns.replace(' ', ' .* ?') + '(?: |$)')
+ }
+
+ function eachEvent(events, fn, iterator){
+ if ($.isObject(events)) $.each(events, iterator)
+ else events.split(/\s/).forEach(function(type){ iterator(type, fn) })
+ }
+
+ function eventCapture(handler, captureSetting) {
+ return handler.del &&
+ (handler.e == 'focus' || handler.e == 'blur') ||
+ !!captureSetting
+ }
+
+ function realEvent(type) {
+ return hover[type] || type
+ }
+
+ function add(element, events, fn, selector, getDelegate, capture){
+ var id = zid(element), set = (handlers[id] || (handlers[id] = []))
+ eachEvent(events, fn, function(event, fn){
+ var handler = parse(event)
+ handler.fn = fn
+ handler.sel = selector
+ // emulate mouseenter, mouseleave
+ if (handler.e in hover) fn = function(e){
+ var related = e.relatedTarget
+ if (!related || (related !== this && !$.contains(this, related)))
+ return handler.fn.apply(this, arguments)
+ }
+ handler.del = getDelegate && getDelegate(fn, event)
+ var callback = handler.del || fn
+ handler.proxy = function (e) {
+ var result = callback.apply(element, [e].concat(e.data))
+ if (result === false) e.preventDefault(), e.stopPropagation()
+ return result
+ }
+ handler.i = set.length
+ set.push(handler)
+ element.addEventListener(realEvent(handler.e), handler.proxy, eventCapture(handler, capture))
+ })
+ }
+ function remove(element, events, fn, selector, capture){
+ var id = zid(element)
+ eachEvent(events || '', fn, function(event, fn){
+ findHandlers(element, event, fn, selector).forEach(function(handler){
+ delete handlers[id][handler.i]
+ element.removeEventListener(realEvent(handler.e), handler.proxy, eventCapture(handler, capture))
+ })
+ })
+ }
+
+ $.event = { add: add, remove: remove }
+
+ $.proxy = function(fn, context) {
+ if ($.isFunction(fn)) {
+ var proxyFn = function(){ return fn.apply(context, arguments) }
+ proxyFn._zid = zid(fn)
+ return proxyFn
+ } else if (typeof context == 'string') {
+ return $.proxy(fn[context], fn)
+ } else {
+ throw new TypeError("expected function")
+ }
+ }
+
+ $.fn.bind = function(event, callback){
+ return this.each(function(){
+ add(this, event, callback)
+ })
+ }
+ $.fn.unbind = function(event, callback){
+ return this.each(function(){
+ remove(this, event, callback)
+ })
+ }
+ $.fn.one = function(event, callback){
+ return this.each(function(i, element){
+ add(this, event, callback, null, function(fn, type){
+ return function(){
+ var result = fn.apply(element, arguments)
+ remove(element, type, fn)
+ return result
+ }
+ })
+ })
+ }
+
+ var returnTrue = function(){return true},
+ returnFalse = function(){return false},
+ ignoreProperties = /^([A-Z]|layer[XY]$)/,
+ eventMethods = {
+ preventDefault: 'isDefaultPrevented',
+ stopImmediatePropagation: 'isImmediatePropagationStopped',
+ stopPropagation: 'isPropagationStopped'
+ }
+ function createProxy(event) {
+ var key, proxy = { originalEvent: event }
+ for (key in event)
+ if (!ignoreProperties.test(key) && event[key] !== undefined) proxy[key] = event[key]
+
+ $.each(eventMethods, function(name, predicate) {
+ proxy[name] = function(){
+ this[predicate] = returnTrue
+ return event[name].apply(event, arguments)
+ }
+ proxy[predicate] = returnFalse
+ })
+ return proxy
+ }
+
+ // emulates the 'defaultPrevented' property for browsers that have none
+ function fix(event) {
+ if (!('defaultPrevented' in event)) {
+ event.defaultPrevented = false
+ var prevent = event.preventDefault
+ event.preventDefault = function() {
+ this.defaultPrevented = true
+ prevent.call(this)
+ }
+ }
+ }
+
+ $.fn.delegate = function(selector, event, callback){
+ return this.each(function(i, element){
+ add(element, event, callback, selector, function(fn){
+ return function(e){
+ var evt, match = $(e.target).closest(selector, element).get(0)
+ if (match) {
+ evt = $.extend(createProxy(e), {currentTarget: match, liveFired: element})
+ return fn.apply(match, [evt].concat([].slice.call(arguments, 1)))
+ }
+ }
+ })
+ })
+ }
+ $.fn.undelegate = function(selector, event, callback){
+ return this.each(function(){
+ remove(this, event, callback, selector)
+ })
+ }
+
+ $.fn.live = function(event, callback){
+ $(document.body).delegate(this.selector, event, callback)
+ return this
+ }
+ $.fn.die = function(event, callback){
+ $(document.body).undelegate(this.selector, event, callback)
+ return this
+ }
+
+ $.fn.on = function(event, selector, callback){
+ return !selector || $.isFunction(selector) ?
+ this.bind(event, selector || callback) : this.delegate(selector, event, callback)
+ }
+ $.fn.off = function(event, selector, callback){
+ return !selector || $.isFunction(selector) ?
+ this.unbind(event, selector || callback) : this.undelegate(selector, event, callback)
+ }
+
+ $.fn.trigger = function(event, data){
+ if (typeof event == 'string' || $.isPlainObject(event)) event = $.Event(event)
+ fix(event)
+ event.data = data
+ return this.each(function(){
+ // items in the collection might not be DOM elements
+ // (todo: possibly support events on plain old objects)
+ if('dispatchEvent' in this) this.dispatchEvent(event)
+ })
+ }
+
+ // triggers event handlers on current element just as if an event occurred,
+ // doesn't trigger an actual event, doesn't bubble
+ $.fn.triggerHandler = function(event, data){
+ var e, result
+ this.each(function(i, element){
+ e = createProxy(typeof event == 'string' ? $.Event(event) : event)
+ e.data = data
+ e.target = element
+ $.each(findHandlers(element, event.type || event), function(i, handler){
+ result = handler.proxy(e)
+ if (e.isImmediatePropagationStopped()) return false
+ })
+ })
+ return result
+ }
+
+ // shortcut methods for `.bind(event, fn)` for each event type
+ ;('focusin focusout load resize scroll unload click dblclick '+
+ 'mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave '+
+ 'change select keydown keypress keyup error').split(' ').forEach(function(event) {
+ $.fn[event] = function(callback) {
+ return callback ?
+ this.bind(event, callback) :
+ this.trigger(event)
+ }
+ })
+
+ ;['focus', 'blur'].forEach(function(name) {
+ $.fn[name] = function(callback) {
+ if (callback) this.bind(name, callback)
+ else this.each(function(){
+ try { this[name]() }
+ catch(e) {}
+ })
+ return this
+ }
+ })
+
+ $.Event = function(type, props) {
+ if (typeof type != 'string') props = type, type = props.type
+ var event = document.createEvent(specialEvents[type] || 'Events'), bubbles = true
+ if (props) for (var name in props) (name == 'bubbles') ? (bubbles = !!props[name]) : (event[name] = props[name])
+ event.initEvent(type, bubbles, true, null, null, null, null, null, null, null, null, null, null, null, null)
+ event.isDefaultPrevented = function(){ return this.defaultPrevented }
+ return event
+ }
+
+})(Zepto)
diff --git a/frontend/gamma/js/Zepto/form.js b/frontend/gamma/js/Zepto/form.js
new file mode 100644
index 0000000..4d562a6
--- a/dev/null
+++ b/frontend/gamma/js/Zepto/form.js
@@ -0,0 +1,40 @@
+// Zepto.js
+// (c) 2010-2012 Thomas Fuchs
+// Zepto.js may be freely distributed under the MIT license.
+
+;(function ($) {
+ $.fn.serializeArray = function () {
+ var result = [], el
+ $( Array.prototype.slice.call(this.get(0).elements) ).each(function () {
+ el = $(this)
+ var type = el.attr('type')
+ if (this.nodeName.toLowerCase() != 'fieldset' &&
+ !this.disabled && type != 'submit' && type != 'reset' && type != 'button' &&
+ ((type != 'radio' && type != 'checkbox') || this.checked))
+ result.push({
+ name: el.attr('name'),
+ value: el.val()
+ })
+ })
+ return result
+ }
+
+ $.fn.serialize = function () {
+ var result = []
+ this.serializeArray().forEach(function (elm) {
+ result.push( encodeURIComponent(elm.name) + '=' + encodeURIComponent(elm.value) )
+ })
+ return result.join('&')
+ }
+
+ $.fn.submit = function (callback) {
+ if (callback) this.bind('submit', callback)
+ else if (this.length) {
+ var event = $.Event('submit')
+ this.eq(0).trigger(event)
+ if (!event.defaultPrevented) this.get(0).submit()
+ }
+ return this
+ }
+
+})(Zepto)
diff --git a/frontend/gamma/js/Zepto/fx.js b/frontend/gamma/js/Zepto/fx.js
new file mode 100644
index 0000000..575449a
--- a/dev/null
+++ b/frontend/gamma/js/Zepto/fx.js
@@ -0,0 +1,102 @@
+// Zepto.js
+// (c) 2010-2012 Thomas Fuchs
+// Zepto.js may be freely distributed under the MIT license.
+
+;(function($, undefined){
+ var prefix = '', eventPrefix, endEventName, endAnimationName,
+ vendors = { Webkit: 'webkit', Moz: '', O: 'o', ms: 'MS' },
+ document = window.document, testEl = document.createElement('div'),
+ supportedTransforms = /^((translate|rotate|scale)(X|Y|Z|3d)?|matrix(3d)?|perspective|skew(X|Y)?)$/i,
+ transform,
+ transitionProperty, transitionDuration, transitionTiming,
+ animationName, animationDuration, animationTiming,
+ cssReset = {}
+
+ function dasherize(str) { return downcase(str.replace(/([a-z])([A-Z])/, '$1-$2')) }
+ function downcase(str) { return str.toLowerCase() }
+ function normalizeEvent(name) { return eventPrefix ? eventPrefix + name : downcase(name) }
+
+ $.each(vendors, function(vendor, event){
+ if (testEl.style[vendor + 'TransitionProperty'] !== undefined) {
+ prefix = '-' + downcase(vendor) + '-'
+ eventPrefix = event
+ return false
+ }
+ })
+
+ transform = prefix + 'transform'
+ cssReset[transitionProperty = prefix + 'transition-property'] =
+ cssReset[transitionDuration = prefix + 'transition-duration'] =
+ cssReset[transitionTiming = prefix + 'transition-timing-function'] =
+ cssReset[animationName = prefix + 'animation-name'] =
+ cssReset[animationDuration = prefix + 'animation-duration'] =
+ cssReset[animationTiming = prefix + 'animation-timing-function'] = ''
+
+ $.fx = {
+ off: (eventPrefix === undefined && testEl.style.transitionProperty === undefined),
+ speeds: { _default: 400, fast: 200, slow: 600 },
+ cssPrefix: prefix,
+ transitionEnd: normalizeEvent('TransitionEnd'),
+ animationEnd: normalizeEvent('AnimationEnd')
+ }
+
+ $.fn.animate = function(properties, duration, ease, callback){
+ if ($.isObject(duration))
+ ease = duration.easing, callback = duration.complete, duration = duration.duration
+ if (duration) duration = (typeof duration == 'number' ? duration :
+ ($.fx.speeds[duration] || $.fx.speeds._default)) / 1000
+ return this.anim(properties, duration, ease, callback)
+ }
+
+ $.fn.anim = function(properties, duration, ease, callback){
+ var key, cssValues = {}, cssProperties, transforms = '',
+ that = this, wrappedCallback, endEvent = $.fx.transitionEnd
+
+ if (duration === undefined) duration = 0.4
+ if ($.fx.off) duration = 0
+
+ if (typeof properties == 'string') {
+ // keyframe animation
+ cssValues[animationName] = properties
+ cssValues[animationDuration] = duration + 's'
+ cssValues[animationTiming] = (ease || 'linear')
+ endEvent = $.fx.animationEnd
+ } else {
+ cssProperties = []
+ // CSS transitions
+ for (key in properties)
+ if (supportedTransforms.test(key)) transforms += key + '(' + properties[key] + ') '
+ else cssValues[key] = properties[key], cssProperties.push(dasherize(key))
+
+ if (transforms) cssValues[transform] = transforms, cssProperties.push(transform)
+ if (duration > 0 && typeof properties === 'object') {
+ cssValues[transitionProperty] = cssProperties.join(', ')
+ cssValues[transitionDuration] = duration + 's'
+ cssValues[transitionTiming] = (ease || 'linear')
+ }
+ }
+
+ wrappedCallback = function(event){
+ if (typeof event !== 'undefined') {
+ if (event.target !== event.currentTarget) return // makes sure the event didn't bubble from "below"
+ $(event.target).unbind(endEvent, arguments.callee)
+ }
+ $(this).css(cssReset)
+ callback && callback.call(this)
+ }
+ if (duration > 0) this.bind(endEvent, wrappedCallback)
+
+ // trigger page reflow so new elements can animate
+ this.size() && this.get(0).clientLeft
+
+ this.css(cssValues)
+
+ if (duration <= 0) setTimeout(function() {
+ that.each(function(){ wrappedCallback.call(this) })
+ }, 0)
+
+ return this
+ }
+
+ testEl = null
+})(Zepto)
diff --git a/frontend/gamma/js/Zepto/fx_methods.js b/frontend/gamma/js/Zepto/fx_methods.js
new file mode 100644
index 0000000..23daf6e
--- a/dev/null
+++ b/frontend/gamma/js/Zepto/fx_methods.js
@@ -0,0 +1,71 @@
+// Zepto.js
+// (c) 2010-2012 Thomas Fuchs
+// Zepto.js may be freely distributed under the MIT license.
+
+;(function($, undefined){
+ var document = window.document, docElem = document.documentElement,
+ origShow = $.fn.show, origHide = $.fn.hide, origToggle = $.fn.toggle
+
+ function anim(el, speed, opacity, scale, callback) {
+ if (typeof speed == 'function' && !callback) callback = speed, speed = undefined
+ var props = { opacity: opacity }
+ if (scale) {
+ props.scale = scale
+ el.css($.fx.cssPrefix + 'transform-origin', '0 0')
+ }
+ return el.animate(props, speed, null, callback)
+ }
+
+ function hide(el, speed, scale, callback) {
+ return anim(el, speed, 0, scale, function(){
+ origHide.call($(this))
+ callback && callback.call(this)
+ })
+ }
+
+ $.fn.show = function(speed, callback) {
+ origShow.call(this)
+ if (speed === undefined) speed = 0
+ else this.css('opacity', 0)
+ return anim(this, speed, 1, '1,1', callback)
+ }
+
+ $.fn.hide = function(speed, callback) {
+ if (speed === undefined) return origHide.call(this)
+ else return hide(this, speed, '0,0', callback)
+ }
+
+ $.fn.toggle = function(speed, callback) {
+ if (speed === undefined || typeof speed == 'boolean')
+ return origToggle.call(this, speed)
+ else return this.each(function(){
+ var el = $(this)
+ el[el.css('display') == 'none' ? 'show' : 'hide'](speed, callback)
+ })
+ }
+
+ $.fn.fadeTo = function(speed, opacity, callback) {
+ return anim(this, speed, opacity, null, callback)
+ }
+
+ $.fn.fadeIn = function(speed, callback) {
+ var target = this.css('opacity')
+ if (target > 0) this.css('opacity', 0)
+ else target = 1
+ return origShow.call(this).fadeTo(speed, target, callback)
+ }
+
+ $.fn.fadeOut = function(speed, callback) {
+ return hide(this, speed, null, callback)
+ }
+
+ $.fn.fadeToggle = function(speed, callback) {
+ return this.each(function(){
+ var el = $(this)
+ el[
+ (el.css('opacity') == 0 || el.css('display') == 'none') ? 'fadeIn' : 'fadeOut'
+ ](speed, callback)
+ })
+ }
+
+})(Zepto)
diff --git a/frontend/gamma/js/Zepto/gesture.js b/frontend/gamma/js/Zepto/gesture.js
new file mode 100644
index 0000000..035455b
--- a/dev/null
+++ b/frontend/gamma/js/Zepto/gesture.js
@@ -0,0 +1,35 @@
+// Zepto.js
+// (c) 2010-2012 Thomas Fuchs
+// Zepto.js may be freely distributed under the MIT license.
+
+;(function($){
+ if ($.os.ios) {
+ var gesture = {}, gestureTimeout
+
+ function parentIfText(node){
+ return 'tagName' in node ? node : node.parentNode
+ }
+
+ $(document).bind('gesturestart', function(e){
+ var now = Date.now(), delta = now - (gesture.last || now)
+ gesture.target = parentIfText(e.target)
+ gestureTimeout && clearTimeout(gestureTimeout)
+ gesture.e1 = e.scale
+ gesture.last = now
+ }).bind('gesturechange', function(e){
+ gesture.e2 = e.scale
+ }).bind('gestureend', function(e){
+ if (gesture.e2 > 0) {
+ Math.abs(gesture.e1 - gesture.e2) != 0 && $(gesture.target).trigger('pinch') &&
+ $(gesture.target).trigger('pinch' + (gesture.e1 - gesture.e2 > 0 ? 'In' : 'Out'))
+ gesture.e1 = gesture.e2 = gesture.last = 0
+ } else if ('last' in gesture) {
+ gesture = {}
+ }
+ })
+
+ ;['pinch', 'pinchIn', 'pinchOut'].forEach(function(m){
+ $.fn[m] = function(callback){ return this.bind(m, callback) }
+ })
+ }
+})(Zepto)
diff --git a/frontend/gamma/js/Zepto/polyfill.js b/frontend/gamma/js/Zepto/polyfill.js
new file mode 100644
index 0000000..933d1f8
--- a/dev/null
+++ b/frontend/gamma/js/Zepto/polyfill.js
@@ -0,0 +1,36 @@
+// Zepto.js
+// (c) 2010-2012 Thomas Fuchs
+// Zepto.js may be freely distributed under the MIT license.
+
+;(function(undefined){
+ if (String.prototype.trim === undefined) // fix for iOS 3.2
+ String.prototype.trim = function(){ return this.replace(/^\s+/, '').replace(/\s+$/, '') }
+
+ // For iOS 3.x
+ // from https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/reduce
+ if (Array.prototype.reduce === undefined)
+ Array.prototype.reduce = function(fun){
+ if(this === void 0 || this === null) throw new TypeError()
+ var t = Object(this), len = t.length >>> 0, k = 0, accumulator
+ if(typeof fun != 'function') throw new TypeError()
+ if(len == 0 && arguments.length == 1) throw new TypeError()
+
+ if(arguments.length >= 2)
+ accumulator = arguments[1]
+ else
+ do{
+ if(k in t){
+ accumulator = t[k++]
+ break
+ }
+ if(++k >= len) throw new TypeError()
+ } while (true)
+
+ while (k < len){
+ if(k in t) accumulator = fun.call(undefined, accumulator, t[k], k, t)
+ k++
+ }
+ return accumulator
+ }
+
+})()
diff --git a/frontend/gamma/js/Zepto/selector.js b/frontend/gamma/js/Zepto/selector.js
new file mode 100644
index 0000000..c0b035a
--- a/dev/null
+++ b/frontend/gamma/js/Zepto/selector.js
@@ -0,0 +1,81 @@
+;(function($){
+ var zepto = $.zepto, oldQsa = zepto.qsa, oldMatches = zepto.matches
+
+ function visible(elem){
+ elem = $(elem)
+ return !!(elem.width() || elem.height()) && elem.css("display") !== "none"
+ }
+
+ // Implements a subset from:
+ // http://api.jquery.com/category/selectors/jquery-selector-extensions/
+ //
+ // Each filter function receives the current index, all nodes in the
+ // considered set, and a value if there were parentheses. The value
+ // of `this` is the node currently being considered. The function returns the
+ // resulting node(s), null, or undefined.
+ //
+ // Complex selectors are not supported:
+ // li:has(label:contains("foo")) + li:has(label:contains("bar"))
+ // ul.inner:first > li
+ var filters = $.expr[':'] = {
+ visible: function(){ if (visible(this)) return this },
+ hidden: function(){ if (!visible(this)) return this },
+ selected: function(){ if (this.selected) return this },
+ checked: function(){ if (this.checked) return this },
+ parent: function(){ return this.parentNode },
+ first: function(idx){ if (idx === 0) return this },
+ last: function(idx, nodes){ if (idx === nodes.length - 1) return this },
+ eq: function(idx, _, value){ if (idx === value) return this },
+ contains: function(idx, _, text){ if ($(this).text().indexOf(text) > -1) return this },
+ has: function(idx, _, sel){ if (zepto.qsa(this, sel).length) return this }
+ }
+
+ var filterRe = new RegExp('(.*):(\\w+)(?:\\(([^)]+)\\))?$\\s*'),
+ childRe = /^\s*>/,
+ classTag = 'Zepto' + (+new Date())
+
+ function process(sel, fn) {
+ // quote the hash in `a[href^=#]` expression
+ sel = sel.replace(/=#\]/g, '="#"]')
+ var filter, arg, match = filterRe.exec(sel)
+ if (match && match[2] in filters) {
+ var filter = filters[match[2]], arg = match[3]
+ sel = match[1]
+ if (arg) {
+ var num = Number(arg)
+ if (isNaN(num)) arg = arg.replace(/^["']|["']$/g, '')
+ else arg = num
+ }
+ }
+ return fn(sel, filter, arg)
+ }
+
+ zepto.qsa = function(node, selector) {
+ return process(selector, function(sel, filter, arg){
+ try {
+ var taggedParent
+ if (!sel && filter) sel = '*'
+ else if (childRe.test(sel))
+ // support "> *" child queries by tagging the parent node with a
+ // unique class and prepending that classname onto the selector
+ taggedParent = $(node).addClass(classTag), sel = '.'+classTag+' '+sel
+
+ var nodes = oldQsa(node, sel)
+ } catch(e) {
+ console.error('error performing selector: %o', selector)
+ throw e
+ } finally {
+ if (taggedParent) taggedParent.removeClass(classTag)
+ }
+ return !filter ? nodes :
+ zepto.uniq($.map(nodes, function(n, i){ return filter.call(n, i, nodes, arg) }))
+ })
+ }
+
+ zepto.matches = function(node, selector){
+ return process(selector, function(sel, filter, arg){
+ return (!sel || oldMatches(node, sel)) &&
+ (!filter || filter.call(node, null, arg) === node)
+ })
+ }
+})(Zepto)
diff --git a/frontend/gamma/js/Zepto/stack.js b/frontend/gamma/js/Zepto/stack.js
new file mode 100644
index 0000000..c995285
--- a/dev/null
+++ b/frontend/gamma/js/Zepto/stack.js
@@ -0,0 +1,22 @@
+// Zepto.js
+// (c) 2010-2012 Thomas Fuchs
+// Zepto.js may be freely distributed under the MIT license.
+
+;(function($){
+ $.fn.end = function(){
+ return this.prevObject || $()
+ }
+
+ $.fn.andSelf = function(){
+ return this.add(this.prevObject || $())
+ }
+
+ 'filter,add,not,eq,first,last,find,closest,parents,parent,children,siblings'.split(',').forEach(function(property){
+ var fn = $.fn[property]
+ $.fn[property] = function(){
+ var ret = fn.apply(this, arguments)
+ ret.prevObject = this
+ return ret
+ }
+ })
+})(Zepto)
diff --git a/frontend/gamma/js/Zepto/touch.js b/frontend/gamma/js/Zepto/touch.js
new file mode 100644
index 0000000..af109b9
--- a/dev/null
+++ b/frontend/gamma/js/Zepto/touch.js
@@ -0,0 +1,113 @@
+// Zepto.js
+// (c) 2010-2012 Thomas Fuchs
+// Zepto.js may be freely distributed under the MIT license.
+
+;(function($){
+ var touch = {},
+ touchTimeout, tapTimeout, swipeTimeout,
+ longTapDelay = 750, longTapTimeout
+
+ function parentIfText(node) {
+ return 'tagName' in node ? node : node.parentNode
+ }
+
+ function swipeDirection(x1, x2, y1, y2) {
+ var xDelta = Math.abs(x1 - x2), yDelta = Math.abs(y1 - y2)
+ return xDelta >= yDelta ? (x1 - x2 > 0 ? 'Left' : 'Right') : (y1 - y2 > 0 ? 'Up' : 'Down')
+ }
+
+ function longTap() {
+ longTapTimeout = null
+ if (touch.last) {
+ touch.el.trigger('longTap')
+ touch = {}
+ }
+ }
+
+ function cancelLongTap() {
+ if (longTapTimeout) clearTimeout(longTapTimeout)
+ longTapTimeout = null
+ }
+
+ function cancelAll() {
+ if (touchTimeout) clearTimeout(touchTimeout)
+ if (tapTimeout) clearTimeout(tapTimeout)
+ if (swipeTimeout) clearTimeout(swipeTimeout)
+ if (longTapTimeout) clearTimeout(longTapTimeout)
+ touchTimeout = tapTimeout = swipeTimeout = longTapTimeout = null
+ touch = {}
+ }
+
+ $(document).ready(function(){
+ var now, delta
+
+ $(document.body)
+ .bind('touchstart', function(e){
+ now = Date.now()
+ delta = now - (touch.last || now)
+ touch.el = $(parentIfText(e.touches[0].target))
+ touchTimeout && clearTimeout(touchTimeout)
+ touch.x1 = e.touches[0].pageX
+ touch.y1 = e.touches[0].pageY
+ if (delta > 0 && delta <= 250) touch.isDoubleTap = true
+ touch.last = now
+ longTapTimeout = setTimeout(longTap, longTapDelay)
+ })
+ .bind('touchmove', function(e){
+ cancelLongTap()
+ touch.x2 = e.touches[0].pageX
+ touch.y2 = e.touches[0].pageY
+ })
+ .bind('touchend', function(e){
+ cancelLongTap()
+
+ // swipe
+ if ((touch.x2 && Math.abs(touch.x1 - touch.x2) > 30) ||
+ (touch.y2 && Math.abs(touch.y1 - touch.y2) > 30))
+
+ swipeTimeout = setTimeout(function() {
+ touch.el.trigger('swipe')
+ touch.el.trigger('swipe' + (swipeDirection(touch.x1, touch.x2, touch.y1, touch.y2)))
+ touch = {}
+ }, 0)
+
+ // normal tap
+ else if ('last' in touch)
+
+ // delay by one tick so we can cancel the 'tap' event if 'scroll' fires
+ // ('tap' fires before 'scroll')
+ tapTimeout = setTimeout(function() {
+
+ // trigger universal 'tap' with the option to cancelTouch()
+ // (cancelTouch cancels processing of single vs double taps for faster 'tap' response)
+ var event = $.Event('tap')
+ event.cancelTouch = cancelAll
+ touch.el.trigger(event)
+
+ // trigger double tap immediately
+ if (touch.isDoubleTap) {
+ touch.el.trigger('doubleTap')
+ touch = {}
+ }
+
+ // trigger single tap after 250ms of inactivity
+ else {
+ touchTimeout = setTimeout(function(){
+ touchTimeout = null
+ touch.el.trigger('singleTap')
+ touch = {}
+ }, 250)
+ }
+
+ }, 0)
+
+ })
+ .bind('touchcancel', cancelAll)
+
+ $(window).bind('scroll', cancelAll)
+ })
+
+ ;['swipe', 'swipeLeft', 'swipeRight', 'swipeUp', 'swipeDown', 'doubleTap', 'tap', 'singleTap', 'longTap'].forEach(function(m){
+ $.fn[m] = function(callback){ return this.bind(m, callback) }
+ })
+})(Zepto)
diff --git a/frontend/gamma/js/Zepto/zepto.js b/frontend/gamma/js/Zepto/zepto.js
new file mode 100644
index 0000000..e67b3a2
--- a/dev/null
+++ b/frontend/gamma/js/Zepto/zepto.js
@@ -0,0 +1,751 @@
+// Zepto.js
+// (c) 2010-2012 Thomas Fuchs
+// Zepto.js may be freely distributed under the MIT license.
+
+var Zepto = (function() {
+ var undefined, key, $, classList, emptyArray = [], slice = emptyArray.slice, filter = emptyArray.filter,
+ document = window.document,
+ elementDisplay = {}, classCache = {},
+ getComputedStyle = document.defaultView.getComputedStyle,
+ cssNumber = { 'column-count': 1, 'columns': 1, 'font-weight': 1, 'line-height': 1,'opacity': 1, 'z-index': 1, 'zoom': 1 },
+ fragmentRE = /^\s*<(\w+|!)[^>]*>/,
+ tagExpanderRE = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,
+ rootNodeRE = /^(?:body|html)$/i,
+
+ // special attributes that should be get/set via method calls
+ methodAttributes = ['val', 'css', 'html', 'text', 'data', 'width', 'height', 'offset'],
+
+ adjacencyOperators = [ 'after', 'prepend', 'before', 'append' ],
+ table = document.createElement('table'),
+ tableRow = document.createElement('tr'),
+ containers = {
+ 'tr': document.createElement('tbody'),
+ 'tbody': table, 'thead': table, 'tfoot': table,
+ 'td': tableRow, 'th': tableRow,
+ '*': document.createElement('div')
+ },
+ readyRE = /complete|loaded|interactive/,
+ classSelectorRE = /^\.([\w-]+)$/,
+ idSelectorRE = /^#([\w-]*)$/,
+ tagSelectorRE = /^[\w-]+$/,
+ toString = {}.toString,
+ zepto = {},
+ camelize, uniq,
+ tempParent = document.createElement('div')
+
+ zepto.matches = function(element, selector) {
+ if (!element || element.nodeType !== 1) return false
+ var matchesSelector = element.webkitMatchesSelector || element.mozMatchesSelector ||
+ element.oMatchesSelector || element.matchesSelector
+ if (matchesSelector) return matchesSelector.call(element, selector)
+ // fall back to performing a selector:
+ var match, parent = element.parentNode, temp = !parent
+ if (temp) (parent = tempParent).appendChild(element)
+ match = ~zepto.qsa(parent, selector).indexOf(element)
+ temp && tempParent.removeChild(element)
+ return match
+ }
+
+ function isFunction(value) { return toString.call(value) == "[object Function]" }
+ function isObject(value) { return value instanceof Object }
+ function isPlainObject(value) {
+ return isObject(value) && value != window && value.__proto__ == Object.prototype
+ }
+ function isArray(value) { return value instanceof Array }
+ function likeArray(obj) { return typeof obj.length == 'number' }
+
+ function compact(array) { return filter.call(array, function(item){ return item != null }) }
+ function flatten(array) { return array.length > 0 ? $.fn.concat.apply([], array) : array }
+ camelize = function(str){ return str.replace(/-+(.)?/g, function(match, chr){ return chr ? chr.toUpperCase() : '' }) }
+ function dasherize(str) {
+ return str.replace(/::/g, '/')
+ .replace(/([A-Z]+)([A-Z][a-z])/g, '$1_$2')
+ .replace(/([a-z\d])([A-Z])/g, '$1_$2')
+ .replace(/_/g, '-')
+ .toLowerCase()
+ }
+ uniq = function(array){ return filter.call(array, function(item, idx){ return array.indexOf(item) == idx }) }
+
+ function classRE(name) {
+ return name in classCache ?
+ classCache[name] : (classCache[name] = new RegExp('(^|\\s)' + name + '(\\s|$)'))
+ }
+
+ function maybeAddPx(name, value) {
+ return (typeof value == "number" && !cssNumber[dasherize(name)]) ? value + "px" : value
+ }
+
+ function defaultDisplay(nodeName) {
+ var element, display
+ if (!elementDisplay[nodeName]) {
+ element = document.createElement(nodeName)
+ document.body.appendChild(element)
+ display = getComputedStyle(element, '').getPropertyValue("display")
+ element.parentNode.removeChild(element)
+ display == "none" && (display = "block")
+ elementDisplay[nodeName] = display
+ }
+ return elementDisplay[nodeName]
+ }
+
+ function children(element) {
+ return 'children' in element ?
+ slice.call(element.children) :
+ $.map(element.childNodes, function(node){ if (node.nodeType == 1) return node })
+ }
+
+ // `$.zepto.fragment` takes a html string and an optional tag name
+ // to generate DOM nodes nodes from the given html string.
+ // The generated DOM nodes are returned as an array.
+ // This function can be overriden in plugins for example to make
+ // it compatible with browsers that don't support the DOM fully.
+ zepto.fragment = function(html, name, properties) {
+ if (html.replace) html = html.replace(tagExpanderRE, "<$1></$2>")
+ if (name === undefined) name = fragmentRE.test(html) && RegExp.$1
+ if (!(name in containers)) name = '*'
+
+ var nodes, dom, container = containers[name]
+ container.innerHTML = '' + html
+ dom = $.each(slice.call(container.childNodes), function(){
+ container.removeChild(this)
+ })
+ if (isPlainObject(properties)) {
+ nodes = $(dom)
+ $.each(properties, function(key, value) {
+ if (methodAttributes.indexOf(key) > -1) nodes[key](value)
+ else nodes.attr(key, value)
+ })
+ }
+ return dom
+ }
+
+ // `$.zepto.Z` swaps out the prototype of the given `dom` array
+ // of nodes with `$.fn` and thus supplying all the Zepto functions
+ // to the array. Note that `__proto__` is not supported on Internet
+ // Explorer. This method can be overriden in plugins.
+ zepto.Z = function(dom, selector) {
+ dom = dom || []
+ dom.__proto__ = arguments.callee.prototype
+ dom.selector = selector || ''
+ return dom
+ }
+
+ // `$.zepto.isZ` should return `true` if the given object is a Zepto
+ // collection. This method can be overriden in plugins.
+ zepto.isZ = function(object) {
+ return object instanceof zepto.Z
+ }
+
+ // `$.zepto.init` is Zepto's counterpart to jQuery's `$.fn.init` and
+ // takes a CSS selector and an optional context (and handles various
+ // special cases).
+ // This method can be overriden in plugins.
+ zepto.init = function(selector, context) {
+ // If nothing given, return an empty Zepto collection
+ if (!selector) return zepto.Z()
+ // If a function is given, call it when the DOM is ready
+ else if (isFunction(selector)) return $(document).ready(selector)
+ // If a Zepto collection is given, juts return it
+ else if (zepto.isZ(selector)) return selector
+ else {
+ var dom
+ // normalize array if an array of nodes is given
+ if (isArray(selector)) dom = compact(selector)
+ // Wrap DOM nodes. If a plain object is given, duplicate it.
+ else if (isObject(selector))
+ dom = [isPlainObject(selector) ? $.extend({}, selector) : selector], selector = null
+ // If it's a html fragment, create nodes from it
+ else if (fragmentRE.test(selector))
+ dom = zepto.fragment(selector.trim(), RegExp.$1, context), selector = null
+ // If there's a context, create a collection on that context first, and select
+ // nodes from there
+ else if (context !== undefined) return $(context).find(selector)
+ // And last but no least, if it's a CSS selector, use it to select nodes.
+ else dom = zepto.qsa(document, selector)
+ // create a new Zepto collection from the nodes found
+ return zepto.Z(dom, selector)
+ }
+ }
+
+ // `$` will be the base `Zepto` object. When calling this
+ // function just call `$.zepto.init, which makes the implementation
+ // details of selecting nodes and creating Zepto collections
+ // patchable in plugins.
+ $ = function(selector, context){
+ return zepto.init(selector, context)
+ }
+
+ function extend(target, source, deep) {
+ for (key in source)
+ if (deep && isPlainObject(source[key])) {
+ if (!isPlainObject(target[key])) target[key] = {}
+ extend(target[key], source[key], deep)
+ }
+ else if (source[key] !== undefined) target[key] = source[key]
+ }
+
+ // Copy all but undefined properties from one or more
+ // objects to the `target` object.
+ $.extend = function(target){
+ var deep, args = slice.call(arguments, 1)
+ if (typeof target == 'boolean') {
+ deep = target
+ target = args.shift()
+ }
+ args.forEach(function(arg){ extend(target, arg, deep) })
+ return target
+ }
+
+ // `$.zepto.qsa` is Zepto's CSS selector implementation which
+ // uses `document.querySelectorAll` and optimizes for some special cases, like `#id`.
+ // This method can be overriden in plugins.
+ zepto.qsa = function(element, selector){
+ var found
+ return (element === document && idSelectorRE.test(selector)) ?
+ ( (found = element.getElementById(RegExp.$1)) ? [found] : [] ) :
+ (element.nodeType !== 1 && element.nodeType !== 9) ? [] :
+ slice.call(
+ classSelectorRE.test(selector) ? element.getElementsByClassName(RegExp.$1) :
+ tagSelectorRE.test(selector) ? element.getElementsByTagName(selector) :
+ element.querySelectorAll(selector)
+ )
+ }
+
+ function filtered(nodes, selector) {
+ return selector === undefined ? $(nodes) : $(nodes).filter(selector)
+ }
+
+ $.contains = function(parent, node) {
+ return parent !== node && parent.contains(node)
+ }
+
+ function funcArg(context, arg, idx, payload) {
+ return isFunction(arg) ? arg.call(context, idx, payload) : arg
+ }
+
+ function setAttribute(node, name, value) {
+ value == null ? node.removeAttribute(name) : node.setAttribute(name, value)
+ }
+
+ // access className property while respecting SVGAnimatedString
+ function className(node, value){
+ var klass = node.className,
+ svg = klass && klass.baseVal !== undefined
+
+ if (value === undefined) return svg ? klass.baseVal : klass
+ svg ? (klass.baseVal = value) : (node.className = value)
+ }
+
+ // "true" => true
+ // "false" => false
+ // "null" => null
+ // "42" => 42
+ // "42.5" => 42.5
+ // JSON => parse if valid
+ // String => self
+ function deserializeValue(value) {
+ var num
+ try {
+ return value ?
+ value == "true" ||
+ ( value == "false" ? false :
+ value == "null" ? null :
+ !isNaN(num = Number(value)) ? num :
+ /^[\[\{]/.test(value) ? $.parseJSON(value) :
+ value )
+ : value
+ } catch(e) {
+ return value
+ }
+ }
+
+ $.isFunction = isFunction
+ $.isObject = isObject
+ $.isArray = isArray
+ $.isPlainObject = isPlainObject
+
+ $.inArray = function(elem, array, i){
+ return emptyArray.indexOf.call(array, elem, i)
+ }
+
+ $.camelCase = camelize
+ $.trim = function(str) { return str.trim() }
+
+ // plugin compatibility
+ $.uuid = 0
+ $.support = { }
+ $.expr = { }
+
+ $.map = function(elements, callback){
+ var value, values = [], i, key
+ if (likeArray(elements))
+ for (i = 0; i < elements.length; i++) {
+ value = callback(elements[i], i)
+ if (value != null) values.push(value)
+ }
+ else
+ for (key in elements) {
+ value = callback(elements[key], key)
+ if (value != null) values.push(value)
+ }
+ return flatten(values)
+ }
+
+ $.each = function(elements, callback){
+ var i, key
+ if (likeArray(elements)) {
+ for (i = 0; i < elements.length; i++)
+ if (callback.call(elements[i], i, elements[i]) === false) return elements
+ } else {
+ for (key in elements)
+ if (callback.call(elements[key], key, elements[key]) === false) return elements
+ }
+
+ return elements
+ }
+
+ $.grep = function(elements, callback){
+ return filter.call(elements, callback)
+ }
+
+ if (window.JSON) $.parseJSON = JSON.parse
+
+ // Define methods that will be available on all
+ // Zepto collections
+ $.fn = {
+ // Because a collection acts like an array
+ // copy over these useful array functions.
+ forEach: emptyArray.forEach,
+ reduce: emptyArray.reduce,
+ push: emptyArray.push,
+ sort: emptyArray.sort,
+ indexOf: emptyArray.indexOf,
+ concat: emptyArray.concat,
+
+ // `map` and `slice` in the jQuery API work differently
+ // from their array counterparts
+ map: function(fn){
+ return $($.map(this, function(el, i){ return fn.call(el, i, el) }))
+ },
+ slice: function(){
+ return $(slice.apply(this, arguments))
+ },
+
+ ready: function(callback){
+ if (readyRE.test(document.readyState)) callback($)
+ else document.addEventListener('DOMContentLoaded', function(){ callback($) }, false)
+ return this
+ },
+ get: function(idx){
+ return idx === undefined ? slice.call(this) : this[idx]
+ },
+ toArray: function(){ return this.get() },
+ size: function(){
+ return this.length
+ },
+ remove: function(){
+ return this.each(function(){
+ if (this.parentNode != null)
+ this.parentNode.removeChild(this)
+ })
+ },
+ each: function(callback){
+ emptyArray.every.call(this, function(el, idx){
+ return callback.call(el, idx, el) !== false
+ })
+ return this
+ },
+ filter: function(selector){
+ if (isFunction(selector)) return this.not(this.not(selector))
+ return $(filter.call(this, function(element){
+ return zepto.matches(element, selector)
+ }))
+ },
+ add: function(selector,context){
+ return $(uniq(this.concat($(selector,context))))
+ },
+ is: function(selector){
+ return this.length > 0 && zepto.matches(this[0], selector)
+ },
+ not: function(selector){
+ var nodes=[]
+ if (isFunction(selector) && selector.call !== undefined)
+ this.each(function(idx){
+ if (!selector.call(this,idx)) nodes.push(this)
+ })
+ else {
+ var excludes = typeof selector == 'string' ? this.filter(selector) :
+ (likeArray(selector) && isFunction(selector.item)) ? slice.call(selector) : $(selector)
+ this.forEach(function(el){
+ if (excludes.indexOf(el) < 0) nodes.push(el)
+ })
+ }
+ return $(nodes)
+ },
+ has: function(selector){
+ return this.filter(function(){
+ return isObject(selector) ?
+ $.contains(this, selector) :
+ $(this).find(selector).size()
+ })
+ },
+ eq: function(idx){
+ return idx === -1 ? this.slice(idx) : this.slice(idx, + idx + 1)
+ },
+ first: function(){
+ var el = this[0]
+ return el && !isObject(el) ? el : $(el)
+ },
+ last: function(){
+ var el = this[this.length - 1]
+ return el && !isObject(el) ? el : $(el)
+ },
+ find: function(selector){
+ var result
+ if (this.length == 1) result = $(zepto.qsa(this[0], selector))
+ else result = this.map(function(){ return zepto.qsa(this, selector) })
+ return result
+ },
+ closest: function(selector, context){
+ var node = this[0]
+ while (node && !zepto.matches(node, selector))
+ node = node !== context && node !== document && node.parentNode
+ return $(node)
+ },
+ parents: function(selector){
+ var ancestors = [], nodes = this
+ while (nodes.length > 0)
+ nodes = $.map(nodes, function(node){
+ if ((node = node.parentNode) && node !== document && ancestors.indexOf(node) < 0) {
+ ancestors.push(node)
+ return node
+ }
+ })
+ return filtered(ancestors, selector)
+ },
+ parent: function(selector){
+ return filtered(uniq(this.pluck('parentNode')), selector)
+ },
+ children: function(selector){
+ return filtered(this.map(function(){ return children(this) }), selector)
+ },
+ contents: function() {
+ return this.map(function() { return slice.call(this.childNodes) })
+ },
+ siblings: function(selector){
+ return filtered(this.map(function(i, el){
+ return filter.call(children(el.parentNode), function(child){ return child!==el })
+ }), selector)
+ },
+ empty: function(){
+ return this.each(function(){ this.innerHTML = '' })
+ },
+ // `pluck` is borrowed from Prototype.js
+ pluck: function(property){
+ return $.map(this, function(el){ return el[property] })
+ },
+ show: function(){
+ return this.each(function(){
+ this.style.display == "none" && (this.style.display = null)
+ if (getComputedStyle(this, '').getPropertyValue("display") == "none")
+ this.style.display = defaultDisplay(this.nodeName)
+ })
+ },
+ replaceWith: function(newContent){
+ return this.before(newContent).remove()
+ },
+ wrap: function(structure){
+ var func = isFunction(structure)
+ if (this[0] && !func)
+ var dom = $(structure).get(0),
+ clone = dom.parentNode || this.length > 1
+
+ return this.each(function(index){
+ $(this).wrapAll(
+ func ? structure.call(this, index) :
+ clone ? dom.cloneNode(true) : dom
+ )
+ })
+ },
+ wrapAll: function(structure){
+ if (this[0]) {
+ $(this[0]).before(structure = $(structure))
+ var children
+ // drill down to the inmost element
+ while ((children = structure.children()).length) structure = children.first()
+ $(structure).append(this)
+ }
+ return this
+ },
+ wrapInner: function(structure){
+ var func = isFunction(structure)
+ return this.each(function(index){
+ var self = $(this), contents = self.contents(),
+ dom = func ? structure.call(this, index) : structure
+ contents.length ? contents.wrapAll(dom) : self.append(dom)
+ })
+ },
+ unwrap: function(){
+ this.parent().each(function(){
+ $(this).replaceWith($(this).children())
+ })
+ return this
+ },
+ clone: function(){
+ return this.map(function(){ return this.cloneNode(true) })
+ },
+ hide: function(){
+ return this.css("display", "none")
+ },
+ toggle: function(setting){
+ return this.each(function(){
+ var el = $(this)
+ ;(setting === undefined ? el.css("display") == "none" : setting) ? el.show() : el.hide()
+ })
+ },
+ prev: function(selector){ return $(this.pluck('previousElementSibling')).filter(selector || '*') },
+ next: function(selector){ return $(this.pluck('nextElementSibling')).filter(selector || '*') },
+ html: function(html){
+ return html === undefined ?
+ (this.length > 0 ? this[0].innerHTML : null) :
+ this.each(function(idx){
+ var originHtml = this.innerHTML
+ $(this).empty().append( funcArg(this, html, idx, originHtml) )
+ })
+ },
+ text: function(text){
+ return text === undefined ?
+ (this.length > 0 ? this[0].textContent : null) :
+ this.each(function(){ this.textContent = text })
+ },
+ attr: function(name, value){
+ var result
+ return (typeof name == 'string' && value === undefined) ?
+ (this.length == 0 || this[0].nodeType !== 1 ? undefined :
+ (name == 'value' && this[0].nodeName == 'INPUT') ? this.val() :
+ (!(result = this[0].getAttribute(name)) && name in this[0]) ? this[0][name] : result
+ ) :
+ this.each(function(idx){
+ if (this.nodeType !== 1) return
+ if (isObject(name)) for (key in name) setAttribute(this, key, name[key])
+ else setAttribute(this, name, funcArg(this, value, idx, this.getAttribute(name)))
+ })
+ },
+ removeAttr: function(name){
+ return this.each(function(){ this.nodeType === 1 && setAttribute(this, name) })
+ },
+ prop: function(name, value){
+ return (value === undefined) ?
+ (this[0] && this[0][name]) :
+ this.each(function(idx){
+ this[name] = funcArg(this, value, idx, this[name])
+ })
+ },
+ data: function(name, value){
+ var data = this.attr('data-' + dasherize(name), value)
+ return data !== null ? deserializeValue(data) : undefined
+ },
+ val: function(value){
+ return (value === undefined) ?
+ (this[0] && (this[0].multiple ?
+ $(this[0]).find('option').filter(function(o){ return this.selected }).pluck('value') :
+ this[0].value)
+ ) :
+ this.each(function(idx){
+ this.value = funcArg(this, value, idx, this.value)
+ })
+ },
+ offset: function(coordinates){
+ if (coordinates) return this.each(function(index){
+ var $this = $(this),
+ coords = funcArg(this, coordinates, index, $this.offset()),
+ parentOffset = $this.offsetParent().offset(),
+ props = {
+ top: coords.top - parentOffset.top,
+ left: coords.left - parentOffset.left
+ }
+
+ if ($this.css('position') == 'static') props['position'] = 'relative'
+ $this.css(props)
+ })
+ if (this.length==0) return null
+ var obj = this[0].getBoundingClientRect()
+ return {
+ left: obj.left + window.pageXOffset,
+ top: obj.top + window.pageYOffset,
+ width: obj.width,
+ height: obj.height
+ }
+ },
+ css: function(property, value){
+ if (arguments.length < 2 && typeof property == 'string')
+ return this[0] && (this[0].style[camelize(property)] || getComputedStyle(this[0], '').getPropertyValue(property))
+
+ var css = ''
+ for (key in property)
+ if (!property[key] && property[key] !== 0)
+ this.each(function(){ this.style.removeProperty(dasherize(key)) })
+ else
+ css += dasherize(key) + ':' + maybeAddPx(key, property[key]) + ';'
+
+ if (typeof property == 'string')
+ if (!value && value !== 0)
+ this.each(function(){ this.style.removeProperty(dasherize(property)) })
+ else
+ css = dasherize(property) + ":" + maybeAddPx(property, value)
+
+ return this.each(function(){ this.style.cssText += ';' + css })
+ },
+ index: function(element){
+ return element ? this.indexOf($(element)[0]) : this.parent().children().indexOf(this[0])
+ },
+ hasClass: function(name){
+ return emptyArray.some.call(this, function(el){
+ return this.test(className(el))
+ }, classRE(name))
+ },
+ addClass: function(name){
+ return this.each(function(idx){
+ classList = []
+ var cls = className(this), newName = funcArg(this, name, idx, cls)
+ newName.split(/\s+/g).forEach(function(klass){
+ if (!$(this).hasClass(klass)) classList.push(klass)
+ }, this)
+ classList.length && className(this, cls + (cls ? " " : "") + classList.join(" "))
+ })
+ },
+ removeClass: function(name){
+ return this.each(function(idx){
+ if (name === undefined) return className(this, '')
+ classList = className(this)
+ funcArg(this, name, idx, classList).split(/\s+/g).forEach(function(klass){
+ classList = classList.replace(classRE(klass), " ")
+ })
+ className(this, classList.trim())
+ })
+ },
+ toggleClass: function(name, when){
+ return this.each(function(idx){
+ var newName = funcArg(this, name, idx, className(this))
+ ;(when === undefined ? !$(this).hasClass(newName) : when) ?
+ $(this).addClass(newName) : $(this).removeClass(newName)
+ })
+ },
+ scrollTop: function(){
+ if (!this.length) return
+ return ('scrollTop' in this[0]) ? this[0].scrollTop : this[0].scrollY
+ },
+ position: function() {
+ if (!this.length) return
+
+ var elem = this[0],
+ // Get *real* offsetParent
+ offsetParent = this.offsetParent(),
+ // Get correct offsets
+ offset = this.offset(),
+ parentOffset = rootNodeRE.test(offsetParent[0].nodeName) ? { top: 0, left: 0 } : offsetParent.offset()
+
+ // Subtract element margins
+ // note: when an element has margin: auto the offsetLeft and marginLeft
+ // are the same in Safari causing offset.left to incorrectly be 0
+ offset.top -= parseFloat( $(elem).css('margin-top') ) || 0
+ offset.left -= parseFloat( $(elem).css('margin-left') ) || 0
+
+ // Add offsetParent borders
+ parentOffset.top += parseFloat( $(offsetParent[0]).css('border-top-width') ) || 0
+ parentOffset.left += parseFloat( $(offsetParent[0]).css('border-left-width') ) || 0
+
+ // Subtract the two offsets
+ return {
+ top: offset.top - parentOffset.top,
+ left: offset.left - parentOffset.left
+ }
+ },
+ offsetParent: function() {
+ return this.map(function(){
+ var parent = this.offsetParent || document.body
+ while (parent && !rootNodeRE.test(parent.nodeName) && $(parent).css("position") == "static")
+ parent = parent.offsetParent
+ return parent
+ })
+ }
+ }
+
+ // for now
+ $.fn.detach = $.fn.remove
+
+ // Generate the `width` and `height` functions
+ ;['width', 'height'].forEach(function(dimension){
+ $.fn[dimension] = function(value){
+ var offset, Dimension = dimension.replace(/./, function(m){ return m[0].toUpperCase() })
+ if (value === undefined) return this[0] == window ? window['inner' + Dimension] :
+ this[0] == document ? document.documentElement['offset' + Dimension] :
+ (offset = this.offset()) && offset[dimension]
+ else return this.each(function(idx){
+ var el = $(this)
+ el.css(dimension, funcArg(this, value, idx, el[dimension]()))
+ })
+ }
+ })
+
+ function traverseNode(node, fun) {
+ fun(node)
+ for (var key in node.childNodes) traverseNode(node.childNodes[key], fun)
+ }
+
+ // Generate the `after`, `prepend`, `before`, `append`,
+ // `insertAfter`, `insertBefore`, `appendTo`, and `prependTo` methods.
+ adjacencyOperators.forEach(function(operator, operatorIndex) {
+ var inside = operatorIndex % 2 //=> prepend, append
+
+ $.fn[operator] = function(){
+ // arguments can be nodes, arrays of nodes, Zepto objects and HTML strings
+ var nodes = $.map(arguments, function(n){ return isObject(n) ? n : zepto.fragment(n) }),
+ parent, copyByClone = this.length > 1
+ if (nodes.length < 1) return this
+
+ return this.each(function(_, target){
+ parent = inside ? target : target.parentNode
+
+ // convert all methods to a "before" operation
+ target = operatorIndex == 0 ? target.nextSibling :
+ operatorIndex == 1 ? target.firstChild :
+ operatorIndex == 2 ? target :
+ null
+
+ nodes.forEach(function(node){
+ if (copyByClone) node = node.cloneNode(true)
+ else if (!parent) return $(node).remove()
+
+ traverseNode(parent.insertBefore(node, target), function(el){
+ if (el.nodeName != null && el.nodeName.toUpperCase() === 'SCRIPT' &&
+ (!el.type || el.type === 'text/javascript') && !el.src)
+ window['eval'].call(window, el.innerHTML)
+ })
+ })
+ })
+ }
+
+ // after => insertAfter
+ // prepend => prependTo
+ // before => insertBefore
+ // append => appendTo
+ $.fn[inside ? operator+'To' : 'insert'+(operatorIndex ? 'Before' : 'After')] = function(html){
+ $(html)[operator](this)
+ return this
+ }
+ })
+
+ zepto.Z.prototype = $.fn
+
+ // Export internal API functions in the `$.zepto` namespace
+ zepto.uniq = uniq
+ zepto.deserializeValue = deserializeValue
+ $.zepto = zepto
+
+ return $
+})()
+
+// If `$` is not yet defined, point it to `Zepto`
+window.Zepto = Zepto
+'$' in window || (window.$ = Zepto)
diff --git a/frontend/gamma/js/main_iPhone.js b/frontend/gamma/js/main.mobile.js
index 0644f68..60a32fa 100644
--- a/frontend/gamma/js/main_iPhone.js
+++ b/frontend/gamma/js/main.mobile.js
@@ -47,11 +47,18 @@ Clipperz.PM.RunTime = {};
function run() {
- MochiKit.DOM.removeElement('javaScriptAlert');
Clipperz.PM.Strings.Languages.initSetup();
- Clipperz.PM.RunTime.mainController = new Clipperz.PM.UI.iPhone.Controllers.MainController();
- Clipperz.PM.RunTime.mainController.run(false);
+ Clipperz.PM.RunTime.mainController = new Clipperz.PM.UI.Mobile.Controllers.MainController();
+ Clipperz.PM.RunTime.mainController.run();
}
+// if (navigator.standalone == false) {
+// window.localStorage.setItem('PIN', '1234');
+// alert("Saved PIN");
+// } else {
+// alert (window.localStorage.getItem('PIN'));
+// }
+
+
MochiKit.DOM.addLoadEvent(run);
diff --git a/frontend/gamma/properties/creditsAndCopyrights.txt b/frontend/gamma/properties/creditsAndCopyrights.txt
index 598440d..59f0f0a 100644
--- a/frontend/gamma/properties/creditsAndCopyrights.txt
+++ b/frontend/gamma/properties/creditsAndCopyrights.txt
@@ -7,159 +7,200 @@
# MochiKit (http://www.mochikit.com)
- repository: @mochikit.repository@ (revision: @mochikit.version@)
- * Software licence: http://svn.mochikit.com/mochikit/trunk/licence.txt
+ * Software licence: https://github.com/mochi/mochikit/blob/master/LICENSE.txt
| MochiKit is dual-licensed software. It is available under the terms of the
| MIT License, or the Academic Free License version 2.1. The full text of
| each license is included below.
- |
+ |
+ | The MochiKit.Style.getElementPosition function is adapted from
+ | YAHOO.util.Dom.getXY v0.9.0. which is copyrighted by Yahoo! Inc. and
+ | licensed under the BSD license also reproduced in full below.
+ |
| MIT License
| ===========
- |
+ |
| Copyright (c) 2005 Bob Ippolito. All rights reserved.
- |
- | 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.
- |
- |
+ |
+ | 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.
+ |
+ |
| Academic Free License v. 2.1
| ============================
- |
+ |
| Copyright (c) 2005 Bob Ippolito. All rights reserved.
- |
- | This Academic Free License (the "License") applies to any original work of authorship (the
- | "Original Work") whose owner (the "Licensor") has placed the following notice immediately
- | following the copyright notice for the Original Work:
- |
+ |
+ | This Academic Free License (the "License") applies to any original work of
+ | authorship (the "Original Work") whose owner (the "Licensor") has placed the
+ | following notice immediately following the copyright notice for the Original Work:
+ |
| Licensed under the Academic Free License version 2.1
- |
- | 1) Grant of Copyright License. Licensor hereby grants You a world-wide, royalty-free,
- | non-exclusive, perpetual, sublicenseable license to do the following:
+ |
+ | 1) Grant of Copyright License. Licensor hereby grants You a world-wide, royalty-free,
+ | non-exclusive, perpetual, sublicenseable license to do the following:
|
| a) to reproduce the Original Work in copies;
| b) to prepare derivative works ("Derivative Works") based upon the Original Work;
| c) to distribute copies of the Original Work and Derivative Works to the public;
| d) to perform the Original Work publicly; and
| e) to display the Original Work publicly.
- |
- | 2) Grant of Patent License. Licensor hereby grants You a world-wide, royalty-free,
- | non-exclusive, perpetual, sublicenseable license, under patent claims owned or controlled
- | by the Licensor that are embodied in the Original Work as furnished by the Licensor, to
- | make, use, sell and offer for sale the Original Work and Derivative Works.
- |
- | 3) Grant of Source Code License. The term "Source Code" means the preferred form of the
- | Original Work for making modifications to it and all available documentation describing
- | how to modify the Original Work. Licensor hereby agrees to provide a machine-readable copy
- | of the Source Code of the Original Work along with each copy of the Original Work that
- | Licensor distributes. Licensor reserves the right to satisfy this obligation by placing
- | a machine-readable copy of the Source Code in an information repository reasonably
- | calculated to permit inexpensive and convenient access by You for as long as Licensor
- | continues to distribute the Original Work, and by publishing the address of that information
- | repository in a notice immediately following the copyright notice that applies to the Original
- | Work.
- |
- | 4) Exclusions From License Grant. Neither the names of Licensor, nor the names of any
- | contributors to the Original Work, nor any of their trademarks or service marks, may be used
- | to endorse or promote products derived from this Original Work without express prior written
- | permission of the Licensor. Nothing in this License shall be deemed to grant any rights to
- | trademarks, copyrights, patents, trade secrets or any other intellectual property of Licensor
- | except as expressly stated herein. No patent license is granted to make, use, sell or offer
- | to sell embodiments of any patent claims other than the licensed claims defined in Section 2.
- | No right is granted to the trademarks of Licensor even if such marks are included in the Original
- | Work. Nothing in this License shall be interpreted to prohibit Licensor from licensing under
- | different terms from this License any Original Work that Licensor otherwise would have a right
- | to license.
- |
- | 5) This section intentionally omitted.
- |
- | 6) Attribution Rights. You must retain, in the Source Code of any Derivative Works that You
- | create, all copyright, patent or trademark notices from the Source Code of the Original Work,
- | as well as any notices of licensing and any descriptive text identified therein as an "Attribution
- | Notice." You must cause the Source Code for any Derivative Works that You create to carry a
- | prominent Attribution Notice reasonably calculated to inform recipients that You have modified the
- | Original Work.
- |
- | 7) Warranty of Provenance and Disclaimer of Warranty. Licensor warrants that the copyright in and
- | to the Original Work and the patent rights granted herein by Licensor are owned by the Licensor or
- | are sublicensed to You under the terms of this License with the permission of the contributor(s)
- | of those copyrights and patent rights. Except as expressly stated in the immediately proceeding
- | sentence, the Original Work is provided under this License on an "AS IS" BASIS and WITHOUT WARRANTY,
- | either express or implied, including, without limitation, the warranties of NON-INFRINGEMENT,
- | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY OF THE ORIGINAL
- | WORK IS WITH YOU. This DISCLAIMER OF WARRANTY constitutes an essential part of this License. No license
- | to Original Work is granted hereunder except under this disclaimer.
- |
- | 8) Limitation of Liability. Under no circumstances and under no legal theory, whether in tort (including
- | negligence), contract, or otherwise, shall the Licensor be liable to any person for any direct, indirect,
- | special, incidental, or consequential damages of any character arising as a result of this License or the
- | use of the Original Work including, without limitation, damages for loss of goodwill, work stoppage,
- | computer failure or malfunction, or any and all other commercial damages or losses. This limitation of
- | liability shall not apply to liability for death or personal injury resulting from Licensor's negligence
- | to the extent applicable law prohibits such limitation. Some jurisdictions do not allow the exclusion or
- | limitation of incidental or consequential damages, so this exclusion and limitation may not apply to You.
- |
- | 9) Acceptance and Termination. If You distribute copies of the Original Work or a Derivative Work, You must
- | make a reasonable effort under the circumstances to obtain the express assent of recipients to the terms of
- | this License. Nothing else but this License (or another written agreement between Licensor and You) grants
- | You permission to create Derivative Works based upon the Original Work or to exercise any of the rights
- | granted in Section 1 herein, and any attempt to do so except under the terms of this License (or another
- | written agreement between Licensor and You) is expressly prohibited by U.S. copyright law, the equivalent
- | laws of other countries, and by international treaty. Therefore, by exercising any of the rights granted
- | to You in Section 1 herein, You indicate Your acceptance of this License and all of its terms and conditions.
- |
- | 10) Termination for Patent Action. This License shall terminate automatically and You may no longer exercise
- | any of the rights granted to You by this License as of the date You commence an action, including a cross-claim
- | or counterclaim, against Licensor or any licensee alleging that the Original Work infringes a patent. This
- | termination provision shall not apply for an action alleging patent infringement by combinations of the Original
- | Work with other software or hardware.
- |
- | 11) Jurisdiction, Venue and Governing Law. Any action or suit relating to this License may be brought only in
- | the courts of a jurisdiction wherein the Licensor resides or in which Licensor conducts its primary business,
- | and under the laws of that jurisdiction excluding its conflict-of-law provisions. The application of the United
- | Nations Convention on Contracts for the International Sale of Goods is expressly excluded. Any use of the
- | Original Work outside the scope of this License or after its termination shall be subject to the requirements
- | and penalties of the U.S. Copyright Act, 17 U.S.C. § 101 et seq., the equivalent laws of other countries,
- | and international treaty. This section shall survive the termination of this License.
- |
- | 12) Attorneys Fees. In any action to enforce the terms of this License or seeking damages
- | relating thereto, the prevailing party shall be entitled to recover its costs and expenses,
- | including, without limitation, reasonable attorneys' fees and costs incurred in connection
- | with such action, including any appeal of such action. This section shall survive the
- | termination of this License.
- |
- | 13) Miscellaneous. This License represents the complete agreement concerning the subject
- | matter hereof. If any provision of this License is held to be unenforceable, such provision
- | shall be reformed only to the extent necessary to make it enforceable.
- |
- | 14) Definition of "You" in This License. "You" throughout this License, whether in upper
- | or lower case, means an individual or a legal entity exercising rights under, and complying
- | with all of the terms of, this License. For legal entities, "You" includes any entity that
- | controls, is controlled by, or is under common control with you. For purposes of this
- | definition, "control" means (i) the power, direct or indirect, to cause the direction or
- | management of such entity, whether by contract or otherwise, or (ii) ownership of fifty
- | percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity.
- |
- | 15) Right to Use. You may use the Original Work in all ways not otherwise restricted or
- | conditioned by this License or by law, and Licensor promises not to interfere with or be
- | responsible for such uses by You.
- |
- | This license is Copyright (C) 2003-2004 Lawrence E. Rosen. All rights reserved. Permission
- | is hereby granted to copy and distribute this license without modification. This license
- | may not be modified without the express written permission of its copyright owner.
+ |
+ | 2) Grant of Patent License. Licensor hereby grants You a world-wide, royalty-free,
+ | non-exclusive, perpetual, sublicenseable license, under patent claims owned or
+ | controlled by the Licensor that are embodied in the Original Work as furnished by
+ | the Licensor, to make, use, sell and offer for sale the Original Work and Derivative
+ | Works.
+ |
+ | 3) Grant of Source Code License. The term "Source Code" means the preferred form of
+ | the Original Work for making modifications to it and all available documentation
+ | describing how to modify the Original Work. Licensor hereby agrees to provide a
+ | machine-readable copy of the Source Code of the Original Work along with each copy
+ | of the Original Work that Licensor distributes. Licensor reserves the right to satisfy
+ | this obligation by placing a machine-readable copy of the Source Code in an information
+ | repository reasonably calculated to permit inexpensive and convenient access by You for
+ | as long as Licensor continues to distribute the Original Work, and by publishing the
+ | address of that information repository in a notice immediately following the copyright
+ | notice that applies to the Original Work.
+ |
+ | 4) Exclusions From License Grant. Neither the names of Licensor, nor the names of any
+ | contributors to the Original Work, nor any of their trademarks or service marks, may
+ | be used to endorse or promote products derived from this Original Work without express
+ | prior written permission of the Licensor. Nothing in this License shall be deemed to
+ | grant any rights to trademarks, copyrights, patents, trade secrets or any other
+ | intellectual property of Licensor except as expressly stated herein. No patent license
+ | is granted to make, use, sell or offer to sell embodiments of any patent claims other
+ | than the licensed claims defined in Section 2. No right is granted to the trademarks
+ | of Licensor even if such marks are included in the Original Work. Nothing in this
+ | License shall be interpreted to prohibit Licensor from licensing under different terms
+ | from this License any Original Work that Licensor otherwise would have a right to license.
+ |
+ | 5) This section intentionally omitted.
+ |
+ | 6) Attribution Rights. You must retain, in the Source Code of any Derivative Works that You
+ | create, all copyright, patent or trademark notices from the Source Code of the Original
+ | Work, as well as any notices of licensing and any descriptive text identified therein as
+ | an "Attribution Notice." You must cause the Source Code for any Derivative Works that You
+ | create to carry a prominent Attribution Notice reasonably calculated to inform recipients
+ | that You have modified the Original Work.
+ |
+ | 7) Warranty of Provenance and Disclaimer of Warranty. Licensor warrants that the copyright
+ | in and to the Original Work and the patent rights granted herein by Licensor are owned
+ | by the Licensor or are sublicensed to You under the terms of this License with the
+ | permission of the contributor(s) of those copyrights and patent rights. Except as expressly
+ | stated in the immediately proceeding sentence, the Original Work is provided under this
+ | License on an "AS IS" BASIS and WITHOUT WARRANTY, either express or implied, including,
+ | without limitation, the warranties of NON-INFRINGEMENT, MERCHANTABILITY or FITNESS FOR A
+ | PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY OF THE ORIGINAL WORK IS WITH YOU.
+ | This DISCLAIMER OF WARRANTY constitutes an essential part of this License. No license to
+ | Original Work is granted hereunder except under this disclaimer.
+ |
+ | 8) Limitation of Liability. Under no circumstances and under no legal theory, whether in tort
+ | (including negligence), contract, or otherwise, shall the Licensor be liable to any person
+ | for any direct, indirect, special, incidental, or consequential damages of any character
+ | arising as a result of this License or the use of the Original Work including, without
+ | limitation, damages for loss of goodwill, work stoppage, computer failure or malfunction,
+ | or any and all other commercial damages or losses. This limitation of liability shall not
+ | apply to liability for death or personal injury resulting from Licensor's negligence to
+ | the extent applicable law prohibits such limitation. Some jurisdictions do not allow the
+ | exclusion or limitation of incidental or consequential damages, so this exclusion and
+ | limitation may not apply to You.
+ |
+ | 9) Acceptance and Termination. If You distribute copies of the Original Work or a Derivative
+ | Work, You must make a reasonable effort under the circumstances to obtain the express
+ | assent of recipients to the terms of this License. Nothing else but this License (or
+ | another written agreement between Licensor and You) grants You permission to create
+ | Derivative Works based upon the Original Work or to exercise any of the rights granted in
+ | Section 1 herein, and any attempt to do so except under the terms of this License (or
+ | another written agreement between Licensor and You) is expressly prohibited by U.S. copyright
+ | law, the equivalent laws of other countries, and by international treaty. Therefore, by
+ | exercising any of the rights granted to You in Section 1 herein, You indicate Your
+ | acceptance of this License and all of its terms and conditions.
+ |
+ | 10) Termination for Patent Action. This License shall terminate automatically and You may no
+ | longer exercise any of the rights granted to You by this License as of the date You
+ | commence an action, including a cross-claim or counterclaim, against Licensor or any
+ | licensee alleging that the Original Work infringes a patent. This termination provision
+ | shall not apply for an action alleging patent infringement by combinations of the Original
+ | Work with other software or hardware.
+ |
+ | 11) Jurisdiction, Venue and Governing Law. Any action or suit relating to this License may be
+ | brought only in the courts of a jurisdiction wherein the Licensor resides or in which
+ | Licensor conducts its primary business, and under the laws of that jurisdiction excluding
+ | its conflict-of-law provisions. The application of the United Nations Convention on Contracts
+ | for the International Sale of Goods is expressly excluded. Any use of the Original Work
+ | outside the scope of this License or after its termination shall be subject to the
+ | requirements and penalties of the U.S. Copyright Act, 17 U.S.C. § 101 et seq., the equivalent
+ | laws of other countries, and international treaty. This section shall survive the termination
+ | of this License.
+ |
+ | 12) Attorneys Fees. In any action to enforce the terms of this License or seeking damages
+ | relating thereto, the prevailing party shall be entitled to recover its costs and expenses,
+ | including, without limitation, reasonable attorneys' fees and costs incurred in connection
+ | with such action, including any appeal of such action. This section shall survive the
+ | termination of this License.
+ |
+ | 13) Miscellaneous. This License represents the complete agreement concerning the subject matter
+ | hereof. If any provision of this License is held to be unenforceable, such provision shall
+ | be reformed only to the extent necessary to make it enforceable.
+ |
+ | 14) Definition of "You" in This License. "You" throughout this License, whether in upper or lower
+ | case, means an individual or a legal entity exercising rights under, and complying with all
+ | of the terms of, this License. For legal entities, "You" includes any entity that controls,
+ | is controlled by, or is under common control with you. For purposes of this definition,
+ | "control" means (i) the power, direct or indirect, to cause the direction or management of
+ | such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or
+ | more of the outstanding shares, or (iii) beneficial ownership of such entity.
+ |
+ | 15) Right to Use. You may use the Original Work in all ways not otherwise restricted or
+ | conditioned by this License or by law, and Licensor promises not to interfere with or be
+ | responsible for such uses by You.
+ |
+ | This license is Copyright (C) 2003-2004 Lawrence E. Rosen. All rights reserved. Permission is
+ | hereby granted to copy and distribute this license without modification. This license may not
+ | be modified without the express written permission of its copyright owner.
+ |
+ |
+ | BSD License
+ | ===========
+ |
+ | Copyright (c) 2006, Yahoo! Inc.
+ | All rights reserved.
+ |
+ | Redistribution and use of this software in source and binary forms, with or without modification,
+ | are permitted provided that the following conditions are met:
+ |
+ | * Redistributions of source code must retain the above copyright notice, this list of
+ | conditions and the following disclaimer.
+ | * Redistributions in binary form must reproduce the above copyright notice, this list of
+ | conditions and the following disclaimer in the documentation and/or other materials provided
+ | with the distribution.
+ | * Neither the name of Yahoo! Inc. nor the names of its contributors may be used to endorse or
+ | promote products derived from this software without specific prior written permission of
+ | Yahoo! Inc.
+ |
+ | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED
+ | WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
+ | PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
+ | ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ | LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ | INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
+ | TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+ | ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
# Yahoo! UI Library (http://developer.yahoo.com/yui/)
@@ -236,39 +277,6 @@
-# iUI: iPhone User Interface Framework (http://code.google.com/p/iui/)
- - package version: 282
-
- Copyright (c) 2007-2009, iUI Project Members
-
- | All rights reserved.
- |
- | Redistribution and use in source and binary forms, with or without modification,
- | are permitted provided that the following conditions are met:
- |
- | * Redistributions of source code must retain the above copyright notice, this
- | list of conditions and the following disclaimer.
- | * Redistributions in binary form must reproduce the above copyright notice,
- | this list of conditions and the following disclaimer in the documentation
- | and/or other materials provided with the distribution.
- | * Neither the name of the iUI Project nor the names of its contributors may
- | be used to endorse or promote products derived from this software without
- | specific prior written permission.
- |
- | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- | "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- | LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- | A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- | CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- | EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- | PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- | PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
- | LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- | NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- | SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-
-
# Big Integer Library v. 5.0
- code downloaded on March 5, 2007 from http://www.leemon.com/crypto/BigInt.js
diff --git a/frontend/gamma/properties/gamma.properties.json b/frontend/gamma/properties/gamma.properties.json
index c847812..eec4194 100644
--- a/frontend/gamma/properties/gamma.properties.json
+++ b/frontend/gamma/properties/gamma.properties.json
@@ -1,7 +1,7 @@
{
"copyright.values": {
- "mochikit.repository": "https://github.com/mochi/mochikit.git",
- "mochikit.version": "fe8d17bb9ac0a4e5ad4a8d5c2c94a6fac1c92d75"
+ "mochikit.repository": "https://github.com/mochi/mochikit.git",
+ "mochikit.version": "fe8d17bb9ac0a4e5ad4a8d5c2c94a6fac1c92d75"
},
"html.template": "index_template.html",
diff --git a/frontend/gamma/properties/mobile.properties.json b/frontend/gamma/properties/mobile.properties.json
index e26b95f..bdb2d07 100644
--- a/frontend/gamma/properties/mobile.properties.json
+++ b/frontend/gamma/properties/mobile.properties.json
@@ -1,23 +1,26 @@
{
"copyright.values": {
- "mochikit.repository": "http://svn.mochikit.com/mochikit/trunk/",
- "mochikit.version": "1506"
+ "mochikit.repository": "https://github.com/mochi/mochikit.git",
+ "mochikit.version": "fe8d17bb9ac0a4e5ad4a8d5c2c94a6fac1c92d75"
},
+
+ "html.template": "mobile_template.html",
+
"js": [
"MochiKit/Base.js",
"MochiKit/Iter.js",
"MochiKit/Logging.js",
- "-- MochiKit/DateTime.js",
+ "MochiKit/DateTime.js",
"MochiKit/Format.js",
"MochiKit/Async.js",
"MochiKit/DOM.js",
"MochiKit/Style.js",
"MochiKit/LoggingPane.js",
- "MochiKit/Color.js",
+ "-- MochiKit/Color.js",
"MochiKit/Signal.js",
- "MochiKit/Position.js",
+ "-- MochiKit/Position.js",
"MochiKit/Selector.js",
- "MochiKit/Visual.js",
+ "-- MochiKit/Visual.js",
"JSON/json2.js",
@@ -33,8 +36,8 @@
"Clipperz/DOM.js",
"Clipperz/Logging.js",
"Clipperz/Signal.js",
- "Clipperz/Style.js",
- "Clipperz/Visual.js",
+ "-- Clipperz/Style.js",
+ "-- Clipperz/Visual.js",
"Clipperz/Set.js",
"Clipperz/KeyValueObjectStore.js",
@@ -69,10 +72,13 @@
"Clipperz/PM/Toll.js",
"Clipperz/PM/Proxy.js",
"Clipperz/PM/Proxy/Proxy.JSON.js",
+ "-- Clipperz/PM/Proxy/Proxy.OfflineCache.js",
"Clipperz/PM/Proxy/Proxy.Offline.js",
+ "Clipperz/PM/Proxy/Proxy.Offline.DataStore.js",
+
"Clipperz/PM/Connection.js",
"Clipperz/PM/Crypto.js",
- "-- Clipperz/PM/BookmarkletProcessor.js",
+ "Clipperz/PM/PIN.js",
"Clipperz/PM/DataModel/EncryptedRemoteObject.js",
"Clipperz/PM/DataModel/User.js",
@@ -89,6 +95,23 @@
"Clipperz/PM/DataModel/DirectLoginFormValue.js",
"Clipperz/PM/DataModel/OneTimePassword.js",
+ "Zepto/zepto.js",
+ "Zepto/ajax.js",
+ "Zepto/assets.js",
+ "Zepto/data.js",
+ "Zepto/detect.js",
+ "Zepto/event.js",
+ "Zepto/form.js",
+ "Zepto/fx.js",
+ "Zepto/fx_methods.js",
+ "Zepto/gesture.js",
+ "Zepto/polyfill.js",
+ "Zepto/selector.js",
+ "Zepto/stack.js",
+ "Zepto/touch.js",
+
+ "JQTouch/jqtouch.js",
+
"Clipperz/PM/UI/Common/Components/BaseComponent.js",
"-- Clipperz/PM/UI/Common/Components/Button.js",
"Clipperz/PM/UI/Common/Components/ComponentSlot.js",
@@ -104,16 +127,16 @@
"Clipperz/PM/UI/Common/Controllers/ProgressBarController.js",
"-- Clipperz/PM/UI/Common/Controllers/TabPanelController.js",
- "Clipperz/PM/UI/iPhone/Components/LoginForm.js",
- "Clipperz/PM/UI/iPhone/Components/CardList.js",
- "Clipperz/PM/UI/iPhone/Components/CardDetail.js",
+ "Clipperz/PM/UI/Mobile/Components/LoginForm.js",
+ "Clipperz/PM/UI/Mobile/Components/CardList.js",
+ "-- Clipperz/PM/UI/Mobile/Components/CardDetail.js",
- "Clipperz/PM/UI/iPhone/Controllers/MainController.js",
+ "Clipperz/PM/UI/Mobile/Controllers/MainController.js",
- "main_iPhone.js"
+ "main.mobile.js"
],
"css": [
- "clipperz/iPhone.css"
+ "mobile.css"
]
} \ No newline at end of file
diff --git a/frontend/gamma/tests/tests/Clipperz/PM/PIN.html b/frontend/gamma/tests/tests/Clipperz/PM/PIN.html
new file mode 100644
index 0000000..a08b286
--- a/dev/null
+++ b/frontend/gamma/tests/tests/Clipperz/PM/PIN.html
@@ -0,0 +1,66 @@
+<!--
+
+Copyright 2008-2011 Clipperz Srl
+
+This file is part of Clipperz Community Edition.
+Clipperz Community Edition is an online password manager.
+For further information about its features and functionalities please
+refer to http://www.clipperz.com.
+
+* Clipperz Community Edition is free software: you can redistribute
+ it and/or modify it under the terms of the GNU Affero General Public
+ License as published by the Free Software Foundation, either version
+ 3 of the License, or (at your option) any later version.
+
+* Clipperz Community Edition is distributed in the hope that it will
+ be useful, but WITHOUT ANY WARRANTY; without even the implied
+ warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ See the GNU Affero General Public License for more details.
+
+* You should have received a copy of the GNU Affero General Public
+ License along with Clipperz Community Edition. If not, see
+ <http://www.gnu.org/licenses/>.
+
+-->
+
+<html>
+<head>
+ <title>Clipperz.PM.Proxy - TEST</title>
+
+ <script type="text/javascript" src="../../../../js/MochiKit/MochiKit.js"></script>
+ <script type="text/javascript" src="../../../SimpleTest/SimpleTest.js"></script>
+ <link rel="stylesheet" type="text/css" href="../../../SimpleTest/test.css">
+
+ <script type='text/javascript' src='../../../../js/Clipperz/YUI/Utils.js'></script>
+ <script type='text/javascript' src='../../../../js/Clipperz/Base.js'></script>
+ <script type='text/javascript' src='../../../../js/Clipperz/ByteArray.js'></script>
+ <script type='text/javascript' src='../../../../js/Clipperz/Logging.js'></script>
+ <script type='text/javascript' src='../../../../js/Clipperz/Async.js'></script>
+ <script type='text/javascript' src='../../../../js/Clipperz/KeyValueObjectStore.js'></script>
+
+ <script type='text/javascript' src='../../../../js/Clipperz/Crypto/Base.js'></script>
+ <script type='text/javascript' src='../../../../js/Clipperz/Crypto/BigInt.js'></script>
+ <script type='text/javascript' src='../../../../js/Clipperz/Crypto/AES.js'></script>
+ <script type='text/javascript' src='../../../../js/Clipperz/Crypto/SHA.js'></script>
+ <script type='text/javascript' src='../../../../js/Clipperz/Crypto/PRNG.js'></script>
+ <script type='text/javascript' src='../../../../js/Clipperz/Crypto/SRP.js'></script>
+ <script type='text/javascript' src='../../../../js/Clipperz/PM/Proxy.js'></script>
+ <script type='text/javascript' src='../../../../js/Clipperz/PM/Connection.js'></script>
+ <script type='text/javascript' src='../../../../js/Clipperz/PM/Crypto.js'></script>
+<!--
+ <script type='text/javascript' src='../../../../js/Clipperz/PM/Toll.js'></script>
+
+ <script type='text/javascript' src='../../../../js/Clipperz/PM/Proxy.js'></script>
+-->
+
+ <script type='text/javascript' src='../../../../js/Clipperz/PM/PIN.js'></script>
+
+ <script type="text/javascript" src="../../../SimpleTest/SimpleTest.Async.js"></script>
+
+</head>
+<body>
+<pre id="test">
+ <script type="text/javascript" src="PIN.test.js"></script>
+</pre>
+</body>
+</html>
diff --git a/frontend/gamma/tests/tests/Clipperz/PM/PIN.test.js b/frontend/gamma/tests/tests/Clipperz/PM/PIN.test.js
new file mode 100644
index 0000000..ed795dd
--- a/dev/null
+++ b/frontend/gamma/tests/tests/Clipperz/PM/PIN.test.js
@@ -0,0 +1,97 @@
+/*
+
+Copyright 2008-2011 Clipperz Srl
+
+This file is part of Clipperz Community Edition.
+Clipperz Community Edition is an online password manager.
+For further information about its features and functionalities please
+refer to http://www.clipperz.com.
+
+* Clipperz Community Edition is free software: you can redistribute
+ it and/or modify it under the terms of the GNU Affero General Public
+ License as published by the Free Software Foundation, either version
+ 3 of the License, or (at your option) any later version.
+
+* Clipperz Community Edition is distributed in the hope that it will
+ be useful, but WITHOUT ANY WARRANTY; without even the implied
+ warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ See the GNU Affero General Public License for more details.
+
+* You should have received a copy of the GNU Affero General Public
+ License along with Clipperz Community Edition. If not, see
+ <http://www.gnu.org/licenses/>.
+
+*/
+
+Clipperz.Crypto.PRNG.defaultRandomGenerator().fastEntropyAccumulationForTestingPurpose();
+
+Clipperz.PM.PIN['CREDENTIALS'] = 'TEST.CLIPPERZ.CREDENTIALS';
+Clipperz.PM.PIN['FAILURE_COUNT'] = 'TEST.CLIPPERZ.FAILED_LOGIN_COUNT';
+
+
+var tests = {
+
+ //-------------------------------------------------------------------------
+
+ 'clearCredentials': function () {
+ localStorage.removeItem(Clipperz.PM.PIN['CREDENTIALS']);
+ localStorage.removeItem(Clipperz.PM.PIN['FAILURE_COUNT']);
+ },
+
+ //-------------------------------------------------------------------------
+
+ 'isSet': function () {
+ tests.clearCredentials();
+
+ is(false, Clipperz.PM.PIN.isSet(), "after cleaning all values, credentials should not be set");
+
+ Clipperz.PM.PIN.setCredentialsWithPIN("1234", {'username':'joe', 'passphrase':'eoj'});
+ is(true, Clipperz.PM.PIN.isSet(), "once saved, they should be found");
+ },
+
+ 'recordFailedAttempt': function () {
+ tests.clearCredentials();
+
+ Clipperz.PM.PIN.setCredentialsWithPIN("1234", {'username':'joe', 'passphrase':'eoj'});
+ is(true, Clipperz.PM.PIN.isSet(), "once saved, they should be found");
+ Clipperz.PM.PIN.recordFailedAttempt();
+ is(true, Clipperz.PM.PIN.isSet(), "1st wrong PIN -> keep credentials");
+ Clipperz.PM.PIN.recordFailedAttempt();
+ is(true, Clipperz.PM.PIN.isSet(), "2nd wrong PIN -> keep credentials");
+ Clipperz.PM.PIN.recordFailedAttempt();
+ is(false, Clipperz.PM.PIN.isSet(), "3rd wrong PIN -> REMOVE credentials");
+
+ Clipperz.PM.PIN.setCredentialsWithPIN("1234", {'username':'joe', 'passphrase':'eoj'});
+ is(true, Clipperz.PM.PIN.isSet(), "once saved, they should be found");
+ Clipperz.PM.PIN.recordFailedAttempt();
+ is(true, Clipperz.PM.PIN.isSet(), "1st wrong PIN -> keep credentials");
+ Clipperz.PM.PIN.recordFailedAttempt();
+ is(true, Clipperz.PM.PIN.isSet(), "2nd wrong PIN -> keep credentials");
+ Clipperz.PM.PIN.resetFailedAttemptCount();
+ Clipperz.PM.PIN.recordFailedAttempt();
+ is(true, Clipperz.PM.PIN.isSet(), "3rd wrong PIN, but with a successful use in between -> keep credentials");
+ },
+
+ 'credentialsWithPIN': function () {
+ var credentials;
+ var pin;
+ var decryptedCredentials;
+
+ tests.clearCredentials();
+
+ credentials = {'username': 'joe', 'passphrase':'foobar'};
+ pin = '1234';
+ Clipperz.PM.PIN.setCredentialsWithPIN(pin, credentials);
+ decryptedCredentials = Clipperz.PM.PIN.credentialsWithPIN(pin);
+
+ is(decryptedCredentials['username'], credentials['username']);
+ is(decryptedCredentials['passphrase'], credentials['passphrase']);
+ },
+
+ //-------------------------------------------------------------------------
+ 'syntaxFix': MochiKit.Base.noop
+};
+
+//#############################################################################
+
+SimpleTest.runDeferredTests("Clipperz.PM.PIN", tests, {trace:false});
diff --git a/frontend/gamma/tests/tests/Clipperz/PM/index.html b/frontend/gamma/tests/tests/Clipperz/PM/index.html
index b9bede1..c3df56a 100644
--- a/frontend/gamma/tests/tests/Clipperz/PM/index.html
+++ b/frontend/gamma/tests/tests/Clipperz/PM/index.html
@@ -45,6 +45,7 @@ TestRunner.runTests(
// 'CryptoPerformance_ByteArrayHex.html',
// 'CryptoPerformance_ByteArrayString.html',
'Date.html',
+ 'PIN.html',
'Proxy.html',
'Toll.html'
);
diff --git a/frontend/gamma/tests/tests/Components/FullApp/User.data.js b/frontend/gamma/tests/tests/Components/FullApp/User.data.js
index 7194f6a..4dfc81c 100644
--- a/frontend/gamma/tests/tests/Components/FullApp/User.data.js
+++ b/frontend/gamma/tests/tests/Components/FullApp/User.data.js
@@ -81,7 +81,7 @@ testData = {
},
*/
/* tt/tt with "fixed" direct login */
-/* 'afaadd70f647886043b9196c861dc04f5605baeab3812ea23707fcba08c4a54f': {
+ 'afaadd70f647886043b9196c861dc04f5605baeab3812ea23707fcba08c4a54f': {
s: 'df781ec363a380a0bb171d7d4c226248259272a964f04fa2340c77ff84bbc594',
v: 'eca214d990ec971a61cd9c5082e62c2d241f8e1ec805a2c26b1d31612747bfb0',
version: '0.2',
@@ -120,7 +120,7 @@ testData = {
}
}
},
-*/
+
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
diff --git a/frontend/gamma/tests/tests/Components/FullApp/index.html b/frontend/gamma/tests/tests/Components/FullApp/index.html
index bc00fa7..fab110b 100644
--- a/frontend/gamma/tests/tests/Components/FullApp/index.html
+++ b/frontend/gamma/tests/tests/Components/FullApp/index.html
@@ -25,23 +25,21 @@ refer to http://www.clipperz.com.
<html>
<head>
- <title>Clipperz - online password manager - debug</title>
+ <title>FullApp TEST - WEB</title>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
- <link rel="stylesheet" type="text/css" href="../../../../css/clipperz/clipperz.css" />
- <link rel="stylesheet" type="text/css" href="../../../../css/clipperz/compact.css" />
- <link rel="stylesheet" type="text/css" href="../../../../css/clipperz/ytheme-clipperz.css" />
+ <link rel="stylesheet" type="text/css" href="../../../../css/web.css" />
<link rel="shortcut icon" href="./clipperz.ico" />
<meta name="description" content="Login to your web accounts with just one click. Never type a password again! Use multiple complex passwords and forget them. A password manager that enhances your online security." />
<meta name="keywords" content="password manager,gestor de contraseñas,gerenciador de senhas,Kennwortmanager,passwords,security,privacy,cryptography" />
-
<script>
Clipperz_IEisBroken = false;
Clipperz_normalizedNewLine = '\n';
Clipperz_dumpUrl = "/dump/";
+ Clipperz_version = ">>> hg:28fe087a9316 <<<";
</script>
<!--[if IE]><script>
@@ -50,8 +48,8 @@ Clipperz_normalizedNewLine = '\x0d\x0a';
</script><![endif]-->
- <script type='text/javascript' src='../../../../js/bookmarklet.js'></script>
- <script type='text/javascript' src='../../../../js/bookmarklet_ie.js'></script>
+ <script type='text/javascript' src='../../../../js/Bookmarklet.js'></script>
+ <script type='text/javascript' src='../../../../js/Bookmarklet_IE.js'></script>
<script type='text/javascript' src='../../../../js/MochiKit/Base.js'></script>
<script type='text/javascript' src='../../../../js/MochiKit/Iter.js'></script>
@@ -196,45 +194,41 @@ Clipperz_normalizedNewLine = '\x0d\x0a';
<script type='text/javascript' src='../../../../js/Clipperz/PM/UI/Canvas/Logo/normal.js'></script>
<script type='text/javascript' src='../../../../js/Clipperz/PM/UI/Canvas/GraphicFunctions.js'></script>
- <!-- script type='text/javascript' src='../../../../js/main.js'></script -->
+ <script type='text/javascript' src='../../../../js/main.js'></script>
<script type='text/javascript' src='../../../../js/Clipperz/PM/Proxy/Proxy.Test.js'></script>
<script type='text/javascript' src='./User.data.js'></script>
- <script type='text/javascript' src='./main_test.js'></script>
-
</head>
<body>
<div id="mainDiv">
<div id="loading">
- <a href="http://www.clipperz.com" target="_blank"><div id="logo"></div></a>
- <h5 class="clipperzPayoff">keep it to yourself!</h5>
- <h2>loading ...</h2>
+ <div>
+ <!-- a href="http://www.clipperz.com" target="_blank"><div id="logo"></div></a -->
+ <h1>clipperz</h1>
+ <h3 class="clipperzPayoff">keep it to yourself!</h3>
+ <!-- h5>loading ...</h5 -->
+ </div>
</div>
+@js_EMBEDDED@
-
-</div>
-<div id="applicationVersionType" class="LIVE"></div>
-
-<!-- -->
-<div id="javaScriptAlert">
- <div class="mask"></div>
- <div class="message">
- <div class="header"></div>
- <div class="body">
- <div class="alertLogo"></div>
- <div class="alert">
- <h1>Attention!</h1>
- <p>If you can read this message, the chances are that your browser does not properly support JavaScript? or you have disabled this functionality yourself.</p>
- <h3>Javascript is required to access Clipperz.</h3>
- <h5>Please enable scripting or upgrade your browser.</h5>
- </div>
- </div>
- <div class="footer"></div>
- </div>
</div>
-<!-- -->
+<!-- div id="applicationVersionType" class="@application.version.type@"></div -->
+
+<script>
+// Clipperz.PM.Proxy.defaultProxy = new Clipperz.PM.Proxy.JSON({'url':'@request.path@', 'shouldPayTolls':@should.pay.toll@});
+ /*offline_data_placeholder*/
+
+ MochiKit.DOM.addLoadEvent(function () {
+ Clipperz.Crypto.PRNG.defaultRandomGenerator().fastEntropyAccumulationForTestingPurpose();
+
+ var proxy = new Clipperz.PM.Proxy.Test({shouldPayTolls:false, isDefault:true, readOnly:false});
+ proxy.dataStore().setupWithEncryptedData(testData['testData']);
+ Clipperz.PM.Proxy.defaultProxy = proxy;
+ MochiKit.Signal.signal(Clipperz.Signal.NotificationCenter, 'doLogin', {username:'tt', passphrase:'tt'});
+ });
+</script>
</body>
</html>
diff --git a/frontend/gamma/tests/tests/Components/FullApp/main_test.js b/frontend/gamma/tests/tests/Components/FullApp/main_test.js
deleted file mode 100644
index b13972a..0000000
--- a/frontend/gamma/tests/tests/Components/FullApp/main_test.js
+++ b/dev/null
@@ -1,111 +0,0 @@
-/*
-
-Copyright 2008-2011 Clipperz Srl
-
-This file is part of Clipperz Community Edition.
-Clipperz Community Edition is an online password manager.
-For further information about its features and functionalities please
-refer to http://www.clipperz.com.
-
-* Clipperz Community Edition is free software: you can redistribute
- it and/or modify it under the terms of the GNU Affero General Public
- License as published by the Free Software Foundation, either version
- 3 of the License, or (at your option) any later version.
-
-* Clipperz Community Edition is distributed in the hope that it will
- be useful, but WITHOUT ANY WARRANTY; without even the implied
- warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
- See the GNU Affero General Public License for more details.
-
-* You should have received a copy of the GNU Affero General Public
- License along with Clipperz Community Edition. If not, see
- <http://www.gnu.org/licenses/>.
-
-*/
-
-function _pm_logEvent(anEvent) {
-// console.log("####", anEvent);
-
- anEvent.preventDefault();
-}
-
-function handleGenericDeferredError(anError) {
- var result;
-
- if (anError instanceof MochiKit.Async.CancelledError) {
- result = anError;
- } else {
-MochiKit.Logging.logError("## MainController - GENERIC ERROR" + "\n" + "==>> " + anError + " <<==\n" + anError.stack);
-//console.log(anError);
- result = new MochiKit.Async.CancelledError(anError);
- }
-
- return result;
-}
-
-
-Clipperz.PM.RunTime = {};
-
-
-function run() {
- var shouldShowRegistrationForm;
- var useCompactDesign;
- var controllerParameters;
-// var iPhoneDesign;
-
-// MochiKit.Signal.connect(document.body, 'onkeydown', _pm_logEvent);
-// MochiKit.Signal.connect(document.body, 'onkeypress', _pm_logEvent);
-// MochiKit.Signal.connect(document.body, 'onclick', _pm_logEvent);
-
- controllerParameters = {};
-
- MochiKit.DOM.removeElement('javaScriptAlert');
- Clipperz.PM.Strings.Languages.initSetup();
-
- if (window.location.search.indexOf('registration') != -1) {
- shouldShowRegistrationForm = true;
- } else {
- shouldShowRegistrationForm = false;
- }
-
- if (window.location.search.indexOf('autocomplete') != -1) {
- controllerParameters['autocomplete'] = 'on'
- }
-
-// if ((window.location.search.indexOf('iPhone') != -1) || (navigator.userAgent.match('iPhone'))) {
-// iPhoneDesign = true;
-// } else {
-// iPhoneDesign = false;
-// }
-
- if (window.location.search.indexOf('compact') != -1) {
- useCompactDesign = true;
- } else {
- useCompactDesign = false;
- }
-
- if (useCompactDesign == true) {
- Clipperz.PM.RunTime.mainController = new Clipperz.PM.UI.Compact.Controllers.MainController(controllerParameters);
-// } else if (iPhoneDesign == true) {
-// Clipperz.PM.RunTime.mainController = new Clipperz.PM.UI.iPhone.Controllers.MainController();
- } else {
- Clipperz.PM.RunTime.mainController = new Clipperz.PM.UI.Web.Controllers.MainController(controllerParameters);
- }
-
- Clipperz.PM.RunTime.mainController.run(shouldShowRegistrationForm);
-
-//Clipperz.log("HASH: " + window.location.hash);
-// if (window.location.hash != "") {
-// window.location.hash = ""
-// }
-//Clipperz.log("HASH cleaned");
-// #credentials=base64encoded({username:'joe', passphrase:'clipperz'})
-// MochiKit.Signal.signal(Clipperz.Signal.NotificationCenter, 'doLogin', {username:'joe', passphrase:'clipperz'});
-}
-
-Clipperz.Crypto.PRNG.defaultRandomGenerator().fastEntropyAccumulationForTestingPurpose();
-
-var proxy = new Clipperz.PM.Proxy.Test({shouldPayTolls:true, isDefault:true, readOnly:false});
-proxy.dataStore().setupWithEncryptedData(testData['testData']);
-
-MochiKit.DOM.addLoadEvent(run);
diff --git a/frontend/gamma/tests/tests/Components/FullApp/mobile.index.html b/frontend/gamma/tests/tests/Components/FullApp/mobile.index.html
new file mode 100644
index 0000000..818e3d6
--- a/dev/null
+++ b/frontend/gamma/tests/tests/Components/FullApp/mobile.index.html
@@ -0,0 +1,204 @@
+<!--
+
+Copyright 2008-2011 Clipperz Srl
+
+This file is part of Clipperz Community Edition.
+Clipperz Community Edition is an online password manager.
+For further information about its features and functionalities please
+refer to http://www.clipperz.com.
+
+* Clipperz Community Edition is free software: you can redistribute
+ it and/or modify it under the terms of the GNU Affero General Public
+ License as published by the Free Software Foundation, either version
+ 3 of the License, or (at your option) any later version.
+
+* Clipperz Community Edition is distributed in the hope that it will
+ be useful, but WITHOUT ANY WARRANTY; without even the implied
+ warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ See the GNU Affero General Public License for more details.
+
+* You should have received a copy of the GNU Affero General Public
+ License along with Clipperz Community Edition. If not, see
+ <http://www.gnu.org/licenses/>.
+
+-->
+
+<!doctype html>
+<!-- Conditional comment for mobile ie7 blogs.msdn.com/b/iemobile/ -->
+<!--[if IEMobile 7 ]> <html class="no-js iem7" lang="en"> <![endif]-->
+<!--[if (gt IEMobile 7)|!(IEMobile)]><!--> <html class="no-js" lang="en" manifest="mobile.appcache"> <!--<![endif]-->
+<head>
+ <title>FullApp TEST - MOBILE</title>
+ <meta charset="utf-8">
+
+ <meta name="HandheldFriendly" content="True">
+ <meta name="MobileOptimized" content="320">
+ <meta name="viewport" content="width=device-width">
+
+<!-- link rel="apple-touch-icon-precomposed" ... -->
+ <link rel="apple-touch-icon" sizes="114x114" href="data:image/png;charset=utf-8;base64,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">
+ <link rel="apple-touch-icon" sizes="72x72" href="data:image/png;charset=utf-8;base64,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">
+ <link rel="apple-touch-icon" href="data:image/png;charset=utf-8;base64,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">
+ <link rel="shortcut icon" href="data:image/png;charset=utf-8;base64,iVBORw0KGgoAAAANSUhEUgAAADkAAAA5CAIAAAADehTSAAAD8GlDQ1BJQ0MgUHJvZmlsZQAAKJGNVd1v21QUP4lvXKQWP6Cxjg4Vi69VU1u5GxqtxgZJk6XpQhq5zdgqpMl1bhpT1za2021Vn/YCbwz4A4CyBx6QeEIaDMT2su0BtElTQRXVJKQ9dNpAaJP2gqpwrq9Tu13GuJGvfznndz7v0TVAx1ea45hJGWDe8l01n5GPn5iWO1YhCc9BJ/RAp6Z7TrpcLgIuxoVH1sNfIcHeNwfa6/9zdVappwMknkJsVz19HvFpgJSpO64PIN5G+fAp30Hc8TziHS4miFhheJbjLMMzHB8POFPqKGKWi6TXtSriJcT9MzH5bAzzHIK1I08t6hq6zHpRdu2aYdJYuk9Q/881bzZa8Xrx6fLmJo/iu4/VXnfH1BB/rmu5ScQvI77m+BkmfxXxvcZcJY14L0DymZp7pML5yTcW61PvIN6JuGr4halQvmjNlCa4bXJ5zj6qhpxrujeKPYMXEd+q00KR5yNAlWZzrF+Ie+uNsdC/MO4tTOZafhbroyXuR3Df08bLiHsQf+ja6gTPWVimZl7l/oUrjl8OcxDWLbNU5D6JRL2gxkDu16fGuC054OMhclsyXTOOFEL+kmMGs4i5kfNuQ62EnBuam8tzP+Q+tSqhz9SuqpZlvR1EfBiOJTSgYMMM7jpYsAEyqJCHDL4dcFFTAwNMlFDUUpQYiadhDmXteeWAw3HEmA2s15k1RmnP4RHuhBybdBOF7MfnICmSQ2SYjIBM3iRvkcMki9IRcnDTthyLz2Ld2fTzPjTQK+Mdg8y5nkZfFO+se9LQr3/09xZr+5GcaSufeAfAww60mAPx+q8u/bAr8rFCLrx7s+vqEkw8qb+p26n11Aruq6m1iJH6PbWGv1VIY25mkNE8PkaQhxfLIF7DZXx80HD/A3l2jLclYs061xNpWCfoB6WHJTjbH0mV35Q/lRXlC+W8cndbl9t2SfhU+Fb4UfhO+F74GWThknBZ+Em4InwjXIyd1ePnY/Psg3pb1TJNu15TMKWMtFt6ScpKL0ivSMXIn9QtDUlj0h7U7N48t3i8eC0GnMC91dX2sTivgloDTgUVeEGHLTizbf5Da9JLhkhh29QOs1luMcScmBXTIIt7xRFxSBxnuJWfuAd1I7jntkyd/pgKaIwVr3MgmDo2q8x6IdB5QH162mcX7ajtnHGN2bov71OU1+U0fqqoXLD0wX5ZM005UHmySz3qLtDqILDvIL+iH6jB9y2x83ok898GOPQX3lk3Itl0A+BrD6D7tUjWh3fis58BXDigN9yF8M5PJH4B8Gr79/F/XRm8m241mw/wvur4BGDj42bzn+Vmc+NL9L8GcMn8F1kAcXjEKMJAAAAACXBIWXMAAAsTAAALEwEAmpwYAAABbmlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iWE1QIENvcmUgNC40LjAiPgogICA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPgogICAgICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iPgogICAgICAgICA8ZGM6c3ViamVjdD4KICAgICAgICAgICAgPHJkZjpCYWcvPgogICAgICAgICA8L2RjOnN1YmplY3Q+CiAgICAgIDwvcmRmOkRlc2NyaXB0aW9uPgogICA8L3JkZjpSREY+CjwveDp4bXBtZXRhPgrlPw1BAAALFElEQVRoge2aeWxcxR3Hv/OOvbKHvWuv7V0fcQK5E+wEm1w1OZ0Ek1BCARUhWpUCalGl0pMeIKBIFBVVolWJkGhpGiBAoCE0FaQBnEKUg6QkzmUbO7bjIz7iY+9950z/2F1718eujd1KVflp9GTtzux83m9+v+/7zRsDX9qX9r9jZJrjTSaT1+vNOEsg4L927do055quVVVVhcPhUDAYCgYmauFwaNeuXdOfS5jmeFEULRYLpH6AgbHxO5mtRqNxmhNh+qyMMYBBk5NYk4kJwAAjm+g2pmLTZQUAMDAdjMYpR2MxMDr9xMAMsQJMA02wgoEBYAABAViMdQZshlipDqYjFg/ASBiwGKueGhhf0GYqBjTQGNCYqGUMVKN0Blw7U37VRvw64t2YMegqo9r0J5kJVqaD6aBaEmhykjFQFVSf/jwzoVm6CqrFWTGcScN5xqCrdCZYuXE/feihh3bsuM1kMk0GFroKpsUbVeNXmrgyFVRlk2N15+Y8+M17fvGjh8f9dhy/ulyup3/1VE6u6+yZs6/tfX3fvrfa2tomRAWjusrRGCtLqGxyhsXiNR0rx3GVK8ru3llza/W6OSUFPX1DL7+y72pPX2bWDRvW5+Q6ER0qW1Ja9uwTP/3B9/5+6IM9e179+JOjiqKMgWUs5leqgTGAxq/xkAVA07AW5Llrtqy/+/ZbKssX2mcZQDWq+l0O48abV+1540Bm1q/t/CqYChCoKqSwy8ru+/q2e+/YdvrspVffeHv/O3/r6OxMYqVUV/kUv9KRDIux0tE6wPP8qoryu3fWbNu4erYnm4cCGoEqgxM4jnBadEd1VWZWT0HBzWtXQY6OZAmliAQ5qlYu81aW/+TR7z9w8NCRV/a+fezESU3TNE1jusqoRtiwX2mKIDAKqlI9zur15G/fsuHO2zZXLJtrM1GoESjXQHgQHoSCUfACdLmibF5psbe1vSsda/WmDXl5LmgqGE1pABQZNFhgZw/cs/G+OzadPNO4e+9fg6GwpspiTLbiPUfhUqYpIs+trlx+713bt66rKMmzcHoQeg+iZIRyuIHxPHLsxuqbK1/csz+ZbXRJcWDfKzt2bIWOlIyOhePwH0wF1SAIIMY+n2YymWx6J2FanJKNZo0y24DssBlVh1mFEgDTQXiAAziQWOMTVx6EBydIkfCho5d2fvvnyQ+8FL+Wzi5ZXVkOHeBEEB5UBQOggepx1xIeHAElIIAqgwbcRqppANTRfk3CFamvwBDkmYoIAALCARSEgHBgMUQ91bvgiF62sGj+nML65vbxWbdVr8/JcUENINAI3wUEGhHpgNwPXQYA3gDBBmMOzB5YimD2QnSAiAKRErVLDFcfFbgCGGjSMhISJyYx1+pJuEIsDESBy57Fb6laMT4rx3E7ampY80ukcRekLgyLzKgwiekmBxjsmFWKrDJk3wBzAQgHqiTUIFHOji1qCQGLsZIEK5catTxACSfwUDevXfaHv7yravpo1gXz5t64uIjVPUrCXeABHhlMCUCuw0AdRAPsi+CugmMxiAAqJ1iTtDZlr5BgTYnX4SYAFIAosEWl7iXzis9cah3Nun1bdRa5SiId8X1HxkKeJPpQBYNnMXQW1jnI34ysJfEqMVkTRlaEgCERtSQBqiclFgUTQJnAw2bCrevKRrMSQsqXLdDMs0nFbtZ7hO//WIg0QddGgNJbrKwItaD5RWQtRcE2mPLBYsKX9BhLvtEUVi6W/oDONFVWqKIyVSNBmbjdbsIRRmP3lzCn07myYnnN1o1VK28sdpvFSBPp+yc/dEyMXAbVJwsNgAKiBflb4FwBpoMl14rDoCS+LnFKwigna1A0XtFFXwT1bYO1pxo/PHauvqlNVeThhRxtTqdz9U0rajavW1t5Q2GOUYw0kf6jou+kKLWC0klBx6icK5C/GYSPJ9xIJJD4VowQRoms87JmUJjZH+Xqr/hqT33+0fFzFxtbNHV07ZFuWpfLteam5bds+srqFUu8Tl6MNHEDxw3B06LckZDbtMQUsM2Bpwa8MYELEAYwSomsCbJuUmD1S2Jju6/29OcfHTt/obFVU+WJfm9S65qbm7OmsnzrhtUry+Z7sogQbuJ8n5ojdQalI8NICszywFMD3gSqM0ajqhDRTDpnD8jGxk7/kVNNHx4/f7GxdXih09jUtu3u3NzVlWV3bFvzleXzs/p2O/zvTyoeLF4UbAHHM13rCrp6Qta9hy/Unrx4oaFlMojDllFFUywciTQ0tawtv26l56pj4E1CJrGTJoAahOaHuZBAt/DhoMS/sLf21Lkmqk9tYzM1VgD337npkbuWZve8yLHoZMcQQB4CITDmcES2isqS+QtqT7f4gtJ/kLVy2dznfrgz37dbVLunFj4EkK7BmA3eJHIRu5n35hceOtGsalN4bzAF1lyn7YXHvrHI+LEl/NkXeT3FGFQ/THkANfIhd3YWL5g/qevMPHCqrDzHPfPIndULAnbfQZIBlFAIBGMcRgBNAsfDYCVMNZJQSYGnqz/a0D40w6z3377mO9tnu3yv8xizPUy1QbKwnyxxoG2c7wighWDMAnSel41cdG6R99OG/j7fpAJ3Uqw3LS155uENXukdA+1P31OB7QpZH0a+yHwWMjhOD6qDA0QDdMUgSiaBFeflfnimV1Iya0JmVrfT+rsf37bY8ukstSF9TwbSx6/5U23kRMPA0uvnWGinSMbIJwF0GQYDoIIpZjFkM5ntFsuRcwMZXydnYBV47unvVlfP92dLn2RMJx+bc6p3zs92HTle17ps0fW5DquDdI2jwUwHr4GLgoYJiZqFQK49Oxhlda3habF+a3v5g1vz3dL7PDK86JOo9YpW8fjuiw2tPZTq51t9VSvmmTjZJo5JHQYQBYISc63AR418qMjlvNQhdQ6kmyUd68rFnqfuX17Mao3wpwdl4K7qS187pv75YF3sE58/NBAVKhZ6zBg0CamREKvlhQQ3g8moCpBLXMLRejXN82FC1mK39TcPr1lkr7eztvSgIOhXPf/qKfzlHz+LSCNYTe39ue682bkGh+DjuVQJYwAHkEQVzmCzqERXPQ52tBHKBM4d/z0hgLmlhXm52QNyTlDPTqf8BBHV3Bkpev6dy/1DwVQg+vu3Lp7pntURsLGxP6EDNMFK0dWDQBAlhZ4cp3WiqSb0a1tX/6nmyLzrrjOYnLqqWIXguMAUXHu4eN9p8vJ7TWMPBWRFaerFqoUGMwI28+ibjDVVRWMbugeMJ7qLHnsj0t49Ybyli9eevsHDp686crwed25YglUMC1yqChL0hBxnel2P72mNRMev7voGgirvWlQg2Q2aUUxl5eHz41IL+iPZr551P7e/x+cPpOHJoAOSJB05feWabJtfmi/JTCSyWVSHJwtKwmW/49l3o+cvjyf7Catvj5QUed1Gv8vGOBIfy4D2bjR3kCsR77OHDQeOdlBdTfMjmVkBAKyhpedEs1Y622vkNUWR7CadcNApWgbJgXPmlw9dS38kxKh+oRMV1zstCDodAIGk4FILuodMx3qLntwfqm/tncyh0mTrgYGhwAdnhgyOAq9TDYQiVhN6/TjXY3/yTSkUyVzbhyNSV9ixvJDYBFlWceEy+mXnnnO5zx/sDgaDGYdPjRWAqionzve3h/PmFWVJIb8vKv72H5a6yxmkd9g6+0Imh6fYEuobRFvU++vDwnsnO6Z0ljTVfQFr7Rw62mwsLSmqv8q/dHhgKueX7GKHtHhe0WW//Yn9gab2/9a/ExiMZqt11hcYaLfbBHEGzue/tP9P+zclUOrCr+J20QAAAABJRU5ErkJgggo=">
+
+ <meta http-equiv="cleartype" content="on">
+ <meta name="apple-mobile-web-app-capable" content="yes">
+
+ <link rel="stylesheet" type="text/css" href="../../../../css/mobile.css" />
+ <!-- link rel="stylesheet" type="text/css" href="../../../../css/jqtouch.css" / -->
+ <!-- link rel="apple-touch-startup-image" href="data:image/png;charset=utf-8;base64,iVBORw0K...ggo=" -->
+
+<script>
+ Clipperz_IEisBroken = false;
+ Clipperz_normalizedNewLine = '\n';
+ Clipperz_dumpUrl = "/dump/";
+ 'use strict';
+
+ if (typeof(MochiKit) == 'undefined') {
+ MochiKit = {};
+ }
+ MochiKit['__export__'] = false;
+</script>
+ <!-- Zepto.js modules: polyfill zepto event detect fx ajax form apple-touch-icon-->
+ <script type='text/javascript' src='../../../../js/Zepto/polyfill.js'></script>
+ <script type='text/javascript' src='../../../../js/Zepto/zepto.js'></script>
+ <script type='text/javascript' src='../../../../js/Zepto/event.js'></script>
+ <script type='text/javascript' src='../../../../js/Zepto/detect.js'></script>
+ <script type='text/javascript' src='../../../../js/Zepto/fx.js'></script>
+ <script type='text/javascript' src='../../../../js/Zepto/ajax.js'></script>
+ <script type='text/javascript' src='../../../../js/Zepto/form.js'></script>
+ <script type='text/javascript' src='../../../../js/Zepto/touch.js'></script>
+ <script type='text/javascript' src='../../../../js/Zepto/gesture.js'></script>
+
+ <script type='text/javascript' src='../../../../js/JQTouch/jqtouch.js'></script>
+
+ <script type='text/javascript' src='../../../../js/MochiKit/Base.js'></script>
+ <script type='text/javascript' src='../../../../js/MochiKit/Iter.js'></script>
+ <script type='text/javascript' src='../../../../js/MochiKit/Logging.js'></script>
+ <script type='text/javascript' src='../../../../js/MochiKit/Format.js'></script>
+ <script type='text/javascript' src='../../../../js/MochiKit/Async.js'></script>
+ <script type='text/javascript' src='../../../../js/MochiKit/DOM.js'></script>
+ <script type='text/javascript' src='../../../../js/MochiKit/Style.js'></script>
+ <script type='text/javascript' src='../../../../js/MochiKit/LoggingPane.js'></script>
+ <!-- script type='text/javascript' src='../../../../js/MochiKit/Color.js'></script -->
+ <script type='text/javascript' src='../../../../js/MochiKit/Signal.js'></script>
+ <!-- script type='text/javascript' src='../../../../js/MochiKit/Position.js'></script -->
+ <script type='text/javascript' src='../../../../js/MochiKit/Selector.js'></script>
+ <!-- script type='text/javascript' src='../../../../js/MochiKit/Visual.js'></script -->
+
+ <script type='text/javascript' src='../../../../js/JSON/json2.js'></script>
+
+ <script type='text/javascript' src='../../../../js/Clipperz/YUI/Utils.js'></script>
+ <script type='text/javascript' src='../../../../js/Clipperz/YUI/DomHelper.js'></script>
+
+ <script type='text/javascript' src='../../../../js/Clipperz/ByteArray.js'></script>
+ <script type='text/javascript' src='../../../../js/Clipperz/Base.js'></script>
+ <script type='text/javascript' src='../../../../js/Clipperz/Async.js'></script>
+ <!-- script type='text/javascript' src='../../../../js/Clipperz/CSVProcessor.js'></script -->
+ <!-- script type='text/javascript' src='../../../../js/Clipperz/KeePassExportProcessor.js'></script -->
+ <script type='text/javascript' src='../../../../js/Clipperz/Date.js'></script>
+ <script type='text/javascript' src='../../../../js/Clipperz/DOM.js'></script>
+ <script type='text/javascript' src='../../../../js/Clipperz/Logging.js'></script>
+ <script type='text/javascript' src='../../../../js/Clipperz/Signal.js'></script>
+ <!-- script type='text/javascript' src='../../../../js/Clipperz/Style.js'></script -->
+ <!-- script type='text/javascript' src='../../../../js/Clipperz/Visual.js'></script -->
+ <script type='text/javascript' src='../../../../js/Clipperz/Set.js'></script>
+ <script type='text/javascript' src='../../../../js/Clipperz/KeyValueObjectStore.js'></script>
+ <script type='text/javascript' src='../../../../js/Clipperz/Crypto/SHA.js'></script>
+ <script type='text/javascript' src='../../../../js/Clipperz/Crypto/AES.js'></script>
+ <script type='text/javascript' src='../../../../js/Clipperz/Crypto/PRNG.js'></script>
+ <script type='text/javascript' src='../../../../js/Clipperz/Crypto/BigInt.js'></script>
+ <script type='text/javascript' src='../../../../js/Clipperz/Crypto/Base.js'></script>
+ <script type='text/javascript' src='../../../../js/Clipperz/Crypto/SRP.js'></script>
+ <script type='text/javascript' src='../../../../js/Clipperz/Crypto/RSA.js'></script>
+
+ <script type='text/javascript' src='../../../../js/Clipperz/PM/Strings/Strings_defaults.js'></script>
+ <script type='text/javascript' src='../../../../js/Clipperz/PM/Strings/Strings_en-US.js'></script>
+ <script type='text/javascript' src='../../../../js/Clipperz/PM/Strings.js'></script>
+ <script type='text/javascript' src='../../../../js/Clipperz/PM/Date.js'></script>
+
+ <script type='text/javascript' src='../../../../js/Clipperz/PM/Toll.js'></script>
+ <script type='text/javascript' src='../../../../js/Clipperz/PM/Proxy.js'></script>
+ <script type='text/javascript' src='../../../../js/Clipperz/PM/Proxy/Proxy.JSON.js'></script>
+ <script type='text/javascript' src='../../../../js/Clipperz/PM/Proxy/Proxy.Offline.js'></script>
+ <script type='text/javascript' src='../../../../js/Clipperz/PM/Proxy/Proxy.Offline.DataStore.js'></script>
+
+ <script type='text/javascript' src='../../../../js/Clipperz/PM/Connection.js'></script>
+ <script type='text/javascript' src='../../../../js/Clipperz/PM/Crypto.js'></script>
+ <script type='text/javascript' src='../../../../js/Clipperz/PM/PIN.js'></script>
+
+ <script type='text/javascript' src='../../../../js/Clipperz/PM/DataModel/EncryptedRemoteObject.js'></script>
+ <script type='text/javascript' src='../../../../js/Clipperz/PM/DataModel/User.js'></script>
+ <script type='text/javascript' src='../../../../js/Clipperz/PM/DataModel/User.Header.Legacy.js'></script>
+ <script type='text/javascript' src='../../../../js/Clipperz/PM/DataModel/User.Header.RecordIndex.js'></script>
+ <script type='text/javascript' src='../../../../js/Clipperz/PM/DataModel/User.Header.Preferences.js'></script>
+ <script type='text/javascript' src='../../../../js/Clipperz/PM/DataModel/User.Header.OneTimePasswords.js'></script>
+ <script type='text/javascript' src='../../../../js/Clipperz/PM/DataModel/Record.js'></script>
+ <script type='text/javascript' src='../../../../js/Clipperz/PM/DataModel/Record.Version.js'></script>
+ <script type='text/javascript' src='../../../../js/Clipperz/PM/DataModel/Record.Version.Field.js'></script>
+ <script type='text/javascript' src='../../../../js/Clipperz/PM/DataModel/DirectLogin.js'></script>
+ <script type='text/javascript' src='../../../../js/Clipperz/PM/DataModel/DirectLoginInput.js'></script>
+ <script type='text/javascript' src='../../../../js/Clipperz/PM/DataModel/DirectLoginBinding.js'></script>
+ <script type='text/javascript' src='../../../../js/Clipperz/PM/DataModel/DirectLoginFormValue.js'></script>
+ <script type='text/javascript' src='../../../../js/Clipperz/PM/DataModel/OneTimePassword.js'></script>
+
+ <script type='text/javascript' src='../../../../js/Clipperz/PM/UI/Common/Components/BaseComponent.js'></script>
+<!--
+ <script type='text/javascript' src='../../../../js/Clipperz/PM/UI/Common/Components/ComponentSlot.js'></script>
+ <!-- script type='text/javascript' src='../../../../js/Clipperz/PM/UI/Common/Components/SimpleMessagePanel.js'></script -->
+
+<!-- script type='text/javascript' src='../../../../js/Clipperz/PM/UI/Common/Components/FaviconComponent.js'></script -->
+ <!-- script type='text/javascript' src='../../../../js/Clipperz/PM/UI/Common/Components/ProgressBar.js'></script -->
+<!-- script type='text/javascript' src='../../../../js/Clipperz/PM/UI/Common/Components/MessagePanelWithProgressBar.js'></script -->
+<!-- script type='text/javascript' src='../../../../js/Clipperz/PM/UI/Common/Components/TabPanelComponent.js'></script -->
+<!-- script type='text/javascript' src='../../../../js/Clipperz/PM/UI/Common/Components/Tooltip.js'></script -->
+<!-- script type='text/javascript' src='../../../../js/Clipperz/PM/UI/Common/Components/TranslatorWidget.js'></script -->
+
+ <!-- script type='text/javascript' src='../../../../js/Clipperz/PM/UI/Common/Controllers/DirectLoginRunner.js'></script -->
+ <!-- script type='text/javascript' src='../../../../js/Clipperz/PM/UI/Common/Controllers/ProgressBarController.js'></script -->
+<!-- script type='text/javascript' src='../../../../js/Clipperz/PM/UI/Common/Controllers/TabPanelController.js'></script -->
+<!-- script type='text/javascript' src='../../../../js/Clipperz/PM/UI/Common/Controllers/WizardController.js'></script -->
+
+ <script type='text/javascript' src='../../../../js/Clipperz/PM/UI/Mobile/Components/LoginForm.js'></script>
+ <script type='text/javascript' src='../../../../js/Clipperz/PM/UI/Mobile/Components/CardList.js'></script>
+ <script type='text/javascript' src='../../../../js/Clipperz/PM/UI/Mobile/Components/CardDetail.js'></script>
+
+ <script type='text/javascript' src='../../../../js/Clipperz/PM/UI/Mobile/Controllers/MainController.js'></script>
+ <script type='text/javascript' src='../../../../js/main.mobile.js'></script>
+
+ <script type='text/javascript' src='../../../../js/Clipperz/PM/Proxy/Proxy.Test.js'></script>
+ <script type='text/javascript' src='./User.data.js'></script>
+</head>
+<body>
+<div id="mainDiv">
+ <div id="loading">
+ <div>
+ <!-- a href="http://www.clipperz.com" target="_blank"><div id="logo"></div></a -->
+ <h1>clipperz</h1>
+ <h3 class="clipperzPayoff">keep it to yourself!</h3>
+ <!-- h5>loading ...</h5 -->
+ </div>
+ </div>
+
+</div>
+<!-- div id="applicationVersionType" class="@application.version.type@"></div -->
+
+<script>
+// Clipperz.PM.Proxy.defaultProxy = new Clipperz.PM.Proxy.JSON({'url':'@request.path@', 'shouldPayTolls':@should.pay.toll@});
+ /*offline_data_placeholder*/
+
+ var proxy = new Clipperz.PM.Proxy.Test({shouldPayTolls:false, isDefault:true, readOnly:false});
+ proxy.dataStore().setupWithEncryptedData(testData['testData']);
+ Clipperz.PM.Proxy.defaultProxy = proxy;
+
+ Clipperz.Crypto.PRNG.defaultRandomGenerator().fastEntropyAccumulationForTestingPurpose();
+// Clipperz.PM.PIN.setCredentialsWithPIN("1234", {username:'joe', passphrase:'clipperz'});
+
+ MochiKit.DOM.addLoadEvent(function () {
+// MochiKit.Signal.signal(Clipperz.Signal.NotificationCenter, 'doLogin', { credentials: {username:'joe', passphrase:'clipperz'} }, function () { alert("Doh"); } );
+ });
+
+</script>
+
+</body>
+</html>
diff --git a/scripts/builder/backendBuilder.py b/scripts/builder/backendBuilder.py
index 5b91678..36b28ca 100644
--- a/scripts/builder/backendBuilder.py
+++ b/scripts/builder/backendBuilder.py
@@ -9,7 +9,6 @@ import main
#===================================================================
-
class BackendBuilder(object):
def __init__ (self, projectTargetDir, frontends, versions, settings):
@@ -50,10 +49,12 @@ class BackendBuilder(object):
def developmentTargetFolder (self):
- return os.path.join(self.projectTargetDir, 'development', self.relativePath())
+ return os.path.join(self.projectTargetDir, 'development')
+
def targetFolder (self):
return os.path.join(self.projectTargetDir, self.relativePath())
+
# --------------------------------------------------------------------------
@@ -103,7 +104,7 @@ class BackendBuilder(object):
index = self.configureIndexContent(frontend.assemble(assemblyMode='DEBUG', versionType='DEBUG'))
self.writeToFolder(self.frontEndTempFolder(), os.path.join(frontend.module, 'index_debug' + submoduleExtension + '.html'), index)
-
+
if 'install' in self.versions:
index = self.configureIndexContent(frontend.assemble())
self.writeToFolder(self.frontEndTempFolder(), os.path.join(frontend.module, 'index' + submoduleExtension + '.html'), index)
@@ -112,20 +113,22 @@ class BackendBuilder(object):
self.createPackage()
- if 'development' in self.versions:
- for frontend in self.frontends:
- if (frontend.module == frontend.submodule):
- submoduleExtension = ''
- else:
- submoduleExtension = '.' + frontend.submodule
-
- print "FRONTEND module: " + frontend.module
- print "FRONTEND submodule: " + frontend.submodule
-
- main.createFolder(os.path.join(self.developmentTargetFolder(), frontend.module))
-
- index = self.configureIndexContent(frontend.assemble(assemblyMode='DEVELOPMENT', versionType='DEBUG'), self.settings['development.settings']['url'])
- self.writeToFolder(self.developmentTargetFolder(), os.path.join(frontend.module, 'index' + submoduleExtension + '.html'), index)
+# if 'development' in self.versions:
+# for frontend in self.frontends:
+# if (frontend.module == frontend.submodule):
+# submoduleExtension = ''
+# else:
+# submoduleExtension = '.' + frontend.submodule
+#
+# print "FRONTEND module: " + frontend.module
+# print "FRONTEND submodule: " + frontend.submodule
+#
+## main.createFolder(os.path.join(self.developmentTargetFolder(), frontend.module))
+# main.createFolder(self.developmentTargetFolder())
+#
+# index = self.configureIndexContent(frontend.assemble(assemblyMode='DEVELOPMENT', versionType='DEBUG'), self.settings['development.settings']['url'])
+## self.writeToFolder(self.developmentTargetFolder(), os.path.join(frontend.module, 'index_development' + submoduleExtension + '.html'), index)
+# self.writeToFolder(self.developmentTargetFolder(), os.path.join(frontend.module + submoduleExtension + '.html'), index)
#===================================================================
diff --git a/scripts/builder/backends/devBuilder.py b/scripts/builder/backends/devBuilder.py
new file mode 100644
index 0000000..671765e
--- a/dev/null
+++ b/scripts/builder/backends/devBuilder.py
@@ -0,0 +1,56 @@
+#!/usr/bin/env python
+# -*- coding: UTF-8 -*-
+
+import os
+import shutil
+import subprocess
+import main
+
+from backendBuilder import BackendBuilder
+
+class DevBuilder(BackendBuilder):
+
+ def name(self):
+ return "Dev builder"
+
+
+ def relativePath(self):
+ return 'dev'
+
+
+# def frontEndTempFolder (self):
+# return os.path.join(self.tempFolder(), 'src', 'main', 'webapp')
+
+
+# def targetFolder (self):
+# return self.projectTargetDir
+
+
+ def compileCode (self):
+ pass
+
+
+ def createPackage (self):
+ src = self.tempFolder()
+ dst = self.targetFolder()
+
+ shutil.copytree(src, dst)
+
+
+ def run (self):
+ print self.name() + " - RUN (dev)"
+
+ for frontend in self.frontends:
+ if (frontend.module == frontend.submodule):
+ submoduleExtension = ''
+ else:
+ submoduleExtension = '.' + frontend.submodule
+
+ main.createFolder(os.path.join(self.frontEndTempFolder(), frontend.module))
+
+ index = self.configureIndexContent(frontend.assemble(assemblyMode='DEBUG', versionType='DEBUG'))
+ self.writeToFolder(self.frontEndTempFolder(), os.path.join(frontend.module, 'index' + submoduleExtension + '.html'), index)
+
+ self.createPackage()
+
+
diff --git a/scripts/builder/frontendBuilder.py b/scripts/builder/frontendBuilder.py
index 1f0f92f..e52c31e 100644
--- a/scripts/builder/frontendBuilder.py
+++ b/scripts/builder/frontendBuilder.py
@@ -11,6 +11,8 @@ import urllib
import main
+#===============================================================================
+
class FrontendBuilder(object):
def __init__ (self, frontend, settings, repositoryVersion):
@@ -27,10 +29,23 @@ class FrontendBuilder(object):
# self.repository = repository.repositoryWithPath(self.projectDir)
self.repositoryVersion = repositoryVersion
self.processedFiles = {}
-
+
+ #---------------------------------------------------------------------------
+
+ def name (self):
+ raise NotImplementedError()
+
+
+ def copyStaticResources (self, targetFolder):
+ raise NotImplementedError()
+
+ #---------------------------------------------------------------------------
def log (self, message):
- print "frontend [" + self.module + "]: " + message
+ module = self.module
+ if (self.module != self.submodule):
+ module = module + "." + self.submodule
+ print "frontend [" + module + "]: " + message
def absolutePathForSources (self):
@@ -58,16 +73,30 @@ class FrontendBuilder(object):
def copyResources (self, sourceFolder, destinationFolder, fileType):
- for file in self.filterFiles(self.settings[fileType]):
- src = self.absolutePathForSourceFile(fileType, file)
- dst = self.absolutePathForTargetFile(destinationFolder, fileType, file)
- main.createFolder(os.path.dirname(dst))
- shutil.copy2(src, dst)
+ if fileType in self.settings:
+ for file in self.filterFiles(self.settings[fileType]):
+ src = self.absolutePathForSourceFile(fileType, file)
+ dst = self.absolutePathForTargetFile(destinationFolder, fileType, file)
+ main.createFolder(os.path.dirname(dst))
+ shutil.copy2(src, dst)
+ else:
+ srcFolder = os.path.join(self.absolutePathForSources(), fileType)
+ dstFolder = os.path.join(destinationFolder, self.module, fileType)
+ if not(os.path.exists(dstFolder)):
+ shutil.copytree(srcFolder, dstFolder)
+
+# try:
+# shutil.copytree(srcFolder, dstFolder)
+# except:
+# pass
+
def copyResourcesToFolder (self, targetFolder):
self.copyResources(self.projectDir, targetFolder, 'css')
self.copyResources(self.projectDir, targetFolder, 'js')
+ self.copyResources(self.projectDir, targetFolder, 'images')
+ self.copyStaticResources(targetFolder)
def loadFilesContent (self, basePath, files):
@@ -279,13 +308,13 @@ class FrontendBuilder(object):
def replaceTemplatePlaceholders (self, pageTitle, copyright, css, code, jsLoadMode, version, versionType):
result = self.template()
- result = result.replace('@page.title@', pageTitle, 1)
- result = result.replace('@copyright@', copyright, 1)
- result = result.replace('@css@', css, 1)
- #result = result.replace('@bookmarklet@', bookmarklet, 1)
- result = result.replace('@application.version@', version, 1)
- result = result.replace('@application.version.type@', versionType, 1)
- result = result.replace('@js_' + jsLoadMode + '@', code, 1)
+ result = result.replace('@page.title@', pageTitle)
+ result = result.replace('@copyright@', copyright)
+ result = result.replace('@css@', css)
+ #result = result.replace('@bookmarklet@', bookmarklet)
+ result = result.replace('@application.version@', version)
+ result = result.replace('@application.version.type@', versionType)
+ result = result.replace('@js_' + jsLoadMode + '@', code)
result = re.sub('@js_[^@]+@', '', result)
@@ -371,6 +400,7 @@ class FrontendBuilder(object):
'\n' + \
self.scriptTagsForFiles('file://' + str(os.path.join(self.absolutePathForSources(), 'js')), self.filterFiles(self.settings['js']))
jsLoadMode = 'LINKED'
+ versionType = 'development'
else:
raise NotImplementedError()
diff --git a/scripts/builder/frontends/betaBuilder.py b/scripts/builder/frontends/betaBuilder.py
new file mode 100644
index 0000000..c5a3e76
--- a/dev/null
+++ b/scripts/builder/frontends/betaBuilder.py
@@ -0,0 +1,14 @@
+from frontendBuilder import FrontendBuilder
+import shutil
+
+class BetaBuilder(FrontendBuilder):
+
+ def name(self):
+ return "/beta builder"
+
+ def copyStaticResources (self, targetFolder):
+ for file in self.filterFiles(self.settings['staticResources']):
+ src = self.absolutePathForSourceFile('staticResources', file)
+ dst = self.absolutePathForTargetFile(targetFolder, '', file)
+ shutil.copy2(src, dst)
+
diff --git a/scripts/builder/frontends/gammaBuilder.py b/scripts/builder/frontends/gammaBuilder.py
new file mode 100644
index 0000000..35fa68b
--- a/dev/null
+++ b/scripts/builder/frontends/gammaBuilder.py
@@ -0,0 +1,26 @@
+from frontendBuilder import FrontendBuilder
+import shutil
+
+class GammaBuilder(FrontendBuilder):
+
+ def name(self):
+ return "/gamma builder"
+
+ def copyStaticResources (self, targetFolder):
+ resourcesToCopy = [
+ {'folder': 'html', 'source': 'exit_template.html', 'target': 'exit.html'},
+ {'folder': 'css', 'source': 'static.css', 'target': 'static.css'}
+ ]
+
+ for resource in resourcesToCopy:
+ src = self.absolutePathForSourceFile(resource['folder'], resource['source'])
+ dst = self.absolutePathForTargetFile(targetFolder, '', resource['target'])
+ shutil.copy2(src, dst)
+
+ # src = self.absolutePathForSourceFile('html', 'exit_template.html')
+ # dst = self.absolutePathForTargetFile(targetFolder, '', 'exit.html')
+ # shutil.copy2(src, dst)
+
+ # src = self.absolutePathForSourceFile('css', 'static.css')
+ # dst = self.absolutePathForTargetFile(targetFolder, '', 'static.css')
+ # shutil.copy2(src, dst)
diff --git a/scripts/builder/frontends/gamma_mobileBuilder.py b/scripts/builder/frontends/gamma_mobileBuilder.py
new file mode 100644
index 0000000..f2e80c9
--- a/dev/null
+++ b/scripts/builder/frontends/gamma_mobileBuilder.py
@@ -0,0 +1,9 @@
+from frontendBuilder import FrontendBuilder
+
+class Gamma_MobileBuilder(FrontendBuilder):
+
+ def name(self):
+ return "/gamma.mobile builder"
+
+ def copyStaticResources (self, targetFolder):
+ pass
diff --git a/scripts/builder/main.py b/scripts/builder/main.py
index 6fce65d..b9fe04a 100755
--- a/scripts/builder/main.py
+++ b/scripts/builder/main.py
@@ -10,7 +10,7 @@ import codecs
import itertools
from collections import deque
-import frontendBuilder
+#import frontendBuilder
import repository
pp = pprint.PrettyPrinter(indent=4, depth=4)
@@ -75,7 +75,7 @@ def assembleBackend (backend, frontends, versions):
builderModuleName = backend + 'Builder'
builderClassName = backend.capitalize() + 'Builder'
-
+ #print ("BUILD BACKENDS - module: " + builderModuleName + " , class: " + builderClassName)
builderModule = __import__(builderModuleName)
builderClass = getattr(builderModule, builderClassName)
@@ -88,10 +88,22 @@ def build (settings, repository):
frontends = []
if repository.areTherePendingChanges():
- print "\nWARNING: repository has pending changes\n"
+ if 'install' in settings['versions']:
+ raise Exception("repository has pending changes, can't 'install'")
+ else:
+ print "\nWARNING: repository has pending changes\n"
for frontend in settings['frontends']:
- frontends.append(frontendBuilder.FrontendBuilder(frontend, loadSettings('frontend', frontend), repository.version()))
+ normalizedFrontendName = frontend.replace(".", "_")
+ builderModuleName = normalizedFrontendName + 'Builder'
+ builderClassName = normalizedFrontendName.title() + 'Builder'
+
+ #print ("BUILD FRONTEND - module: " + builderModuleName + " , class: " + builderClassName)
+ builderModule = __import__(builderModuleName)
+ builderClass = getattr(builderModule, builderClassName)
+ builder = builderClass(frontend, loadSettings('frontend', frontend), repository.version())
+ #builder = frontendBuilder.FrontendBuilder(frontend, loadSettings('frontend', frontend), repository.version())
+ frontends.append(builder)
for backend in settings['backends']:
assembleBackend(backend, frontends, settings['versions'])
@@ -114,6 +126,7 @@ def usage (message):
# print "build clean install"
print "build install --ALL"
print "build install debug --ALL"
+ print "build install debug development --ALL"
# print "build clean install debug --ALL"
print "build install debug --backends php python --frontends beta gamma"
print "build install debug development --backends php python --frontends beta gamma gamma.mobile"
@@ -122,7 +135,7 @@ def usage (message):
#--------------------------------------------------------------------
def allFrontends ():
- return ['beta', 'gamma', 'mobile']
+ return ['beta', 'gamma', 'gamma.mobile']
def allBackends ():
return ['php', 'python']
@@ -134,6 +147,7 @@ def main ():
parameters = list(itertools.islice(sys.argv, 1, None))
sys.path.append(os.path.join(scriptDir(), 'backends'))
+ sys.path.append(os.path.join(scriptDir(), 'frontends'))
currentRepository = repository.repositoryWithPath(projectBaseDir())
clean()
@@ -174,4 +188,4 @@ def main ():
if __name__ == "__main__":
- main()
+ main()
diff --git a/scripts/dev-proxy b/scripts/dev-proxy
new file mode 100755
index 0000000..e5980e3
--- a/dev/null
+++ b/scripts/dev-proxy
@@ -0,0 +1,7 @@
+#!/bin/bash
+
+readonly CURR_DIR=$(cd "$(dirname "$0")"; pwd -P)
+
+#${CURR_DIR}/proxy/main.py $@
+python ${CURR_DIR}/proxy/main.py $@
+#twistd -y ${CURR_DIR}/proxy/main.py --pidfile=${CURR_DIR}/../target/proxy/proxy.pid --logfile=${CURR_DIR}/../target/proxy/logs/proxy.log \ No newline at end of file
diff --git a/scripts/proxy/main.py b/scripts/proxy/main.py
new file mode 100755
index 0000000..107ba16
--- a/dev/null
+++ b/scripts/proxy/main.py
@@ -0,0 +1,95 @@
+from twisted.internet import reactor
+from twisted.web import proxy, server, http, resource, static
+from posixpath import basename, dirname
+
+import copy
+import sys
+import os
+import pprint
+
+#--------------------------------------------------------------------
+
+def scriptDir ():
+ return os.path.dirname(sys.argv[0])
+
+def projectBaseDir ():
+ return os.path.abspath(scriptDir() + '/../..')
+
+def projectTargetDir():
+ return projectBaseDir() + '/target/'
+
+#--------------------------------------------------------------------
+
+class ClipperzTestSite(server.Site):
+
+ def __init__(self, resource, logPath=None, timeout=60 * 60 * 12):
+ server.Site.__init__(self, resource, logPath, timeout)
+
+
+ def getResourceFor(self, request):
+ if request.uri.startswith('/json') or request.uri.startswith('/dump'):
+ request.site = self
+ request.sitepath = copy.copy(request.prepath)
+ result = resource.getChildForRequest(self.resource, request)
+
+ else:
+ pathParts = request.uri.split('/')
+ version = pathParts[1]
+
+ if pathParts[2].startswith('index.'):
+ contentType = 'text/html'
+ absoluteFilePath = os.path.join(projectTargetDir(), 'dev', version, pathParts[2])
+ result = static.File(absoluteFilePath, contentType)
+
+ else:
+# http://homer.local:8888/beta/css/clipperz/images/loginInfoBackground.png
+# pathParts: ['', 'beta', 'css', 'clipperz', 'images', 'loginInfoBackground.png']
+ try:
+ imagePathIndex = pathParts.index('images')
+ resourceType = 'images'
+ for _ in range(2, imagePathIndex):
+ del pathParts[2]
+ except:
+ resourceType = pathParts[2]
+
+ basePath = projectBaseDir() + '/frontend'
+ if resourceType == 'images':
+ fileExtension = os.path.splitext(request.uri)[1]
+ if fileExtension == '.png':
+ contentType = 'image/png'
+ elif fileExtension == '.jpg':
+ contentType = 'image/jpeg'
+ elif fileExtension == '.gif':
+ contentType = 'image/gif'
+ else:
+ print "ERROR - unknown image extension: " + fileExtension
+
+ absoluteFilePath = basePath + '/'.join(pathParts)
+ else:
+ resourceType = pathParts[2]
+
+ if resourceType == 'css':
+ contentType = 'text/css'
+ elif resourceType == 'js':
+ contentType = 'text/javascript'
+ else:
+ contentType = 'text/html'
+
+ absoluteFilePath = basePath + request.uri
+
+ result = static.File(absoluteFilePath, contentType)
+
+
+ return result
+
+
+
+def main ():
+ site = ClipperzTestSite(proxy.ReverseProxyResource('localhost', 8084, '/java-backend'))
+ reactor.listenTCP(8888, site)
+ reactor.run()
+
+
+if __name__ == "__main__":
+ main()
+