49 files changed, 1845 insertions, 3294 deletions
diff --git a/frontend/beta/properties/beta.properties.json b/frontend/beta/properties/beta.properties.json index a8d7ef4..810215b 100644 --- a/frontend/beta/properties/beta.properties.json +++ b/frontend/beta/properties/beta.properties.json @@ -1,21 +1,24 @@ { "copyright.values": { "mochikit.repository": "http://svn.mochikit.com/mochikit/trunk/", "mochikit.version": "1249" }, + + "html.template": "index_template.html", + "js": [ "MochiKit/Base.js", "MochiKit/Iter.js", "MochiKit/DOM.js", "MochiKit/Style.js", "MochiKit/Signal.js", "MochiKit/Format.js", "MochiKit/Async.js", "MochiKit/Selector.js", "MochiKit/Logging.js", "MochiKit/LoggingPane.js", "YUI/yahoo.js", "YUI/animation.js", "YUI/event.js", "YUI/dom.js", diff --git a/frontend/gamma/css/web.css b/frontend/gamma/css/web.css index e4890b6..0a72e09 100644 --- a/frontend/gamma/css/web.css +++ b/frontend/gamma/css/web.css @@ -33,32 +33,38 @@ Color list: regular #dd5500 hover #773311 - login translations: box: #cc6622; not-selected: color: #ddaa99 background: #994422 selected: #772211; */ html { height: 100%; } body { font-family: Helvetica-Neue, Helvetica, Arial, Geneva, sans-serif; margin: 0px; } +div.modalDialogMask.userInfoBoxMask { + -moz-opacity: 0.0; + opacity: .0; + filter: alpha(opacity=0); + z-index: 19000; +} .reset-margin { margin: 0px; padding: 0px; border: 0px; } .clear { clear: both; } .hidden_none { display: none; visibility: hidden; } .keepTogether { display: inline-block; white-space: nowrap; } @@ -75,32 +81,38 @@ Color list: regular #dd5500 hover #773311 - login translations: box: #cc6622; not-selected: color: #ddaa99 background: #994422 selected: #772211; */ html { height: 100%; } body { font-family: Helvetica-Neue, Helvetica, Arial, Geneva, sans-serif; margin: 0px; } +div.modalDialogMask.userInfoBoxMask { + -moz-opacity: 0.0; + opacity: .0; + filter: alpha(opacity=0); + z-index: 19000; +} .reset-margin { margin: 0px; padding: 0px; border: 0px; } .clear { clear: both; } .hidden_none { display: none; visibility: hidden; } .keepTogether { display: inline-block; white-space: nowrap; } @@ -154,32 +166,445 @@ Color list: regular #dd5500 hover #773311 - login translations: box: #cc6622; not-selected: color: #ddaa99 background: #994422 selected: #772211; */ html { height: 100%; } body { font-family: Helvetica-Neue, Helvetica, Arial, Geneva, sans-serif; margin: 0px; } +div.modalDialogMask.userInfoBoxMask { + -moz-opacity: 0.0; + opacity: .0; + filter: alpha(opacity=0); + z-index: 19000; +} +.reset-margin { + margin: 0px; + padding: 0px; + border: 0px; +} +.clear { + clear: both; +} +.hidden_none { + display: none; + visibility: hidden; +} +.keepTogether { + display: inline-block; + white-space: nowrap; +} +#mainDiv { + margin: 0 auto; +} +div.tooltip { + position: absolute; + z-index: 30001; +} +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; + border-top: 1px solid #d4d4d4; + border-left: 1px solid #a2a2a2; + border-right: 1px solid #6f6f6f; + border-bottom: 1px solid #3c3c3c; +} +div.tooltip div.tooltip_body span { + display: block; + padding: 10px; + font-size: 10pt; + color: white; +} +div.tooltip div.tooltip_body div.tooltip_text { + width: 200px; +} +div.tooltip div.tooltip_arrow { + position: absolute; + width: 0; + height: 0; + border: 6px solid transparent; +} +div.tooltip.BELOW div.tooltip_arrow { + top: -12px; + left: 97px; + border-bottom: 6px solid #bbbbbb; +} +div.tooltip.ABOVE div.tooltip_arrow { + position: static; + margin-left: 97px; + border-top: 6px solid #555555; +} +div.tooltip.LEFT div.tooltip_arrow { + left: 203px; + top: 10px; + border-left: 6px solid #747474; +} +div.tooltip.LEFT div.tooltip_body div.tooltip_text { + min-height: 45px; +} +div.tooltip.RIGHT div.tooltip_arrow { + left: -12px; + top: 10px; + border-right: 6px solid #9c9c9c; +} +div.tooltip.RIGHT div.tooltip_body div.tooltip_text { + min-height: 45px; +} +/* + +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%; +} +body { + font-family: Helvetica-Neue, Helvetica, Arial, Geneva, sans-serif; + margin: 0px; +} +div.modalDialogMask.userInfoBoxMask { + -moz-opacity: 0.0; + opacity: .0; + filter: alpha(opacity=0); + z-index: 19000; +} .reset-margin { margin: 0px; padding: 0px; border: 0px; } .clear { clear: both; } .hidden_none { display: none; visibility: hidden; } .keepTogether { display: inline-block; white-space: nowrap; } @@ -211,32 +636,38 @@ div.pageHeader div#miscLinks ul li { border: 0px; } 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; text-decoration: none; font-size: 12pt; min-width: 70px; } div.pageHeader div#miscLinks ul li a:hover { color: #b8bae1; } div.pageHeader div#miscLinks ul li a#donateHeaderLink { border-left: 0px; } div.pageHeader div#logoFrame { padding: 16px 16px 60px 16px; min-height: 44px; @@ -245,32 +676,38 @@ 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; + margin: 0px; + padding: 0px; + border: 0px; width: 150px; height: 39px; } 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 { width: 100%; padding: 6px; padding-left: 15px; padding-right: 15px; padding-bottom: 46px; @@ -288,160 +725,296 @@ div.pageHeader div#featureTabs table tr td span { display: block; padding: 5 10 5 85; } 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 { top: -82px; left: 240px; width: 310px; height: 90px; position: absolute; background-color: #616475; -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-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); - -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); - -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); - -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); + -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 { margin-left: 10px; margin-right: 10px; height: 75px; overflow: hidden; } div.pageHeader div#news div#newsframe iframe { width: 290px; border: 0px; color: #616475; background-color: #616475; } div.pageHeader div#news div.grip { width: 310px; height: 12px; @@ -511,32 +1084,38 @@ Color list: regular #dd5500 hover #773311 - login translations: box: #cc6622; not-selected: color: #ddaa99 background: #994422 selected: #772211; */ html { height: 100%; } body { font-family: Helvetica-Neue, Helvetica, Arial, Geneva, sans-serif; margin: 0px; } +div.modalDialogMask.userInfoBoxMask { + -moz-opacity: 0.0; + opacity: .0; + filter: alpha(opacity=0); + z-index: 19000; +} .reset-margin { margin: 0px; padding: 0px; border: 0px; } .clear { clear: both; } .hidden_none { display: none; visibility: hidden; } .keepTogether { display: inline-block; white-space: nowrap; } @@ -554,126 +1133,250 @@ div#loginBox { div#loginBox div.header { height: 25px; width: 273px; background-color: #ff9b5a; -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; } 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; font-size: 16pt; font-weight: normal; padding-left: 20px; margin: 0px; } div#loginBox div.body form.loginForm { padding: 5px 20px 0px; margin-bottom: 0px; } div#loginBox div.body form.loginForm label { color: #ffffff; font-size: 10pt; display: block; @@ -766,116 +1469,236 @@ div#loginBox div.body form.loginForm div.translations ul li:hover { div#loginBox div.footer { height: 37px; width: 273px; background-color: #ff6622; -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; } body.ext-gecko div#loginBox form.loginForm div.translations ul li { display: -moz-inline-box; } div#featurePoints { min-width: 400px; padding-top: 15px; padding-bottom: 20px; padding-left: 20px; padding-right: 330px; } div#featurePoints table tbody tr td { width: 50%; vertical-align: top; } div#featurePoints div.block { @@ -955,2749 +1778,433 @@ div.activeFeatures div.createAccountLink a.createAccountLink span.link { padding-right: 50px; padding-bottom: 10px; font-size: 12pt; } div.activeFeatures div.createAccountLink:hover a.createAccountLink span.payoff { color: #54535a; } div.activeFeatures div.createAccountLink:hover a.createAccountLink span.link { color: white; } div.activeFeatures div.createAccountLink canvas { width: 282px; height: 93px; } /* -img.favicon { - height: 16px; - width: 16px; -} - -body.ext-gecko .keepTogether { - display: -moz-inline-box; -} - - - - - - - - -div.activeFeatures { - float: left; - margin-left: 20px; - height: 100px; -} -div.activeFeatures a { - display: inline-block; - padding-left: 46px; - color: #ff5906; - text-decoration: none; - font-size: 10pt; -} -div.activeFeatures .keepTogether a { - padding-left: 0px; -} -div.activeFeatures a span.payoff { - display: block; - font-size: 13pt; - font-weight: lighter; - color: #9b9689; - margin: 0px; - padding: 0px; -} -// body.ext-gecko div.activeFeatures a { -// display: -moz-inline-box; -// } -div.activeFeatures a:hover span.payoff { - color: #666666; -} -div.activeFeatures a:hover span.link { -// font-weight: bold; -} -div.activeFeatures div.keepTogether div { - display: inline-block; - padding-right: 15px; -} -// body.ext-gecko div.activeFeatures div.keepTogether div { -// display: -moz-inline-box; -// } -div.activeFeatures div.createAccountLink { - display: inline-block; - width: 282; - height: 65px; -// background-image: url(../images/old/home/register.png); - - margin-right: 20px; -} -// body.ext-gecko div.activeFeatures div.createAccountLink { -// display: -moz-inline-box; -// } -div.activeFeatures a.createAccountLink { - position: relative; - top: -92px; - left: 5px; -} -div.activeFeatures div.createAccountLink a.createAccountLink span.payoff { - margin-top: 23px; - margin-left: 40px; - font-size: 17pt; - color: #64626c; -} -div.activeFeatures div.createAccountLink a.createAccountLink span.link { - padding-left: 40px; - padding-right: 50px; - 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; -} -div.activeFeatures div.createAccountLink:hover a.createAccountLink span.link { - color: white; -} -// div.activeFeatures div.screenshotLink { -// background: url(../images/old/home/look.png) no-repeat 0 -3px; -// } -// -// div.activeFeatures div.offlineLink { -// background: url(../images/old/home/download.png) no-repeat 10px -4px; -// } - -div.createAccountLink canvas { - width: 282px; - height: 93px; -} -div.activeFeatures .keepTogether canvas { - width: 46px; - height: 46px; - vertical-align: bottom; -} - -div.pageHeaderAndBody { - height: 100%; -} -body > div.pageHeaderAndBody { - height: auto; - min-height: 100%; -} -div#pageBody { - min-width: 1013px; - padding-bottom: 90px; -} -div.pageFooter { - margin-top: -90px; - height: 90px; - clear: both; -} -div.footerWrapper { - clear: both; - padding-top: 10px; -} -div.footerContent { - background-color: #eaebe6; - padding: 20px; - font-size: 8pt; -} -// div.pageFooter div.footerContent div.footerStarIcon { -div.pageFooter div.footerContent canvas.footerStarIcon { -// background-image: url(../images/old/footer/star.png); - - width: 40px; - height: 40px; - float: left; -} -div.pageFooter div.footerContent span.copyright { - padding-left: 10px; - color: #a0a0a0; -} -div.pageFooter div.footerContent a { - padding-left: 50px; - display: block; - color: #888888; - font-weight: bold; - text-decoration: none; -} -div.pageFooter div.footerContent span.applicationVersion { - padding: 8px; - color: #888888; - background-color: #d2d2d2; - position: relative; - top: -40px; - float: right; -} - -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; -} - -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.footer div.button.default { - text-decoration: underline; -} -div.LoginProgress div.buttonArea { - text-align: center; -} -div.LoginProgress div.button { - display: inline-block; -} -div.LoginProgress div.footer a:hover { - color: #515247; -} - -div.SimpleMessagePanel { - position: relative; - left: -225px; - top: -70px; - width: 450px; - height: 140px; -// background: url(../images/old/loginProgress/background.png); -} -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; -} -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: 66px; - height: 60px; - float: left; -} -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; +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%; } - -div.button_wrapper { - height: 32px; - background: url(../images/old/button/default_left.png) no-repeat; - cursor: pointer; +body { + font-family: Helvetica-Neue, Helvetica, Arial, Geneva, sans-serif; + margin: 0px; } -div.button_wrapper.hover { - background: url(../images/old/button/hover_left.png) no-repeat; +div.modalDialogMask.userInfoBoxMask { + -moz-opacity: 0.0; + opacity: .0; + filter: alpha(opacity=0); + z-index: 19000; } -div.button_wrapper.clicked { - background: url(../images/old/button/clicked_left.png) no-repeat; +.reset-margin { + margin: 0px; + padding: 0px; + border: 0px; } -div.button_bodyWrapper { - height: 32px; - margin-left: 6px; - padding-right: 6px; - background: url(../images/old/button/default_main.png) repeat-x right 0; +.clear { + clear: both; } -div.button_wrapper.hover div.button_bodyWrapper { - background: url(../images/old/button/hover_main.png) repeat-x right 0; +.hidden_none { + display: none; + visibility: hidden; } -div.button_wrapper.clicked div.button_bodyWrapper { - background: url(../images/old/button/clicked_main.png) repeat-x right 0; +.keepTogether { + display: inline-block; + white-space: nowrap; } -div.button_body { - text-align: center; - min-width: 60px; - padding: 0px 7px; - padding-top: 8px; +#mainDiv { + margin: 0 auto; } -div.button_body span { - font-size: 11pt; - color: white; +div.userInfoBox { + position: absolute; + width: 160px; + height: 120px; + top: 100px; + left: 15px; + color: white; + 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.button_wrapper.default div.button_body span { - font-weight: bold; +div.userInfoBox.locked { + z-index: 19001; } - -// div.button_footer { -// margin: 0px; -// height: 31px; -// width: 6px; -// background: green url(../images/old/button/default_right.png) no-repeat; -// } - -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.userInfoBox.locked div.header a.lockButton { + background: url(../images/old/lock/locked.png) no-repeat -5px -2px; } - -div.userInfoBox { - position: absolute; - width: 160px; - height: 120px; - top: 100px; - left: 15px; -// background-image: url(../images/old/main/userInfoBackground.png); - - background-color: #ff9955; - background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#ff9a56), to(#ff6723), color-stop(1, #333333)); - background: -moz-linear-gradient(0% 100% 90deg, #ff6723, #ff9a56); - -webkit-border-radius: 10px; - -moz-border-radius: 10px; - border-radius: 10px; - -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); - color: white; +div.userInfoBox.locked div.header a.lockButton:hover { + background: url(../images/old/lock/locked_hover.png) no-repeat -5px -2px; } -div.userInfoBox div.body { - padding: 0px 12px; +div.userInfoBox.locked div.body a { + display: none; } div.userInfoBox div.header { - height: 30px; + height: 30px; } div.userInfoBox div.header h1 { - font-size: 8pt; - font-weight: normal; - margin: 0px; - padding-top: 12px; - padding-left: 12px; + font-size: 8pt; + font-weight: normal; + margin: 0px; + padding-top: 12px; + padding-left: 12px; } div.userInfoBox div.header a.lockButton { - position: absolute; - top: 8px; - right: 12px; - display: block; - width: 15px; - height: 20px; - text-decoration: none; - background: url(../images/old/lock/unlocked.png) no-repeat -5px -2px; + position: absolute; + top: 8px; + right: 12px; + display: block; + width: 15px; + height: 20px; + text-decoration: none; + 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; -} -div.userInfoBox.locked { - z-index: 19001; + background: url(../images/old/lock/unlocked_hover.png) no-repeat -5px -2px; } -div.modalDialogMask.userInfoBoxMask { - -moz-opacity: 0.0; - opacity: .0; - filter: alpha(opacity=0); - z-index: 19000; -} -div.userInfoBox.locked div.header a.lockButton { - 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; +div.userInfoBox div.body { + padding: 0px 12px; } div.userInfoBox div.body h3 { - font-size: 11pt; - font-weight: bold; - margin: 0px; + font-size: 11pt; + font-weight: bold; + margin: 0px; } div.userInfoBox div.body ul { - list-style-image: url(../images/old/main/userInfoBullet.png); - font-size: 8pt; - padding: 0px; - margin: 4px 0px; - list-style-position: inside; - text-shadow: #000000 0 0 0; + font-size: 8pt; + 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; - padding-right: 3px; + font-weight: bold; + padding-right: 3px; } div.userInfoBox div.body a { - display: block; - margin-top: 8 - px; - border-top: 1px solid white; - padding-top: 6px; - font-size: 10pt; - font-weight: bold; - color: #d15a22; - text-decoration: none; - border-color: #fe9a5f; + display: block; + margin-top: 8px; + border-top: 1px solid white; + padding-top: 6px; + font-size: 10pt; + font-weight: bold; + color: #d15a22; + border-color: #fe9a5f; + text-decoration: none; } div.userInfoBox div.body a:hover { - color: #8c3b15; -} -div.userInfoBox.locked div.body a { - display: none; + color: #8c3b15; } - -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); -} - div.sidePanels { -// position: relative; -// top: 110px; - - float: left; - margin-top: 106px; - margin-left: 20px; - width: 160px; -} - -div.tabSidePanel { - margin-right: -10px; -// position: absolute; -// width: 250px; -// height: 250px; -// top: 250px; -// left: 10px; -} -div.tabSidePanel ul { - margin: 0px; - padding-left: 0px; - list-style-type: none; - color: #f78b46; -} - -div.tabSidePanel ul.mainTabs { - margin: 0px; -} -div.tabSidePanel ul.mainTabs li { -// margin-bottom: 6px; - -} -div.tabSidePanel ul.mainTabs li a { - display: block; - line-height: 30px; - height: 43px; - padding-left: 40px; - color: #ff6621; - margin: 0px; - font-weight: normal; - font-size: 13pt; - text-decoration: none; -} -div.tabSidePanel ul.mainTabs li div.selectionHighlighter { - display: none; -} -div.tabSidePanel ul.mainTabs li.selected div.selectionHighlighter { - display: block; - position: absolute; - left: 154px; - margin-top: -43px; -} - -// div.tabSidePanel ul.mainTabs li.selected div.selectionHighlighter div.selectionHighlighterIcon { -// background-image: url(../images/main/tabs/selectionHighligher.png); -// width: 50px; -// height: 34px; -// float: left; -// z-index: 35000; -// border: 1px solid red; -// } - -div.tabSidePanel ul.mainTabs li.selected div.selectionHighlighter a.add { - font-size: 14pt; - font-weight: bold; - position: relative; - top: -34px; - right: 16px; - background: none; - color: #c0531b; - padding-left: 15px; -} -div.tabSidePanel ul.mainTabs li.selected div.selectionHighlighter a.add:hover { - color: white; -} -div.tabSidePanel ul.mainTabs li.selected div.selectionHighlighter a.add span { - font-size: 8pt; - vertical-align: middle; -} -div.tabSidePanel ul.mainTabs li.selected div.selectionHighlighter a.add h3 { - display: inline; - padding-left: 5px; -} -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.tabSidePanel ul.mainTabs li.cards.selected a:hover { - background: url(../images/old/main/tabs/cardsBackground.png) -9px -14px; -} -div.tabSidePanel ul.mainTabs li.cards a { - background: url(../images/old/main/tabs/cardsBackground.png) -19px -63px; -} -div.tabSidePanel ul.mainTabs li.cards a:hover { - background: url(../images/old/main/tabs/cardsBackground.png) -19px -110px; -} -div.tabSidePanel ul.mainTabs li.directLogins.selected a { - margin-left: -10px; - padding-left: 50px; - color: white; -// background: url(../images/old/main/tabs/directLoginBackground.png) 0 -1px; - background: url(../images/old/main/tabs/directLoginBackground.png) -9px -14px; -} -div.tabSidePanel ul.mainTabs li.directLogins.selected a:hover { - color: white; -// background: url(../images/old/main/tabs/directLoginBackground.png) 0 -1px; - background: url(../images/old/main/tabs/directLoginBackground.png) -9px -14px; -} -div.tabSidePanel ul.mainTabs li.directLogins a { -// background: url(../images/old/main/tabs/directLoginBackground.png) 0 -34px; - background: url(../images/old/main/tabs/directLoginBackground.png) -19px -63px; -} -div.tabSidePanel ul.mainTabs li.directLogins a:hover { -// background: url(../images/old/main/tabs/directLoginBackground.png) 0 -67px; - background: url(../images/old/main/tabs/directLoginBackground.png) -19px -110px; -} - -div.tabSidePanel ul.otherTabs { - margin: 10px 0px; -} -div.tabSidePanel ul.otherTabs li { - margin-top: -4px; -} -div.tabSidePanel ul.otherTabs li div.selectionHighlighter { - display: none; -} -div.tabSidePanel ul.otherTabs li.selected div.selectionHighlighter { - display: block; - position: absolute; - left: 154px; - margin-top: -42px; -} -div.tabSidePanel ul.otherTabs a { - display: block; - line-height: 36px; - height: 43px; - padding-left: 40px; - color: #ff6621; - text-decoration: none; -// background: url(../images/old/main/tabs/itemsBackground.png) -10px -49px; -} -div.tabSidePanel ul.otherTabs li.selected a { -// background: url(../images/old/main/tabs/itemsBackground.png) 0 -1px; -// background: url(../images/old/main/tabs/itemsBackground.png) 0 -67px; - - margin-left: -10px; - padding-left: 50px; - background: url(../images/old/main/tabs/itemsBackground.png) 1px -96px; - color: white; -} -div.tabSidePanel ul.otherTabs a:hover { -// background: url(../images/old/main/tabs/itemsBackground.png) 0 -34px; - - background: url(../images/old/main/tabs/itemsBackground.png) -10px -49px; -} - -div.tagSidePanel { -// position: relative; -// width: 250px; -// min-height: 100px; -// left: 10px; - - margin-right: -8px; -} -div.tagSidePanel div.header { - height: 50px; - background-image: url(../images/old/main/tabs/tagsBackground.png); -} -div.tagSidePanel div.header h1 { - padding-left: 52px; - padding-top: 14px; - font-size: 14pt; - font-weight: normal; - color: #888888; -} -div.tagSidePanel div.body { - 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; -} -div.tagSidePanel ul.tags { - margin: 0px; - list-style-type: none; - padding: 0px; -} -div.tagSidePanel ul.tags li a { - display: block; - font-size: 9pt; - text-decoration: none; - color: #ff6621; - padding: 0px 4px 0px 15px; - line-height: 20px; -} -div.tagSidePanel ul.tags li a:hover { - background-color: #dddddd; -} -div.tagSidePanel ul.tags li span.tagCardinality { - float: right; - font-size: 8pt; - color: #999999; - margin-right: 15px; - margin-top: -17px; -} -div.tagSidePanel ul.tags li.selected a { - background-color: #d4d5cf; -} -div.tagSidePanel ul.tags li.selected a:hover { - background-color: #d4d5cf; -} -div.tagSidePanel ul.tags li.selected a { - font-weight: bold; -} - -div.groupSidePanel { - margin-right: -10px; -// position: relative; -// width: 250px; -// min-height: 100px; -// left: 10px; -} -div.groupSidePanel div.header { - height: 50px; - background-image: url(../images/old/main/tabs/groupsBackground.png); -} -div.groupSidePanel div.header h1 { - padding-left: 52px; - padding-top: 14px; - font-size: 14pt; - font-weight: normal; - color: white; -} -div.groupSidePanel div.header a { - float: right; - margin-top: -30px; - margin-right: 20px; - text-decoration: none; - color: #666666; - font-size: 9pt; - line-height: 18px; -} -div.groupSidePanel div.header a:hover { - color: #444444; -} -div.groupSidePanel div.body { - 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; -} -div.groupSidePanel ul.groups { - margin: 0px; - list-style-type: none; - padding: 0px; -} -div.groupSidePanel ul.groups li a { - display: block; - font-size: 9pt; - text-decoration: none; - color: white; - padding: 0px 4px 0px 15px; - line-height: 20px; -} -div.groupSidePanel ul.groups li a:hover { - background-color: #aaaaaa; -} -div.groupSidePanel ul.groups li span.groupCardinality { - float: right; - font-size: 8pt; - color: #dddddd; - margin-right: 15px; - margin-top: -17px; -} -div.groupSidePanel ul.groups li.selected a { - background-color: #bbbbbb; -} -div.groupSidePanel ul.groups li.selected a:hover { - background-color: #bbbbbb; -} -div.groupSidePanel ul.groups li.selected a { - font-weight: bold; -} - -div.mainPanels { - float: left; - width: 833px; - margin-top: -38px; -// position: relative; -// width: 100%; -// min-height: 600px; -// top: -40px; -// left: 250px; -} -div.mainFooter { - clear: both; -} -// 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; -// } - -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; -} - -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; -} - -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; -} - -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; -} - -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; -} -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; -} - - -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; -} - -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; -} - -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 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; -} - -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; -} - -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; -} - -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; -} - -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; -} - -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; -} - -div.tooltip { - position: absolute; - z-index: 30001; -} -div.tooltip div.tooltip_body { - position: absolute; -} -div.tooltip div.tooltip_arrow { - position: absolute; -} -div.tooltip.BELOW div.tooltip_arrow { - background: url(../images/old/tooltips/top_arrow.png) no-repeat; -} -div.tooltip.ABOVE div.tooltip_arrow { - background: url(../images/old/tooltips/bottom_arrow.png) no-repeat; -} -div.tooltip.LEFT div.tooltip_arrow { - background: url(../images/old/tooltips/right_arrow.png) no-repeat; -} -div.tooltip.RIGHT div.tooltip_arrow { -// margin-top: 7px; - - background: url(../images/old/tooltips/left_arrow.png) no-repeat; -} -div.tooltip.RIGHT div.tooltip_body { -// padding-left: 13px; - -} -div.tooltip div.tooltip_body div.tooltip_text { - width: 171px; - background: url(../images/old/tooltips/body.png) no-repeat center top; -} -div.tooltip.LEFT div.tooltip_body div.tooltip_text, div.tooltip.RIGHT div.tooltip_body div.tooltip_text { - min-height: 45px; -} -div.tooltip div.tooltip_body span { - display: block; - padding: 10px; - padding-bottom: 4px; - font-size: 10pt; - color: white; -} -div.tooltip div.tooltip_footer { - height: 7px; - background: url(../images/old/tooltips/body_bottom.png) no-repeat; -} - -// --------------------------------------- - - -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.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; -} - -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; -} - -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; -} -div.CardDialog div.directLoginEditDetail { - position: relative; -// background-color: red; - -} - -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; -} - -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); + float: left; + margin-top: 106px; + margin-left: 20px; + width: 160px; } -div.bindings div.binding.locked.showLocked span.fieldLock a { - background-image: url(../images/old/cardDialog/lock_closed.png); - text-decoration: none; +div.sidePanels div.tabSidePanel { + margin-right: -10px; } - -div.formValues { - padding-top: 15px; +div.sidePanels div.tabSidePanel ul { + margin: 0px; + padding-left: 0px; + list-style-type: none; + color: #f78b46; } -div.formValues div.formValue div { - margin: 0px; - display: inline-block; +div.sidePanels div.tabSidePanel ul.mainTabs { + margin: 0px; } -div.formValues div.formValue > span.formFieldName { - display: inline-table; - width: 160px; - overflow: hidden; - margin-right: 10px; - color: #6b5147; +div.sidePanels div.tabSidePanel ul.mainTabs li a { + display: block; + line-height: 30px; + height: 43px; + padding-left: 40px; + color: #ff6621; + margin: 0px; + font-weight: normal; + font-size: 13pt; + text-decoration: none; } - -div.directLoginEditing { - padding-top: 2px; +div.sidePanels div.tabSidePanel ul.mainTabs li div.selectionHighlighter { + display: none; } -div.directLoginEditing div.tabContainer { - min-height: 150px; - height: 200px; +div.sidePanels div.tabSidePanel ul.mainTabs li div.selectionHighlighter a.add { + font-size: 14pt; + font-weight: bold; + position: relative; + top: -34px; + right: 16px; + background: none; + color: #c0531b; + padding-left: 15px; } -div.directLoginEditing div.tabContainer > ul.tabs { - display: none; +div.sidePanels div.tabSidePanel ul.mainTabs li div.selectionHighlighter a.add:hover { + color: white; } - -div.directLoginEditing li { - padding: 10px; +div.sidePanels div.tabSidePanel ul.mainTabs li div.selectionHighlighter a.add span { + font-size: 8pt; + vertical-align: middle; } -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.sidePanels div.tabSidePanel ul.mainTabs li div.selectionHighlighter a.add h3 { + display: inline; + padding-left: 5px; } -div.directLoginEditing li.configuration > .bookmarkletConfigurationWrapper .bookmarkletComponent { - float: right; +div.sidePanels div.tabSidePanel ul.mainTabs li.selected div.selectionHighlighter { + display: block; + position: absolute; + left: 154px; + margin-top: -43px; } -div.directLoginEditing li.configuration > textarea.error { - border: 1px solid red; - background-color: rgba(255, 0, 0, 0.1); +div.sidePanels div.tabSidePanel ul.mainTabs li.cards a { + background: url(../images/old/main/tabs/cardsBackground.png) -19px -63px; } - -div.CardDialog div.body { - padding-bottom: 1px; +div.sidePanels div.tabSidePanel ul.mainTabs li.cards a:hover { + background: url(../images/old/main/tabs/cardsBackground.png) -19px -110px; } -div.CardDialog div.body table.fields { - width: 100%; - padding-top: 8px; - padding-bottom: 1px; +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.CardDialog div.body table.fields thead { - background: url(../images/old/cardDialog/dottedLine_background.png) repeat-x 0 15px; +div.sidePanels div.tabSidePanel ul.mainTabs li.cards.selected a:hover { + background: url(../images/old/main/tabs/cardsBackground.png) -9px -14px; } -div.CardDialog div.body table.fields tfoot { - background: url(../images/old/cardDialog/dottedLine_background.png) repeat-x 0 bottom; +div.sidePanels div.tabSidePanel ul.mainTabs li.directLogins a { + background: url(../images/old/main/tabs/directLoginBackground.png) -19px -63px; } -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.sidePanels div.tabSidePanel ul.mainTabs li.directLogins a:hover { + background: url(../images/old/main/tabs/directLoginBackground.png) -19px -110px; } -div.CardDialog div.body table.fields thead th.fieldStateTH { - width: 10px; +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.CardDialog div.body table.fields tbody td.fieldLabel input { - width: 130px; +div.sidePanels div.tabSidePanel ul.mainTabs li.directLogins.selected a:hover { + color: white; + background: url(../images/old/main/tabs/directLoginBackground.png) -9px -14px; } -div.CardDialog div.body table.fields thead th.fieldLockTH { - width: 10px; +div.sidePanels div.tabSidePanel ul.otherTabs { + margin: 10px 0px; } -div.CardDialog div.body table.fields tbody td.fieldValue input { - width: 280px; +div.sidePanels div.tabSidePanel ul.otherTabs li { + margin-top: -4px; } -div.CardDialog div.body table.fields thead th.fieldActionTH { - width: 30px; +div.sidePanels div.tabSidePanel ul.otherTabs li div.selectionHighlighter { + display: none; } -div.CardDialog div.body table.fields thead th.fieldDeleteTH { - width: 40px; +div.sidePanels div.tabSidePanel ul.otherTabs li a { + display: block; + line-height: 36px; + height: 43px; + padding-left: 40px; + color: #ff6621; + text-decoration: none; } -div.CardDialog div.body table.fields tbody tr:hover, div.CardDialog div.body table.fields tbody tr.selectedField { - background-color: #cccec0; +div.sidePanels div.tabSidePanel ul.otherTabs li a:hover { + background: url(../images/old/main/tabs/itemsBackground.png) -10px -49px; } -div.CardDialog div.body table.fields tbody tr td { - font-size: 11pt; - color: #787872; - height: 35px; +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; + color: white; } -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.sidePanels div.tabSidePanel ul.otherTabs li.selected div.selectionHighlighter { + display: block; + position: absolute; + left: 154px; + margin-top: -42px; } +div.tagSidePanel { + /* + margin-right: -8px; -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#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); -} -div.rulerWrapper { - left: -1000px; - margin-top: -30px; - margin-left: 50%; - z-index: 25000; -} -div.rulerWrapper.fixed { - position: fixed; -} -div.rulerWrapper.scrollable { - position: absolute; + div.tagSidePanel div.header { + height: 50px; + background-image: url(../images/old/main/tabs/tagsBackground.png); + } + div.tagSidePanel div.header h1 { + padding-left: 52px; + padding-top: 14px; + font-size: 14pt; + font-weight: normal; + color: #888888; + } + div.tagSidePanel div.body { + 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; + } + div.tagSidePanel ul.tags { + margin: 0px; + list-style-type: none; + padding: 0px; + } + div.tagSidePanel ul.tags li a { + display: block; + font-size: 9pt; + text-decoration: none; + color: #ff6621; + padding: 0px 4px 0px 15px; + line-height: 20px; + } + div.tagSidePanel ul.tags li a:hover { + background-color: #dddddd; + } + div.tagSidePanel ul.tags li span.tagCardinality { + float: right; + font-size: 8pt; + color: #999999; + margin-right: 15px; + margin-top: -17px; + } + div.tagSidePanel ul.tags li.selected a { + background-color: #d4d5cf; + } + div.tagSidePanel ul.tags li.selected a:hover { + background-color: #d4d5cf; + } + div.tagSidePanel ul.tags li.selected a { + font-weight: bold; + } +*/ } -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; +div.groupSidePanel { + /* + margin-right: -10px; - 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; + div.groupSidePanel div.header { + height: 50px; + background-image: url(../images/old/main/tabs/groupsBackground.png); + } + div.groupSidePanel div.header h1 { + padding-left: 52px; + padding-top: 14px; + font-size: 14pt; + font-weight: normal; + color: white; + } + div.groupSidePanel div.header a { + float: right; + margin-top: -30px; + margin-right: 20px; + text-decoration: none; + color: #666666; + font-size: 9pt; + line-height: 18px; + } + div.groupSidePanel div.header a:hover { + color: #444444; + } + div.groupSidePanel div.body { + 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; + } + div.groupSidePanel ul.groups { + margin: 0px; + list-style-type: none; + padding: 0px; + } + div.groupSidePanel ul.groups li a { + display: block; + font-size: 9pt; + text-decoration: none; + color: white; + padding: 0px 4px 0px 15px; + line-height: 20px; + } + div.groupSidePanel ul.groups li a:hover { + background-color: #aaaaaa; + } + div.groupSidePanel ul.groups li span.groupCardinality { + float: right; + font-size: 8pt; + color: #dddddd; + margin-right: 15px; + margin-top: -17px; + } + div.groupSidePanel ul.groups li.selected a { + background-color: #bbbbbb; + } + div.groupSidePanel ul.groups li.selected a:hover { + background-color: #bbbbbb; + } + div.groupSidePanel ul.groups li.selected a { + font-weight: bold; + } +*/ } - -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; -} -*/
\ No newline at end of file diff --git a/frontend/gamma/html/exitPage_template.html b/frontend/gamma/html/exitPage_template.html index b46f9f6..e17bee0 100644 --- a/frontend/gamma/html/exitPage_template.html +++ b/frontend/gamma/html/exitPage_template.html @@ -1,41 +1,16 @@ -<!-- - -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</title> <link rel="stylesheet" type="text/css" href="./static.css" /> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> </head> <body> <!-- h1>clipper<span class="logo_z">z</span></h1 --> <div class="header"> <div id="logo"></div> <h5 class="clipperzPayoff">keep it to yourself!</h5> </div> <div class="contentWrapper"> diff --git a/frontend/gamma/js/Clipperz/PM/Proxy.js b/frontend/gamma/js/Clipperz/PM/Proxy.js index 9817eac..190bffd 100644 --- a/frontend/gamma/js/Clipperz/PM/Proxy.js +++ b/frontend/gamma/js/Clipperz/PM/Proxy.js @@ -129,33 +129,33 @@ Clipperz.PM.Proxy.prototype = MochiKit.Base.update(null, { return this.processMessage('handshake', someParameters, 'CONNECT'); }, 'message': function (someParameters) { return this.processMessage('message', someParameters, 'MESSAGE'); }, 'logout': function (someParameters) { return this.processMessage('logout', someParameters, 'MESSAGE'); }, //========================================================================= 'processMessage': function (aFunctionName, someParameters, aRequestType) { var deferredResult; - deferredResult = new Clipperz.Async.Deferred("Proxy.processMessage", {trace:true}); + deferredResult = new Clipperz.Async.Deferred("Proxy.processMessage", {trace:false}); deferredResult.addMethod(this, 'payToll', aRequestType); deferredResult.addMethod(this, 'sendMessage', aFunctionName); deferredResult.addMethod(this, 'setTollCallback'); deferredResult.callback(someParameters); return deferredResult; }, //========================================================================= 'sendMessage': function () { throw Clipperz.Base.exception.AbstractMethod; }, //========================================================================= diff --git a/frontend/gamma/js/Clipperz/PM/UI/Common/Components/Tooltip.js b/frontend/gamma/js/Clipperz/PM/UI/Common/Components/Tooltip.js index 095e8ed..8df7e0e 100644 --- a/frontend/gamma/js/Clipperz/PM/UI/Common/Components/Tooltip.js +++ b/frontend/gamma/js/Clipperz/PM/UI/Common/Components/Tooltip.js @@ -89,34 +89,34 @@ Clipperz.Base.extend(Clipperz.PM.UI.Common.Components.Tooltip, Clipperz.PM.UI.Co return this._isVisible; }, 'setIsVisible': function (aValue) { this._isVisible = aValue; }, //------------------------------------------------------------------------- 'renderSelf': function() { // this.append(this.element(), {tag:'div', id:this.getId('tooltip'), cls:'tooltip ' + this.position(), children:[ // this.append(MochiKit.DOM.currentDocument().body, {tag:'div', id:this.getId('tooltip'), cls:'tooltip ' + this.position(), children:[ this.append(MochiKit.DOM.getElement('Clipperz_PM_UI_Common_Components_Tooltip_wrapperNode'), {tag:'div', id:this.getId('tooltip'), cls:'tooltip ' + this.position(), children:[ {tag:'div', id:this.getId('body'), cls:'tooltip_body', children:[ {tag:'div', cls:'tooltip_text', children:[ {tag:'span', html:this.text()} - ]}, - {tag:'div', id:this.getId('footer'), cls:'tooltip_footer'} + ]}//, +// {tag:'div', id:this.getId('footer'), cls:'tooltip_footer'} ]}, {tag:'div', id:this.getId('arrow'), cls:'tooltip_arrow'} ]}); this._boxDimensions = MochiKit.Style.getElementDimensions(this.getId('body')); // this._boxDimensions.h += MochiKit.Style.getElementDimensions(this.getId('footer')).h; MochiKit.Style.hideElement(this.displayElement()); MochiKit.Signal.connect(this.element(), 'onmouseenter', this, 'show'); MochiKit.Signal.connect(this.element(), 'onmouseleave', this, 'hide'); }, //----------------------------------------------------- 'displayElement': function() { return this.getElement('tooltip'); @@ -133,71 +133,72 @@ Clipperz.Base.extend(Clipperz.PM.UI.Common.Components.Tooltip, Clipperz.PM.UI.Co 'show': function () { var elementSizeAndPosition; var arrowPosition; var bodyPosition; if (this.isVisible() == false) { arrowPosition = {}; bodyPosition = {}; this.setIsVisible(true); elementSizeAndPosition = Clipperz.Style.getSizeAndPosition(this.element()); //console.log("ELEMENT SIZE AND POSITION", Clipperz.Base.serializeJSON(elementSizeAndPosition)); //console.log("BOX DIMENSIONS", Clipperz.Base.serializeJSON(this.boxDimensions())); switch (this.position()) { case 'ABOVE': //console.log("ABOVE"); - MochiKit.Style.setElementDimensions(this.getId('arrow'), {w:36, h:13}, 'px'); +// MochiKit.Style.setElementDimensions(this.getId('arrow'), {w:36, h:13}, 'px'); bodyPosition.x = elementSizeAndPosition.position.x + (elementSizeAndPosition.dimensions.w/2 - this.boxDimensions().w/2); bodyPosition.y = elementSizeAndPosition.position.y - this.boxDimensions().h - 13; - arrowPosition.x = elementSizeAndPosition.position.x + (elementSizeAndPosition.dimensions.w/2 - 36/2); - arrowPosition.y = elementSizeAndPosition.position.y - 13; +// arrowPosition.x = elementSizeAndPosition.position.x + (elementSizeAndPosition.dimensions.w/2 - 36/2); +// arrowPosition.y = elementSizeAndPosition.position.y - 13; break; case 'BELOW': //console.log("BELOW"); - MochiKit.Style.setElementDimensions(this.getId('arrow'), {w:36, h:13}, 'px'); +// MochiKit.Style.setElementDimensions(this.getId('arrow'), {w:36, h:13}, 'px'); bodyPosition.x = elementSizeAndPosition.position.x + (elementSizeAndPosition.dimensions.w/2 - this.boxDimensions().w/2); bodyPosition.y = elementSizeAndPosition.position.y + elementSizeAndPosition.dimensions.h + 13; - arrowPosition.x = elementSizeAndPosition.position.x + (elementSizeAndPosition.dimensions.w/2 - 36/2); - arrowPosition.y = elementSizeAndPosition.position.y + elementSizeAndPosition.dimensions.h; +// arrowPosition.x = elementSizeAndPosition.position.x + (elementSizeAndPosition.dimensions.w/2 - 36/2); +// arrowPosition.y = elementSizeAndPosition.position.y + elementSizeAndPosition.dimensions.h; break; case 'LEFT': //console.log("LEFT"); - MochiKit.Style.setElementDimensions(this.getId('arrow'), {w:13, h:36}, 'px'); +// MochiKit.Style.setElementDimensions(this.getId('arrow'), {w:13, h:36}, 'px'); bodyPosition.x = elementSizeAndPosition.position.x - this.boxDimensions().w - 13; bodyPosition.y = elementSizeAndPosition.position.y + (elementSizeAndPosition.dimensions.h/2 - this.boxDimensions().h/2); - arrowPosition.x = elementSizeAndPosition.position.x -13; - arrowPosition.y = elementSizeAndPosition.position.y + (elementSizeAndPosition.dimensions.h/2 - 36/2); +// arrowPosition.x = elementSizeAndPosition.position.x -13; +// arrowPosition.y = elementSizeAndPosition.position.y + (elementSizeAndPosition.dimensions.h/2 - 36/2); break; case 'RIGHT': //console.log("RIGHT"); - MochiKit.Style.setElementDimensions(this.getId('arrow'), {w:13, h:36}, 'px'); +// MochiKit.Style.setElementDimensions(this.getId('arrow'), {w:13, h:36}, 'px'); bodyPosition.x = elementSizeAndPosition.position.x + elementSizeAndPosition.dimensions.w + 13; bodyPosition.y = elementSizeAndPosition.position.y + (elementSizeAndPosition.dimensions.h/2 - this.boxDimensions().h/2); - arrowPosition.x = elementSizeAndPosition.position.x + elementSizeAndPosition.dimensions.w; - arrowPosition.y = elementSizeAndPosition.position.y + (elementSizeAndPosition.dimensions.h/2 - 36/2); +// arrowPosition.x = elementSizeAndPosition.position.x + elementSizeAndPosition.dimensions.w; +// arrowPosition.y = elementSizeAndPosition.position.y + (elementSizeAndPosition.dimensions.h/2 - 36/2); break; } //console.log("X: " + bodyPosition.x + ", Y: " + bodyPosition.y); - MochiKit.Style.setElementPosition(this.getId('body'), bodyPosition); - MochiKit.Style.setElementPosition(this.getId('arrow'), arrowPosition); + MochiKit.Style.setElementPosition(this.getId('tooltip'), bodyPosition); +// MochiKit.Style.setElementPosition(this.getId('body'), bodyPosition); +// MochiKit.Style.setElementPosition(this.getId('arrow'), arrowPosition); MochiKit.Visual.appear(this.displayElement(), {duration:0.4}); } }, 'hide': function () { if (this.isVisible() == true) { MochiKit.Visual.fade(this.displayElement(), {duration:0.4}); this.setIsVisible(false); } }, //------------------------------------------------------------------------- /* 'shouldRemoveElementWhenClearningUp': function () { return false; }, diff --git a/frontend/gamma/js/Clipperz/PM/UI/Web/Components/LoginForm.js b/frontend/gamma/js/Clipperz/PM/UI/Web/Components/LoginForm.js index 389d876..a10ba4f 100644 --- a/frontend/gamma/js/Clipperz/PM/UI/Web/Components/LoginForm.js +++ b/frontend/gamma/js/Clipperz/PM/UI/Web/Components/LoginForm.js @@ -52,50 +52,35 @@ Clipperz.Base.extend(Clipperz.PM.UI.Web.Components.LoginForm, Clipperz.PM.UI.Com 'autocomplete': function () { return this._autocomplete; }, //------------------------------------------------------------------------- 'renderSelf': function() { this.append(this.element(), {tag:'div', id:'loginBox', children:[ {tag:'div', cls:'header'}, {tag:'div', cls:'body', id:this.getId('body'), children:[ {tag:'div', id:this.getId('loginForm'), children:[ {tag:'div', children:[ {tag:'h4', html:'Login'}, // {tag:'form', cls:'loginForm', autocomplete:this.autocomplete(), children:[ {tag:'form', id:this.getId('form'), cls:'loginForm', children:[ {tag:'label', html:'username', 'for':this.getId('usernameField')}, - {tag:'input', id:this.getId('usernameField'), type:'text', cls:'username'/*, value:'joe'*/}, - {tag:'ul', id:this.getId('passwordOptions'), children:[ - {tag:'li', id:this.getId('passphraseOption'), children:[ - {tag:'label', html:'passphrase / OTP', 'for':this.getId('passphraseField')}, - {tag:'input', id:this.getId('passphraseField'), type:'password', cls:'password'/*, value:'clipperz'*/} - ]} // , -/* - {tag:'li', id:this.getId('otpOption'), children:[ - {tag:'label', html:'one-time password', 'for':this.getId('otpField_1')}, - {tag:'input', id:this.getId('otpField_1'), type:'text', cls:'otp', value:'abcd-efgh'}, - {tag:'input', id:this.getId('otpField_2'), type:'text', cls:'otp', value:'abcd-efgh'}, - {tag:'input', id:this.getId('otpField_3'), type:'text', cls:'otp', value:'abcd-efgh'}, - {tag:'input', id:this.getId('otpField_4'), type:'text', cls:'otp', value:'abcd-efgh'} - ]} -*/ - ]}, -// {tag:'input', id:this.getId('otpCheckbox'), type:'checkbox', cls:'checkbox'}, -// {tag:'label', html:'use a one-time passphrase', 'for':this.getId('otpCheckbox'), cls:'checkbox'}, + {tag:'input', id:this.getId('usernameField'), type:'text', cls:'username'}, + {tag:'label', html:'passphrase / OTP', 'for':this.getId('passphraseField')}, + {tag:'input', id:this.getId('passphraseField'), type:'password', cls:'password'}, {tag:'div', cls:'translations', children:[ {tag:'h4', html:'choose your language'}, {tag:'ul', children:[ {tag:'li', cls:'selected', html:'english'}, {tag:'li', html:'italiano'}, {tag:'li', html:'dutch'}, {tag:'li', html:'french'}, {tag:'li', html:'spanish'}, {tag:'li', html:'chinese'}, {tag:'li', html:'japanese'}, {tag:'li', html:'portugal'}, {tag:'li', html:'arabic'} ]} ]}, @@ -148,53 +133,46 @@ Clipperz.Base.extend(Clipperz.PM.UI.Web.Components.LoginForm, Clipperz.PM.UI.Com 'focusOnPassphraseField': function () { this.getElement('passphraseField').focus(); this.getElement('passphraseField').select(); }, //----------------------------------------------------------------------------- /* 'showOTPFields': function() { this.hideElement('passphraseOption'); this.showElement('otpOption'); }, */ //------------------------------------------------------------------------- 'loginEventHandler': function(anEvent) { - var username; - var passphrase; -// var shouldUseOTP; -// var otp; +// var username; +// var passphrase; var signalArguments; anEvent.preventDefault(); - username = this.getElement('usernameField').value; - passphrase = this.getElement('passphraseField').value; -// otp = this.getElement('otpField_1').value + -// this.getElement('otpField_2').value + -// this.getElement('otpField_3').value + -// this.getElement('otpField_4').value; -// shouldUseOTP = this.getElement('otpCheckbox').checked; - - signalArguments = {username:username}; - -// if (shouldUseOTP) { -// signalArguments.otp = otp; -// } else { - signalArguments.passphrase = passphrase; -// } +// username = this.getElement('usernameField').value; +// passphrase = this.getElement('passphraseField').value; + +// signalArguments = {username:username}; +// signalArguments.passphrase = passphrase; + + signalArguments = { + 'username': this.getElement('usernameField').value, + 'passphrase': this.getElement('passphraseField').value + }; MochiKit.Signal.signal(this, 'doLogin', signalArguments); }, //------------------------------------------------------------------------- 'submitButtonElement': function() { return this.getElement('submitButton'); }, //------------------------------------------------------------------------- __syntaxFix__: "syntax fix" }); diff --git a/frontend/gamma/js/Clipperz/PM/UI/Web/Controllers/LoginController.js b/frontend/gamma/js/Clipperz/PM/UI/Web/Controllers/LoginController.js index d0b378c..a57152d 100644 --- a/frontend/gamma/js/Clipperz/PM/UI/Web/Controllers/LoginController.js +++ b/frontend/gamma/js/Clipperz/PM/UI/Web/Controllers/LoginController.js @@ -68,55 +68,49 @@ MochiKit.Base.update(Clipperz.PM.UI.Web.Controllers.LoginController.prototype, { slot = args.slot; loginForm = new Clipperz.PM.UI.Web.Components.LoginForm({'autocomplete': this.args()['autocomplete']}); slot.setContent(this.loginPage()); this.loginPage().slotNamed('loginForm').setContent(loginForm); MochiKit.Signal.connect(loginForm, 'doLogin', MochiKit.Base.method(this, 'doLogin', loginForm)); MochiKit.Signal.connect(Clipperz.Signal.NotificationCenter, 'doLogin', MochiKit.Base.method(this, 'doLogin', loginForm)); }, //----------------------------------------------------------------------------- 'doLogin': function(aLoginForm, anEvent) { var deferredResult; var parameters; -// var shouldUseOTP; var loginProgress; var user; var getPassphraseDelegate; parameters = anEvent; -// shouldUseOTP = (typeof(parameters.passphrase) == 'undefined'); getPassphraseDelegate = MochiKit.Base.partial(MochiKit.Async.succeed, parameters.passphrase); user = new Clipperz.PM.DataModel.User({'username':parameters.username, 'getPassphraseFunction':MochiKit.Base.method(Clipperz.PM.RunTime.mainController, 'getPassphrase')}); loginProgress = new Clipperz.PM.UI.Web.Components.LoginProgress(); deferredResult = new Clipperz.Async.Deferred("LoginController.doLogin", {trace:false}); deferredResult.addCallbackPass(MochiKit.Signal.signal, Clipperz.Signal.NotificationCenter, 'initProgress', {'steps':4}); deferredResult.addMethod(Clipperz.PM.RunTime.mainController, 'setPassphraseDelegate', getPassphraseDelegate); deferredResult.addMethod(loginProgress, 'deferredShowModal', {deferredObject:deferredResult, openFromElement:aLoginForm.submitButtonElement()}); deferredResult.addMethod(Clipperz.Crypto.PRNG.defaultRandomGenerator(), 'deferredEntropyCollection'); -// if (shouldUseOTP == false) { - deferredResult.addMethod(user, 'login'); -// } else { -// deferredResult.addMethod(user, 'loginUsingOTP', parameters.username, parameters.otp); -// } + deferredResult.addMethod(user, 'login'); deferredResult.addCallback(function(aLoginProgress, res) { aLoginProgress.disableCancel(); return res; }, loginProgress); deferredResult.addCallback(function () { MochiKit.Signal.connect(Clipperz.Signal.NotificationCenter, 'CARDS_CONTROLLER_DID_RUN', MochiKit.Base.method(loginProgress, 'deferredHideModalAndRemove', {closeToElement:MochiKit.DOM.currentDocument().body})); }) deferredResult.addMethod(this, 'userLoggedIn', user, loginProgress, aLoginForm); deferredResult.addErrback (MochiKit.Base.method(this, 'handleFailedLogin', loginProgress)); deferredResult.addErrback (MochiKit.Base.method(loginProgress, 'deferredHideModalAndRemove', {closeToElement:aLoginForm.submitButtonElement()})); deferredResult.addErrbackPass (MochiKit.Base.method(aLoginForm, 'focusOnPassphraseField')); deferredResult.addBoth(MochiKit.Base.method(Clipperz.PM.RunTime.mainController, 'removePassphraseDelegate', getPassphraseDelegate)); deferredResult.callback(); MochiKit.Signal.connect(loginProgress, 'cancelEvent', deferredResult, 'cancel'); diff --git a/frontend/gamma/js/MochiKit/Async.js b/frontend/gamma/js/MochiKit/Async.js index c7408e7..cc43835 100644 --- a/frontend/gamma/js/MochiKit/Async.js +++ b/frontend/gamma/js/MochiKit/Async.js @@ -1,84 +1,95 @@ /*** MochiKit.Async 1.5 See <http://mochikit.com/> for documentation, downloads, license, etc. (c) 2005 Bob Ippolito. All rights Reserved. ***/ -MochiKit.Base._module('Async', '1.5', ['Base']); +MochiKit.Base.module(MochiKit, 'Async', '1.5', ['Base']); /** @id MochiKit.Async.Deferred */ MochiKit.Async.Deferred = function (/* optional */ canceller) { this.chain = []; this.id = this._nextId(); this.fired = -1; this.paused = 0; this.results = [null, null]; this.canceller = canceller; this.silentlyCancelled = false; this.chained = false; + this.finalized = false; }; MochiKit.Async.Deferred.prototype = { /** @id MochiKit.Async.Deferred.prototype.repr */ repr: function () { - var state; - if (this.fired == -1) { - state = 'unfired'; - } else if (this.fired === 0) { - state = 'success'; - } else { - state = 'error'; - } - return 'Deferred(' + this.id + ', ' + state + ')'; + return 'Deferred(' + this.id + ', ' + this.state() + ')'; }, toString: MochiKit.Base.forwardCall("repr"), _nextId: MochiKit.Base.counter(), + /** @id MochiKit.Async.Deferred.prototype.state */ + state: function () { + if (this.fired == -1) { + return 'unfired'; + } else if (this.fired === 0) { + return 'success'; + } else { + return 'error'; + } + }, + /** @id MochiKit.Async.Deferred.prototype.cancel */ - cancel: function () { + cancel: function (e) { var self = MochiKit.Async; if (this.fired == -1) { if (this.canceller) { this.canceller(this); } else { this.silentlyCancelled = true; } if (this.fired == -1) { - this.errback(new self.CancelledError(this)); + if (typeof(e) === 'string') { + e = new self.GenericError(e); + } else if (!(e instanceof Error)) { + e = new self.CancelledError(this); + } + this.errback(e); } } else if ((this.fired === 0) && (this.results[0] instanceof self.Deferred)) { - this.results[0].cancel(); + this.results[0].cancel(e); } }, _resback: function (res) { /*** The primitive that means either callback or errback ***/ this.fired = ((res instanceof Error) ? 1 : 0); this.results[this.fired] = res; - this._fire(); + if (this.paused === 0) { + this._fire(); + } }, _check: function () { if (this.fired != -1) { if (!this.silentlyCancelled) { throw new MochiKit.Async.AlreadyCalledError(this); } this.silentlyCancelled = false; return; } }, /** @id MochiKit.Async.Deferred.prototype.callback */ callback: function (res) { this._check(); if (res instanceof MochiKit.Async.Deferred) { @@ -116,81 +127,103 @@ MochiKit.Async.Deferred.prototype = { return this.addCallbacks(fn, null); }, /** @id MochiKit.Async.Deferred.prototype.addErrback */ addErrback: function (fn) { if (arguments.length > 1) { fn = MochiKit.Base.partial.apply(null, arguments); } return this.addCallbacks(null, fn); }, /** @id MochiKit.Async.Deferred.prototype.addCallbacks */ addCallbacks: function (cb, eb) { if (this.chained) { throw new Error("Chained Deferreds can not be re-used"); } + if (this.finalized) { + throw new Error("Finalized Deferreds can not be re-used"); + } this.chain.push([cb, eb]); if (this.fired >= 0) { this._fire(); } return this; }, + /** @id MochiKit.Async.Deferred.prototype.setFinalizer */ + setFinalizer: function (fn) { + if (this.chained) { + throw new Error("Chained Deferreds can not be re-used"); + } + if (this.finalized) { + throw new Error("Finalized Deferreds can not be re-used"); + } + if (arguments.length > 1) { + fn = MochiKit.Base.partial.apply(null, arguments); + } + this._finalizer = fn; + if (this.fired >= 0) { + this._fire(); + } + return this; + }, + _fire: function () { /*** Used internally to exhaust the callback sequence when a result is available. ***/ var chain = this.chain; var fired = this.fired; var res = this.results[fired]; var self = this; var cb = null; while (chain.length > 0 && this.paused === 0) { // Array var pair = chain.shift(); var f = pair[fired]; if (f === null) { continue; } try { res = f(res); fired = ((res instanceof Error) ? 1 : 0); if (res instanceof MochiKit.Async.Deferred) { cb = function (res) { - self._resback(res); self.paused--; - if ((self.paused === 0) && (self.fired >= 0)) { - self._fire(); - } + self._resback(res); }; this.paused++; } } catch (err) { fired = 1; if (!(err instanceof Error)) { err = new MochiKit.Async.GenericError(err); } res = err; } } this.fired = fired; this.results[fired] = res; + if (this.chain.length == 0 && this.paused === 0 && this._finalizer) { + this.finalized = true; + this._finalizer(res); + } if (cb && this.paused) { // this is for "tail recursion" in case the dependent deferred // is already fired res.addBoth(cb); res.chained = true; } } }; MochiKit.Base.update(MochiKit.Async, { /** @id MochiKit.Async.evalJSONRequest */ evalJSONRequest: function (req) { return MochiKit.Base.evalJSON(req.responseText); }, /** @id MochiKit.Async.succeed */ @@ -236,33 +269,33 @@ MochiKit.Base.update(MochiKit.Async, { _xhr_onreadystatechange: function (d) { // MochiKit.Logging.logDebug('this.readyState', this.readyState); var m = MochiKit.Base; if (this.readyState == 4) { // IE SUCKS try { this.onreadystatechange = null; } catch (e) { try { this.onreadystatechange = m.noop; } catch (e) { } } var status = null; try { status = this.status; - if (!status && m.isNotEmpty(this.responseText)) { + if (!status && (this.response || m.isNotEmpty(this.responseText))) { // 0 or undefined seems to mean cached or local status = 304; } } catch (e) { // pass // MochiKit.Logging.logDebug('error getting status?', repr(items(e))); } // 200 is OK, 201 is CREATED, 204 is NO CONTENT // 304 is NOT MODIFIED, 1223 is apparently a bug in IE if (status == 200 || status == 201 || status == 204 || status == 304 || status == 1223) { d.callback(this); } else { var err = new MochiKit.Async.XMLHttpRequestError(this, "Request failed"); if (err.number) { // XXX: This seems to happen on page change @@ -324,33 +357,34 @@ MochiKit.Base.update(MochiKit.Async, { https://bugzilla.mozilla.org/show_bug.cgi?id=249843 */ var self = MochiKit.Async; return self.callLater(0, self._doXHR, url, opts); }, _doXHR: function (url, opts) { var m = MochiKit.Base; opts = m.update({ method: 'GET', sendContent: '' /* queryString: undefined, username: undefined, password: undefined, headers: undefined, - mimeType: undefined + mimeType: undefined, + responseType: undefined */ }, opts); var self = MochiKit.Async; var req = self.getXMLHttpRequest(); if (opts.queryString) { var qs = m.queryString(opts.queryString); if (qs) { url += "?" + qs; } } // Safari will send undefined:undefined, so we have to check. // We can't use apply, since the function is native. if ('username' in opts) { req.open(opts.method, url, true, opts.username, opts.password); } else { req.open(opts.method, url, true); @@ -358,32 +392,35 @@ MochiKit.Base.update(MochiKit.Async, { if (req.overrideMimeType && opts.mimeType) { req.overrideMimeType(opts.mimeType); } req.setRequestHeader("X-Requested-With", "XMLHttpRequest"); if (opts.headers) { var headers = opts.headers; if (!m.isArrayLike(headers)) { headers = m.items(headers); } for (var i = 0; i < headers.length; i++) { var header = headers[i]; var name = header[0]; var value = header[1]; req.setRequestHeader(name, value); } } + if ("responseType" in opts && "responseType" in req) { + req.responseType = opts.responseType; + } return self.sendXMLHttpRequest(req, opts.sendContent); }, _buildURL: function (url/*, ...*/) { if (arguments.length > 1) { var m = MochiKit.Base; var qs = m.queryString.apply(null, m.extend(null, arguments, 1)); if (qs) { return url + "?" + qs; } } return url; }, /** @id MochiKit.Async.doSimpleXMLHttpRequest */ doSimpleXMLHttpRequest: function (url/*, ...*/) { @@ -391,42 +428,70 @@ MochiKit.Base.update(MochiKit.Async, { url = self._buildURL.apply(self, arguments); return self.doXHR(url); }, /** @id MochiKit.Async.loadJSONDoc */ loadJSONDoc: function (url/*, ...*/) { var self = MochiKit.Async; url = self._buildURL.apply(self, arguments); var d = self.doXHR(url, { 'mimeType': 'text/plain', 'headers': [['Accept', 'application/json']] }); d = d.addCallback(self.evalJSONRequest); return d; }, + /** @id MochiKit.Async.loadScript */ + loadScript: function (url) { + var d = new MochiKit.Async.Deferred(); + var script = document.createElement("script"); + script.type = "text/javascript"; + script.src = url; + script.onload = function () { + script.onload = null; + script.onerror = null; + script.onreadystatechange = null; + script = null; + d.callback(); + }; + script.onerror = function (msg) { + script.onload = null; + script.onerror = null; + script.onreadystatechange = null; + script = null; + msg = "Failed to load script at " + url + ": " + msg; + d.errback(new URIError(msg, url)); + } + script.onreadystatechange = function () { + if (script.readyState == "loaded" || script.readyState == "complete") { + script.onload(); + } else { + // IE doesn't bother to report errors... + MochiKit.Async.callLater(10, script.onerror, "Script loading timed out") + } + }; + document.getElementsByTagName("head")[0].appendChild(script); + return d; + }, + /** @id MochiKit.Async.wait */ wait: function (seconds, /* optional */value) { var d = new MochiKit.Async.Deferred(); - var m = MochiKit.Base; - if (typeof(value) != 'undefined') { - d.addCallback(function () { return value; }); - } - var timeout = setTimeout( - m.bind("callback", d), - Math.floor(seconds * 1000)); + var cb = MochiKit.Base.bind("callback", d, value); + var timeout = setTimeout(cb, Math.floor(seconds * 1000)); d.canceller = function () { try { clearTimeout(timeout); } catch (e) { // pass } }; return d; }, /** @id MochiKit.Async.callLater */ callLater: function (seconds, func) { var m = MochiKit.Base; var pfunc = m.partial.apply(m, m.extend(null, arguments, 1)); return MochiKit.Async.wait(seconds).addCallback( function (res) { return pfunc(); } @@ -497,32 +562,33 @@ MochiKit.Async.DeferredList = function (list, /* optional */fireOnOneCallback, f var cb = MochiKit.Base.bind(this._cbDeferred, this); for (var i = 0; i < list.length; i++) { var d = list[i]; resultList.push(undefined); d.addCallback(cb, i, true); d.addErrback(cb, i, false); } if (list.length === 0 && !fireOnOneCallback) { this.callback(this.resultList); } }; MochiKit.Async.DeferredList.prototype = new MochiKit.Async.Deferred(); +MochiKit.Async.DeferredList.prototype.constructor = MochiKit.Async.DeferredList; MochiKit.Async.DeferredList.prototype._cbDeferred = function (index, succeeded, result) { this.resultList[index] = [succeeded, result]; this.finishedCount += 1; if (this.fired == -1) { if (succeeded && this.fireOnOneCallback) { this.callback([index, result]); } else if (!succeeded && this.fireOnOneErrback) { this.errback(result); } else if (this.finishedCount == this.list.length) { this.callback(this.resultList); } } if (!succeeded && this.consumeErrors) { result = null; } diff --git a/frontend/gamma/js/MochiKit/Base.js b/frontend/gamma/js/MochiKit/Base.js index d33c269..ca1734c 100644 --- a/frontend/gamma/js/MochiKit/Base.js +++ b/frontend/gamma/js/MochiKit/Base.js @@ -1,68 +1,79 @@ /*** MochiKit.Base 1.5 See <http://mochikit.com/> for documentation, downloads, license, etc. (c) 2005 Bob Ippolito. All rights Reserved. ***/ -if (typeof(MochiKit) == 'undefined') { - MochiKit = {}; -} + +// MochiKit module (namespace) +var MochiKit = MochiKit || {}; if (typeof(MochiKit.__export__) == "undefined") { MochiKit.__export__ = true; } -if (typeof(MochiKit.Base) == 'undefined') { - MochiKit.Base = {}; -} +MochiKit.NAME = "MochiKit"; +MochiKit.VERSION = "1.5"; +MochiKit.__repr__ = function () { + return "[" + this.NAME + " " + this.VERSION + "]"; +}; +MochiKit.toString = function () { + return this.__repr__(); +}; + + +// MochiKit.Base module +MochiKit.Base = MochiKit.Base || {}; /** - * Registers a new MochiKit module. This function will insert a new - * property into the "MochiKit" object, making sure that all - * dependency modules have already been inserted. It will also make - * sure that the appropriate properties and default module functions - * are defined. + * Creates a new module in a parent namespace. This function will + * create a new empty module object with "NAME", "VERSION", + * "toString" and "__repr__" properties. This object will be inserted into the parent object + * using the specified name (i.e. parent[name] = module). It will + * also verify that all the dependency modules are defined in the + * parent, or an error will be thrown. * + * @param {Object} parent the parent module (use "this" or "window" for + * a global module) * @param {String} name the module name, e.g. "Base" * @param {String} version the module version, e.g. "1.5" - * @param {Array} deps the array of module dependencies (as strings) + * @param {Array} [deps] the array of module dependencies (as strings) */ -MochiKit.Base._module = function (name, version, deps) { - if (!(name in MochiKit)) { - MochiKit[name] = {}; - } - var module = MochiKit[name]; - module.NAME = "MochiKit." + name; +MochiKit.Base.module = function (parent, name, version, deps) { + var module = parent[name] = parent[name] || {}; + var prefix = (parent.NAME ? parent.NAME + "." : ""); + module.NAME = prefix + name; module.VERSION = version; module.__repr__ = function () { return "[" + this.NAME + " " + this.VERSION + "]"; }; module.toString = function () { return this.__repr__(); }; - for (var i = 0; i < deps.length; i++) { - if (!(deps[i] in MochiKit)) { - throw 'MochiKit.' + name + ' depends on MochiKit.' + deps[i] + '!'; + for (var i = 0; deps != null && i < deps.length; i++) { + if (!(deps[i] in parent)) { + throw module.NAME + ' depends on ' + prefix + deps[i] + '!'; } } -} + return module; +}; -MochiKit.Base._module("Base", "1.5", []); +MochiKit.Base.module(MochiKit, "Base", "1.5", []); /** @id MochiKit.Base.update */ MochiKit.Base.update = function (self, obj/*, ... */) { if (self === null || self === undefined) { self = {}; } for (var i = 1; i < arguments.length; i++) { var o = arguments[i]; if (typeof(o) != 'undefined' && o !== null) { for (var k in o) { self[k] = o[k]; } } } return self; }; @@ -227,32 +238,33 @@ MochiKit.Base.update(MochiKit.Base, { var e; for (var prop in obj) { var v; try { v = obj[prop]; } catch (e) { continue; } rval.push([prop, v]); } return rval; }, _newNamedError: function (module, name, func) { func.prototype = new MochiKit.Base.NamedError(module.NAME + "." + name); + func.prototype.constructor = func; module[name] = func; }, /** @id MochiKit.Base.operator */ operator: { // unary logic operators /** @id MochiKit.Base.truth */ truth: function (a) { return !!a; }, /** @id MochiKit.Base.lognot */ lognot: function (a) { return !a; }, /** @id MochiKit.Base.identity */ identity: function (a) { return a; }, // bitwise unary operators /** @id MochiKit.Base.not */ @@ -338,33 +350,33 @@ MochiKit.Base.update(MochiKit.Base, { itemgetter: function (func) { return function (arg) { return arg[func]; }; }, /** @id MochiKit.Base.bool */ bool: function (value) { if (typeof(value) === "boolean" || value instanceof Boolean) { return value.valueOf(); } else if (typeof(value) === "string" || value instanceof String) { return value.length > 0 && value != "false" && value != "null" && value != "undefined" && value != "0"; } else if (typeof(value) === "number" || value instanceof Number) { return !isNaN(value) && value != 0; } else if (value != null && typeof(value.length) === "number") { - return value.length !== 0 + return value.length !== 0; } else { return value != null; } }, /** @id MochiKit.Base.typeMatcher */ typeMatcher: function (/* typ */) { var types = {}; for (var i = 0; i < arguments.length; i++) { var typ = arguments[i]; types[typ] = typ; } return function () { for (var i = 0; i < arguments.length; i++) { if (!(typeof(arguments[i]) in types)) { return false; @@ -662,32 +674,35 @@ MochiKit.Base.update(MochiKit.Base, { m.extend(im_preargs, arguments, 2); var newfunc = function () { var args = arguments; var me = arguments.callee; if (me.im_preargs.length > 0) { args = m.concat(me.im_preargs, args); } var self = me.im_self; if (!self) { self = this; } return me.im_func.apply(self, args); }; newfunc.im_self = im_self; newfunc.im_func = im_func; newfunc.im_preargs = im_preargs; + if (typeof(im_func.NAME) == 'string') { + newfunc.NAME = "bind(" + im_func.NAME + ",...)"; + } return newfunc; }, /** @id MochiKit.Base.bindLate */ bindLate: function (func, self/* args... */) { var m = MochiKit.Base; var args = arguments; if (typeof(func) === "string") { args = m.extend([m.forwardCall(func)], arguments, 1); return m.bind.apply(this, args); } return m.bind.apply(this, args); }, /** @id MochiKit.Base.bindMethods */ bindMethods: function (self) { @@ -775,37 +790,40 @@ MochiKit.Base.update(MochiKit.Base, { /** @id MochiKit.Base.repr */ repr: function (o) { if (typeof(o) == "undefined") { return "undefined"; } else if (o === null) { return "null"; } try { if (typeof(o.__repr__) == 'function') { return o.__repr__(); } else if (typeof(o.repr) == 'function' && o.repr != arguments.callee) { return o.repr(); } return MochiKit.Base.reprRegistry.match(o); } catch (e) { - if (typeof(o.NAME) == 'string' && ( - o.toString == Function.prototype.toString || - o.toString == Object.prototype.toString - )) { - return o.NAME; + try { + if (typeof(o.NAME) == 'string' && ( + o.toString == Function.prototype.toString || + o.toString == Object.prototype.toString + )) { + return o.NAME; + } + } catch (ignore) { } } try { var ostring = (o + ""); } catch (e) { return "[" + typeof(o) + "]"; } if (typeof(o) == "function") { ostring = ostring.replace(/^\s+/, "").replace(/\s+/g, " "); ostring = ostring.replace(/,(\S)/, ", $1"); var idx = ostring.indexOf("{"); if (idx != -1) { ostring = ostring.substr(0, idx) + "{...}"; } } return ostring; @@ -827,42 +845,39 @@ MochiKit.Base.update(MochiKit.Base, { ).replace(/[\v]/g, "\\v" ).replace(/[\r]/g, "\\r"); }, /** @id MochiKit.Base.reprNumber */ reprNumber: function (o) { return o + ""; }, /** @id MochiKit.Base.registerJSON */ registerJSON: function (name, check, wrap, /* optional */override) { MochiKit.Base.jsonRegistry.register(name, check, wrap, override); }, /** @id MochiKit.Base.evalJSON */ - evalJSON: function () { - return eval("(" + MochiKit.Base._filterJSON(arguments[0]) + ")"); + evalJSON: function (jsonText) { + return eval("(" + MochiKit.Base._filterJSON(jsonText) + ")"); }, _filterJSON: function (s) { var m = s.match(/^\s*\/\*(.*)\*\/\s*$/); - if (m) { - return m[1]; - } - return s; + return (m) ? m[1] : s; }, /** @id MochiKit.Base.serializeJSON */ serializeJSON: function (o) { var objtype = typeof(o); if (objtype == "number" || objtype == "boolean") { return o + ""; } else if (o === null) { return "null"; } else if (objtype == "string") { var res = ""; for (var i = 0; i < o.length; i++) { var c = o.charAt(i); if (c == '\"') { res += '\\"'; } else if (c == '\\') { @@ -881,32 +896,38 @@ MochiKit.Base.update(MochiKit.Base, { var hex = o.charCodeAt(i).toString(16); if (hex.length < 2) { hex = '0' + hex; } res += '\\u00' + hex.toUpperCase(); } else { res += c; } } return '"' + res + '"'; } // recurse var me = arguments.callee; // short-circuit for objects that support "json" serialization // if they return "self" then just pass-through... var newObj; + if (typeof(o.toJSON) == "function") { + newObj = o.toJSON(); + if (o !== newObj) { + return me(newObj); + } + } if (typeof(o.__json__) == "function") { newObj = o.__json__(); if (o !== newObj) { return me(newObj); } } if (typeof(o.json) == "function") { newObj = o.json(); if (o !== newObj) { return me(newObj); } } // array if (objtype != "function" && typeof(o.length) == "number") { var res = []; for (var i = 0; i < o.length; i++) { @@ -1087,33 +1108,33 @@ MochiKit.Base.update(MochiKit.Base, { } if (count <= 0) { throw new TypeError('mean() requires at least one argument'); } return sum/count; }, /** @id MochiKit.Base.median */ median: function(/* lst... */) { /* http://www.nist.gov/dads/HTML/median.html */ var data = MochiKit.Base.flattenArguments(arguments); if (data.length === 0) { throw new TypeError('median() requires at least one argument'); } - data.sort(compare); + data.sort(MochiKit.Base.compare); if (data.length % 2 == 0) { var upper = data.length / 2; return (data[upper] + data[upper - 1]) / 2; } else { return data[(data.length - 1) / 2]; } }, /** @id MochiKit.Base.findValue */ findValue: function (lst, value, start/* = 0 */, /* optional */end) { if (typeof(end) == "undefined" || end === null) { end = lst.length; } if (typeof(start) == "undefined" || start === null) { start = 0; } @@ -1277,151 +1298,178 @@ MochiKit.Base.AdapterRegistry.prototype = { throw MochiKit.Base.NotFound; }, /** @id MochiKit.Base.AdapterRegistry.prototype.unregister */ unregister: function (name) { for (var i = 0; i < this.pairs.length; i++) { var pair = this.pairs[i]; if (pair[0] == name) { this.pairs.splice(i, 1); return true; } } return false; } }; -MochiKit.Base._exportSymbols = function (globals, module) { - if (MochiKit.__export__ === false || module.__export__ === false) { - return; - } - for (var k in module) { - var v = module[k]; - if (v != null) { - var okName = (k[0] !== "_" && k !== "toString"); - if (v.__export__ === true || (v.__export__ !== false && okName)) { - globals[k] = module[k]; +/** + * Exports all symbols from one or more modules into the specified + * namespace (or scope). This is similar to MochiKit.Base.update(), + * except for special handling of the "__export__" flag, contained + * sub-modules (exported recursively), and names starting with "_". + * + * @param {Object} namespace the object or scope to modify + * @param {Object} module the module to export + */ +MochiKit.Base.moduleExport = function (namespace, module/*, ...*/) { + var SKIP = { toString: true, NAME: true, VERSION: true }; + var mods = MochiKit.Base.extend([], arguments, 1); + while ((module = mods.shift()) != null) { + for (var k in module) { + var v = module[k]; + if (v != null) { + var flagSet = (typeof(v.__export__) == 'boolean'); + var nameValid = (k[0] !== "_" && !SKIP[k]); + if (flagSet ? v.__export__ : nameValid) { + if (typeof(v) == 'object' && v.NAME && v.VERSION) { + mods.push(v); + } else { + namespace[k] = module[k]; + } + } } } } + return namespace; +}; + +/** + * Identical to moduleExport, but also considers the global and + * module-specific "__export__" flag. + */ +MochiKit.Base._exportSymbols = function (namespace, module) { + if (MochiKit.__export__ !== false && module.__export__ !== false) { + MochiKit.Base.moduleExport(namespace, module); + } }; /** * Creates a deprecated function alias in the specified module. The * deprecated function will forward all calls and arguments to a * target function, while also logging a debug message on the first * call (if MochiKit.Logging is loaded). The destination function may * be located in another module, which must be loaded, or an * exception will be thrown. * * @param {Object/String} module the source module or module name * (e.g. 'DOM' or 'MochiKit.DOM') * @param {String} name the deprecated function name (e.g. 'getStyle') * @param {String} target the fully qualified name of the target * function (e.g. 'MochiKit.Style.getStyle') * @param {String} version the first version when the source function * was deprecated (e.g. '1.4') * @param {Boolean} [exportable] the exportable function flag, - * defaults to true + * defaults to false */ MochiKit.Base._deprecated = function (module, name, target, version, exportable) { if (typeof(module) === 'string') { if (module.indexOf('MochiKit.') === 0) { module = module.substring(9); } module = MochiKit[module]; } var targetModule = target.split('.')[1]; var targetName = target.split('.')[2]; var func = function () { var self = arguments.callee; var msg = module.NAME + '.' + name + ' is deprecated since version ' + version + '. Use ' + target + ' instead.'; if (self.logged !== true) { self.logged = true; if (MochiKit.Logging) { MochiKit.Logging.logDebug(msg); } else if (console && console.log) { console.log(msg); } } if (!MochiKit[targetModule]) { throw new Error(msg); } return MochiKit[targetModule][targetName].apply(this, arguments); }; - if (exportable === false) { - func.__export__ = false; - } + func.__export__ = (exportable === true); module[name] = func; -} +}; MochiKit.Base.__new__ = function () { var m = this; /** @id MochiKit.Base.noop */ m.noop = m.operator.identity; // Backwards compat - m._deprecated(m, 'forward', 'MochiKit.Base.forwardCall', '1.3', false); - m._deprecated(m, 'find', 'MochiKit.Base.findValue', '1.3', false); + m._deprecated(m, 'forward', 'MochiKit.Base.forwardCall', '1.3'); + m._deprecated(m, 'find', 'MochiKit.Base.findValue', '1.3'); if (typeof(encodeURIComponent) != "undefined") { /** @id MochiKit.Base.urlEncode */ m.urlEncode = function (unencoded) { return encodeURIComponent(unencoded).replace(/\'/g, '%27'); }; } else { m.urlEncode = function (unencoded) { return escape(unencoded ).replace(/\+/g, '%2B' ).replace(/\"/g,'%22' - ).rval.replace(/\'/g, '%27'); + ).replace(/\'/g, '%27'); }; } /** @id MochiKit.Base.NamedError */ m.NamedError = function (name) { this.message = name; this.name = name; }; m.NamedError.prototype = new Error(); + m.NamedError.prototype.constructor = m.NamedError; m.update(m.NamedError.prototype, { repr: function () { if (this.message && this.message != this.name) { return this.name + "(" + m.repr(this.message) + ")"; } else { return this.name + "()"; } }, toString: m.forwardCall("repr") }); /** @id MochiKit.Base.NotFound */ m.NotFound = new m.NamedError("MochiKit.Base.NotFound"); /** @id MochiKit.Base.listMax */ m.listMax = m.partial(m.listMinMax, 1); /** @id MochiKit.Base.listMin */ m.listMin = m.partial(m.listMinMax, -1); /** @id MochiKit.Base.isCallable */ m.isCallable = m.typeMatcher('function'); /** @id MochiKit.Base.isUndefined */ m.isUndefined = m.typeMatcher('undefined'); + /** @id MochiKit.Base.isValue */ + m.isValue = m.typeMatcher('boolean', 'number', 'string'); /** @id MochiKit.Base.merge */ m.merge = m.partial(m.update, null); /** @id MochiKit.Base.zip */ m.zip = m.partial(m.map, null); /** @id MochiKit.Base.average */ m.average = m.mean; /** @id MochiKit.Base.comparatorRegistry */ m.comparatorRegistry = new m.AdapterRegistry(); m.registerComparator("dateLike", m.isDateLike, m.compareDateLike); m.registerComparator("arrayLike", m.isArrayLike, m.compareArrayLike); /** @id MochiKit.Base.reprRegistry */ m.reprRegistry = new m.AdapterRegistry(); diff --git a/frontend/gamma/js/MochiKit/Color.js b/frontend/gamma/js/MochiKit/Color.js index 27dc2d0..f2a0f67 100644 --- a/frontend/gamma/js/MochiKit/Color.js +++ b/frontend/gamma/js/MochiKit/Color.js @@ -1,27 +1,27 @@ /*** MochiKit.Color 1.5 See <http://mochikit.com/> for documentation, downloads, license, etc. (c) 2005 Bob Ippolito and others. All rights Reserved. ***/ -MochiKit.Base._module('Color', '1.5', ['Base', 'DOM', 'Style']); +MochiKit.Base.module(MochiKit, 'Color', '1.5', ['Base', 'DOM', 'Style']); /** @id MochiKit.Color.Color */ MochiKit.Color.Color = function (red, green, blue, alpha) { if (typeof(alpha) == 'undefined' || alpha === null) { alpha = 1.0; } this.rgb = { r: red, g: green, b: blue, a: alpha }; }; // Prototype methods @@ -99,33 +99,33 @@ MochiKit.Color.Color.prototype = { (s.a * sf) + (d.a * df) ); }, /** @id MochiKit.Color.Color.prototype.compareRGB */ compareRGB: function (other) { var a = this.asRGB(); var b = other.asRGB(); return MochiKit.Base.compare( [a.r, a.g, a.b, a.a], [b.r, b.g, b.b, b.a] ); }, /** @id MochiKit.Color.Color.prototype.isLight */ isLight: function () { - return this.asHSL().b > 0.5; + return this.asHSL().l > 0.5; }, /** @id MochiKit.Color.Color.prototype.isDark */ isDark: function () { return (!this.isLight()); }, /** @id MochiKit.Color.Color.prototype.toHSLString */ toHSLString: function () { var c = this.asHSL(); var ccc = MochiKit.Color.clampColorComponent; var rval = this._hslString; if (!rval) { var mid = ( ccc(c.h, 360).toFixed(0) + "," + ccc(c.s, 100).toPrecision(4) + "%" @@ -628,45 +628,36 @@ MochiKit.Base.update(MochiKit.Color, { /** @id MochiKit.Color.magentaColor */ magenta: [1, 0, 1], /** @id MochiKit.Color.orangeColor */ orange: [1, 0.5, 0], /** @id MochiKit.Color.purpleColor */ purple: [0.5, 0, 0.5], /** @id MochiKit.Color.redColor */ red: [1, 0, 0], /** @id MochiKit.Color.transparentColor */ transparent: [0, 0, 0, 0], /** @id MochiKit.Color.whiteColor */ white: [1, 1, 1], /** @id MochiKit.Color.yellowColor */ yellow: [1, 1, 0] }; - var makeColor = function (name, r, g, b, a) { - var rval = this.fromRGB(r, g, b, a); - this[name] = function () { return rval; }; - return rval; - }; - for (var k in colors) { var name = k + "Color"; - var bindArgs = m.concat( - [makeColor, this.Color, name], - colors[k] - ); - this.Color[name] = m.bind.apply(null, bindArgs); + var value = this.Color.fromRGB.apply(this.Color, colors[k]); + this.Color[name] = m.partial(m.operator.identity, value); } var isColor = function () { for (var i = 0; i < arguments.length; i++) { if (!(arguments[i] instanceof MochiKit.Color.Color)) { return false; } } return true; }; var compareColor = function (a, b) { return a.compareRGB(b); }; m.nameFunctions(this); diff --git a/frontend/gamma/js/MochiKit/DOM.js b/frontend/gamma/js/MochiKit/DOM.js index af5d46f..944ab78 100644 --- a/frontend/gamma/js/MochiKit/DOM.js +++ b/frontend/gamma/js/MochiKit/DOM.js @@ -1,27 +1,27 @@ /*** MochiKit.DOM 1.5 See <http://mochikit.com/> for documentation, downloads, license, etc. (c) 2005 Bob Ippolito. All rights Reserved. ***/ -MochiKit.Base._module('DOM', '1.5', ['Base']); +MochiKit.Base.module(MochiKit, 'DOM', '1.5', ['Base']); MochiKit.Base.update(MochiKit.DOM, { /** @id MochiKit.DOM.currentWindow */ currentWindow: function () { return MochiKit.DOM._window; }, /** @id MochiKit.DOM.currentDocument */ currentDocument: function () { return MochiKit.DOM._document; }, /** @id MochiKit.DOM.withWindow */ withWindow: function (win, func) { var self = MochiKit.DOM; @@ -284,87 +284,87 @@ MochiKit.Base.update(MochiKit.DOM, { node = self.getElement(node); try { if (rename) { return node[rename]; } return node.removeAttribute(attr); } catch (e) { // pass } return null; }, /** @id MochiKit.DOM.updateNodeAttributes */ updateNodeAttributes: function (node, attrs) { var elem = node; var self = MochiKit.DOM; + var base = MochiKit.Base; if (typeof(node) == 'string') { elem = self.getElement(node); } if (attrs) { - var updatetree = MochiKit.Base.updatetree; if (self.attributeArray.compliant) { // not IE, good. for (var k in attrs) { var v = attrs[k]; if (typeof(v) == 'object' && typeof(elem[k]) == 'object') { if (k == "style" && MochiKit.Style) { MochiKit.Style.setStyle(elem, v); } else { - updatetree(elem[k], v); + base.updatetree(elem[k], v); } } else if (k.substring(0, 2) == "on") { if (typeof(v) == "string") { v = new Function(v); } elem[k] = v; } else { elem.setAttribute(k, v); } - if (typeof(elem[k]) == "string" && elem[k] != v) { - // Also set property for weird attributes (see #302) + if (base.isValue(elem[k]) && elem[k] != v) { + // Also set property for weird attributes (see #302 & #335) elem[k] = v; } } } else { // IE is insane in the membrane var renames = self.attributeArray.renames; for (var k in attrs) { v = attrs[k]; var renamed = renames[k]; if (k == "style" && typeof(v) == "string") { elem.style.cssText = v; } else if (typeof(renamed) == "string") { elem[renamed] = v; } else if (typeof(elem[k]) == 'object' && typeof(v) == 'object') { if (k == "style" && MochiKit.Style) { MochiKit.Style.setStyle(elem, v); } else { - updatetree(elem[k], v); + base.updatetree(elem[k], v); } } else if (k.substring(0, 2) == "on") { if (typeof(v) == "string") { v = new Function(v); } elem[k] = v; } else { elem.setAttribute(k, v); } - if (typeof(elem[k]) == "string" && elem[k] != v) { - // Also set property for weird attributes (see #302) + if (base.isValue(elem[k]) && elem[k] != v) { + // Also set property for weird attributes (see #302 & #335) elem[k] = v; } } } } return elem; }, /** @id MochiKit.DOM.appendChildNodes */ appendChildNodes: function (node/*, nodes...*/) { var elem = node; var self = MochiKit.DOM; if (typeof(node) == 'string') { elem = self.getElement(node); } var nodeStack = [ @@ -977,50 +977,51 @@ MochiKit.Base.update(MochiKit.DOM, { var ignoreAttr = attributeArray.ignoreAttr; for (var i = 0; i < attrs.length; i++) { var a = attrs[i]; ignoreAttr[a.name] = a.value; } attributeArray.ignoreAttrFilter = function (a) { return (attributeArray.ignoreAttr[a.name] != a.value); }; attributeArray.compliant = false; attributeArray.renames = { "class": "className", "checked": "defaultChecked", "usemap": "useMap", "for": "htmlFor", "readonly": "readOnly", "colspan": "colSpan", + "rowspan": "rowSpan", "bgcolor": "bgColor", "cellspacing": "cellSpacing", "cellpadding": "cellPadding" }; } else { attributeArray = function (node) { return node.attributes; }; attributeArray.compliant = true; attributeArray.ignoreAttr = {}; attributeArray.renames = {}; } attributeArray.__export__ = false; this.attributeArray = attributeArray; // Backwards compatibility aliases /** @id MochiKit.DOM.computedStyle */ - m._deprecated(this, 'computedStyle', 'MochiKit.Style.getStyle', '1.4'); + m._deprecated(this, 'computedStyle', 'MochiKit.Style.getStyle', '1.4', true); /** @id MochiKit.DOM.elementDimensions */ m._deprecated(this, 'elementDimensions', 'MochiKit.Style.getElementDimensions', '1.4'); /** @id MochiKit.DOM.elementPosition */ m._deprecated(this, 'elementPosition', 'MochiKit.Style.getElementPosition', '1.4'); /** @id MochiKit.DOM.getViewportDimensions */ m._deprecated(this, 'getViewportDimensions', 'MochiKit.Style.getViewportDimensions', '1.4'); /** @id MochiKit.DOM.hideElement */ m._deprecated(this, 'hideElement', 'MochiKit.Style.hideElement', '1.4'); /** @id MochiKit.DOM.makeClipping */ m._deprecated(this, 'makeClipping', 'MochiKit.Style.makeClipping', '1.4.1'); /** @id MochiKit.DOM.makePositioned */ m._deprecated(this, 'makePositioned', 'MochiKit.Style.makePositioned', '1.4.1'); /** @id MochiKit.DOM.setElementDimensions */ m._deprecated(this, 'setElementDimensions', 'MochiKit.Style.setElementDimensions', '1.4'); /** @id MochiKit.DOM.setElementPosition */ m._deprecated(this, 'setElementPosition', 'MochiKit.Style.setElementPosition', '1.4'); @@ -1028,117 +1029,151 @@ MochiKit.Base.update(MochiKit.DOM, { m._deprecated(this, 'setDisplayForElement', 'MochiKit.Style.setDisplayForElement', '1.4'); /** @id MochiKit.DOM.setOpacity */ m._deprecated(this, 'setOpacity', 'MochiKit.Style.setOpacity', '1.4'); /** @id MochiKit.DOM.showElement */ m._deprecated(this, 'showElement', 'MochiKit.Style.showElement', '1.4'); /** @id MochiKit.DOM.undoClipping */ m._deprecated(this, 'undoClipping', 'MochiKit.Style.undoClipping', '1.4.1'); /** @id MochiKit.DOM.undoPositioned */ m._deprecated(this, 'undoPositioned', 'MochiKit.Style.undoPositioned', '1.4.1'); /** @id MochiKit.DOM.Coordinates */ m._deprecated(this, 'Coordinates', 'MochiKit.Style.Coordinates', '1.4'); /** @id MochiKit.DOM.Dimensions */ m._deprecated(this, 'Dimensions', 'MochiKit.Style.Dimensions', '1.4'); // shorthand for createDOM syntax var createDOMFunc = this.createDOMFunc; - /** @id MochiKit.DOM.UL */ - this.UL = createDOMFunc("ul"); - /** @id MochiKit.DOM.OL */ - this.OL = createDOMFunc("ol"); - /** @id MochiKit.DOM.LI */ - this.LI = createDOMFunc("li"); - /** @id MochiKit.DOM.DL */ - this.DL = createDOMFunc("dl"); - /** @id MochiKit.DOM.DT */ - this.DT = createDOMFunc("dt"); - /** @id MochiKit.DOM.DD */ - this.DD = createDOMFunc("dd"); - /** @id MochiKit.DOM.TD */ - this.TD = createDOMFunc("td"); - /** @id MochiKit.DOM.TR */ - this.TR = createDOMFunc("tr"); - /** @id MochiKit.DOM.TBODY */ - this.TBODY = createDOMFunc("tbody"); - /** @id MochiKit.DOM.THEAD */ - this.THEAD = createDOMFunc("thead"); - /** @id MochiKit.DOM.TFOOT */ - this.TFOOT = createDOMFunc("tfoot"); - /** @id MochiKit.DOM.TABLE */ - this.TABLE = createDOMFunc("table"); - /** @id MochiKit.DOM.TH */ - this.TH = createDOMFunc("th"); - /** @id MochiKit.DOM.INPUT */ - this.INPUT = createDOMFunc("input"); - /** @id MochiKit.DOM.SPAN */ - this.SPAN = createDOMFunc("span"); /** @id MochiKit.DOM.A */ this.A = createDOMFunc("a"); - /** @id MochiKit.DOM.DIV */ - this.DIV = createDOMFunc("div"); - /** @id MochiKit.DOM.IMG */ - this.IMG = createDOMFunc("img"); + /** @id MochiKit.DOM.ARTICLE */ + this.ARTICLE = createDOMFunc("article"); + /** @id MochiKit.DOM.ASIDE */ + this.ASIDE = createDOMFunc("aside"); + /** @id MochiKit.DOM.BR */ + this.BR = createDOMFunc("br"); /** @id MochiKit.DOM.BUTTON */ this.BUTTON = createDOMFunc("button"); - /** @id MochiKit.DOM.TT */ - this.TT = createDOMFunc("tt"); - /** @id MochiKit.DOM.PRE */ - this.PRE = createDOMFunc("pre"); + /** @id MochiKit.DOM.CANVAS */ + this.CANVAS = createDOMFunc("canvas"); + /** @id MochiKit.DOM.CAPTION */ + this.CAPTION = createDOMFunc("caption"); + /** @id MochiKit.DOM.DD */ + this.DD = createDOMFunc("dd"); + /** @id MochiKit.DOM.DIV */ + this.DIV = createDOMFunc("div"); + /** @id MochiKit.DOM.DL */ + this.DL = createDOMFunc("dl"); + /** @id MochiKit.DOM.DT */ + this.DT = createDOMFunc("dt"); + /** @id MochiKit.DOM.FIELDSET */ + this.FIELDSET = createDOMFunc("fieldset"); + /** @id MochiKit.DOM.FIGURE */ + this.FIGURE = createDOMFunc("figure"); + /** @id MochiKit.DOM.FIGCAPTION */ + this.FIGCAPTION = createDOMFunc("figcaption"); + /** @id MochiKit.DOM.FOOTER */ + this.FOOTER = createDOMFunc("footer"); + /** @id MochiKit.DOM.FORM */ + this.FORM = createDOMFunc("form"); /** @id MochiKit.DOM.H1 */ this.H1 = createDOMFunc("h1"); /** @id MochiKit.DOM.H2 */ this.H2 = createDOMFunc("h2"); /** @id MochiKit.DOM.H3 */ this.H3 = createDOMFunc("h3"); /** @id MochiKit.DOM.H4 */ this.H4 = createDOMFunc("h4"); /** @id MochiKit.DOM.H5 */ this.H5 = createDOMFunc("h5"); /** @id MochiKit.DOM.H6 */ this.H6 = createDOMFunc("h6"); - /** @id MochiKit.DOM.BR */ - this.BR = createDOMFunc("br"); + /** @id MochiKit.DOM.HEADER */ + this.HEADER = createDOMFunc("header"); + /** @id MochiKit.DOM.HGROUP */ + this.HGROUP = createDOMFunc("hgroup"); /** @id MochiKit.DOM.HR */ this.HR = createDOMFunc("hr"); + /** @id MochiKit.DOM.IFRAME */ + this.IFRAME = createDOMFunc("iframe"); + /** @id MochiKit.DOM.IMG */ + this.IMG = createDOMFunc("img"); + /** @id MochiKit.DOM.INPUT */ + this.INPUT = createDOMFunc("input"); /** @id MochiKit.DOM.LABEL */ this.LABEL = createDOMFunc("label"); - /** @id MochiKit.DOM.TEXTAREA */ - this.TEXTAREA = createDOMFunc("textarea"); - /** @id MochiKit.DOM.FORM */ - this.FORM = createDOMFunc("form"); + /** @id MochiKit.DOM.LEGEND */ + this.LEGEND = createDOMFunc("legend"); + /** @id MochiKit.DOM.LI */ + this.LI = createDOMFunc("li"); + /** @id MochiKit.DOM.LINK */ + this.LINK = createDOMFunc("link"); + /** @id MochiKit.DOM.MARK */ + this.MARK = createDOMFunc("mark"); + /** @id MochiKit.DOM.METER */ + this.METER = createDOMFunc("meter"); + /** @id MochiKit.DOM.NAV */ + this.NAV = createDOMFunc("nav"); + /** @id MochiKit.DOM.OL */ + this.OL = createDOMFunc("ol"); + /** @id MochiKit.DOM.OPTGROUP */ + this.OPTGROUP = createDOMFunc("optgroup"); + /** @id MochiKit.DOM.OPTION */ + this.OPTION = createDOMFunc("option"); /** @id MochiKit.DOM.P */ this.P = createDOMFunc("p"); + /** @id MochiKit.DOM.PRE */ + this.PRE = createDOMFunc("pre"); + /** @id MochiKit.DOM.PROGRESS */ + this.PROGRESS = createDOMFunc("progress"); + /** @id MochiKit.DOM.SCRIPT */ + this.SCRIPT = createDOMFunc("script"); + /** @id MochiKit.DOM.SECTION */ + this.SECTION = createDOMFunc("section"); /** @id MochiKit.DOM.SELECT */ this.SELECT = createDOMFunc("select"); - /** @id MochiKit.DOM.OPTION */ - this.OPTION = createDOMFunc("option"); - /** @id MochiKit.DOM.OPTGROUP */ - this.OPTGROUP = createDOMFunc("optgroup"); - /** @id MochiKit.DOM.LEGEND */ - this.LEGEND = createDOMFunc("legend"); - /** @id MochiKit.DOM.FIELDSET */ - this.FIELDSET = createDOMFunc("fieldset"); + /** @id MochiKit.DOM.SPAN */ + this.SPAN = createDOMFunc("span"); /** @id MochiKit.DOM.STRONG */ this.STRONG = createDOMFunc("strong"); - /** @id MochiKit.DOM.CANVAS */ - this.CANVAS = createDOMFunc("canvas"); - + /** @id MochiKit.DOM.STYLE */ + this.STYLE = createDOMFunc("style"); + /** @id MochiKit.DOM.TABLE */ + this.TABLE = createDOMFunc("table"); + /** @id MochiKit.DOM.TBODY */ + this.TBODY = createDOMFunc("tbody"); + /** @id MochiKit.DOM.TD */ + this.TD = createDOMFunc("td"); + /** @id MochiKit.DOM.TEXTAREA */ + this.TEXTAREA = createDOMFunc("textarea"); + /** @id MochiKit.DOM.TFOOT */ + this.TFOOT = createDOMFunc("tfoot"); + /** @id MochiKit.DOM.TH */ + this.TH = createDOMFunc("th"); + /** @id MochiKit.DOM.THEAD */ + this.THEAD = createDOMFunc("thead"); + /** @id MochiKit.DOM.TR */ + this.TR = createDOMFunc("tr"); + /** @id MochiKit.DOM.TT */ + this.TT = createDOMFunc("tt"); + /** @id MochiKit.DOM.UL */ + this.UL = createDOMFunc("ul"); + /** @id MochiKit.DOM.NBSP */ + this.NBSP = "\u00a0"; /** @id MochiKit.DOM.$ */ this.$ = this.getElement; m.nameFunctions(this); - } }); MochiKit.DOM.__new__(((typeof(window) == "undefined") ? this : window)); // // XXX: Internet Explorer blows // if (MochiKit.__export__) { withWindow = MochiKit.DOM.withWindow; withDocument = MochiKit.DOM.withDocument; } MochiKit.Base._exportSymbols(this, MochiKit.DOM); diff --git a/frontend/gamma/js/MochiKit/DateTime.js b/frontend/gamma/js/MochiKit/DateTime.js index c7b2d25..658084c 100644 --- a/frontend/gamma/js/MochiKit/DateTime.js +++ b/frontend/gamma/js/MochiKit/DateTime.js @@ -1,42 +1,42 @@ /*** MochiKit.DateTime 1.5 See <http://mochikit.com/> for documentation, downloads, license, etc. (c) 2005 Bob Ippolito. All rights Reserved. ***/ -MochiKit.Base._module('DateTime', '1.5', ['Base']); +MochiKit.Base.module(MochiKit, 'DateTime', '1.5', ['Base']); /** @id MochiKit.DateTime.isoDate */ MochiKit.DateTime.isoDate = function (str) { str = str + ""; if (typeof(str) != "string" || str.length === 0) { return null; } var iso = str.split('-'); if (iso.length === 0) { return null; } - var date = new Date(iso[0], iso[1] - 1, iso[2]); - date.setFullYear(iso[0]); - date.setMonth(iso[1] - 1); - date.setDate(iso[2]); + var date = new Date(parseInt(iso[0], 10), parseInt(iso[1], 10) - 1, parseInt(iso[2], 10)); + date.setFullYear(iso[0]); + date.setMonth(iso[1] - 1); + date.setDate(iso[2]); return date; }; MochiKit.DateTime._isoRegexp = /(\d{4,})(?:-(\d{1,2})(?:-(\d{1,2})(?:[T ](\d{1,2}):(\d{1,2})(?::(\d{1,2})(?:\.(\d+))?)?(?:(Z)|([+-])(\d{1,2})(?::(\d{1,2}))?)?)?)?)?/; /** @id MochiKit.DateTime.isoTimestamp */ MochiKit.DateTime.isoTimestamp = function (str) { str = str + ""; if (typeof(str) != "string" || str.length === 0) { return null; } var res = str.match(MochiKit.DateTime._isoRegexp); if (typeof(res) == "undefined" || res === null) { return null; } var year, month, day, hour, min, sec, msec; @@ -67,93 +67,96 @@ MochiKit.DateTime.isoTimestamp = function (str) { ofs += parseInt(res[11], 10) * 60000; } if (res[9] == "-") { ofs = -ofs; } } else { ofs = 0; } return new Date(Date.UTC(year, month, day, hour, min, sec, msec) - ofs); }; /** @id MochiKit.DateTime.toISOTime */ MochiKit.DateTime.toISOTime = function (date, realISO/* = false */) { if (typeof(date) == "undefined" || date === null) { return null; } - var hh = date.getHours(); - var mm = date.getMinutes(); - var ss = date.getSeconds(); + var _padTwo = MochiKit.DateTime._padTwo; + if (realISO) { + // adjust date for UTC timezone + date = new Date(date.getTime() + (date.getTimezoneOffset() * 60000)); + } var lst = [ - ((realISO && (hh < 10)) ? "0" + hh : hh), - ((mm < 10) ? "0" + mm : mm), - ((ss < 10) ? "0" + ss : ss) + (realISO ? _padTwo(date.getHours()) : date.getHours()), + _padTwo(date.getMinutes()), + _padTwo(date.getSeconds()) ]; - return lst.join(":"); + return lst.join(":") + (realISO ? "Z" : ""); }; /** @id MochiKit.DateTime.toISOTimeStamp */ MochiKit.DateTime.toISOTimestamp = function (date, realISO/* = false*/) { if (typeof(date) == "undefined" || date === null) { return null; } + var time = MochiKit.DateTime.toISOTime(date, realISO); var sep = realISO ? "T" : " "; - var foot = realISO ? "Z" : ""; if (realISO) { + // adjust date for UTC timezone date = new Date(date.getTime() + (date.getTimezoneOffset() * 60000)); } - return MochiKit.DateTime.toISODate(date) + sep + MochiKit.DateTime.toISOTime(date, realISO) + foot; + return MochiKit.DateTime.toISODate(date) + sep + time; }; /** @id MochiKit.DateTime.toISODate */ MochiKit.DateTime.toISODate = function (date) { if (typeof(date) == "undefined" || date === null) { return null; } var _padTwo = MochiKit.DateTime._padTwo; - var _padFour = MochiKit.DateTime._padFour; + var _padFour = MochiKit.DateTime._padFour; return [ _padFour(date.getFullYear()), _padTwo(date.getMonth() + 1), _padTwo(date.getDate()) ].join("-"); }; /** @id MochiKit.DateTime.americanDate */ MochiKit.DateTime.americanDate = function (d) { d = d + ""; if (typeof(d) != "string" || d.length === 0) { return null; } var a = d.split('/'); return new Date(a[2], a[0] - 1, a[1]); }; MochiKit.DateTime._padTwo = function (n) { return (n > 9) ? n : "0" + n; }; MochiKit.DateTime._padFour = function(n) { - switch(n.toString().length) { - case 1: return "000" + n; break; - case 2: return "00" + n; break; - case 3: return "0" + n; break; - case 4: - default: - return n; - } + switch(n.toString().length) { + case 1: return "000" + n; break; + case 2: return "00" + n; break; + case 3: return "0" + n; break; + case 4: + default: + return n; + } }; /** @id MochiKit.DateTime.toPaddedAmericanDate */ MochiKit.DateTime.toPaddedAmericanDate = function (d) { if (typeof(d) == "undefined" || d === null) { return null; } var _padTwo = MochiKit.DateTime._padTwo; return [ _padTwo(d.getMonth() + 1), _padTwo(d.getDate()), d.getFullYear() ].join('/'); }; /** @id MochiKit.DateTime.toAmericanDate */ diff --git a/frontend/gamma/js/MochiKit/DragAndDrop.js b/frontend/gamma/js/MochiKit/DragAndDrop.js index 62777c5..cf84f77 100644 --- a/frontend/gamma/js/MochiKit/DragAndDrop.js +++ b/frontend/gamma/js/MochiKit/DragAndDrop.js @@ -1,27 +1,27 @@ /*** MochiKit.DragAndDrop 1.5 See <http://mochikit.com/> for documentation, downloads, license, etc. Copyright (c) 2005 Thomas Fuchs (http://script.aculo.us, http://mir.aculo.us) Mochi-ized By Thomas Herve (_firstname_@nimail.org) ***/ -MochiKit.Base._module('DragAndDrop', '1.5', ['Base', 'Iter', 'DOM', 'Signal', 'Visual', 'Position']); +MochiKit.Base.module(MochiKit, 'DragAndDrop', '1.5', ['Base', 'Iter', 'DOM', 'Signal', 'Visual', 'Position']); MochiKit.DragAndDrop.Droppables = { /*** Manage all droppables. Shouldn't be used, use the Droppable object instead. ***/ drops: [], remove: function (element) { this.drops = MochiKit.Base.filter(function (d) { return d.element != MochiKit.DOM.getElement(element); }, this.drops); }, register: function (drop) { @@ -293,34 +293,35 @@ MochiKit.DragAndDrop.Draggables = { // fails for Safari window.focus(); this.activeDraggable = draggable; }, deactivate: function () { this.activeDraggable = null; }, updateDrag: function (event) { if (!this.activeDraggable) { return; } var pointer = event.mouse(); // Mozilla-based browsers fire successive mousemove events with // the same coordinates, prevent needless redrawing (moz bug?) - if (this._lastPointer && (MochiKit.Base.repr(this._lastPointer.page) == - MochiKit.Base.repr(pointer.page))) { + if (this._lastPointer && + this._lastPointer.page.x == pointer.page.x && + this._lastPointer.page.y == pointer.page.y) { return; } this._lastPointer = pointer; this.activeDraggable.updateDrag(event, pointer); }, endDrag: function (event) { if (!this.activeDraggable) { return; } this._lastPointer = null; this.activeDraggable.endDrag(event); this.activeDraggable = null; }, keyPress: function (event) { @@ -429,34 +430,34 @@ MochiKit.DragAndDrop.Draggable.prototype = { this.eventMouseDown = MochiKit.Signal.connect(this.handle, 'onmousedown', this, this.initDrag); MochiKit.DragAndDrop.Draggables.register(this); }, /** @id MochiKit.DragAndDrop.destroy */ destroy: function () { MochiKit.Signal.disconnect(this.eventMouseDown); MochiKit.DragAndDrop.Draggables.unregister(this); }, /** @id MochiKit.DragAndDrop.currentDelta */ currentDelta: function () { var s = MochiKit.Style.getStyle; return [ - parseInt(s(this.element, 'left') || '0'), - parseInt(s(this.element, 'top') || '0')]; + parseInt(s(this.element, 'left') || '0', 10), + parseInt(s(this.element, 'top') || '0', 10)]; }, /** @id MochiKit.DragAndDrop.initDrag */ initDrag: function (event) { if (!event.mouse().button.left) { return; } // abort on form elements, fixes a Firefox issue var src = event.target(); var tagName = (src.tagName || '').toUpperCase(); if (tagName === 'INPUT' || tagName === 'SELECT' || tagName === 'OPTION' || tagName === 'BUTTON' || tagName === 'TEXTAREA') { return; } @@ -468,34 +469,33 @@ MochiKit.DragAndDrop.Draggable.prototype = { var pointer = event.mouse(); var pos = MochiKit.Position.cumulativeOffset(this.element); this.offset = [pointer.page.x - pos.x, pointer.page.y - pos.y]; MochiKit.DragAndDrop.Draggables.activate(this); event.stop(); }, /** @id MochiKit.DragAndDrop.startDrag */ startDrag: function (event) { this.dragging = true; if (this.options.selectclass) { MochiKit.DOM.addElementClass(this.element, this.options.selectclass); } if (this.options.zindex) { - this.originalZ = parseInt(MochiKit.Style.getStyle(this.element, - 'z-index') || '0'); + this.originalZ = MochiKit.Style.getStyle(this.element, 'z-index'); this.element.style.zIndex = this.options.zindex; } if (this.options.ghosting) { this._clone = this.element.cloneNode(true); this.ghostPosition = MochiKit.Position.absolutize(this.element); this.element.parentNode.insertBefore(this._clone, this.element); } if (this.options.scroll) { if (this.options.scroll == window) { var where = this._getWindowScroll(this.options.scroll); this.originalScrollLeft = where.left; this.originalScrollTop = where.top; } else { this.originalScrollLeft = this.options.scroll.scrollLeft; diff --git a/frontend/gamma/js/MochiKit/Format.js b/frontend/gamma/js/MochiKit/Format.js index 122845e..58877e7 100644 --- a/frontend/gamma/js/MochiKit/Format.js +++ b/frontend/gamma/js/MochiKit/Format.js @@ -1,27 +1,27 @@ /*** MochiKit.Format 1.5 See <http://mochikit.com/> for documentation, downloads, license, etc. (c) 2005 Bob Ippolito. All rights Reserved. ***/ -MochiKit.Base._module('Format', '1.5', ['Base']); +MochiKit.Base.module(MochiKit, 'Format', '1.5', ['Base']); MochiKit.Format._numberFormatter = function (placeholder, header, footer, locale, isPercent, precision, leadingZeros, separatorAt, trailingZeros) { return function (num) { num = parseFloat(num); if (typeof(num) == "undefined" || num === null || isNaN(num)) { return placeholder; } var curheader = header; var curfooter = footer; if (num < 0) { num = -num; } else { curheader = curheader.replace(/-/, ""); } var me = arguments.callee; var fmt = MochiKit.Format.formatLocale(locale); @@ -91,33 +91,33 @@ MochiKit.Format.numberFormatter = function (pattern, placeholder/* = "" */, loca } var leadingZeros = whole.length - whole.replace(/0/g, "").length; var trailingZeros = frac.length - frac.replace(/0/g, "").length; var precision = frac.length; var rval = MochiKit.Format._numberFormatter( placeholder, header, footer, locale, isPercent, precision, leadingZeros, separatorAt, trailingZeros ); var m = MochiKit.Base; if (m) { var fn = arguments.callee; var args = m.concat(arguments); rval.repr = function () { return [ self.NAME, "(", - map(m.repr, args).join(", "), + m.map(m.repr, args).join(", "), ")" ].join(""); }; } return rval; }; /** @id MochiKit.Format.formatLocale */ MochiKit.Format.formatLocale = function (locale) { if (typeof(locale) == "undefined" || locale === null) { locale = "default"; } if (typeof(locale) == "string") { var rval = MochiKit.Format.LOCALE[locale]; if (typeof(rval) == "string") { rval = arguments.callee(rval); @@ -129,33 +129,33 @@ MochiKit.Format.formatLocale = function (locale) { } }; /** @id MochiKit.Format.twoDigitAverage */ MochiKit.Format.twoDigitAverage = function (numerator, denominator) { if (denominator) { var res = numerator / denominator; if (!isNaN(res)) { return MochiKit.Format.twoDigitFloat(res); } } return "0"; }; /** @id MochiKit.Format.twoDigitFloat */ MochiKit.Format.twoDigitFloat = function (aNumber) { - var res = roundToFixed(aNumber, 2); + var res = MochiKit.Format.roundToFixed(aNumber, 2); if (res.indexOf(".00") > 0) { return res.substring(0, res.length - 3); } else if (res.charAt(res.length - 1) == "0") { return res.substring(0, res.length - 1); } else { return res; } }; /** @id MochiKit.Format.lstrip */ MochiKit.Format.lstrip = function (str, /* optional */chars) { str = str + ""; if (typeof(str) != "string") { return null; } if (!chars) { @@ -180,74 +180,74 @@ MochiKit.Format.rstrip = function (str, /* optional */chars) { /** @id MochiKit.Format.strip */ MochiKit.Format.strip = function (str, /* optional */chars) { var self = MochiKit.Format; return self.rstrip(self.lstrip(str, chars), chars); }; /** @id MochiKit.Format.truncToFixed */ MochiKit.Format.truncToFixed = function (aNumber, precision) { var fixed = MochiKit.Format._numberToFixed(aNumber, precision); var fracPos = fixed.indexOf("."); if (fracPos > 0 && fracPos + precision + 1 < fixed.length) { fixed = fixed.substring(0, fracPos + precision + 1); fixed = MochiKit.Format._shiftNumber(fixed, 0); } return fixed; -} +}; /** @id MochiKit.Format.roundToFixed */ MochiKit.Format.roundToFixed = function (aNumber, precision) { var fixed = MochiKit.Format._numberToFixed(aNumber, precision); var fracPos = fixed.indexOf("."); if (fracPos > 0 && fracPos + precision + 1 < fixed.length) { var str = MochiKit.Format._shiftNumber(fixed, precision); str = MochiKit.Format._numberToFixed(Math.round(parseFloat(str)), 0); fixed = MochiKit.Format._shiftNumber(str, -precision); } return fixed; -} +}; /** * Converts a number to a fixed format string. This function handles * conversion of exponents by shifting the decimal point to the left * or the right. It also guarantees a specified minimum number of * fractional digits (but no maximum). * * @param {Number} aNumber the number to convert * @param {Number} precision the minimum number of decimal digits * * @return {String} the fixed format number string */ MochiKit.Format._numberToFixed = function (aNumber, precision) { var str = aNumber.toString(); var parts = str.split(/[eE]/); - var exp = (parts.length === 1) ? 0 : parseInt(parts[1]) || 0; + var exp = (parts.length === 1) ? 0 : parseInt(parts[1], 10) || 0; var fixed = MochiKit.Format._shiftNumber(parts[0], exp); parts = fixed.split(/\./); var whole = parts[0]; var frac = (parts.length === 1) ? "" : parts[1]; while (frac.length < precision) { frac += "0"; } if (frac.length > 0) { return whole + "." + frac; } else { return whole; } -} +}; /** * Shifts the decimal dot location in a fixed format number string. * This function handles negative values and will add and remove * leading and trailing zeros as needed. * * @param {String} num the fixed format number string * @param {Number} exp the base-10 exponent to apply * * @return {String} the new fixed format number string */ MochiKit.Format._shiftNumber = function (num, exp) { var pos = num.indexOf("."); if (pos < 0) { pos = num.length; } else { @@ -262,33 +262,33 @@ MochiKit.Format._shiftNumber = function (num, exp) { } pos++; } while (pos > num.length) { num += "0"; } if (pos < num.length) { num = num.substring(0, pos) + "." + num.substring(pos); } while (/^0[^.]/.test(num)) { num = num.substring(1); } while (/^-0[^.]/.test(num)) { num = "-" + num.substring(2); } return num; -} +}; /** @id MochiKit.Format.percentFormat */ MochiKit.Format.percentFormat = function (aNumber) { return MochiKit.Format.twoDigitFloat(100 * aNumber) + '%'; }; MochiKit.Format.LOCALE = { en_US: {separator: ",", decimal: ".", percent: "%"}, de_DE: {separator: ".", decimal: ",", percent: "%"}, pt_BR: {separator: ".", decimal: ",", percent: "%"}, fr_FR: {separator: " ", decimal: ",", percent: "%"}, "default": "en_US", __export__: false }; MochiKit.Format.__new__ = function () { diff --git a/frontend/gamma/js/MochiKit/Iter.js b/frontend/gamma/js/MochiKit/Iter.js index 524b2bc..77623bc 100644 --- a/frontend/gamma/js/MochiKit/Iter.js +++ b/frontend/gamma/js/MochiKit/Iter.js @@ -1,27 +1,27 @@ /*** MochiKit.Iter 1.5 See <http://mochikit.com/> for documentation, downloads, license, etc. (c) 2005 Bob Ippolito. All rights Reserved. ***/ -MochiKit.Base._module('Iter', '1.5', ['Base']); +MochiKit.Base.module(MochiKit, 'Iter', '1.5', ['Base']); MochiKit.Base.update(MochiKit.Iter, { /** @id MochiKit.Iter.registerIteratorFactory */ registerIteratorFactory: function (name, check, iterfactory, /* optional */ override) { MochiKit.Iter.iteratorRegistry.register(name, check, iterfactory, override); }, /** @id MochiKit.Iter.isIterable */ isIterable: function(o) { return o != null && (typeof(o.next) == "function" || typeof(o.iter) == "function"); }, /** @id MochiKit.Iter.iter */ iter: function (iterable, /* optional */ sentinel) { var self = MochiKit.Iter; @@ -209,40 +209,41 @@ MochiKit.Base.update(MochiKit.Iter, { if (arguments.length == 2) { stop = arguments[1]; } else if (arguments.length == 3) { start = arguments[1]; stop = arguments[2]; } else { start = arguments[1]; stop = arguments[2]; step = arguments[3]; } return { repr: function () { return "islice(" + ["...", start, stop, step].join(", ") + ")"; }, toString: m.forwardCall("repr"), next: function () { + if (start >= stop) { + throw self.StopIteration; + } + var rval; while (i < start) { rval = seq.next(); i++; } - if (start >= stop) { - throw self.StopIteration; - } start += step; return rval; } }; }, /** @id MochiKit.Iter.imap */ imap: function (fun, p, q/*, ...*/) { var m = MochiKit.Base; var self = MochiKit.Iter; var iterables = m.map(self.iter, m.extend(null, arguments, 1)); var map = m.map; var next = self.next; return { repr: function () { return "imap(...)"; }, toString: m.forwardCall("repr"), @@ -267,41 +268,38 @@ MochiKit.Base.update(MochiKit.Iter, { /** @id MochiKit.Iter.chain */ chain: function (p, q/*, ...*/) { // dumb fast path var self = MochiKit.Iter; var m = MochiKit.Base; if (arguments.length == 1) { return self.iter(arguments[0]); } var argiter = m.map(self.iter, arguments); return { repr: function () { return "chain(...)"; }, toString: m.forwardCall("repr"), next: function () { while (argiter.length > 1) { try { - var result = argiter[0].next(); - return result; + return argiter[0].next(); } catch (e) { if (e != self.StopIteration) { throw e; } argiter.shift(); - var result = argiter[0].next(); - return result; } } if (argiter.length == 1) { // optimize last element var arg = argiter.shift(); this.next = m.bind("next", arg); return this.next(); } throw self.StopIteration; } }; }, /** @id MochiKit.Iter.takewhile */ takewhile: function (pred, seq) { var self = MochiKit.Iter; @@ -400,33 +398,33 @@ MochiKit.Base.update(MochiKit.Iter, { if (iterable instanceof Array) { return iterable.slice(); } // this is necessary to avoid a Safari crash if (typeof(iterable) == "function" && !(iterable instanceof Function) && typeof(iterable.length) == 'number') { rval = []; for (var i = 0; i < iterable.length; i++) { rval.push(iterable[i]); } return rval; } var self = MochiKit.Iter; iterable = self.iter(iterable); - var rval = []; + rval = []; var a_val; try { while (true) { a_val = iterable.next(); rval.push(a_val); } } catch (e) { if (e != self.StopIteration) { throw e; } return rval; } // mozilla warnings aren't too bright return undefined; }, diff --git a/frontend/gamma/js/MochiKit/Logging.js b/frontend/gamma/js/MochiKit/Logging.js index f00996b..8b06e0b 100644 --- a/frontend/gamma/js/MochiKit/Logging.js +++ b/frontend/gamma/js/MochiKit/Logging.js @@ -1,27 +1,27 @@ /*** MochiKit.Logging 1.5 See <http://mochikit.com/> for documentation, downloads, license, etc. (c) 2005 Bob Ippolito. All rights Reserved. ***/ -MochiKit.Base._module('Logging', '1.5', ['Base']); +MochiKit.Base.module(MochiKit, 'Logging', '1.5', ['Base']); /** @id MochiKit.Logging.LogMessage */ MochiKit.Logging.LogMessage = function (num, level, info) { this.num = num; this.level = level; this.info = info; this.timestamp = new Date(); }; MochiKit.Logging.LogMessage.prototype = { /** @id MochiKit.Logging.LogMessage.prototype.repr */ repr: function () { var m = MochiKit.Base; return 'LogMessage(' + m.map( m.repr, @@ -174,33 +174,33 @@ MochiKit.Logging.Logger.prototype = { /** @id MochiKit.Logging.Logger.prototype.getMessages */ getMessages: function (howMany) { var firstMsg = 0; if (!(typeof(howMany) == 'undefined' || howMany === null)) { firstMsg = Math.max(0, this._messages.length - howMany); } return this._messages.slice(firstMsg); }, /** @id MochiKit.Logging.Logger.prototype.getMessageText */ getMessageText: function (howMany) { if (typeof(howMany) == 'undefined' || howMany === null) { howMany = 30; } var messages = this.getMessages(howMany); if (messages.length) { - var lst = map(function (m) { + var lst = MochiKit.Base.map(function (m) { return '\n [' + m.num + '] ' + m.level + ': ' + m.info.join(' '); }, messages); lst.unshift('LAST ' + messages.length + ' MESSAGES:'); return lst.join(''); } return ''; }, /** @id MochiKit.Logging.Logger.prototype.debuggingBookmarklet */ debuggingBookmarklet: function (inline) { if (typeof(MochiKit.LoggingPane) == "undefined") { alert(this.getMessageText()); } else { MochiKit.LoggingPane.createLoggingPane(inline || false); } } diff --git a/frontend/gamma/js/MochiKit/LoggingPane.js b/frontend/gamma/js/MochiKit/LoggingPane.js index c960c21..b7ea120 100644 --- a/frontend/gamma/js/MochiKit/LoggingPane.js +++ b/frontend/gamma/js/MochiKit/LoggingPane.js @@ -1,43 +1,46 @@ /*** MochiKit.LoggingPane 1.5 See <http://mochikit.com/> for documentation, downloads, license, etc. (c) 2005 Bob Ippolito. All rights Reserved. ***/ -MochiKit.Base._module('LoggingPane', '1.5', ['Base', 'Logging']); +MochiKit.Base.module(MochiKit, 'LoggingPane', '1.5', ['Base', 'Logging']); /** @id MochiKit.LoggingPane.createLoggingPane */ MochiKit.LoggingPane.createLoggingPane = function (inline/* = false */) { var m = MochiKit.LoggingPane; inline = !(!inline); if (m._loggingPane && m._loggingPane.inline != inline) { m._loggingPane.closePane(); m._loggingPane = null; } if (!m._loggingPane || m._loggingPane.closed) { m._loggingPane = new m.LoggingPane(inline, MochiKit.Logging.logger); } return m._loggingPane; }; -/** @id MochiKit.LoggingPane.LoggingPane */ +/** + * @id MochiKit.LoggingPane.LoggingPane + * @constructor + */ MochiKit.LoggingPane.LoggingPane = function (inline/* = false */, logger/* = MochiKit.Logging.logger */) { /* Use a div if inline, pop up a window if not */ /* Create the elements */ if (typeof(logger) == "undefined" || logger === null) { logger = MochiKit.Logging.logger; } this.logger = logger; var update = MochiKit.Base.update; var updatetree = MochiKit.Base.updatetree; var bind = MochiKit.Base.bind; var clone = MochiKit.Base.clone; var win = window; var uid = "_MochiKit_LoggingPane"; if (typeof(MochiKit.DOM) != "undefined") { win = MochiKit.DOM.currentWindow(); @@ -133,33 +136,33 @@ MochiKit.LoggingPane.LoggingPane = function (inline/* = false */, logger/* = Moc /** @id MochiKit.LoggingPane.addMessage */ var addMessage = function (msg) { messages[messages.length] = msg; addMessageText(msg); }; /** @id MochiKit.LoggingPane.buildMessageFilter */ var buildMessageFilter = function () { var levelre, infore; try { /* Catch any exceptions that might arise due to invalid regexes */ levelre = new RegExp(levelFilterField.value); infore = new RegExp(infoFilterField.value); } catch(e) { /* If there was an error with the regexes, do no filtering */ - logDebug("Error in filter regex: " + e.message); + MochiKit.Logging.logDebug("Error in filter regex: " + e.message); return null; } return function (msg) { return ( levelre.test(messageLevel(msg)) && infore.test(messageText(msg)) ); }; }; /** @id MochiKit.LoggingPane.clearMessagePane */ var clearMessagePane = function () { while (logPane.firstChild) { logPane.removeChild(logPane.firstChild); } @@ -171,33 +174,33 @@ MochiKit.LoggingPane.LoggingPane = function (inline/* = false */, logger/* = Moc clearMessagePane(); }; /** @id MochiKit.LoggingPane.closePane */ var closePane = bind(function () { if (this.closed) { return; } this.closed = true; if (MochiKit.LoggingPane._loggingPane == this) { MochiKit.LoggingPane._loggingPane = null; } this.logger.removeListener(listenerId); try { try { debugPane.loggingPane = null; - } catch(e) { logFatal("Bookmarklet was closed incorrectly."); } + } catch(e) { MochiKit.Logging.logFatal("Bookmarklet was closed incorrectly."); } if (inline) { debugPane.parentNode.removeChild(debugPane); } else { this.win.close(); } } catch(e) {} }, this); /** @id MochiKit.LoggingPane.filterMessages */ var filterMessages = function () { clearMessagePane(); for (var i = 0; i < messages.length; i++) { var msg = messages[i]; if (messageFilter === null || messageFilter(msg)) { addMessageText(msg); @@ -211,33 +214,33 @@ MochiKit.LoggingPane.LoggingPane = function (inline/* = false */, logger/* = Moc filterMessages(); this.logger.removeListener(listenerId); this.logger.addListener(listenerId, messageFilter, addMessage); }; /** @id MochiKit.LoggingPane.loadMessages */ var loadMessages = bind(function () { messages = this.logger.getMessages(); filterMessages(); }, this); /** @id MochiKit.LoggingPane.filterOnEnter */ var filterOnEnter = bind(function (event) { event = event || window.event; - key = event.which || event.keyCode; + var key = event.which || event.keyCode; if (key == 13) { this.buildAndApplyFilter(); } }, this); /* Create the debug pane */ var style = "display: block; z-index: 1000; left: 0px; bottom: 0px; position: fixed; width: 100%; background-color: white; font: " + this.logFont; if (inline) { style += "; height: 10em; border-top: 2px solid black"; } else { style += "; height: 100%;"; } debugPane.style.cssText = style; if (!existing_pane) { doc.body.appendChild(debugPane); diff --git a/frontend/gamma/js/MochiKit/MochiKit.js b/frontend/gamma/js/MochiKit/MochiKit.js index 8e5be68..511e075 100644 --- a/frontend/gamma/js/MochiKit/MochiKit.js +++ b/frontend/gamma/js/MochiKit/MochiKit.js @@ -1,37 +1,34 @@ /*** MochiKit.MochiKit 1.5 See <http://mochikit.com/> for documentation, downloads, license, etc. (c) 2005 Bob Ippolito. All rights Reserved. ***/ -if (typeof(MochiKit) == 'undefined') { - MochiKit = {}; -} +var MochiKit = MochiKit || {}; -if (typeof(MochiKit.MochiKit) == 'undefined') { - /** @id MochiKit.MochiKit */ - MochiKit.MochiKit = {}; -} +/** @id MochiKit.MochiKit */ +MochiKit.MochiKit = MochiKit.MochiKit || {}; MochiKit.MochiKit.NAME = "MochiKit.MochiKit"; MochiKit.MochiKit.VERSION = "1.5"; +MochiKit.MochiKit.__export__ = false; MochiKit.MochiKit.__repr__ = function () { return "[" + this.NAME + " " + this.VERSION + "]"; }; /** @id MochiKit.MochiKit.toString */ MochiKit.MochiKit.toString = function () { return this.__repr__(); }; /** @id MochiKit.MochiKit.SUBMODULES */ MochiKit.MochiKit.SUBMODULES = [ "Base", "Iter", "Logging", "DateTime", "Format", diff --git a/frontend/gamma/js/MochiKit/MockDOM.js b/frontend/gamma/js/MochiKit/MockDOM.js index abdb54a..7e6d60b 100644 --- a/frontend/gamma/js/MochiKit/MockDOM.js +++ b/frontend/gamma/js/MochiKit/MockDOM.js @@ -1,36 +1,33 @@ /*** MochiKit.MockDOM 1.5 See <http://mochikit.com/> for documentation, downloads, license, etc. (c) 2005 Bob Ippolito. All rights Reserved. ***/ -if (typeof(MochiKit) == "undefined") { - MochiKit = {}; -} +var MochiKit = MochiKit || {}; -if (typeof(MochiKit.MockDOM) == "undefined") { - MochiKit.MockDOM = {}; -} +MochiKit.MockDOM = MochiKit.MockDOM || {}; MochiKit.MockDOM.NAME = "MochiKit.MockDOM"; MochiKit.MockDOM.VERSION = "1.5"; +MochiKit.MockDOM.__export__ = false; MochiKit.MockDOM.__repr__ = function () { return "[" + this.NAME + " " + this.VERSION + "]"; }; /** @id MochiKit.MockDOM.toString */ MochiKit.MockDOM.toString = function () { return this.__repr__(); }; /** @id MochiKit.MockDOM.createDocument */ MochiKit.MockDOM.createDocument = function () { var doc = new MochiKit.MockDOM.MockElement("DOCUMENT"); doc.body = doc.createElement("BODY"); doc.appendChild(doc.body); return doc; diff --git a/frontend/gamma/js/MochiKit/Position.js b/frontend/gamma/js/MochiKit/Position.js index 6bc5b39..2680507 100644 --- a/frontend/gamma/js/MochiKit/Position.js +++ b/frontend/gamma/js/MochiKit/Position.js @@ -1,27 +1,27 @@ /*** MochiKit.Position 1.5 See <http://mochikit.com/> for documentation, downloads, license, etc. (c) 2005-2006 Bob Ippolito and others. All rights Reserved. ***/ -MochiKit.Base._module('Position', '1.5', ['Base', 'DOM', 'Style']); +MochiKit.Base.module(MochiKit, 'Position', '1.5', ['Base', 'DOM', 'Style']); MochiKit.Base.update(MochiKit.Position, { // Don't export from this module __export__: false, // set to true if needed, warning: firefox performance problems // NOT neeeded for page scrolling, only if draggable contained in // scrollable elements includeScrollOffsets: false, /** @id MochiKit.Position.prepare */ prepare: function () { var deltaX = window.pageXOffset || document.documentElement.scrollLeft || document.body.scrollLeft || 0; diff --git a/frontend/gamma/js/MochiKit/Selector.js b/frontend/gamma/js/MochiKit/Selector.js index 6aec892..3187fe9 100644 --- a/frontend/gamma/js/MochiKit/Selector.js +++ b/frontend/gamma/js/MochiKit/Selector.js @@ -1,27 +1,27 @@ /*** MochiKit.Selector 1.5 See <http://mochikit.com/> for documentation, downloads, license, etc. (c) 2005 Bob Ippolito and others. All rights Reserved. ***/ -MochiKit.Base._module('Selector', '1.5', ['Base', 'DOM', 'Iter']); +MochiKit.Base.module(MochiKit, 'Selector', '1.5', ['Base', 'DOM', 'Iter']); MochiKit.Selector.Selector = function (expression) { this.params = {classNames: [], pseudoClassNames: []}; this.expression = expression.toString().replace(/(^\s+|\s+$)/g, ''); this.parseExpression(); this.compileMatcher(); }; MochiKit.Selector.Selector.prototype = { /*** Selector class: convenient object to make CSS selections. ***/ __class__: MochiKit.Selector.Selector, @@ -114,34 +114,34 @@ MochiKit.Selector.Selector.prototype = { case 'nth-child': case 'nth-last-child': case 'nth-of-type': case 'nth-last-of-type': match = pseudoClassArgument.match(/^((?:(\d+)n\+)?(\d+)|odd|even)$/); if (!match) { throw "Invalid argument to pseudo element nth-child: " + pseudoClassArgument; } var a, b; if (match[0] == 'odd') { a = 2; b = 1; } else if (match[0] == 'even') { a = 2; b = 0; } else { - a = match[2] && parseInt(match) || null; - b = parseInt(match[3]); + a = match[2] && parseInt(match, 10) || null; + b = parseInt(match[3], 10); } conditions.push('this.nthChild(element,' + a + ',' + b + ',' + !!pseudoClass.match('^nth-last') // Reverse + ',' + !!pseudoClass.match('of-type$') // Restrict to same tagName + ')'); break; case 'first-child': conditions.push('this.nthChild(element, null, 1)'); break; case 'last-child': conditions.push('this.nthChild(element, null, 1, true)'); break; case 'first-of-type': conditions.push('this.nthChild(element, null, 1, false, true)'); break; case 'last-of-type': @@ -154,43 +154,43 @@ MochiKit.Selector.Selector.prototype = { conditions.push('MochiKit.Base.filter(function (node) { return node.tagName == element.tagName; }, ' + childElements('element.parentNode') + ').length == 1'); break; case 'empty': conditions.push('element.childNodes.length == 0'); break; case 'enabled': conditions.push('(this.isUIElement(element) && element.disabled === false)'); break; case 'disabled': conditions.push('(this.isUIElement(element) && element.disabled === true)'); break; case 'checked': conditions.push('(this.isUIElement(element) && element.checked === true)'); break; case 'not': var subselector = new MochiKit.Selector.Selector(pseudoClassArgument); - conditions.push('!( ' + subselector.buildMatchExpression() + ')') + conditions.push('!( ' + subselector.buildMatchExpression() + ')'); break; } } } if (clause = params.attributes) { MochiKit.Base.map(function (attribute) { var value = 'MochiKit.DOM.getNodeAttribute(element, ' + repr(attribute.name) + ')'; var splitValueBy = function (delimiter) { return value + '.split(' + repr(delimiter) + ')'; - } + }; conditions.push(value + ' != null'); switch (attribute.operator) { case '=': conditions.push(value + ' == ' + repr(attribute.value)); break; case '~=': conditions.push('MochiKit.Base.findValue(' + splitValueBy(' ') + ', ' + repr(attribute.value) + ') > -1'); break; case '^=': conditions.push(value + '.substring(0, ' + attribute.value.length + ') == ' + repr(attribute.value)); break; case '$=': conditions.push(value + '.substring(' + value + '.length - ' + attribute.value.length + ') == ' + repr(attribute.value)); break; case '*=': conditions.push(value + '.match(' + repr(attribute.value) + ')'); @@ -339,32 +339,38 @@ MochiKit.Selector.Selector.prototype = { MochiKit.Base.update(MochiKit.Selector, { /** @id MochiKit.Selector.findChildElements */ findChildElements: function (element, expressions) { element = MochiKit.DOM.getElement(element); var uniq = function(arr) { var res = []; for (var i = 0; i < arr.length; i++) { if (MochiKit.Base.findIdentical(res, arr[i]) < 0) { res.push(arr[i]); } } return res; }; return MochiKit.Base.flattenArray(MochiKit.Base.map(function (expression) { + try { + var res = element.querySelectorAll(expression); + return Array.prototype.slice.call(res, 0); + } catch (ignore) { + // No querySelectorAll or extended expression syntax used + } var nextScope = ""; var reducer = function (results, expr) { var match = expr.match(/^[>+~]$/); if (match) { nextScope = match[0]; return results; } else { var selector = new MochiKit.Selector.Selector(expr); var elements = MochiKit.Iter.reduce(function (elements, result) { return MochiKit.Base.extend(elements, selector.findElements(result || element, nextScope)); }, results, []); nextScope = ""; return elements; } }; var exprs = expression.replace(/(^\s+|\s+$)/g, '').split(/\s+/); diff --git a/frontend/gamma/js/MochiKit/Signal.js b/frontend/gamma/js/MochiKit/Signal.js index 7df5619..11590c1 100644 --- a/frontend/gamma/js/MochiKit/Signal.js +++ b/frontend/gamma/js/MochiKit/Signal.js @@ -1,27 +1,27 @@ /*** MochiKit.Signal 1.5 See <http://mochikit.com/> for documentation, downloads, license, etc. (c) 2006 Jonathan Gardner, Beau Hartshorne, Bob Ippolito. All rights Reserved. ***/ -MochiKit.Base._module('Signal', '1.5', ['Base', 'DOM', 'Style']); +MochiKit.Base.module(MochiKit, 'Signal', '1.5', ['Base', 'DOM']); MochiKit.Signal._observers = []; /** @id MochiKit.Signal.Event */ MochiKit.Signal.Event = function (src, e) { this._event = e || window.event; this._src = src; }; MochiKit.Signal.Event.__export__ = false; MochiKit.Base.update(MochiKit.Signal.Event.prototype, { __repr__: function () { var repr = MochiKit.Base.repr; var str = '{event(): ' + repr(this.event()) + ', src(): ' + repr(this.src()) + @@ -253,42 +253,43 @@ MochiKit.Base.update(MochiKit.Signal.Event.prototype, { } return undefined; }, _mouse: null, /** @id MochiKit.Signal.Event.prototype.mouse */ mouse: function () { if (this._mouse !== null) { return this._mouse; } var m = {}; var e = this._event; if (this.type() && ( this.type().indexOf('mouse') === 0 || + this.type().indexOf('drag') === 0 || this.type().indexOf('click') != -1 || this.type() == 'contextmenu')) { - m.client = new MochiKit.Style.Coordinates(0, 0); + m.client = { x: 0, y: 0 }; if (e.clientX || e.clientY) { m.client.x = (!e.clientX || e.clientX < 0) ? 0 : e.clientX; m.client.y = (!e.clientY || e.clientY < 0) ? 0 : e.clientY; } - m.page = new MochiKit.Style.Coordinates(0, 0); + m.page = { x: 0, y: 0 }; if (e.pageX || e.pageY) { m.page.x = (!e.pageX || e.pageX < 0) ? 0 : e.pageX; m.page.y = (!e.pageY || e.pageY < 0) ? 0 : e.pageY; } else { /* The IE shortcut can be off by two. We fix it. See: http://msdn.microsoft.com/workshop/author/dhtml/reference/methods/getboundingclientrect.asp This is similar to the method used in MochiKit.Style.getElementPosition(). */ var de = MochiKit.DOM._document.documentElement; var b = MochiKit.DOM._document.body; @@ -324,33 +325,33 @@ MochiKit.Base.update(MochiKit.Signal.Event.prototype, { - Firefox fires the event, and sets ctrlKey = true - Opera fires the event, and sets metaKey = true oncontextmenu is fired on right clicks between browsers and across platforms. */ } else { m.button.left = !!(e.button & 1); m.button.right = !!(e.button & 2); m.button.middle = !!(e.button & 4); } } if (this.type() == 'mousewheel') { - m.wheel = new MochiKit.Style.Coordinates(0, 0); + m.wheel = { x: 0, y: 0 }; if (e.wheelDeltaX || e.wheelDeltaY) { m.wheel.x = e.wheelDeltaX / -40 || 0; m.wheel.y = e.wheelDeltaY / -40 || 0; } else if (e.wheelDelta) { m.wheel.y = e.wheelDelta / -40; } else { m.wheel.y = e.detail || 0; } } this._mouse = m; return m; } return undefined; }, /** @id MochiKit.Signal.Event.prototype.stop */ @@ -659,32 +660,44 @@ MochiKit.Base.update(MochiKit.Signal, { listener: listener, isDOM: isDOM, objOrFunc: objOrFunc, funcOrStr: funcOrStr, connected: true }); self._observers.push(ident); if (!isDOM && typeof(src.__connect__) == 'function') { var args = MochiKit.Base.extend([ident], arguments, 1); src.__connect__.apply(src, args); } return ident; }, + /** @id MochiKit.Signal.connectOnce */ + connectOnce: function (src, sig, objOrFunc/* optional */, funcOrStr) { + var self = MochiKit.Signal; + var ident1 = self.connect(src, sig, objOrFunc, funcOrStr); + var ident2; + ident2 = self.connect(src, sig, function() { + self.disconnect(ident1); + self.disconnect(ident2); + }); + return ident1; + }, + _disconnect: function (ident) { // already disconnected if (!ident.connected) { return; } ident.connected = false; var src = ident.source; var sig = ident.signal; var listener = ident.listener; // check isDOM if (!ident.isDOM) { if (typeof(src.__disconnect__) == 'function') { src.__disconnect__(ident, sig, ident.objOrFunc, ident.funcOrStr); } return; } @@ -702,179 +715,179 @@ MochiKit.Base.update(MochiKit.Signal, { var self = MochiKit.Signal; var observers = self._observers; var m = MochiKit.Base; if (arguments.length > 1) { // compatibility API var src = arguments[0]; if (typeof(src) == "string") { src = MochiKit.DOM.getElement(src); } var sig = arguments[1]; var obj = arguments[2]; var func = arguments[3]; for (var i = observers.length - 1; i >= 0; i--) { var o = observers[i]; if (o.source === src && o.signal === sig && o.objOrFunc === obj && o.funcOrStr === func) { self._disconnect(o); - if (!self._lock) { + if (self._lock === 0) { observers.splice(i, 1); } else { self._dirty = true; } return true; } } } else { var idx = m.findIdentical(observers, ident); if (idx >= 0) { self._disconnect(ident); - if (!self._lock) { + if (self._lock === 0) { observers.splice(idx, 1); } else { self._dirty = true; } return true; } } return false; }, /** @id MochiKit.Signal.disconnectAllTo */ disconnectAllTo: function (objOrFunc, /* optional */funcOrStr) { var self = MochiKit.Signal; var observers = self._observers; var disconnect = self._disconnect; - var locked = self._lock; + var lock = self._lock; var dirty = self._dirty; if (typeof(funcOrStr) === 'undefined') { funcOrStr = null; } for (var i = observers.length - 1; i >= 0; i--) { var ident = observers[i]; if (ident.objOrFunc === objOrFunc && (funcOrStr === null || ident.funcOrStr === funcOrStr)) { disconnect(ident); - if (locked) { - dirty = true; - } else { + if (lock === 0) { observers.splice(i, 1); + } else { + dirty = true; } } } self._dirty = dirty; }, /** @id MochiKit.Signal.disconnectAll */ disconnectAll: function (src/* optional */, sig) { if (typeof(src) == "string") { src = MochiKit.DOM.getElement(src); } var m = MochiKit.Base; var signals = m.flattenArguments(m.extend(null, arguments, 1)); var self = MochiKit.Signal; var disconnect = self._disconnect; var observers = self._observers; var i, ident; - var locked = self._lock; + var lock = self._lock; var dirty = self._dirty; if (signals.length === 0) { // disconnect all for (i = observers.length - 1; i >= 0; i--) { ident = observers[i]; if (ident.source === src) { disconnect(ident); - if (!locked) { + if (lock === 0) { observers.splice(i, 1); } else { dirty = true; } } } } else { var sigs = {}; for (i = 0; i < signals.length; i++) { sigs[signals[i]] = true; } for (i = observers.length - 1; i >= 0; i--) { ident = observers[i]; if (ident.source === src && ident.signal in sigs) { disconnect(ident); - if (!locked) { + if (lock === 0) { observers.splice(i, 1); } else { dirty = true; } } } } self._dirty = dirty; }, /** @id MochiKit.Signal.signal */ signal: function (src, sig) { var self = MochiKit.Signal; var observers = self._observers; if (typeof(src) == "string") { src = MochiKit.DOM.getElement(src); } var args = MochiKit.Base.extend(null, arguments, 2); var errors = []; - self._lock = true; + self._lock++; for (var i = 0; i < observers.length; i++) { var ident = observers[i]; if (ident.source === src && ident.signal === sig && ident.connected) { try { if (ident.isDOM && ident.funcOrStr != null) { var obj = ident.objOrFunc; obj[ident.funcOrStr].apply(obj, args); } else if (ident.isDOM) { ident.objOrFunc.apply(src, args); } else { ident.listener.apply(src, args); } } catch (e) { errors.push(e); } } } - self._lock = false; - if (self._dirty) { + self._lock--; + if (self._lock === 0 && self._dirty) { self._dirty = false; for (var i = observers.length - 1; i >= 0; i--) { if (!observers[i].connected) { observers.splice(i, 1); } } } if (errors.length == 1) { throw errors[0]; } else if (errors.length > 1) { var e = new Error("Multiple errors thrown in handling 'sig', see errors property"); e.errors = errors; throw e; } } }); MochiKit.Signal.__new__ = function (win) { var m = MochiKit.Base; this._document = document; this._window = win; - this._lock = false; + this._lock = 0; this._dirty = false; try { this.connect(window, 'onunload', this._unloadCache); } catch (e) { // pass: might not be a browser } m.nameFunctions(this); }; MochiKit.Signal.__new__(this); // // XXX: Internet Explorer blows // diff --git a/frontend/gamma/js/MochiKit/Sortable.js b/frontend/gamma/js/MochiKit/Sortable.js index 863b506..ca9db21 100644 --- a/frontend/gamma/js/MochiKit/Sortable.js +++ b/frontend/gamma/js/MochiKit/Sortable.js @@ -1,25 +1,25 @@ /*** Copyright (c) 2005 Thomas Fuchs (http://script.aculo.us, http://mir.aculo.us) Mochi-ized By Thomas Herve (_firstname_@nimail.org) See scriptaculous.js for full license. ***/ -MochiKit.Base._module('Sortable', '1.5', ['Base', 'Iter', 'DOM', 'Position', 'DragAndDrop']); +MochiKit.Base.module(MochiKit, 'Sortable', '1.5', ['Base', 'Iter', 'DOM', 'Position', 'DragAndDrop']); MochiKit.Base.update(MochiKit.Sortable, { __export__: false, /*** Manage sortables. Mainly use the create function to add a sortable. ***/ sortables: {}, _findRootElement: function (element) { while (element.tagName.toUpperCase() != "BODY") { if (element.id && MochiKit.Sortable.sortables[element.id]) { return element; } @@ -166,41 +166,41 @@ MochiKit.Base.update(MochiKit.Sortable, { if (options.endeffect) { options_for_draggable.endeffect = options.endeffect; } if (options.zindex) { options_for_draggable.zindex = options.zindex; } // build options for the droppables var options_for_droppable = { overlap: options.overlap, containment: options.containment, hoverclass: options.hoverclass, onhover: self.onHover, tree: options.tree, accept: options.accept - } + }; var options_for_tree = { onhover: self.onEmptyHover, overlap: options.overlap, containment: options.containment, hoverclass: options.hoverclass, accept: options.accept - } + }; // fix for gecko engine MochiKit.DOM.removeEmptyTextNodes(element); options.draggables = []; options.droppables = []; // drop on empty handling if (options.dropOnEmpty || options.tree) { new MochiKit.DragAndDrop.Droppable(element, options_for_tree); options.droppables.push(element); } MochiKit.Base.map(function (e) { // handles are per-draggable var handle = options.handle ? MochiKit.DOM.getFirstElementByTagAndClassName(null, @@ -417,37 +417,37 @@ MochiKit.Base.update(MochiKit.Sortable, { var children = self.findElements(element, options) || []; for (var i = 0; i < children.length; ++i) { var match = children[i].id.match(options.format); if (!match) { continue; } var child = { id: encodeURIComponent(match ? match[1] : null), element: element, parent: parent, children: [], position: parent.children.length, container: self._findChildrenElement(children[i], options.treeTag.toUpperCase()) - } + }; /* Get the element containing the children and recurse over it */ if (child.container) { - self._tree(child.container, options, child) + self._tree(child.container, options, child); } parent.children.push (child); } return parent; }, /* Finds the first element of the given tag type within a parent element. Used for finding the first LI[ST] within a L[IST]I[TEM].*/ _findChildrenElement: function (element, containerTag) { if (element && element.hasChildNodes) { containerTag = containerTag.toUpperCase(); for (var i = 0; i < element.childNodes.length; ++i) { if (element.childNodes[i].tagName.toUpperCase() == containerTag) { return element.childNodes[i]; @@ -462,33 +462,33 @@ MochiKit.Base.update(MochiKit.Sortable, { element = MochiKit.DOM.getElement(element); var sortableOptions = MochiKit.Sortable.options(element); options = MochiKit.Base.update({ tag: sortableOptions.tag, treeTag: sortableOptions.treeTag, only: sortableOptions.only, name: element.id, format: sortableOptions.format }, options || {}); var root = { id: null, parent: null, children: new Array, container: element, position: 0 - } + }; return MochiKit.Sortable._tree(element, options, root); }, /** * Specifies the sequence for the Sortable. * @param {Node} element Element to use as the Sortable. * @param {Object} newSequence New sequence to use. * @param {Object} options Options to use fro the Sortable. */ setSequence: function (element, newSequence, options) { var self = MochiKit.Sortable; var b = MochiKit.Base; element = MochiKit.DOM.getElement(element); options = b.update(self.options(element), options || {}); diff --git a/frontend/gamma/js/MochiKit/Style.js b/frontend/gamma/js/MochiKit/Style.js index 7f10117..740fd2f 100644 --- a/frontend/gamma/js/MochiKit/Style.js +++ b/frontend/gamma/js/MochiKit/Style.js @@ -1,27 +1,30 @@ /*** MochiKit.Style 1.5 See <http://mochikit.com/> for documentation, downloads, license, etc. (c) 2005-2006 Bob Ippolito, Beau Hartshorne. All rights Reserved. +The MochiKit.Style.getElementPosition function is adapted from +YAHOO.util.Dom.getXY v0.9.0. which is copyrighted by Yahoo! Inc. + ***/ -MochiKit.Base._module('Style', '1.5', ['Base', 'DOM']); +MochiKit.Base.module(MochiKit, 'Style', '1.5', ['Base', 'DOM']); /** @id MochiKit.Style.Dimensions */ MochiKit.Style.Dimensions = function (w, h) { if (!(this instanceof MochiKit.Style.Dimensions)) { return new MochiKit.Style.Dimensions(w, h); } this.w = w; this.h = h; }; MochiKit.Style.Dimensions.prototype.__repr__ = function () { var repr = MochiKit.Base.repr; return '{w: ' + repr(this.w) + ', h: ' + repr(this.h) + '}'; }; @@ -166,83 +169,83 @@ MochiKit.Base.update(MochiKit.Style, { getElementPosition is adapted from YAHOO.util.Dom.getXY v0.9.0. Copyright: Copyright (c) 2006, Yahoo! Inc. All rights reserved. License: BSD, http://developer.yahoo.net/yui/license.txt */ /** @id MochiKit.Style.getElementPosition */ getElementPosition: function (elem, /* optional */relativeTo) { var self = MochiKit.Style; var dom = MochiKit.DOM; var isCoordinates = function (o) { return o != null && o.nodeType == null && typeof(o.x) == "number" && typeof(o.y) == "number"; - } + }; if (typeof(elem) == "string") { elem = dom.getElement(elem); } if (elem == null || (!isCoordinates(elem) && self.getStyle(elem, 'display') == 'none')) { return undefined; } var c = new self.Coordinates(0, 0); var box = null; var parent = null; var d = MochiKit.DOM._document; var de = d.documentElement; var b = d.body; - if (!elem.parentNode && elem.x && elem.y) { + if (isCoordinates(elem)) { /* it's just a MochiKit.Style.Coordinates object */ c.x += elem.x || 0; c.y += elem.y || 0; } else if (elem.getBoundingClientRect) { // IE shortcut /* The IE shortcut can be off by two. We fix it. See: http://msdn.microsoft.com/workshop/author/dhtml/reference/methods/getboundingclientrect.asp This is similar to the method used in MochiKit.Signal.Event.mouse(). */ box = elem.getBoundingClientRect(); c.x += box.left + (de.scrollLeft || b.scrollLeft) - (de.clientLeft || 0); c.y += box.top + (de.scrollTop || b.scrollTop) - (de.clientTop || 0); } else if (elem.offsetParent) { c.x += elem.offsetLeft; c.y += elem.offsetTop; parent = elem.offsetParent; if (parent != elem) { while (parent) { - c.x += parseInt(parent.style.borderLeftWidth) || 0; - c.y += parseInt(parent.style.borderTopWidth) || 0; + c.x += parseInt(parent.style.borderLeftWidth, 10) || 0; + c.y += parseInt(parent.style.borderTopWidth, 10) || 0; c.x += parent.offsetLeft; c.y += parent.offsetTop; parent = parent.offsetParent; } } /* Opera < 9 and old Safari (absolute) incorrectly account for body offsetTop and offsetLeft. */ var ua = navigator.userAgent.toLowerCase(); if ((typeof(opera) != 'undefined' && parseFloat(opera.version()) < 9) || (ua.indexOf('AppleWebKit') != -1 && @@ -377,33 +380,33 @@ MochiKit.Base.update(MochiKit.Style, { var originalDisplay = s.display; s.visibility = 'hidden'; s.position = 'absolute'; s.display = self._getDefaultDisplay(elem); var originalWidth = elem.offsetWidth; var originalHeight = elem.offsetHeight; s.display = originalDisplay; s.position = originalPosition; s.visibility = originalVisibility; } else { originalWidth = elem.offsetWidth || 0; originalHeight = elem.offsetHeight || 0; } if (contentSize) { var tableCell = 'colSpan' in elem && 'rowSpan' in elem; var collapse = (tableCell && elem.parentNode && self.getStyle( - elem.parentNode, 'borderCollapse') == 'collapse') + elem.parentNode, 'borderCollapse') == 'collapse'); if (collapse) { if (/MSIE/.test(navigator.userAgent)) { var borderLeftQuota = elem.previousSibling? 0.5 : 1; var borderRightQuota = elem.nextSibling? 0.5 : 1; } else { var borderLeftQuota = 0.5; var borderRightQuota = 0.5; } } else { var borderLeftQuota = 1; var borderRightQuota = 1; } originalWidth -= Math.round( (parseFloat(self.getStyle(elem, 'paddingLeft')) || 0) + (parseFloat(self.getStyle(elem, 'paddingRight')) || 0) @@ -530,29 +533,29 @@ MochiKit.Base.update(MochiKit.Style, { 'INPUT': 'inline-block', 'SELECT': 'inline-block' }; // CSS 'display' support in IE6/7 is just broken... if (/MSIE/.test(navigator.userAgent)) { for (var k in this._defaultDisplay) { var v = this._defaultDisplay[k]; if (v.indexOf('table') == 0) { this._defaultDisplay[k] = 'block'; } } } for (var i = 0; i < inlines.length; i++) { this._defaultDisplay[inlines[i]] = 'inline'; } // Backwards compatibility aliases - m._deprecated(this, 'elementPosition', 'MochiKit.Style.getElementPosition', '1.3'); - m._deprecated(this, 'elementDimensions', 'MochiKit.Style.getElementDimensions', '1.3'); + m._deprecated(this, 'elementPosition', 'MochiKit.Style.getElementPosition', '1.3', true); + m._deprecated(this, 'elementDimensions', 'MochiKit.Style.getElementDimensions', '1.3', true); this.hideElement = m.partial(this.setDisplayForElement, 'none'); // TODO: showElement could be improved by using getDefaultDisplay. this.showElement = m.partial(this.setDisplayForElement, 'block'); m.nameFunctions(this); } }); MochiKit.Style.__new__(); MochiKit.Base._exportSymbols(this, MochiKit.Style); diff --git a/frontend/gamma/js/MochiKit/Test.js b/frontend/gamma/js/MochiKit/Test.js index 9520ab2..f29670f 100644 --- a/frontend/gamma/js/MochiKit/Test.js +++ b/frontend/gamma/js/MochiKit/Test.js @@ -1,27 +1,27 @@ /*** MochiKit.Test 1.5 See <http://mochikit.com/> for documentation, downloads, license, etc. (c) 2005 Bob Ippolito. All rights Reserved. ***/ -MochiKit.Base._module('Test', '1.5', ['Base']); +MochiKit.Base.module(MochiKit, 'Test', '1.5', ['Base']); MochiKit.Test.runTests = function (obj) { if (typeof(obj) == "string") { // TODO: Remove this temporary API change advertisement throw new TypeError("Automatic module import not supported, call runTests() with proper object: " + obj); } var suite = new MochiKit.Test.Suite(); suite.run(obj); }; MochiKit.Test.Suite = function () { this.testIndex = 0; MochiKit.Base.bindMethods(this); }; MochiKit.Test.Suite.prototype = { diff --git a/frontend/gamma/js/MochiKit/Text.js b/frontend/gamma/js/MochiKit/Text.js index a44f7e4..ff6366d 100644 --- a/frontend/gamma/js/MochiKit/Text.js +++ b/frontend/gamma/js/MochiKit/Text.js @@ -1,577 +1,546 @@ /*** MochiKit.Text 1.5 See <http://mochikit.com/> for documentation, downloads, license, etc. (c) 2008 Per Cederberg. All rights Reserved. ***/ -MochiKit.Base._module('Text', '1.5', ['Base', 'Format']); +MochiKit.Base.module(MochiKit, 'Text', '1.5', ['Base', 'Format']); /** * Checks if a text string starts with the specified substring. If * either of the two strings is null, false will be returned. * * @param {String} substr the substring to search for * @param {String} str the string to search in * * @return {Boolean} true if the string starts with the substring, or * false otherwise */ MochiKit.Text.startsWith = function (substr, str) { return str != null && substr != null && str.indexOf(substr) == 0; -} +}; /** * Checks if a text string ends with the specified substring. If * either of the two strings is null, false will be returned. * * @param {String} substr the substring to search for * @param {String} str the string to search in * * @return {Boolean} true if the string ends with the substring, or * false otherwise */ MochiKit.Text.endsWith = function (substr, str) { return str != null && substr != null && str.lastIndexOf(substr) == Math.max(str.length - substr.length, 0); -} +}; /** * Checks if a text string contains the specified substring. If * either of the two strings is null, false will be returned. * * @param {String} substr the substring to search for * @param {String} str the string to search in * * @return {Boolean} true if the string contains the substring, or * false otherwise */ MochiKit.Text.contains = function (substr, str) { return str != null && substr != null && str.indexOf(substr) >= 0; -} +}; /** * Adds a character to the left-hand side of a string until it * reaches the specified minimum length. * * @param {String} str the string to process * @param {Number} minLength the requested minimum length * @param {String} fillChar the padding character to add, defaults * to a space * * @return {String} the padded string */ MochiKit.Text.padLeft = function (str, minLength, fillChar) { str = str || ""; fillChar = fillChar || " "; while (str.length < minLength) { str = fillChar + str; } return str; -} +}; /** * Adds a character to the right-hand side of a string until it * reaches the specified minimum length. * * @param {String} str the string to process * @param {Number} minLength the requested minimum length * @param {String} fillChar the padding character to add, defaults * to a space * * @return {String} the padded string */ MochiKit.Text.padRight = function (str, minLength, fillChar) { str = str || ""; fillChar = fillChar || " "; while (str.length < minLength) { str += fillChar; } return str; -} +}; /** * Returns a truncated copy of a string. If the string is shorter * than the specified maximum length, the object will be returned * unmodified. If an optional tail string is specified, additional * elements will be removed in order to accomodate the tail (that * will be appended). This function also works on arrays. * * @param {String} str the string to truncate * @param {Number} maxLength the maximum length * @param {String} [tail] the tail to append on truncation * * @return {String} the truncated string */ MochiKit.Text.truncate = function (str, maxLength, tail) { if (str == null || str.length <= maxLength || maxLength < 0) { return str; } else if (tail != null) { str = str.slice(0, Math.max(0, maxLength - tail.length)); if (typeof(str) == "string") { return str + tail; } else { return MochiKit.Base.extend(str, tail); } } else { return str.slice(0, maxLength); } -} +}; /** - * Splits a text string, applies a function and joins the results - * back together again. This is a convenience function for calling - * split(), map() and join() separately. It can be used to easily - * trim each line in a text string (using the strip function), or to - * translate a text word-by-word. + * Splits a text string using separator as the split point + * If max is given, at most max splits are done, giving at most + * max + 1 elements in the returned list. * - * @param {Function} func the function to apply * @param {String} str the string to split - * @param {String} [separator] the separator character to use, + * @param {String/RegExp} [separator] the separator char or regexp to use, * defaults to newline + * @param {Number} [max] the maximum number of parts to return + * @return {Array} an array of parts of the string + */ +MochiKit.Text.split = function (str, separator, max) { + if (str == null) { + return str; + } + separator = separator || '\n'; + var bits = str.split(separator); + if ((typeof(max) == "undefined") || max >= bits.length - 1) { + return bits; + } + bits.splice(max, bits.length, bits.slice(max, bits.length).join(separator)); + return bits; +}; + +/** + * Splits a text string using separator as the split point + * If max is given, at most max splits are done, + * using splits from the right * - * @return {String} a string with the joined up results + * @param {String} str the string to split + * @param {String/RegExp} [separator] the separator char or regexp to use, + * defaults to newline + * @param {Number} [max] the maximum number of parts to return + * @return {Array} an array of parts of the string */ -MochiKit.Text.splitJoin = function (func, str, separator) { - if (str == null || str.length == 0) { +MochiKit.Text.rsplit = function (str, separator, max) { + if (str == null) { return str; } - separator = separator || '\n' - return MochiKit.Base.map(func, str.split(separator)).join(separator); -} + separator = separator || '\n'; + var bits = str.split(separator); + if ((typeof(max) == "undefined") || max >= bits.length - 1){ + return bits; + } + bits.splice(0, bits.length-max, bits.slice(0, bits.length-max).join(separator)); + return bits; +}; /** * Creates a formatter function for the specified formatter pattern * and locale. The returned function takes as many arguments as the * formatter pattern requires. See separate documentation for * information about the formatter pattern syntax. * * @param {String} pattern the formatter pattern string * @param {Object} [locale] the locale to use, defaults to * LOCALE.en_US * * @return {Function} the formatter function created * * @throws FormatPatternError if the format pattern was invalid */ MochiKit.Text.formatter = function (pattern, locale) { - if (typeof(locale) == "undefined") { + if (locale == null) { locale = MochiKit.Format.formatLocale(); } else if (typeof(locale) == "string") { locale = MochiKit.Format.formatLocale(locale); } var parts = MochiKit.Text._parsePattern(pattern); return function() { var values = MochiKit.Base.extend([], arguments); var res = []; for (var i = 0; i < parts.length; i++) { if (typeof(parts[i]) == "string") { res.push(parts[i]); } else { res.push(MochiKit.Text.formatValue(parts[i], values, locale)); } } return res.join(""); - } -} + }; +}; /** * Formats the specified arguments according to a formatter pattern. * See separate documentation for information about the formatter * pattern syntax. * * @param {String} pattern the formatter pattern string * @param {Object} [...] the optional values to format * * @return {String} the formatted output string * * @throws FormatPatternError if the format pattern was invalid */ MochiKit.Text.format = function (pattern/*, ...*/) { var func = MochiKit.Text.formatter(pattern); return func.apply(this, MochiKit.Base.extend([], arguments, 1)); -} +}; /** * Format a value with the specified format specifier. * * @param {String/Object} spec the format specifier string or parsed * format specifier object * @param {Object} value the value to format * @param {Object} [locale] the locale to use, defaults to * LOCALE.en_US * * @return {String} the formatted output string + * + * @throws FormatPatternError if the format specifier was invalid */ MochiKit.Text.formatValue = function (spec, value, locale) { var self = MochiKit.Text; if (typeof(spec) === "string") { - spec = self._parseFormatFlags(spec, 0, spec.length - 1); + spec = self._parseFormatFlags(spec, 0, spec.length); } for (var i = 0; spec.path != null && i < spec.path.length; i++) { if (value != null) { value = value[spec.path[i]]; } } - if (typeof(locale) == "undefined") { + if (locale == null) { locale = MochiKit.Format.formatLocale(); } else if (typeof(locale) == "string") { locale = MochiKit.Format.formatLocale(locale); } var str = ""; - if (spec.numeric) { + if (spec.type == "number") { + if (value instanceof Number) { + value = value.valueOf(); + } if (typeof(value) != "number" || isNaN(value)) { str = ""; } else if (value === Number.POSITIVE_INFINITY) { str = "\u221e"; } else if (value === Number.NEGATIVE_INFINITY) { str = "-\u221e"; } else { - var sign = (spec.sign === "-") ? "" : spec.sign; - sign = (value < 0) ? "-" : sign; + var sign = (value < 0) ? "-" : spec.sign; value = Math.abs(value); if (spec.format === "%") { str = self._truncToPercent(value, spec.precision); } else if (spec.format === "d") { str = MochiKit.Format.roundToFixed(value, 0); } else if (spec.radix != 10) { str = Math.floor(value).toString(spec.radix); if (spec.format === "x") { str = str.toLowerCase(); } else if (spec.format === "X") { str = str.toUpperCase(); } } else if (spec.precision >= 0) { str = MochiKit.Format.roundToFixed(value, spec.precision); } else { str = value.toString(); } if (spec.padding === "0" && spec.format === "%") { str = self.padLeft(str, spec.width - sign.length - 1, "0"); } else if (spec.padding == "0") { str = self.padLeft(str, spec.width - sign.length, "0"); } - str = self._localizeNumber(str, locale, spec.grouping); + str = self._localizeNumber(str, locale, spec.group); str = sign + str; } if (str !== "" && spec.format === "%") { str = str + locale.percent; } } else { if (spec.format == "r") { str = MochiKit.Base.repr(value); } else { - str = (value == null) ? "null" : value.toString(); + str = (value == null) ? "" : value.toString(); } str = self.truncate(str, spec.precision); } if (spec.align == "<") { str = self.padRight(str, spec.width); } else { str = self.padLeft(str, spec.width); } return str; -} +}; /** * Adjust an already formatted numeric string for locale-specific * grouping and decimal separators. The grouping is optional and * will attempt to keep the number string length intact by removing * padded zeros (if possible). * * @param {String} num the formatted number string * @param {Object} locale the formatting locale to use - * @param {Boolean} grouping the grouping flag + * @param {Boolean} group the grouping flag * * @return {String} the localized number string */ -MochiKit.Text._localizeNumber = function (num, locale, grouping) { +MochiKit.Text._localizeNumber = function (num, locale, group) { var parts = num.split(/\./); var whole = parts[0]; var frac = (parts.length == 1) ? "" : parts[1]; var res = (frac.length > 0) ? locale.decimal : ""; - while (grouping && frac.length > 3) { + while (group && frac.length > 3) { res = res + frac.substring(0, 3) + locale.separator; frac = frac.substring(3); if (whole.charAt(0) == "0") { whole = whole.substring(1); } } if (frac.length > 0) { - res += frac; + res = res + frac; } - while (grouping && whole.length > 3) { + while (group && whole.length > 3) { var pos = whole.length - 3; res = locale.separator + whole.substring(pos) + res; whole = whole.substring((whole.charAt(0) == "0") ? 1 : 0, pos); } return whole + res; -} +}; /** * Parses a format pattern and returns an array of constant strings * and format info objects. * * @param {String} pattern the format pattern to analyze * * @return {Array} an array of strings and format info objects * * @throws FormatPatternError if the format pattern was invalid */ MochiKit.Text._parsePattern = function (pattern) { var self = MochiKit.Text; var parts = []; - var start = 0; - var pos = 0; - for (pos = 0; pos < pattern.length; pos++) { - if (pattern.charAt(pos) == "{") { - if (pos + 1 >= pattern.length) { - var msg = "unescaped { char, should be escaped as {{"; - throw new self.FormatPatternError(pattern, pos, msg); - } else if (pattern.charAt(pos + 1) == "{") { - parts.push(pattern.substring(start, pos + 1)); - start = pos + 2; - pos++; - } else { - if (start < pos) { - parts.push(pattern.substring(start, pos)); - } - start = pattern.indexOf("}", pos) + 1; - if (start <= 0) { - var msg = "unmatched { char, not followed by a } char"; - throw new self.FormatPatternError(pattern, pos, msg); - } - parts.push(self._parseFormat(pattern, pos + 1, start - 1)); - pos = start - 1; - } - } else if (pattern.charAt(pos) == "}") { - if (pos + 1 >= pattern.length || pattern.charAt(pos + 1) != "}") { - var msg = "unescaped } char, should be escaped as }}"; - throw new self.FormatPatternError(pattern, pos, msg); - } - parts.push(pattern.substring(start, pos + 1)); - start = pos + 2; - pos++; + var re = /{[^{}]*}|{{?|}}?/g; + var lastPos = re.lastIndex = 0; + var m; + while ((m = re.exec(pattern)) != null) { + if (lastPos < m.index) { + parts.push(pattern.substring(lastPos, m.index)) + } + var str = m[0]; + lastPos = m.index + str.length; + if (self.startsWith("{", str) && self.endsWith("}", str)) { + parts.push(self._parseFormat(pattern, m.index + 1, lastPos - 1)); + } else if (self.startsWith("{{", str) || self.startsWith("}}", str)) { + parts.push(str.substring(1)); + } else if (self.startsWith("{", str)) { + var msg = "unescaped { char, should be escaped as {{"; + throw new self.FormatPatternError(pattern, m.index, msg); + } else if (self.startsWith("}", str)) { + var msg = "unescaped } char, should be escaped as }}"; + throw new self.FormatPatternError(pattern, m.index, msg); } } - if (start < pos) { - parts.push(pattern.substring(start, pos)); + if (lastPos < pattern.length) { + parts.push(pattern.substring(lastPos)); } return parts; -} +}; /** * Parses a format instruction and returns a format info object. * * @param {String} pattern the format pattern string * @param {Number} startPos the first index of the format instruction * @param {Number} endPos the last index of the format instruction * * @return {Object} the format info object * * @throws FormatPatternError if the format pattern was invalid */ MochiKit.Text._parseFormat = function (pattern, startPos, endPos) { var self = MochiKit.Text; var text = pattern.substring(startPos, endPos); - var info; - var pos = text.indexOf(":"); - if (pos == 0) { - info = self._parseFormatFlags(pattern, startPos + 1, endPos); - info.path = [0]; - } else if (pos > 0) { - info = self._parseFormatFlags(pattern, startPos + pos + 1, endPos); - info.path = text.substring(0, pos).split("."); - } else { - info = self._parseFormatFlags(pattern, endPos, endPos); - info.path = text.split("."); - } - var DIGITS = /^\d+$/; + var parts = self.split(text, ":", 1); + var path = parts[0]; + var flagsPos = startPos + path.length + ((parts.length == 1) ? 0 : 1); + var info = self._parseFormatFlags(pattern, flagsPos, endPos); + info.path = (path == "") ? [] : path.split("."); for (var i = 0; i < info.path.length; i++) { - var e = info.path[i]; - if (typeof(e) == "string") { - // TODO: replace with MochiKit.Format.strip? - e = e.replace(/^\s+/, "").replace(/\s+$/, ""); - if (e == "" && info.path.length == 1) { - e = 0; - } else if (e == "") { - var msg = "format value path contains blanks"; - throw new self.FormatPatternError(pattern, startPos, msg); - } else if (DIGITS.test(e)) { - e = parseInt(e); - } + var v = info.path[i]; + // TODO: replace with MochiKit.Format.strip? + v = v.replace(/^\s+/, "").replace(/\s+$/, ""); + if (v == "" && info.path.length == 1) { + v = 0; + } else if (v == "") { + var msg = "format value path contains blanks"; + throw new self.FormatPatternError(pattern, startPos, msg); + } else if (/^\d+$/.test(v)) { + v = parseInt(v, 10); } - info.path[i] = e; + info.path[i] = v; } - if (info.path.length < 0 || typeof(info.path[0]) != "number") { + if (info.path.length <= 0 || typeof(info.path[0]) != "number") { info.path.unshift(0); } return info; -} +}; /** * Parses a string with format flags and returns a format info object. * * @param {String} pattern the format pattern string * @param {Number} startPos the first index of the format instruction * @param {Number} endPos the last index of the format instruction * * @return {Object} the format info object * * @throws FormatPatternError if the format pattern was invalid */ MochiKit.Text._parseFormatFlags = function (pattern, startPos, endPos) { - var self = MochiKit.Text; - var info = { numeric: false, format: "s", width: 0, precision: -1, - align: ">", sign: "-", padding: " ", grouping: false }; + var update = MochiKit.Base.update; + var info = { type: "string", format: "s", width: 0, precision: -1, + align: ">", sign: "", padding: " ", group: false }; // TODO: replace with MochiKit.Format.rstrip? - var flags = pattern.substring(startPos, endPos).replace(/\s+$/, ""); - while (flags.length > 0) { - switch (flags.charAt(0)) { - case ">": - case "<": - info.align = flags.charAt(0); - flags = flags.substring(1); - break; - case "+": - case "-": - case " ": - info.sign = flags.charAt(0); - flags = flags.substring(1); - break; - case ",": - info.grouping = true; - flags = flags.substring(1); - break; - case ".": - var chars = /^\d*/.exec(flags.substring(1))[0]; - info.precision = parseInt(chars); - flags = flags.substring(1 + chars.length); - break; - case "0": - info.padding = flags.charAt(0); - flags = flags.substring(1); - break; - case "1": - case "2": - case "3": - case "4": - case "5": - case "6": - case "7": - case "8": - case "9": - var chars = /^\d*/.exec(flags)[0]; - info.width = parseInt(chars); - flags = flags.substring(chars.length); - break; - case "s": - case "r": - info.format = flags.charAt(0); - flags = flags.substring(1); - break; - case "b": - case "d": - case "o": - case "x": - case "X": - case "f": - case "%": - info.numeric = true; - info.format = flags.charAt(0); - info.radix = 10; - if (info.format === "b") { - info.radix = 2; - } else if (info.format === "o") { - info.radix = 8; - } else if (info.format === "x" || info.format === "X") { - info.radix = 16; - } - flags = flags.substring(1); - break; - default: - var msg = "unsupported format flag: " + flags.charAt(0); - throw new self.FormatPatternError(pattern, startPos, msg); + var text = pattern.substring(startPos, endPos).replace(/\s+$/, ""); + var m = /^([<>+ 0,-]+)?(\d+)?(\.\d*)?([srbdoxXf%])?(.*)$/.exec(text); + var flags = m[1]; + var width = m[2]; + var precision = m[3]; + var type = m[4]; + var unmatched = m[5]; + for (var i = 0; flags && i < flags.length; i++) { + var chr = flags.charAt(i); + if (chr == "<" || chr == ">") { + info.align = chr; + } else if (chr == "+" || chr == "-" || chr == " ") { + info.sign = (chr == "-") ? "" : chr; + } else if (chr == "0") { + info.padding = chr; + } else if (chr == ",") { + info.group = true; } } + if (width) { + info.width = parseInt(width, 10); + } + if (precision && precision.length > 1) { + info.precision = parseInt(precision.substring(1), 10); + } + if (type == "s" || type == "r") { + info.format = type; + } else if (type == "b") { + update(info, { type: "number", format: type, radix: 2 }); + } else if (type == "o") { + update(info, { type: "number", format: type, radix: 8 }); + } else if (type == "x" || type == "X") { + update(info, { type: "number", format: type, radix: 16 }); + } else if (type == "d" || type == "f" || type == "%") { + update(info, { type: "number", format: type, radix: 10 }); + } + if (unmatched) { + var msg = "unsupported format flag: " + unmatched.charAt(0); + throw new MochiKit.Text.FormatPatternError(pattern, startPos, msg); + } return info; -} +}; /** * Formats a value as a percentage. This method avoids multiplication * by 100 since it leads to weird numeric rounding errors. Instead it * just move the decimal separator in the text string. It is ugly, * but works... * * @param {Number} value the value to format * @param {Number} precision the number of precision digits */ MochiKit.Text._truncToPercent = function (value, precision) { - // TODO: This can be simplified by using the same helper function - // as roundToFixed now does. + // TODO: This can be simplified by using MochiKit.Format._shiftNumber + // as roundToFixed does. var str; if (precision >= 0) { str = MochiKit.Format.roundToFixed(value, precision + 2); } else { str = (value == null) ? "0" : value.toString(); } - var fracPos = str.indexOf("."); - if (fracPos < 0) { - str = str + "00"; - } else if (fracPos + 3 >= str.length) { - var fraction = str.substring(fracPos + 1); - while (fraction.length < 2) { - fraction = fraction + "0"; - } - str = str.substring(0, fracPos) + fraction; - } else { - var fraction = str.substring(fracPos + 1); - str = str.substring(0, fracPos) + fraction.substring(0, 2) + - "." + fraction.substring(2); - } - while (str.length > 1 && str.charAt(0) == "0" && str.charAt(1) != ".") { - str = str.substring(1); + var arr = MochiKit.Text.split(str, ".", 2); + var frac = MochiKit.Text.padRight(arr[1], 2, "0"); + var whole = arr[0] + frac.substring(0, 2); + frac = frac.substring(2); + while (/^0[0-9]/.test(whole)) { + whole = whole.substring(1); } - return str; -} + return (frac.length <= 0) ? whole : whole + "." + frac; +}; /** * Creates a new format pattern error. * * @param {String} pattern the format pattern string * @param {Number} pos the position of the error * @param {String} message the error message text * * @return {Error} the format pattern error * * @class The format pattern error class. This error is thrown when * a syntax error is encountered inside a format string. * @property {String} pattern The format pattern string. * @property {Number} pos The position of the error. * @property {String} message The error message text. * @extends MochiKit.Base.NamedError */ MochiKit.Text.FormatPatternError = function (pattern, pos, message) { this.pattern = pattern; this.pos = pos; this.message = message; -} -MochiKit.Text.FormatPatternError.prototype = - new MochiKit.Base.NamedError("MochiKit.Text.FormatPatternError"); +}; +MochiKit.Text.FormatPatternError.prototype = new MochiKit.Base.NamedError("MochiKit.Text.FormatPatternError"); +MochiKit.Text.FormatPatternError.constructor = MochiKit.Text.FormatPatternError; // -//XXX: Internet Explorer exception handling blows +//XXX: Internet Explorer export fix // if (MochiKit.__export__) { formatter = MochiKit.Text.formatter; format = MochiKit.Text.format; formatValue = MochiKit.Text.formatValue; } MochiKit.Base.nameFunctions(MochiKit.Text); MochiKit.Base._exportSymbols(this, MochiKit.Text); diff --git a/frontend/gamma/js/MochiKit/Visual.js b/frontend/gamma/js/MochiKit/Visual.js index 648d82a..372d99a 100644 --- a/frontend/gamma/js/MochiKit/Visual.js +++ b/frontend/gamma/js/MochiKit/Visual.js @@ -1,27 +1,27 @@ /*** MochiKit.Visual 1.5 See <http://mochikit.com/> for documentation, downloads, license, etc. (c) 2005 Bob Ippolito and others. All rights Reserved. ***/ -MochiKit.Base._module('Visual', '1.5', ['Base', 'DOM', 'Style', 'Color', 'Position']); +MochiKit.Base.module(MochiKit, 'Visual', '1.5', ['Base', 'DOM', 'Style', 'Color', 'Position']); MochiKit.Visual._RoundCorners = function (e, options) { e = MochiKit.DOM.getElement(e); this._setOptions(options); if (this.options.__unstable__wrapElement) { e = this._doWrap(e); } var color = this.options.color; var C = MochiKit.Color.Color; if (this.options.color === "fromElement") { color = C.fromBackground(e); } else if (!(color instanceof C)) { color = C.fromString(color); } this.isTransparent = (color.asRGB().a <= 0); @@ -456,32 +456,37 @@ MochiKit.Visual.Transitions.wobble = function (pos) { /** @id MochiKit.Visual.Transitions.pulse */ MochiKit.Visual.Transitions.pulse = function (pos, pulses) { if (pulses) { pos *= 2 * pulses; } else { pos *= 10; } var decimals = pos - Math.floor(pos); return (Math.floor(pos) % 2 == 0) ? decimals : 1 - decimals; }; /** @id MochiKit.Visual.Transitions.parabolic */ MochiKit.Visual.Transitions.parabolic = function (pos) { return pos * pos; }; +/** @id MochiKit.Visual.Transitions.spring */ +MochiKit.Visual.Transitions.spring = function (pos) { + return 1 - (Math.cos(pos * 2.5 * Math.PI) * Math.exp(-pos * 6)); +}; + /** @id MochiKit.Visual.Transitions.none */ MochiKit.Visual.Transitions.none = function (pos) { return 0; }; /** @id MochiKit.Visual.Transitions.full */ MochiKit.Visual.Transitions.full = function (pos) { return 1; }; /*** Core effects ***/ @@ -521,32 +526,37 @@ MochiKit.Base.update(MochiKit.Visual.ScopedQueue.prototype, { case 'end': var finish; // start effect after last queued effect has finished ma(function (e) { var i = e.finishOn; if (i >= (finish || i)) { finish = i; } }, this.effects); timestamp = finish || timestamp; break; case 'break': ma(function (e) { e.finalize(); }, this.effects); break; + case 'replace': + ma(function (e) { + e.cancel(); + }, this.effects); + break; } effect.startOn += timestamp; effect.finishOn += timestamp; if (!effect.options.queue.limit || this.effects.length < effect.options.queue.limit) { this.effects.push(effect); } if (!this.interval) { this.interval = this.startLoop(MochiKit.Base.bind(this.loop, this), 40); } }, /** @id MochiKit.Visual.ScopedQueue.prototype.startLoop */ @@ -649,34 +659,38 @@ MochiKit.Visual.Base.prototype = { if (frame > this.currentFrame) { this.render(pos); this.currentFrame = frame; } } }, /** @id MochiKit.Visual.Base.prototype.render */ render: function (pos) { if (this.state == 'idle') { this.state = 'running'; this.event('beforeSetup'); this.setup(); this.event('afterSetup'); } if (this.state == 'running') { - if (this.options.transition) { - pos = this.options.transition(pos); + var trans = this.options.transition; + if (typeof(trans) == "string") { + trans = MochiKit.Visual.Transitions[trans]; + } + if (typeof(trans) == "function") { + pos = trans(pos); } pos *= (this.options.to - this.options.from); pos += this.options.from; this.event('beforeUpdate'); this.update(pos); this.event('afterUpdate'); } }, /** @id MochiKit.Visual.Base.prototype.cancel */ cancel: function () { if (!this.options.sync) { MochiKit.Visual.Queues.get(typeof(this.options.queue) == 'string' ? 'global' : this.options.queue.scope).remove(this); } this.state = 'finished'; @@ -1673,34 +1687,34 @@ MochiKit.Visual.slideUp = function (element, /* optional */ options) { // Bug in opera makes the TD containing this element expand for a instance // after finish /** @id MochiKit.Visual.squish */ MochiKit.Visual.squish = function (element, /* optional */ options) { /*** Reduce an element and make it disappear. ***/ var d = MochiKit.DOM; var b = MochiKit.Base; var s = MochiKit.Style; var elementDimensions = s.getElementDimensions(element, true); var elemClip; options = b.update({ restoreAfterFinish: true, - scaleMode: {originalHeight: elementDimensions.w, - originalWidth: elementDimensions.h}, + scaleMode: {originalHeight: elementDimensions.h, + originalWidth: elementDimensions.w}, beforeSetupInternal: function (effect) { elemClip = s.makeClipping(effect.element); }, afterFinishInternal: function (effect) { s.hideElement(effect.element); s.undoClipping(effect.element, elemClip); } }, options); return new MochiKit.Visual.Scale(element, /Opera/.test(navigator.userAgent) ? 1 : 0, options); }; /** @id MochiKit.Visual.grow */ MochiKit.Visual.grow = function (element, /* optional */ options) { /*** @@ -1945,31 +1959,18 @@ MochiKit.Visual.fold = function (element, /* optional */ options) { scaleContent: false, scaleY: false, scaleMode: {originalHeight: elementDimensions.h, originalWidth: elementDimensions.w}, afterFinishInternal: function (effect) { s.hideElement(effect.element); s.undoClipping(effect.element, elemClip); s.setStyle(effect.element, oldStyle); } }); } }, options); return new v.Scale(element, 5, options); }; -/* end of Rico adaptation */ - -MochiKit.Visual.__new__ = function () { - var m = MochiKit.Base; - - // Backwards compatibility aliases - m._deprecated(this, 'Color', 'MochiKit.Color.Color', '1.1'); - m._deprecated(this, 'getElementsComputedStyle', 'MochiKit.Style.getStyle', '1.1'); - - m.nameFunctions(this); -}; - -MochiKit.Visual.__new__(); - +MochiKit.Base.nameFunctions(MochiKit.Visual); MochiKit.Base._exportSymbols(this, MochiKit.Visual); diff --git a/frontend/gamma/js/MochiKit/__package__.js b/frontend/gamma/js/MochiKit/__package__.js deleted file mode 100644 index 8d644b1..0000000 --- a/frontend/gamma/js/MochiKit/__package__.js +++ b/dev/null @@ -1,18 +0,0 @@ -dojo.kwCompoundRequire({ - "common": [ - "MochiKit.Base", - "MochiKit.Iter", - "MochiKit.Logging", - "MochiKit.DateTime", - "MochiKit.Format", - "MochiKit.Async", - "MochiKit.DOM", - "MochiKit.Style", - "MochiKit.LoggingPane", - "MochiKit.Color", - "MochiKit.Signal", - "MochiKit.Position", - "MochiKit.Visual" - ] -}); -dojo.provide("MochiKit.*"); diff --git a/frontend/gamma/js/main.js b/frontend/gamma/js/main.js index a9fd65e..934b325 100644 --- a/frontend/gamma/js/main.js +++ b/frontend/gamma/js/main.js @@ -68,26 +68,26 @@ function run() { } 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 { 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"); + //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'}); } MochiKit.DOM.addLoadEvent(run); diff --git a/frontend/gamma/properties/gamma.properties.json b/frontend/gamma/properties/gamma.properties.json index 9dc355b..c847812 100644 --- a/frontend/gamma/properties/gamma.properties.json +++ b/frontend/gamma/properties/gamma.properties.json @@ -1,22 +1,24 @@ { "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": "index_template.html", + "js": [ "MochiKit/Base.js", "MochiKit/Iter.js", "MochiKit/Logging.js", "-- MochiKit/DateTime.js", "MochiKit/Format.js", "MochiKit/Async.js", "MochiKit/DOM.js", "MochiKit/Style.js", "MochiKit/LoggingPane.js", "MochiKit/Color.js", "MochiKit/Signal.js", "MochiKit/Position.js", "MochiKit/Selector.js", "MochiKit/Visual.js", diff --git a/frontend/gamma/tests/tests/Clipperz/Crypto/AES.html b/frontend/gamma/tests/tests/Clipperz/Crypto/AES.html index 828ccb8..16f64d0 100644 --- a/frontend/gamma/tests/tests/Clipperz/Crypto/AES.html +++ b/frontend/gamma/tests/tests/Clipperz/Crypto/AES.html @@ -15,33 +15,32 @@ refer to http://www.clipperz.com. * 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.Crypto.AES_v3 - TEST</title> <script type="text/javascript" src="../../../../js/MochiKit/MochiKit.js"></script> - <script type="text/javascript" src="../../../../js/JSLog/jslog.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/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/Base.js'></script> <script type='text/javascript' src='../../../../js/Clipperz/ByteArray.js'></script> <script type='text/javascript' src='../../../../js/Clipperz/Crypto/SHA.js'></script> <script type='text/javascript' src='../../../../js/Clipperz/Crypto/AES.js'></script> </head> <body> <pre id="test"> diff --git a/frontend/gamma/tests/tests/Clipperz/Crypto/AES.performance.html b/frontend/gamma/tests/tests/Clipperz/Crypto/AES.performance.html index 4817096..a90d815 100644 --- a/frontend/gamma/tests/tests/Clipperz/Crypto/AES.performance.html +++ b/frontend/gamma/tests/tests/Clipperz/Crypto/AES.performance.html @@ -19,33 +19,32 @@ refer to http://www.clipperz.com. * 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.Crypto.AES_performance - TEST</title> <script> jslog_config_enabled = true; </script> <script type="text/javascript" src="../../../../js/MochiKit/MochiKit.js"></script> - <script type="text/javascript" src="../../../../js/JSLog/jslog.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/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/Base.js'></script> <script type='text/javascript' src='../../../../js/Clipperz/Logging.js'></script> <script type='text/javascript' src='../../../../js/Clipperz/ByteArray.js'></script> <script type='text/javascript' src='../../../../js/Clipperz/Crypto/Base.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> diff --git a/frontend/gamma/tests/tests/Clipperz/Crypto/Base.html b/frontend/gamma/tests/tests/Clipperz/Crypto/Base.html index 0ffcdb8..83f0766 100644 --- a/frontend/gamma/tests/tests/Clipperz/Crypto/Base.html +++ b/frontend/gamma/tests/tests/Clipperz/Crypto/Base.html @@ -13,33 +13,32 @@ refer to http://www.clipperz.com. 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> <script type="text/javascript" src="../../../../js/MochiKit/MochiKit.js"></script> - <script type="text/javascript" src="../../../../js/JSLog/jslog.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/Crypto/BigInt.js'></script> <script type='text/javascript' src='../../../../js/Clipperz/Crypto/Base.js'></script> <script type='text/javascript' src='../../../../js/Clipperz/Crypto/Functions.js'></script> <script type='text/javascript' src='../../../../js/Clipperz/Crypto/BigInt.js'></script> </head> <body> <pre id="test"> <script type="text/javascript"> diff --git a/frontend/gamma/tests/tests/Clipperz/Crypto/BigInt.html b/frontend/gamma/tests/tests/Clipperz/Crypto/BigInt.html index b970a9a..f4db3b7 100644 --- a/frontend/gamma/tests/tests/Clipperz/Crypto/BigInt.html +++ b/frontend/gamma/tests/tests/Clipperz/Crypto/BigInt.html @@ -13,33 +13,32 @@ refer to http://www.clipperz.com. 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> <script type="text/javascript" src="../../../../js/MochiKit/MochiKit.js"></script> - <script type="text/javascript" src="../../../../js/JSLog/jslog.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/YUI/DomHelper.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/Crypto/BigInt.js'></script> <script type='text/javascript' src='../../../../js/Clipperz/Crypto/Base.js'></script> <script type='text/javascript' src='../../../../js/Clipperz/Crypto/Functions.js'></script> </head> <body> <pre id="test"> <script type="text/javascript"> try { diff --git a/frontend/gamma/tests/tests/Clipperz/Crypto/ECC.BinaryField.FiniteField.B283.html b/frontend/gamma/tests/tests/Clipperz/Crypto/ECC.BinaryField.FiniteField.B283.html index 6024021..93d8695 100644 --- a/frontend/gamma/tests/tests/Clipperz/Crypto/ECC.BinaryField.FiniteField.B283.html +++ b/frontend/gamma/tests/tests/Clipperz/Crypto/ECC.BinaryField.FiniteField.B283.html @@ -13,33 +13,32 @@ refer to http://www.clipperz.com. 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> <script type="text/javascript" src="../../../../js/MochiKit/MochiKit.js"></script> - <script type="text/javascript" src="../../../../js/JSLog/jslog.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/Base.js'></script> <script type='text/javascript' src='../../../../js/Clipperz/ByteArray.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/ECC.js'></script>--> <script type='text/javascript' src='../../../../js/Clipperz/Crypto/ECC/BinaryField/Value.js'></script> <script type='text/javascript' src='../../../../js/Clipperz/Crypto/ECC/BinaryField/Point.js'></script> <script type='text/javascript' src='../../../../js/Clipperz/Crypto/ECC/BinaryField/FiniteField.js'></script> <script type='text/javascript' src='../../../../js/Clipperz/Crypto/ECC/BinaryField/Curve.js'></script> <script type='text/javascript' src='../../../../js/Clipperz/Crypto/Functions.js'></script> </head> <body> diff --git a/frontend/gamma/tests/tests/Clipperz/Crypto/ECC.BinaryField.FiniteField.html b/frontend/gamma/tests/tests/Clipperz/Crypto/ECC.BinaryField.FiniteField.html index 5a7a4f7..658c402 100644 --- a/frontend/gamma/tests/tests/Clipperz/Crypto/ECC.BinaryField.FiniteField.html +++ b/frontend/gamma/tests/tests/Clipperz/Crypto/ECC.BinaryField.FiniteField.html @@ -13,33 +13,32 @@ refer to http://www.clipperz.com. 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> <script type="text/javascript" src="../../../../js/MochiKit/MochiKit.js"></script> - <script type="text/javascript" src="../../../../js/JSLog/jslog.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/Base.js'></script> <script type='text/javascript' src='../../../../js/Clipperz/ByteArray.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/ECC.js'></script>--> <script type='text/javascript' src='../../../../js/Clipperz/Crypto/ECC/BinaryField/Value.js'></script> <script type='text/javascript' src='../../../../js/Clipperz/Crypto/ECC/BinaryField/Point.js'></script> <script type='text/javascript' src='../../../../js/Clipperz/Crypto/ECC/BinaryField/FiniteField.js'></script> <script type='text/javascript' src='../../../../js/Clipperz/Crypto/ECC/BinaryField/Curve.js'></script> <script type='text/javascript' src='../../../../js/Clipperz/Crypto/Functions.js'></script> </head> <body> diff --git a/frontend/gamma/tests/tests/Clipperz/Crypto/ECC.BinaryField.Value.html b/frontend/gamma/tests/tests/Clipperz/Crypto/ECC.BinaryField.Value.html index c58cf42..0d0903d 100644 --- a/frontend/gamma/tests/tests/Clipperz/Crypto/ECC.BinaryField.Value.html +++ b/frontend/gamma/tests/tests/Clipperz/Crypto/ECC.BinaryField.Value.html @@ -13,33 +13,32 @@ refer to http://www.clipperz.com. 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> <script type="text/javascript" src="../../../../js/MochiKit/MochiKit.js"></script> - <script type="text/javascript" src="../../../../js/JSLog/jslog.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/Base.js'></script> <script type='text/javascript' src='../../../../js/Clipperz/ByteArray.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/ECC.js'></script>--> <script type='text/javascript' src='../../../../js/Clipperz/Crypto/ECC/BinaryField/Value.js'></script> <script type='text/javascript' src='../../../../js/Clipperz/Crypto/ECC/BinaryField/Point.js'></script> <script type='text/javascript' src='../../../../js/Clipperz/Crypto/ECC/BinaryField/FiniteField.js'></script> <script type='text/javascript' src='../../../../js/Clipperz/Crypto/ECC/BinaryField/Curve.js'></script> <script type='text/javascript' src='../../../../js/Clipperz/Crypto/Functions.js'></script> </head> <body> diff --git a/frontend/gamma/tests/tests/Clipperz/Crypto/PRNG.html b/frontend/gamma/tests/tests/Clipperz/Crypto/PRNG.html index 438d96f..61aa1c2 100644 --- a/frontend/gamma/tests/tests/Clipperz/Crypto/PRNG.html +++ b/frontend/gamma/tests/tests/Clipperz/Crypto/PRNG.html @@ -15,33 +15,32 @@ refer to http://www.clipperz.com. * 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> <script> jslog_config_enabled = true; </script> <script type="text/javascript" src="../../../../js/MochiKit/MochiKit.js"></script> - <script type="text/javascript" src="../../../../js/JSLog/jslog.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/YUI/DomHelper.js'></script> <script type='text/javascript' src='../../../../js/Clipperz/Base.js'></script> <script type='text/javascript' src='../../../../js/Clipperz/Logging.js'></script> <script type='text/javascript' src='../../../../js/Clipperz/ByteArray.js'></script> <script type='text/javascript' src='../../../../js/Clipperz/DOM.js'></script> <!--<script type='text/javascript' src='../../../../js/Clipperz/Crypto/Statistics.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/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> diff --git a/frontend/gamma/tests/tests/Clipperz/Crypto/RSA.html b/frontend/gamma/tests/tests/Clipperz/Crypto/RSA.html index f29f894..4c7fd86 100644 --- a/frontend/gamma/tests/tests/Clipperz/Crypto/RSA.html +++ b/frontend/gamma/tests/tests/Clipperz/Crypto/RSA.html @@ -13,33 +13,32 @@ refer to http://www.clipperz.com. 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> <script type="text/javascript" src="../../../../js/MochiKit/MochiKit.js"></script> - <script type="text/javascript" src="../../../../js/JSLog/jslog.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/Base.js'></script> <script type='text/javascript' src='../../../../js/Clipperz/DOM.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/RSA.js'></script> </head> <body> <pre id="test"> <script type="text/javascript"> try { var rsaPublicKey; diff --git a/frontend/gamma/tests/tests/Clipperz/Crypto/SHA.html b/frontend/gamma/tests/tests/Clipperz/Crypto/SHA.html index a580491..a2f6c04 100644 --- a/frontend/gamma/tests/tests/Clipperz/Crypto/SHA.html +++ b/frontend/gamma/tests/tests/Clipperz/Crypto/SHA.html @@ -50,33 +50,32 @@ refer to http://www.clipperz.com. <pre id="test"> <script type="text/javascript" src="SHA.test.js"></script> </pre> </body> </html> <!-- html> <head> <script> jslog_config_enabled = true; clipperz_profiling_enabled = true; </script> <script type="text/javascript" src="../../../../js/MochiKit/MochiKit.js"></script> - <script type="text/javascript" src="../../../../js/JSLog/jslog.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/YUI/DomHelper.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/Crypto/SHA.js'></script> </head> <body> <pre id="test"> <script type="text/javascript"> try { var byteArray; diff --git a/frontend/gamma/tests/tests/Clipperz/Crypto/SRP.html b/frontend/gamma/tests/tests/Clipperz/Crypto/SRP.html index d0ee153..ba842a9 100644 --- a/frontend/gamma/tests/tests/Clipperz/Crypto/SRP.html +++ b/frontend/gamma/tests/tests/Clipperz/Crypto/SRP.html @@ -13,33 +13,32 @@ refer to http://www.clipperz.com. 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> <script type="text/javascript" src="../../../../js/MochiKit/MochiKit.js"></script> - <script type="text/javascript" src="../../../../js/JSLog/jslog.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/YUI/DomHelper.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/Crypto/BigInt.js'></script> <script type='text/javascript' src='../../../../js/Clipperz/Crypto/Base.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/SRP.js'></script> </head> <body> diff --git a/frontend/gamma/tests/tests/Clipperz/Crypto/Usage.html b/frontend/gamma/tests/tests/Clipperz/Crypto/Usage.html index 8920915..4e7ad3d 100644 --- a/frontend/gamma/tests/tests/Clipperz/Crypto/Usage.html +++ b/frontend/gamma/tests/tests/Clipperz/Crypto/Usage.html @@ -15,33 +15,32 @@ refer to http://www.clipperz.com. * 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.Crypto.Usage - TEST</title> <script type="text/javascript" src="../../../../js/MochiKit/MochiKit.js"></script> - <script type="text/javascript" src="../../../../js/JSLog/jslog.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/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/Base.js'></script> <script type='text/javascript' src='../../../../js/Clipperz/Logging.js'></script> <script type='text/javascript' src='../../../../js/Clipperz/ByteArray.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> </head> diff --git a/frontend/gamma/tests/tests/Clipperz/PM/Date.html b/frontend/gamma/tests/tests/Clipperz/PM/Date.html index a606ca4..7b87185 100644 --- a/frontend/gamma/tests/tests/Clipperz/PM/Date.html +++ b/frontend/gamma/tests/tests/Clipperz/PM/Date.html @@ -15,33 +15,32 @@ refer to http://www.clipperz.com. * 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.Date - test</title> <script type="text/javascript" src="../../../../js/MochiKit/MochiKit.js"></script> - <!-- script type="text/javascript" src="../../../../js/JSLog/jslog.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/JSON/json2.js'></script> <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/Date.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="../../../SimpleTest/SimpleTest.Async.js"></script> diff --git a/frontend/gamma/tests/tests/Clipperz/PM/Proxy.html b/frontend/gamma/tests/tests/Clipperz/PM/Proxy.html index 8dc533f..8177285 100644 --- a/frontend/gamma/tests/tests/Clipperz/PM/Proxy.html +++ b/frontend/gamma/tests/tests/Clipperz/PM/Proxy.html @@ -15,33 +15,32 @@ refer to http://www.clipperz.com. * 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="../../../../js/JSLog/jslog.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> diff --git a/frontend/gamma/tests/tests/Clipperz/PM/Toll.html b/frontend/gamma/tests/tests/Clipperz/PM/Toll.html index 9baf167..6c2e000 100644 --- a/frontend/gamma/tests/tests/Clipperz/PM/Toll.html +++ b/frontend/gamma/tests/tests/Clipperz/PM/Toll.html @@ -15,33 +15,32 @@ refer to http://www.clipperz.com. * 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.Toll - test</title> <script type="text/javascript" src="../../../../js/MochiKit/MochiKit.js"></script> - <script type="text/javascript" src="../../../../js/JSLog/jslog.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> diff --git a/frontend/gamma/tests/tests/Clipperz/PM/UI/Web/Controllers/MainController.html b/frontend/gamma/tests/tests/Clipperz/PM/UI/Web/Controllers/MainController.html index 04f0e70..1eea01b 100644 --- a/frontend/gamma/tests/tests/Clipperz/PM/UI/Web/Controllers/MainController.html +++ b/frontend/gamma/tests/tests/Clipperz/PM/UI/Web/Controllers/MainController.html @@ -15,33 +15,32 @@ refer to http://www.clipperz.com. * 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.UI.Web.MainController - test</title> <script type="text/javascript" src="../../../../../../../js/MochiKit/MochiKit.js"></script> - <script type="text/javascript" src="../../../../../../../js/JSLog/jslog.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> diff --git a/frontend/gamma/tests/tests/Clipperz/RoboFormExportProcessor.html b/frontend/gamma/tests/tests/Clipperz/RoboFormExportProcessor.html index 87cde0f..b4500e3 100644 --- a/frontend/gamma/tests/tests/Clipperz/RoboFormExportProcessor.html +++ b/frontend/gamma/tests/tests/Clipperz/RoboFormExportProcessor.html @@ -13,33 +13,32 @@ refer to http://www.clipperz.com. 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> <script type="text/javascript" src="../../../js/MochiKit/MochiKit.js"></script> - <script type="text/javascript" src="../../../js/JSLog/jslog.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/Async.js'></script> <script type='text/javascript' src='../../../js/Clipperz/KeePassExportProcessor.js'></script> <script type="text/javascript" src="../../SimpleTest/SimpleTest.Async.js"></script> </head> <body> <pre id="test"> <script type="text/javascript"> try { var deferredResult; var keePassProcessor; diff --git a/frontend/gamma/tests/tests/Components/CardDialogNew/index.html b/frontend/gamma/tests/tests/Components/CardDialogNew/index.html index 2d502b4..64f9e4d 100644 --- a/frontend/gamma/tests/tests/Components/CardDialogNew/index.html +++ b/frontend/gamma/tests/tests/Components/CardDialogNew/index.html @@ -88,27 +88,25 @@ refer to http://www.clipperz.com. <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/Web/Controllers/CardDialogController.js'></script> <script type='text/javascript' src='./User.data.js'></script> <script type='text/javascript' src='./cardDialogNew_test.js'></script> <script> Clipperz_IEisBroken = false; </script> <!--[if IE]><script> Clipperz_IEisBroken = true; </script><![endif]--> - <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" /> </head> <body> <div id="tableWrapper"></div> </body> </html> diff --git a/frontend/gamma/tests/tests/Components/Tooltips/index.html b/frontend/gamma/tests/tests/Components/Tooltips/index.html index 02c6c34..3772227 100644 --- a/frontend/gamma/tests/tests/Components/Tooltips/index.html +++ b/frontend/gamma/tests/tests/Components/Tooltips/index.html @@ -86,35 +86,33 @@ refer to http://www.clipperz.com. <script type='text/javascript' src='../../../../js/Clipperz/PM/UI/Web/Components/CardDialogRecordFieldComponent.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/Web/Controllers/CardDialogController.js'></script> <script type='text/javascript' src='./tooltips_test.js'></script> <script> Clipperz_IEisBroken = false; </script> <!--[if IE]><script> Clipperz_IEisBroken = true; </script><![endif]--> - <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" /> <style> div.leftColumn { float:left; } div.rightColumn { float:left; } div.boxWrapper { padding: 70px 200px; } div.box { |